-
서버를 날렸습니다!Project/NYAM 2022. 12. 10. 18:29
상황 :
앱 서비스를 출시를 하고 1주일 ,3-2 기말고사 5일전 AWS ec2 에는 하나의 인스턴스에 2개의 서버프로세스와 로컬 DB 가 있었습니다.
비용문제 때문에 3 layer 아키텍처를 철저하게 분리 하지 않았습니다. (내가 한거 아님)
CMS : 웹을 이용한 가게 관리 프로그램 의 에러를 신나게 잡고 배포를 하기위하여 인스턴스에서 빌드를 하는 새벽 3시에
ec2 의 인스턴스의 응답이 없고, 접속이 불가한 상황에서 인스턴스를 중지를 하고 재시작을 해야겠다라고 판단이 들었고,
중지를 한 후에도 장시간 응답이 없어서 "인스턴스 종료를 눌렀습니다"
배운것들-
1. 인스턴스는 스케일 업이 가능합니다. : 메모리를 추가하거나 용량이 추가하는 일이 가능합니다
2. AWSRDS 를 이용하지 않고 ec2 인스턴스를 추가하여 DB 를 구축하는것이 가능합니다 .
EC2 인스턴스에 DB 를 설치한후 TCP 통신을 진행합니다.
3. 인스턴스 중지가 아닌 종료를 누르면 "인스턴스에 모든 데이터가 사라 집니다."
-> 인스턴스 중지혹은 미래의 상황을 대비하여 인스턴스 이미지 스냅샷을 저장합니다. 이때 이미지 용량당 월 비용이 AWS 에서 청구가 될 수 가 있습니다.
4. 몽고 디비의 경우 , 몽고 디비 클라우드 서비스 "몽고 디비 아틸라스"를 이용하여 무료 디비 구축이 가능하며
하나의 계정의 하나이상의 프로젝트를 무료로 만들수 있으며 하나의 프로젝트는 오직 하나의 무료 버전의 디비 "share"를 만들 수 있습니다
"share" 란 모르는 이들과 같이 컴퓨팅 자원을 나누어쓰는 것입니다. 23년 2월 현재는 3개의 몽고디비를 사용 하고 있습니다.
5. https 통신을 위하여, nginx 를 구성하며 이때 , 우분투 버전에 맞게 다운을 받아야하며, DNS 등록이 "가비아" 와같은 사이트에 완료가 된다면 , "Cerbot" 을 이용하여 자동으로 nginx 에서 ssl 인증서 발급 등록이 빠르게 가능합니다.
-> Nginx 의 sites 의 location 을 수정하지 않고 바로 Cerbot 을 이용하여 ssl 설정을 해주는것을 권장합니다.
감상:
새벽 3시부터 아침을 목표로 빠르게 aws , nginx, DB 를 4시간안에 구축을 해보는 귀중한 경험이 되었습니다.
+ 추가로 공부할것 : 인스턴스 스냅샷의 원리, DB 백업 자동화 관리 , 스케일 아웃 (아마 도커 나 k8s ,,)
'Project > NYAM' 카테고리의 다른 글
AWS s3 객체 url 접근 (0) 2023.02.03 Package.json 스크립트 작성 (0) 2023.01.19 앱 심사로 인한 서버 버전 관리 문제(feat , 무중단 배포) (1) 2023.01.09 [Errno 13] Permission denied: '/var/log/letsencrypt/.certbot.lock' (0) 2023.01.09 NestJs Swagger Header 추가 (0) 2023.01.02