반응형

Amazon S3에 정적 파일을 업로드하여 웹 호스팅을 할 수 있습니다.

작업 내용

1. Route 53에 레코드 세트 저장

  • 레코드 세트 이름 : 호스팅 할 URL 주소
  • 유형 : CNAME 유형
  • 값 : s3-website.ap-northeast-2.amazonaws.com
    • CloudFront를 추가로 이용하는 경우 *.cloudfront.net을 A 레코드의 별칭으로 등록해야 합니다.
  • 기타 : TTL(초), 라우팅 정책은 건들 필요 없음.

2. S3 Bucket 생성

  • 버킷 이름 : 호스팅 할 URL 주소
  • 모든 퍼블릭 액세스 차단 : 체크 해제
  • 속성 탭 -> 정적 웹 사이트 호스팅 설정
    • "이 버킷을 사용하여 웹 사이트를 호스팅합니다." 클릭
    • 인덱스 문서(필수), 오류 문서 설정
  • 정적 파일 업로드
  • 버킷 정책 편집(All Open)
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::{BucketName}/*",
        }
    ]
}
  • 버킷 정책 편집(IP ACL 적용; Condition 추가)
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::{BucketName}/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": [
                        "{allowedIP}/32" // CIDR IP 할당 방법 적용
                    ]
                }
                // "NotIpAddress" 설정도 가능
            }
        }
    ]
}

3. CloudFront SSL 연동

  • 준비물
    • S3 속성 탭 -> 정적 웹 사이트 호스팅 설정의 엔드포인트 복사
    • 버지니아 북부 리전에 SSL 인증서 등록(Certificate Manager을 통한 도메인 등록; 참고 문헌 블로그 글 참고)
  • 작업 내용
    • CloudFront Distributions (메인 화면) -> Create Distribution 버튼 클릭
    • Content delivery method -> Web, Get Started 버튼 클릭
    • Origin Settings
      • Origin Domain Name에 S3 정적 웹 사이트 호스팅 설정의 엔드포인트 복사
    • Default Cache Behavior Settings
      • Viewer Protocol Policy : Redirect HTTP to HTTPS (보안이 강화되는 HTTPS만을 지원하기 위한 설정이며 HTTPS Only는 HTTP 요청을 드랍하기 때문에 추천하지 않습니다.)
      • 다른 설정은 기본값 이용
    • Distribution Settings
      • Alternate Domain Names(CNAMEs)에 서비스 할 도메인 이름 입력 *.{myDomain}
      • SSL Certificate : Custom SSL Certificate 선택(example.com)->버지니아북부에 등록해둔 SSL인증서 적용
        • 주의사항 : 버지니아 북부에 SSL 인증서를 등록했는데 그 즉시 Distribution Settingss을 보면 Custom SSL Certificate가 비활성화 되어 있습니다. 저는 약 1시간이 지나니 활성화 되었는데요. 이는 글로벌 환경에서 인증서가 느린 속도로 전이되는 것을 감안해주셔야 합니다. 
    • Distribution을 생성해줍니다.
  • CloudFront에 정적 파일을 배포하기 위해 해야할 작업
    • S3에 정적 파일을 업로드
    • 캐시 무효화: 해당 CloudFront -> Invalidatioins -> Create Invalidation -> Object Paths 입력 (모든 파일 : /*, 특정 디렉토리 : /{someDirectoryPath}/*)

4. 참고 문헌

https://yuda.dev/251

반응형

'Amazon Web Services' 카테고리의 다른 글

AWS와 DDoS  (0) 2019.12.20
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • shared트위터 공유하기
  • shared
  • 카카오스토리 공유하기