AWS

    AWS Lambda를 사용한 CloudFront 무효화 자동화 설정하기

    CloudFront Cache Amazon CloudFront를 사용하면 사용자의 요청을 Edge Location에서 캐시 값을 검사하여 24시간 동안에는 사용자에게 다시 파일을 제공하지 않고 캐시 된 값을 빠르게 제공한다. 서비스의 종류에 따라 다르겠지만 만약 이미지를 제공하는 사이트라면 한번 올라간 이미지는 바뀔 일이 없어서 전송 비용을 아낄 수 있는 엄청난 기술이다. 물론 이미지 리사이징 후 다시 저장해야 하는 경우도 있지만 하지만 자주 바뀌어야 하는 오브젝트라면 S3에 원본 오브젝트가 바뀌어도 이미 캐시 된 이전 오브젝트가 클라이언트에게 제공되는 현상이 생길 수 있다. 오히려 자주 바뀌는 오브젝트는 CloudFront의 Cache가 오히려 독이 되는 셈이다. 그렇다고 오브젝트의 Cache가 즉시 ..

    AWS S3 + CloudFront 대용량 파일 전송

    문제점 현재 웹서비스를 이용하려면 클라이언트가 200MB가 넘는 파일을 node.js로부터 전송받고 있다. node.js 는 싱글스레드이다. 이러한 단일 처리가 오래 걸리는 대용량 파일 전송은 적합하지 않기 때문에 빨리 대책을 모색하고자 했다. 수치적으로 보이는 문제점이 아래와 같았다. 높은 CPU 사용량 단일 클라이언트가 204MB 파일을 요청해 node.js 가 response 해주는데 CPU 사용량이 순간적으로 121% 까지 치솟는다. 눈대중으로 봐도 엄청난 과부하가 발생되는 것을 확인할 수 있다. 단 한 명의 클라이언트의 단 한 번의 요청으로 121%까지 치솟는 건 엄청난 문제가 아닐 수 없다. 만약 동시에 여러 명의 클라이언트가 동시에 요청을 한다면 서버가 어떻게 됐을지 상상이 가지 않는다. 물..

    [AWS SES] 다른 도메인을 발송자로 설정하여 Gmail로 발송하기

    AWS SES 세팅 및 Gmail 리다이렉션 설정 Intro 현재 회사에서 사용하고 있는 메일서비스는 후이즈메일을 사용하고 있다. 가격은 월 29,500원 굉장히 사악했다. 사이트 회원가입시 인증 이메일 발송을 개발하기 위해 후이즈메일을 사용하 charming-kyu.tistory.com 이전 편에서 Gmail로 이메일을 전달하도록 처리했으니, Gmail에서 내 도메인 메일 주소를 발신자로 설정하여 메일을 전송하는 방법을 설명한다. 만약 본인의 AWS SES가 Sandbox 환경이라면 발신에 사용할 Email을 먼저 인증해야 한다. 설정 1. AWS SES - Identity Management - Email Addresses - Verify a New Email Address에서 발신에 사용할 내 도메..

    AWS SES 세팅 및 Gmail 리다이렉션 설정

    Intro 현재 회사에서 사용하고 있는 메일 서비스는 후이즈메일을 사용하고 있다. 가격은 월 29,500원 굉장히 사악했다. 사이트 회원가입시 인증 이메일 발송을 개발하기 위해 후이즈메일을 사용하지 말고 nodemailer를 이용해서 gmail로 보낼까? 생각을 했던 와중 자사 도메인 메일을 꼭 사용하고 싶었다. 그럼 직접 SMTP 서버를 구축을 해보자! (꼭 인증 메일은 noreply@meum.me로 발송할 거야!) 라는 부푼 마음을 가지고 EC2에 구축되어 있는 Ubuntu(18.04)에 postfix를 설치하기 시작했다. 테스트 도중 자꾸 오류가 뜨길래 확인 결과 "AWS는 기본적으로 모든 EC2 인스턴스에서 포트 25(SMTP)에서 아웃바운드 트래픽을 차단합니다. 포트 25에서 아웃바운드 트래픽을..