전체 글 72

ssh로 aws 인스턴스 접속 오류

원하던 것 : 키페어 없이 aws 콘솔에서 바로 인스턴스에 접속 오류 상황 : 단순하게 퍼블릭 ip를 생성해서 콘솔 상에서 접속하는 것이기 때문에 키 페어나 다른 에러가 짐작도 안됨. 해결 : 놀랍게도 로컬 환경에서의 타임 존이 맞지 않아서 발생. 이게 무슨 상관인가 싶기도 하고, 왜? 싶긴한데, 노트북을 처음 받고 제대로 타임 존 설정을 해 두지 않고 인스턴스 생성 후 접속을 시도했던 부분을 수정하니 제대로 접속이 되었다. 에러 수집가답게도 다양한 경험을 했다. 언제나 기기를 처음 받으면 기본 셋팅이 중요함을 잊지말자.

Infra & DevOps/AWS 2022.10.11

[vscode]EC2 연결

ec2 위에서 작업을 하다보면 물론 거의 모든 작업은 cli로 이루어진다. nano나 vi에 익숙하다면 프로 개발자겠지만, 나는 아무래도 텍스트 에디터가 gui면 좋겠다. 고로, vscode를 ec2위에서도 사용해 보자. 정확히는 vscode에서 ec2를 연결하는 것이다. vscode를 로컬에서 열고 순서대로 1. 확장(주황색 네모) > remote -SSH 설치 2. 노란 네모 클릭 > connect current window to host 클릭 > 기본설정 바꿔주기 초록색 네모에는 ec2의 public ip4 dns를 파란색 네모에는 ec2에 접속하기 위한 pem키가 있는 로컬에서의 절대 경로를 채워준다. 3. connect to host 클릭 > 지정한 host 이름 클릭 새로 지정한 이름이 뜨는데..

그 외 메모 2022.08.26

엘라스틱 캐시를 위한 Redis VS Memcached

[AWS][ElastiCache] #1. 엘라스틱 캐시의 클러스터 고르기 상황 마지막 프로젝트를 진행하면서 제작한 서비스의 메인 ec2 상의 api 서버는 기본적으로 mysql 기반의 rds 로 엔드포인트가 향해있었다. 어플리케이션을 통해 들어온 사용자의 예약 정보를 저장하기 위한 데이터베이스가 필요했기 때문. 솔직히 여기까지만 해도 토이프로젝트로는 충분하다고 생각했다. 실제 우리가 많은 양의 데이터를 처리하거나, 처리 속도에 대한 제한까지 신경쓸 것 같진 않았다. 사실 작은 규모의 데이터 입출력을 다룰 땐 캐싱이 필요하지 않다. 오히려 비용적 측면에서 캐싱을 함으로써 발생하는 추가 비용이 rds를 직접 다녀오는 비용보다 클 수 있다. 단, 요구사항 명세에서 클라이언트로 부터 다음과 같은 요구를 받게되었..

Infra & DevOps/AWS 2022.06.07

[Final Project]TeamB_화물 용달 예약/조회 서비스

Day1 오늘 한 것 요구 사항 명세 작성 소비자가 예약을 진행할 때, 예약 정보를 RDS에 저장한다. 드라이버가 예약을 인지할 수 있도록 해당 메시지를 알림 서버에 전달한다. 예약 정보를 다루는 서버는 추가 될 트래픽에 대한 확장성이 보장되어야한다. 알림 서버는 추가 될 트래픽에 대한 확장성이 보장되어야한다. 데이터 내구성을 보장하기 위해 RDS는 복제본이 만들어져야 한다. 빠른 예약 정보 검색을 위해 쿼리결과는 ElastiCache를 통해 캐싱이 되어야 한다. 예약 내역이 담긴 메시지 누적은 Elasticsearch를 통해 제공된다. 누적된 로그는 예약 정보를 담는 rds와는 별도의 db에 저장된다. 예약 서비스와 조회 서비스는 별도로 관리되는 서비스이다. 요구 사항 명세 바탕으로 엔지니어와 팀미팅 ..

[AWS][aws-cli] 인스턴스에서 s3 업로드하기

어차피 인스턴스 내에서 작업을 하는 중이니까 특히 s3 버킷의 경우 정적파일이라서 매번 새로 빌드하면 새로 올려야한다. 파일 질라같은 프로그램으로 매번 인스턴스에서 로컬로 받아서 올리고 s3 파일 삭제하고 하기 귀찮으니까 한줄로 덮어쓰기까지 가능한 aws-cli를 활용하쟈! aws configure 프로필 > 보안자격증명 여기서 액세스키 id 랑 secret key를 받을 수 있는데 꼭 저장하자 id는 노출되도 괜찮지만 secret key는 노출되지않도록 조심 aws-cli 사용을 위한 설정 $ aws confiugre 여기서 위에서 알아낸 id랑 key 넣어준다. 리전과 aws.log 포맷은 좋아하는거 넣어주면 된다. 이걸 넣어줘야 aws-cli 활용할때 쉽게 가능함:) 인스턴스 내에서 s3로 폴더 이..

