반응형
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. 참고 문헌
반응형
'Amazon Web Services' 카테고리의 다른 글
AWS와 DDoS (0) | 2019.12.20 |
---|