카페 웹사이트 만들기 대작전 (챌린지 #1)
목표
- Amazon S3를 사용하여 정적 웹 사이트 호스팅하기
- Amazon S3로 데이터를 보호하는 한 가지 방법 배우기
- Amazon S3에서 데이터 수명 주기 전략 세우기
- Amazon S3에서 재해 복구(DR) 전략세우기
1단계: 파일 준비하기
index.html, css, image를 준비
2단계: 정적 웹 사이트를 호스팅할 S3 버킷 만들기
- Amazon S3 콘솔을 연다.
- 웹사이트를 담을 버킷을 만든다.(버지니아 북부(us-east-1) 지역, Block all public access 비활성화)
3. 버킷에서 정적 웹사이트 호스팅을 활성화
3단계: S3 버킷에 콘텐츠 업로드하기
1. index.html 파일과 css 및 images 폴더를 S3 버킷에 업로드한다.
2. 별도의 웹 브라우저 탭에서 정적 웹 사이트의 엔드포인트 링크를 연다.
4단계: 퍼블릭 읽기 액세스 권한을 부여하는 버킷 정책 만들기
{
"Version": "2012-10-17",
"Id": "Policy1720959557185",
"Statement": [
{
"Sid": "Stmt1720959551792",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject",
],
"Resource": "arn:aws:s3:::acc-2nd-s3/*"
}
]
}
- Select Type of Policy: S3 Bucket Policy
- Effect: Allow
- Principal: *
- Actions: GetObject
- Amazon Resource Name (ARN): 해당 버킷 ARN 입력
- Effect: 허용할 것인지 거부할 것 인지를 설정하는 것
- Principal: 대상을 지정하는 것. “*” 는 모든 대상을 말함
- Action: 어떠한 행위에 대한 설정인지 지정하는 것
- GetObject: S3로부터 받아오는 것
- Resource: 어떤 버킷의 어떤 폴더를 원하는지를 지정 가능
잘 모르겠다면 AWS 설명서를 참조
웹 사이트에 퍼블릭 액세스가 가능해짐
웹사이트 안전하게 지키기 (챌린지 #2)
S3 버전 관리를 사용하면 버킷에 저장된 모든 버전의 객체를 모두 보존, 검색 및 복원할 수 있다.
또한 의도치 않은 사용자 작업 및 애플리케이션 장애로부터 더 쉽게 복구할 수 있다.
5단계: S3 버킷에서 버전 관리 켜기
1. S3 콘솔에서 버킷의 버전 관리를 활성화한다.
💡 버전 관리를 한 번 켜면 끌 수 없다!
2. 메모장 같은 텍스트 편집 프로그램으로 index.html 파일을 열어 속성을 변경한다.
- 양옆 bgcolor = aquamarine → cornsilk
- 가운데 bgcolor = orange → cornsilk
3. 바뀐 파일을 저장한 후에 S3 버킷에 다시 올린다.
4. 웹사이트를 새로고침했을 때 바뀐 것을 확인할 수 있다.
5. index.html 파일의 새 버전을 보려면 버킷에 가서 "List versions"를 선택한다. 파일의 두 버전이 모두 보이는 것을 확인할 수 있다.
생각해보기: 보존된 버전이 실수로 삭제되지 않도록 하고 최대한 보호되도록 보장하는 또 다른 방법은 무엇일까?
- S3 복제 및 S3 객체 잠금
- 백업 애플리케이션을 사용하여 S3 버킷의 전체 또는 일부 데이터를 백업
비용 아끼기 - S3 객체 스토리지의 비용 최적화 (챌린지 #3)
버전 관리를 켜고 보니, 새 버전을 올릴 때마다 S3 버킷이 점점 커짐
비용을 아끼기 위해 오래된 버전은 삭제
→ 소스 버킷의 오래된 버전을 자동으로 S3 Standard-IA로 옮기고, 나중에는 삭제하도록
6단계: 수명 주기 정책 설정
1. 웹사이트 버킷의 수명 주기 설정에서 두 가지 규칙을 만든다.
💡 꼭 따로따로 만들어야 한다!
- 30일 지난 이전 버전을 S3 Standard-IA로 옮김
- 365일 지난 이전 버전을 삭제
더 안전하게 백업하기 (챌린지 #4)
웹사이트 업데이트 시 실수로 파일을 덮어쓰거나 지우지 않게 Amazon S3의 또 다른 기능인 '교차 리전 복제'를 사용해 보자
교차 리전 복제는 서로 다른 AWS 리전의 버킷 간에 객체를 복제하는 것을 의미한다.
지연 시간 최소화, 중요한 데이터를 백업 및 보관 등에 사용된다.
7단계: 교차 리전 복제 활성화
1. 소스 버킷과 다른 리전에 두 번째 버킷을 생성하고 해당 버킷에 대해 버전 관리를 활성화한다.(이 두 번째 버킷은 대상 버킷)
2. 소스 S3 버킷에서 교차 리전 복제를 켠다.
복제 규칙
- 전체 소스 버킷을 복제
- IAM 역할은 "CafeRole" 로 설정 이 역할이 Amazon S3에게 소스 버킷에서 읽고 대상 버킷에 복제할 수 있는 권한을 준다.
- "The replication rule is saved, but it might not work"라는 경고가 뜨면 무시하고 다음으로 넘어간다.
참고: CafeRole의 권한
Version: 2012-10-17
Statement:
- Action:
- s3:ListBucket
- s3:ReplicateObject
- s3:ReplicateDelete
- s3:ReplicateTags
- s3:Get*
Resource:
- '*'
Effect: Allow
이 정책은 모든 S3 버킷에서 복제 작업을 할 수 있게 해준다.
💡 실제로 사용할 때는 꼭 필요한 버킷에만 적용되게 제한해야 한다.
3. index.html 파일을 조금 바꾸고 소스 버킷에 새 버전을 올린다.
4. 소스 버킷에 index.html 파일의 버전이 3개 있는 것을 확인할 수 있다.
5. 새 파일이 대상 버킷에도 복제됐는지 확인할 수 있다.
6. 소스 버킷에 가서 최신 버전을 삭제해도 대상 버킷에는 남아있다.
'ACC' 카테고리의 다른 글
[ACC] VPC 피어링 연결 (0) | 2024.10.07 |
---|---|
[ACC] VPC 응용 (3) | 2024.10.02 |
[ACC] VPC 만들기 (2) | 2024.09.30 |
[ACC] 데이터 마이그레이션 (0) | 2024.07.26 |
[ACC] RDS 만들기 (0) | 2024.07.24 |