Cloud Infra Architecture (AWS)/AWS bedrock (LLM)

정적 컨텐츠로 사용한 S3를 HTTPS 통신 진행하기 (AWS CloudFront 사용)

seongduck 2024. 7. 21. 23:03

S3는 기본적으로 HTTP만 지원한다.

 

정적 컨텐츠로 사용한 S3 Web서버를 HTTPS 통신을 하기 위해서는 Cloudfront를 등록하여 사용해야 한다.

그 이후 Route53 도메인을 Cloudfront로 등록해주면 된다.


1) 버즈니아북부에서 ACM 생성

1) ACM 생성

 

2) Cloudfront 생성

1) CloudFront 생성 클릭
2) Origin domain = 해당 S3 선택
3) Viewer protocol policy "Redirect HTTP to HTTPS" 선택
4) Allowed HTTP methods "GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE" 선택 #필자는 Post 사용
5) Cache policy "CachingOptimized" 선택
6) Alternate domain name (CNAME) - optional = "사용할 도메인 명 입력"
7) Custom SSL certificate - optional = "버즈니아 북부에서 만든 ACM 적용"

 

2-1) Cloudfront 수정

생성 이후 정상 작동을 위해서는 몇가지 수정해줘야 한다.

1) Cloudfront 클릭 - Origins
2) Create Origin
3) S3 접속 - "Properties" - "Static website hosting" - 여기의 S3주소 전체 복사
4) 다시 Create Origin으로 돌아와서 - Origin domain에 S3 주소 붙여넣기
5) 생성

 

3) S3 정책 추가

1) 정적 컨텐츠로 사용하는 S3 Permission 클릭 후 다음을 추가
  {
            "Sid": "AllowCloudFrontServicePrincipal",
            "Effect": "Allow",
            "Principal": {
                "Service": "cloudfront.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "s3 주소/*",
            "Condition": {
                "StringEquals": {
                    "AWS:SourceArn": "Cloudfront 명"
                }
            }
        }

 

4) Route53 도메인에 Cloudfront 등록하기

1) 해당 hosting 영역 - "Create 레이블"
2) "A type"
3) Alias 켜고 - Alias to CloudFront distribution
4) 생성한 CloudFront 선택

완료!