s3에 프로젝트를 정적 배포해보자😇
1. aws 로그인 후 s3를 검색해서 클릭한다.

2. 버킷 만들기 버튼을 누른다.

3. 버킷 이름, AWS 리전, 객체 소유권을 설정한다.
- 버킷 이름: 본인이 원하는 버킷의 이름
- AWS 리전: 지리적으로 가까운 리전 선택 (아시아 태평양(서울) ap-northeast-2)
- 권장되는 ACL 비활성화됨을 선택
ACL은 버킷이나 객체에 대해 요청자의 권한 허용 범위를 어디까지 설정할 것인가에 대해 간단하게 설정 가능하다.

4. 모든 퍼블릭 액세스 차단을 설정한다.
- S3로 바로 접속하는 경우에는 모든 퍼블릭 액세스 차단을 해제해주고 cloudfront를 통해 접속할 경우에는 모든 퍼블릭 액세스를 차단해준다.
모든 액세스 차단 혹은 ACL을 이용하여 액세스 차단해주는 것이 보안에 좋다.

5. 버킷 버전 관리, 태그, 기본 암호화를 설정한 후 버킷 만들기 버튼을 누른다.
- 버킷 버전 관리 : 버킷 버전 관리기능을 활성화하면 파일을 버전별로 관리할 수 있다.
- 태그 : 서비스를 하다가 버킷이 많아지면, 버킷들을 그룹화 시킬 수 있다.
- 기본 암호화 : 암호화를 활성화하면 버킷에 저장되는 모든 새 객체를 암호화해서 저장하고 객체를 다운로드할 때 복호화해준다.

6. VScode에서 s3에 올릴 프로젝트 빌드한다.
npm을 사용하는 경우 npm run build
yarn을 사용하는 경우 yarn build
6. 새로 만든 버킷에 들어가서 업로드 버튼을 누른다.

7. 업로드할 파일을 드래그 앤 드롭을 한다.
npm으로 빌드한 경우 build 하위 폴더를 업로드
yarn으로 빌드한 경우 dist 하위 폴더를 업로드


8. 권한에서 아래로 내린 후 버킷 정책 편집을 누른다.

9. 버킷 ARN을 복사한 뒤 정책 생성기 버튼을 누른다.

10. 정책 생성기를 통해 정책을 생성한다.
- select Type of Policy: S3 Bucket Policy
- Principal: *
- Actions: GetObject 선택
- Amazon Resource Name (ARN): 버킷 ARN/*

11. 생성된 정책을 복사한다.

12. 버킷 정책에 붙여넣고 저장한다.

13. 속성에서 맨 아래로 내린 후 정적 웹 사이트 호스팅 편집을 누른다.

14. 정적 웹 사이트 호스팅 편집을 설정한다.
- s3로만 호스팅할 경우 아래와 같이 설정해준다.
- cloudfront를 통해 호스팅할 경우 비활성화를 선택해도 상관없다.

15. 정적 웹 사이트 호스팅을 활성화한 경우 아래와 같이 엔드포인트를 확인할 수 있다.

🚀 s3 정적 배포 완료!