개발/Infra

개발/Infra

SQS, standard-queues를 사용하여 개발한다면 어떤 것을 고려해야할까?

sqs에서 서버로 message가 올 순서를 보장하는 방법에 대해 설명하려고 한다. 먼저 문제의 상황을 하나 가정해보자. "글 작성"과 "글 수정" 요청이 sqs의 message로 오게되어서 처리하려고 한다.이 과정은 순차적으로 수행되어야 한다. 글 수정을 하려면 글 작성이 되지않으면 안되기 때문이다. fifo 구조의 queue라면 문제가 없지만, 순서를 보장하지 않는 standard라면 얘기가 달라진다.서버가 멈추거나 늦게 처리되는 등 모종의 이유로 인해 순서가 바뀌어서 올 수도 있으므로 동시성 처리를 해주어야한다. 이러한 기능을 구현하기 위해 고려해야할 것들을 생각해보면 다음 두가지이다. 1. 글 수정을 하기전 글이 DB에 존재하는지 확인을 해야한다. (존재하지 않는다면 의도적인 exception을 ..

개발/Infra

ec2 ssh 접속하는 방법(feat. 터미널)

ec2 ssh 접속하는 방법(feat. 터미널) 1. .pem 파일을 $ ~/.ssh/폴더에 넣는다. $ cp {pem파일 위치}/dayone-back.pem ~/.ssh/dayone-back.pem 2. .ssh 폴더로 이동 후 .pem 파일 권한 변경 $ cd ~/.ssh $ chmod 400 dayone-back.pem 3. ssh 접속 스크립트 작성 $ vi config 다음과 같이 입력후 저장(:wq) 4. aws ec2로 접속 $ ssh dayone 접속 확인!

개발/Infra

AWS 로드밸런서를 이용해 도메인에 HTTPS 적용하고 NodeJS 서버 배포하기

개요 node js 서버를 Https로 사용하기 위한 방법은 3가지가 있습니다. 아파치, nginx 등 웹서버에 ssl인증을 추가하는 방식 node js의 server.js 코드에 직접적으로 ssl인증을 하는 방식 AWS 로드밸런서를 이용하여 ssl인증하는 방식 오늘 다뤄볼 케이스는 3번입니다! AWS의 ACM과 로드밸런서를 이용하면 letsencript, nginx, certbot 등 ec2 서버에서 설치 및 세팅 과정의 비용과, 포트관리 시간적 비용을 줄일 수 있습니다. 대신 금전적 비용이 증가합니다. 프리티어 기간동안 1개의 로드밸런스는 무료로 제공되고, 프리티어 기간이 끝난 사용자의 경우 시간당 비용만 매월 18달러 정도 청구됩니다! 참고하셔서 과금되지 않도록 주의해주세요. 준비물 탄력적 ip가 ..

개발/Infra

AWS EC2 초기 세팅

TimeZone time zone을 서울로 변경 $ sudo rm /etc/localtime $ sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime 확인 $ date Hostname hostname 변경 $ sudo hostnamectl set-hostname dayone-backend-server 변경 확인 $ hostname 입력했을 때 바꾸고자 하는 hostname이 나와야 합니다! 재부팅 및 확인! $ sudo reboot \ /etc/hosts에 hostname 등록 $ sudo vi /etc/hosts 80포트로 실행된 서비스 체크 $ curl dayone-backend-server curl: (7) Failed to connect to day..