CICD/AWS
[AWS] S3 정적 호스팅
[dev] hiro
2024. 7. 26. 12:45
해당 포스팅은 AWS 강의실(https://www.youtube.com/@AWSClassroom)를 보고 공부한 내용을 정리한 블로그입니다.
아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁
네 자신의 불행을 생각하지 않게 되는 가장 좋은 방법은 일에 몰두하는 것이다.
Ludwig van Beethoven
Static VS Dynamic Contents
Static Contents
- 서버에 저장된 파일이 모든 사용자에게 동일하게 전달되는 컨텐츠
- 매번 서버에 요청할 필요없이 캐싱 가능
- HTML/Javascript 등으로 구성
- 예: 이미지, 글, 뉴스 등
Dynamic Contents
- 시간, 사용자, 입력 등에 따라 내용이 변경되는 컨텐츠
- 매번 서버에 요청하여 내용을 구성하고 전달받아야함.
- PHP, JSP, ASP.net 등으로 서버 처리
- 예: 로그인이 필요한 내용, 게시판, 댓글 등
Amazon S3 Static Hosting
- S3를 사용해서 정적(Static) 웹 컨텐츠를 호스팅하는 기능
- 별도의 서버 없이 웹사이트 호스팅 가능
- 고가용성/장애 내구성을 확보
- 사용 사례: 대규모 접속이 예상되는 사전 예약 페이지, 홍보 페이지, 회사 웹 사이트 등
권한
- 정적 웹 호스팅을 public으로 공개할 경우: 불특정 다수에게 허용되는 권한 부여 필요
- 불특정 다수가 접속할 수 있는 권한을 확보하려면
- S3 Block Public Access 해제 필요
- Bucket Policy에서 정책 허용 필요
활용
- route 53에서 보유한 도메인으로 연결 가능
- 단 버킷명 = 호스팅 주소여야 가능
- test.example.com으로 호스팅하고 싶다면, 버킷명도 ‘test.example.com’ 필요
- 실전에서 CloudFront와 연동
- HTTPS 프로토콜 구현을 위해서 CloudFront와 연동 필요.
- ACM을 통한 SSL 키 관리가 가장 편함
- 보통 Public Hosting의 활성화 대신 그대로 Private 모드로 두고 OAI/OAC 등을 활용해서 보안 강화
- HTTPS 프로토콜 구현을 위해서 CloudFront와 연동 필요.
아키텍처
실습
1. 버킷 만들기
1. S3 버킷의 정적 호스팅 기능 활성화하기
2. 속성 -> 정적 웹사이트 호스팅 편집
3. 퍼블릭에 공개할 수 있는 권한 및 설정 적용
4. S3 버킷에 샘플 static 웹 사이트 파일을 작성해서 업로드하기
1. S3 정적 호스팅 웹 주소를 사용해 웹 사이트 동작 확인하기
2. 파일 업로드 후 퍼블릭 도메인에 접근
5. 도메인 이름을 바꾸고 싶으면 Route 53을 변경해야함.