Infra & DevOps/AWS 2022.05.15

[vscode]ec2 인스턴스 내부 vscode로 컨트롤하기

ec2 인스턴스를 만들고 접속하게되면 ssh 로 로컬 터미널에서 접속 하게된다. 기본적으로 cli 환경에 익숙해져야 하는 큰 이유 중 하나. 그러든 말았든 나는 파일을 여러개 왔다갔다 편집해야하니까 햇병아리에겐 어렵다. vscode는 gui로 편집할 수 있는 점이 장점. 터미널 작업해야하는 윈도우 유저는 개빡치는데.. 인스턴스 접속 퍼블릭 IPv4 DNS 주소를 복사 vscode 접속 VS code내에서 remote -SSH 확장자를 설치한다. 설치완료하면 왼쪽 밑에 파란 바람개비가 나온다 바람개비를 누르고 connect current window to Host를 누르면 이런 화면이 뜬다. host Name 에 아까 인스턴스에서 복사했던 PUBLIC ip4 dns 를 붙여넣고, user ubuntu id..

그 외 메모 2022.05.15

[AWS][EC2] 초기설정 명령어

EC2 인스턴스는 가장 처음 생성하면 당연히 깡통 있는 것 git 하나 뿐이다. 그럼 작업을 하기위한 설정들이 조금 필요하다. 순서대로 복붙! node & npm 설치 과정 $ sudo apt-get install build-essential libssl-dev $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash $ source ~/.bashrc $ nvm install 16.15.0 #이건 내가 글을 쓰는 시점에서 그냥 최신 각자 알아서 curl 설치 과정 $ sudo apt install curl $ curl -sL https://deb.nodesource.com/setup_14.x | sudo -..

Infra & DevOps/AWS 2022.05.15

[Linux] 시스템 모니터링

1. 시스템 모니터링 리눅스로 기본적인 로컬의 상태들을 확인하고 컨트롤 할 수 있어야 한다. 1-1) 명령어 uname 시스템과 커널의 정보를 확인 -a 옵션을 사용하면 커널 이름, 노드 이름, 커널 릴리즈, 커널 버전, 프로세서, 하드웨어 플랫폼, 운영 체제 정보 출력 top 전체 프로세스가 OS에 대해서 리소스를 어느정도 차지하고 있는가 출력 요약 영역에 나타나는 대표적인 내용은 시간, 유저, 로드 애버리지(Load Average), CPU가 수행하는 작업의 양을 순서대로 1분, 5분, 15분 간격의 평균값으로 표시 태스크(Tasks), ==process, 현재 프로세스들의 상태를 나타내주는 영역 CPU, CPU가 어떻게 사용되고 있는지 그 사용률, 유저 영역, 커널 여역, 우선순위 설정 등, 각 영..

CS/운영체제 2022.05.13

[Linux]환경변수&bash 스크립트

1. 환경변수 환경변수란, 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는, 동적인 값들의 모임. 출처는 위키백과 이름 그대로 변수는 변수인데, os가 프로세스들을 생성할 때 참조하는 변수다. 더 쉽게 프로그램을 실행시킬 때 필요한 변수. export 이미 설정된 환경변수 확인 export [변수명]="[값]" 등호 표시 앞뒤로 공백 x 특히 path 설정시 중요 단, 이렇게 export로 줘버리면 시스템 재부팅, 로그아웃시 환경변수 값이 사라짐. 매번 다시 할당 필요 1-1) 환경변수의 영구 적용 ~/.bashrc 파일을 열어서 마지막줄에 원하는 동작을 추가 vscode 를 사용한다는 가정하에, 편집기 열어서 수정하는 명령어 code ~/.bashrc 해당 변수명의 값을 알려줌 echo $[값을 알..

CS/운영체제 2022.05.13

[Linux]nohup

1. nohup no hang up 리눅스, 유닉스에서 .sh 파일을 데몬형태로 실행시키는 프로그램 ✨ nohup으로 실행시키면 nohup.log 생성 데몬(daemon) 이란 서비스의 요청에 대해 응답하기 위해 오랫동안 실행중인 백그라운드(background) 프로세스. 유닉스(리눅스 포함) 운영체제에서 이름이 "d"로 끝나는 프로세스들이 대표적인데 inetd, httpd, nfsd, sshd, named와 lpd, containerd 등이 있다. d가 데몬을 뜻함. 2. 명령어 $nohup [실행하고싶은 프로그램 명령어] 단, nohup으로 실행시킬 파일은 반드시 chmod 755 how to redirection $nohup [실행하고싶은 프로그램 명령어] > [표준 출력을 쓰고싶은 파일명] 리다이..

CS/운영체제 2022.05.13