AWS S3로 웹 프로젝트 호스팅하기

원도훈·2024년 11월 27일
1
post-thumbnail

처음부터 끝까지 완벽 가이드

AWS S3는 웹 프로젝트를 호스팅하기에 매우 유용한 서비스입니다. 특히 정적 웹 사이트(HTML, CSS, JavaScript로 구성된 웹 프로젝트)를 빠르고 안정적으로 배포할 수 있는 강력한 도구입니다. 이번 글에서는 S3를 활용해 정적 웹 사이트를 직접 호스팅하는 과정을 단계별로 설명하겠습니다. 이 가이드를 따르면, 처음부터 끝까지 스스로 웹 프로젝트를 배포할 수 있습니다.

1. AWS S3와 웹 호스팅 이해하기

S3(Simple Storage Service)는 AWS에서 제공하는 오브젝트 스토리지 서비스로, 데이터를 클라우드에 저장하고 이를 언제든지 쉽게 접근할 수 있도록 해줍니다. S3는 특히 정적 웹 사이트 호스팅을 위한 옵션을 제공하며, HTML, CSS, JavaScript 파일을 업로드하여 사용자에게 서비스할 수 있습니다. 이를 통해 S3는 간단한 웹 프로젝트 호스팅에 매우 적합한 환경을 제공합니다.

2. S3 버킷 생성하기

웹 사이트를 호스팅하기 위해서는 S3에 버킷(bucket)을 먼저 생성해야 합니다. 버킷은 데이터를 저장하는 기본 단위이며, 각 버킷은 고유한 이름을 가져야 합니다.

2.1 AWS 콘솔 로그인

먼저, AWS 관리 콘솔에 로그인합니다. 로그인 후 서비스 목록에서 S3를 선택합니다.

2.2 버킷 생성

  • 1단계: "버킷 만들기(Create bucket)" 버튼을 클릭합니다.
  • 2단계: 버킷 이름을 입력합니다. 이 이름은 전 세계에서 고유해야 합니다. 예: my-awesome-website
  • 3단계: AWS 리전(Region)을 선택합니다. 웹 사이트 사용자와 가까운 리전을 선택하면 더 빠른 응답을 제공할 수 있습니다.
  • 4단계: 나머지 기본 설정은 그대로 두고, "버킷 만들기" 버튼을 클릭합니다.

3. 웹 파일 업로드하기

버킷을 생성했으면 이제 웹 사이트에 필요한 파일들을 업로드해야 합니다.

3.1 파일 업로드

  • 생성한 버킷을 클릭하고, "업로드(Upload)" 버튼을 클릭합니다.
  • 파일 선택을 통해 로컬에서 웹 사이트의 모든 파일(HTML, CSS, JavaScript 등)을 선택하고 업로드합니다.

3.2 폴더 구조 확인

업로드한 파일들은 S3 버킷의 최상단에 있어야 합니다. 웹 사이트의 루트 파일 구조가 그대로 유지될 수 있도록 주의해서 업로드하세요.

4. 버킷을 정적 웹 사이트 호스팅용으로 설정하기

S3 버킷은 기본적으로 정적 파일을 저장하기 위해 사용되지만, 설정을 통해 웹 사이트로 직접 서비스할 수 있도록 변경할 수 있습니다.

4.1 정적 웹 호스팅 활성화

  • 업로드를 완료한 후, "속성(Properties)" 탭으로 이동합니다.
  • 아래로 스크롤하여 정적 웹 사이트 호스팅(Static website hosting) 항목을 찾습니다.
  • "정적 웹 사이트 호스팅 사용(Enable)"을 선택하고, 인덱스 문서(Index document)index.html을 입력합니다.
    • 만약 오류 페이지가 필요하다면, 오류 문서(Error document)error.html을 입력할 수 있습니다.
  • 설정이 완료되면 "변경 사항 저장(Save changes)" 버튼을 클릭합니다.

5. 퍼블릭 액세스 설정 변경하기

S3는 기본적으로 보안을 위해 모든 버킷에 대한 공용 액세스를 차단합니다. 하지만 웹 사이트를 호스팅하려면 모든 사용자가 파일에 접근할 수 있어야 하므로 퍼블릭 액세스를 허용해야 합니다.

5.1 퍼블릭 액세스 차단 해제

  • S3 버킷으로 돌아가서 "권한(Permissions)" 탭을 클릭합니다.
  • 퍼블릭 액세스 차단(Public access settings) 섹션에서 "모든 퍼블릭 액세스 차단 해제"를 선택하고, 변경 사항을 저장합니다.

5.2 버킷 정책 추가

  • "권한(Permissions)" 탭에서 아래로 스크롤하여 버킷 정책(Bucket Policy) 항목을 찾습니다.
  • 모든 사용자에게 읽기 권한을 부여하기 위해 아래와 같은 정책을 추가합니다:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::my-awesome-website/*"
    }
  ]
}
  • 여기서 "my-awesome-website" 부분을 여러분이 생성한 버킷 이름으로 바꿔주세요.
  • "정책 저장(Save changes)" 버튼을 클릭합니다.

6. 웹 사이트 접근하기

모든 설정을 완료하면 S3에서 제공하는 엔드포인트(Endpoint) URL을 통해 웹 사이트에 접근할 수 있습니다.

6.1 엔드포인트 확인

  • "속성(Properties)" 탭으로 이동하여 정적 웹 사이트 호스팅(Static website hosting) 섹션을 다시 확인합니다.
  • 여기에서 엔드포인트(Endpoint) URL을 확인할 수 있습니다. 이 URL을 브라우저에 입력하면 방금 업로드한 웹 사이트가 표시됩니다.

7. HTTPS 적용하기 (선택 사항)

기본적으로 S3는 HTTP 프로토콜을 사용합니다. 만약 HTTPS를 적용하고 싶다면, CloudFront를 사용하여 S3 버킷을 CDN(Content Delivery Network)으로 설정하고 SSL 인증서를 적용할 수 있습니다.

7.1 CloudFront 배포 생성

  • AWS 콘솔에서 CloudFront를 검색하고, "배포 생성(Create distribution)"을 클릭합니다.
  • 기원 도메인 이름(Origin Domain Name)에 S3 버킷을 선택합니다.
  • 필요한 설정을 완료하고 배포를 생성하면, CloudFront 배포가 완료됩니다.

7.2 SSL 인증서 연결

  • AWS Certificate Manager(ACM)을 통해 SSL 인증서를 발급받고, 이를 CloudFront 배포에 연결하여 HTTPS를 사용할 수 있습니다.

이제 AWS S3를 이용하여 정적 웹 사이트를 성공적으로 호스팅할 수 있습니다. 이 가이드를 따라서 버킷 생성, 파일 업로드, 퍼블릭 액세스 설정, 그리고 웹 사이트 접근까지 모두 완료해 보세요. 추가로 CloudFront를 사용해 HTTPS를 적용하면 더욱 안전한 웹 사이트를 운영할 수 있습니다.

AWS S3를 활용한 웹 호스팅은 간단하면서도 강력한 솔루션입니다. 이러한 과정들을 이해하고 실습해 보면서 클라우드 환경에서의 웹 배포 경험을 쌓아보세요! 😊

profile
개발

0개의 댓글