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 등을 활용해서 보안 강화

아키텍처

정적 호스팅 아키텍처

실습


1. 버킷 만들기

  1. S3 버킷의 정적 호스팅 기능 활성화하기

버킷 생성

2. 속성 -> 정적 웹사이트 호스팅 편집

정적 웹 사이트 호스팅 편집

3. 퍼블릭에 공개할 수 있는 권한 및 설정 적용

 

퍼블릭 액세스 가능

4. S3 버킷에 샘플 static 웹 사이트 파일을 작성해서 업로드하기

  1. S3 정적 호스팅 웹 주소를 사용해 웹 사이트 동작 확인하기 

  2. 파일 업로드 후 퍼블릭 도메인에 접근

테스트 페이지

5. 도메인 이름을 바꾸고 싶으면 Route 53을 변경해야함.