[AWS] CloudFront: 이미지 캐싱하기

관련 포스트
https://blog.naver.com/sssang97/222504226420
아마 S3로 무작정 이미지를 게시하다가 폭주하는 비용에 당황했던 적이 한번씩은 있었을 것이다.
원래 그냥 쓰면 그렇고, CloudFront 등을 이용해서 CDN 캐시 동작을 하도록 하는게 일반적인 사용법이다.
캐시를 붙이는게 성능도 좋고, 비용도 압도적으로 저렴하기 때문이다.
웬만해서 S3는 CloudFront와 붙여쓰는거라고 생각하자.
S3 설정
우선 캐시를 붙일 버킷에 다음과 같이 버킷 정책을 작성해준다.

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::버킷명/*"
}
]
}
여기서 할건 이게 다다.
CloudFront 생성
cloudfront 콘솔로 이동해서 배포 생성, 원본 도메인으로 캐싱할 S3 버킷을 지정해준다.

다른건 일단 다 기본값으로 넣어줘도 무방하다.
그럼 이런식으로 배포가 생성될 것이고
저기 위에 있는 "배포 도메인 이름"으로 접근이 가능해진다.
그럼 이제 버킷 접근 도메인을 저걸로 바꿔서 접근해보면
이제 캐싱된 링크로 던져줄 것이다.
도메인 달기
사실 저거만으로도 충분히 쓸수 있긴 한데, 이왕이면 도메인도 달아주는게 예쁘고 보기 좋지 않겠는가.
Route53에서 레코드 생성

서브도메인을 입력하고 아래에다 포워딩할 cloudfront 도메인을 붙여줬다.

그리고 저 도메인 형태로 인증서를 만들어줘야 한다.

도메인 이름만 넣어주고 요청을 누른다.
만들어지면 일단 대기 상태로 될 텐데, 저걸 활성화시키려면 추가작업을 좀 해줘야 한다.

상세로 들어가서 "Route 53에서 레코드 생성"을 눌러준다.

그리고 조금 기다리면
발급될 것이다.
다시 cloudfront 배포로 돌아가서,
도메인 이름을 넣어주고, 방금 뽑은 인증서도 넣어준다.
그럼 될 것이다.
이제 마지막으로 할 일은, 다음 비용을 기다리는 것이다.