AWS/CloudFront
AWS Lambda를 사용한 CloudFront 무효화 자동화 설정하기
AWS Lambda를 사용한 CloudFront 무효화 자동화 설정하기
2021.06.01CloudFront Cache Amazon CloudFront를 사용하면 사용자의 요청을 Edge Location에서 캐시 값을 검사하여 24시간 동안에는 사용자에게 다시 파일을 제공하지 않고 캐시 된 값을 빠르게 제공한다. 서비스의 종류에 따라 다르겠지만 만약 이미지를 제공하는 사이트라면 한번 올라간 이미지는 바뀔 일이 없어서 전송 비용을 아낄 수 있는 엄청난 기술이다. 물론 이미지 리사이징 후 다시 저장해야 하는 경우도 있지만 하지만 자주 바뀌어야 하는 오브젝트라면 S3에 원본 오브젝트가 바뀌어도 이미 캐시 된 이전 오브젝트가 클라이언트에게 제공되는 현상이 생길 수 있다. 오히려 자주 바뀌는 오브젝트는 CloudFront의 Cache가 오히려 독이 되는 셈이다. 그렇다고 오브젝트의 Cache가 즉시 ..
AWS S3 + CloudFront 대용량 파일 전송
AWS S3 + CloudFront 대용량 파일 전송
2021.06.01문제점 현재 웹서비스를 이용하려면 클라이언트가 200MB가 넘는 파일을 node.js로부터 전송받고 있다. node.js 는 싱글스레드이다. 이러한 단일 처리가 오래 걸리는 대용량 파일 전송은 적합하지 않기 때문에 빨리 대책을 모색하고자 했다. 수치적으로 보이는 문제점이 아래와 같았다. 높은 CPU 사용량 단일 클라이언트가 204MB 파일을 요청해 node.js 가 response 해주는데 CPU 사용량이 순간적으로 121% 까지 치솟는다. 눈대중으로 봐도 엄청난 과부하가 발생되는 것을 확인할 수 있다. 단 한 명의 클라이언트의 단 한 번의 요청으로 121%까지 치솟는 건 엄청난 문제가 아닐 수 없다. 만약 동시에 여러 명의 클라이언트가 동시에 요청을 한다면 서버가 어떻게 됐을지 상상이 가지 않는다. 물..