Post

[AWS] S3와 정적 웹 호스팅

✅S3(Simple Storage Service)?


확장성과 데이터 가용성 및 보안과 성능을 제공하는 객체 스토리지 서비스입니다. 즉, 어떤 규모 어떤 산업의 고객이든 이 서비스를 사용하여 웹 사이트, 모바일 애플리케이션, 백업 및 복원, 아카이브, 엔터프라이즈 애플리케이션, IoT 디바이스, 빅데이터 분석 등과 같은 다양한 사용 사례에서 원하는 만큼의 데이터를 저장하고 보호할 수 있습니다. Amazon S3는 사용하기 쉬운 관리 기능을 제공하므로 특정 비즈니스, 조직 및 규정 준수 요구 사항에 따라 데이터를 조직화하고 세부적인 액세스 제어를 구성할 수 있습니다.

✅S3 설정


☑️버킷 생성

Untitled

S3 탭으로 가서 버킷 생성을 해줍시다. 중요한 건 앞으로 도메인으로 접속할거라 리전+도메인을 이름으로 하는 버킷을 만들어 줍니다.

Untitled

버킷 버전 관리는 활성화 해줍시다. 그리고 모든 퍼블릭 액세스는 나중에 따로 설정 할 거라 일단은 차단!

Untitled

생성된 버킷으로 들어갑니다. 버킷의 데이터는 “객체” 단위입니다.

Untitled

이제 url로 다운로드 받을 파일을 등록합니다. aws.tar라는 파일이네요.

Untitled

이제 url을 복사하고 인터넷에 입력하면 다운로드가 될까요? 당연히 되지 않습니다! acl에서 막혔기 때문인데요.

Untitled

cloud9로 들어가서 인스턴스에서 aws s3 ls를 입력하면 방금 생성했던 버킷이 나옵니다. 이 터미널을 앞으로 사용하겠습니다.

☑️IAM 역할 생성

Untitled

IAM탭으로 가서 역할 - 생성을 누릅니다. 유형과 사례는 EC2로 합니다.

Untitled

EC2에서 권한 추가로 와서 s3를 검색하시면 여러 검색이 나올텐데 그중 AmazonS3FullAccess 를 체크합니다.

Untitled

그리고 이름을 정하여서 역할을 생성합니다.

☑️역할 연결

Untitled

이제 아까 clound9으로 들어간 인스턴스 말고 새로만든 인스턴스에 해줍시다. 왜냐하면 이 인스턴스에는 s3 권한이 없거든요.

Untitled

Untitled

이렇게 역할 수정에서 아까 만든 역할을 선택하고 업데이트를 하면 그 인스턴스에서도 aws s3 명령어가 작동이 됩니다.

☑️S3 기능(명령어)

  1. aws s3 ls: 버킷 리스트 확인
  2. aws s3 cp (파일이름) s3://(버킷이름)/ : 파일 이동
  3. aws s3 sync s3://(버킷이름) : 사본 복제
  4. aws s3 rm s3://(버킷이름)/(파일이름) : 파일 삭제
  5. aws s3 rm s3://(버킷이름)/(폴더이름) —recursive: 폴더 및 하위 항목 삭제

☑️정적 웹 호스팅

Untitled

S3 버킷으로 정적 웹 호스팅이 가능합니다. 처음 생성할 때 퍼블릭 액세스를 차단으로 하였는데 이제 풀어줄겁니다. 생성한 버킷에서 권한탭으로 가서 퍼블릭 액세스 차단 설정편집버튼을 누릅니다.

Untitled

차단으로 되어있는 체크박스를 모두 해제합니다.

Untitled

그 다음 객체 소유권으로 가서 이것도 편집을 합니다.

Untitled

ACL 활성화됨 체크를 해주고 밑에 다시 한번 확인 경고 창이 나오는데 여기도 체크를 눌러줍니다.

Untitled

그리고 아까 다운받을 파일의 작업 을 누른뒤 ACL을 사용하여 퍼블릭으로 설정을 누릅니다.

Untitled

이제 퍼블릭 조회 가능 여기서 퍼블릭으로 설정 버튼을 누르면 이제 url으로 이 파일을 다운 받을 수 있습니다. 하지만 모두가 그럴 수 있기 때문에 보안에 주의하세요

Untitled

그리고 호스팅할 html파일과 image 파일을 등록 해주고 아까와 같이 퍼블릭으로 설정을 해봅시다. index.html + images/ 허용하여 접속 가능

Untitled

이제 S3 버킷의 엔드포인트로 접속이 가능합니다. 그런데 주소가 너무 비효율적이고 가독성이 없죠? 그냥 엔드포인트로 파일접근을 해서 그렇습니다.

Untitled

S3 - 버킷 - 속성 으로 가서 정적 웹 사이트 호스팅 탭으로 갑니다. 그리고 편집 버튼 클릭!

Untitled

그리고 위와 같이 활성화 체크를 해주고 정적 웹사이트 호스팅 유형으로 합니다. 인덱스 문서는 업로드한 index.html 로 합니다.

Untitled

이제 정적 웹사이트 호스팅 기능이 열렸고 버킷의 웹 사이트 엔드포인트가 주어집니다.

Untitled

이거를 route53탭으로 가서 도메인에 들어가서 레코드를 생성합니다. 별칭 체크를 해주고 S3 엔드포인트로 대상을 지정한뒤 아까 설정한 S3 웹 사이트 엔드포인트를 체크합니다.

Untitled

이러면 도메인 주소로 들어갈 수 있습니다!

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.