S3(Simple Storage Service)

image

Introduction

99.99999999%의 내구성을 실현한 스토리지.. 믿겨지시나요?

REST, SOAP와 같은 단순한 웹 서비스 인터페이스를 사용해요! 저장하는 데이터 양에 대한 비용도 저렴하고, 저장할 수 있는 데이터 양이 무한에 가깝죠.

다양한 서버의 역할을 할 수 있어요. FTP 서버처럼 단순한 파일 저장 영역으로 사용할 수도 있으며, 다양한 AWS 서비스의 사용 로그 저장, 정적 웹사이트 호스팅 기능도 갖고있죠

S3의 인기에는 다양한 비결이 있답니다.

  • 데이터를 저장할 때 자동적으로 여러 개의 데이터 센터에 데이터를 동기화해요.(데이터 유실 걱정 X)
  • 딱 쓰는 만큼의 비용이 들어가요.(종량제 과금, 리전 별로 가격이 상이) 비용 한눈에 보기!
  • 데이터를 저장할 때 암호화를 제공해요.(서버 사이드 암호화, SSE)
  • 접근 관리를 이용해 폭넓은 보안 요소를 제공해요.(버킷 정책, ACL, IAM 제어)

버킷과 객체

버킷(Bucket)은 컨테이너를 놓을 리전을 선택하고, 해당 컨테이너 내부에 객체(Object)라는 형태로 데이터를 저장해요.

객체는 최대 5TB의 크기를 버킷에 저장할 수 있어요!(저장 개수에 대해서는 제한이 없답니다)

폴더와 파일의 개념이라 생각하면 확 와닿을거에요.

접근 관리

버킷 정책, ACL, IAM 제어가 있습니다.

아래 표를 보시면 각각의 방법이 어떤 단위로 제어할 수 있는지를 알 수 있을거에요.

항목 버킷 정책 ACL IAM 제어
AWS 계정 단위 제어 O O X
IAM 사용자 단위 제어 애매 X O
S3 버킷 단위 제어 O O O
S3 객체 단위 제어 O O O
IP 주소/도메인 단위 제어 O X O

버킷 정책

: 버킷 단위로 접근 제어를 확정해요. 이후에 변경이 적을 때

ACL

: 객체 단위로 접근 제어할 때

IAM 제어

: 사용자 단위로 접근 제어할 때

이 외에도 빅데이터 분석의 데이터 소스로 활용, On Premise에 화재나 재난상황을 대비한 재난 복구(Disaster Recovery) 전용 데이터 백업, Auto Scaling을 이용한 EC2 인스턴스의 로그 저장 등으로 폭 넓은 활용이 가능한 S3에요!

Web Hosting

예전에는 우리가 웹 서버를 호스팅 할 때 수 많은 단계를 거쳤었어요.

OS를 설치하랴, 웹 서버에 대한 구성으로 시간을 할애하랴 정말 다양한 방법으로 또, 호스팅 업체에 돈을 지불하면서까지의 단계를 거치면서 복잡하게 호스팅을 했었죠.

하지만 이젠 그 어느때보다 손쉽게 웹을 구축할 수 있게 되었죠.

누군가는 컨테이너로 간단하게 웹을, 누군가는 클라우드의 인스턴스로 손 쉽게 웹을.. 참 다양한 방법이 생겨났습니다.

이런 다양한 방법 중에서 우리는 S3를 이용해 서버 없이도 작동하는 웹을 구성해볼거에요.

(오해 없길 바래요. 물론 실제 서버는 있겠지만 우리가 체감하기엔 없는 것과 같다는 의미죠)

S3를 이용해서 웹 호스팅을 해볼거예요.

우선적으로, 웹 서버를 작동하려면 웹 파일이 있어야겠죠.

저는 Git에 업로드 된 생활코딩 웹 예제를 사용할거에요.
github.com/web-n/web1_html_internet.git

S3로 가줍니다.

Bucket 생성을 진행하세요!

image

저같은 경우에는 모두가 접속할 수 있도록 퍼블릭 액세스를 허용했어요.

image

퍼블릭 액세스에 관한 설정은 버킷 내부에서 '권한' 탭으로 가면 있답니다.

웹으로 적용할 파일 등록!

image

사용되는 파일을 버킷에 쭉 드래그 해주세요.

image

다음, 권한 설정

image

퍼블릭 액세스에 대한 권한을 부여 했어요!

다음, 속성 설정

image

각자의 상황에 맞게 사용하시면 돼요. 저는 스탠다드!

다음, 검토 후 업로드

업로드가 되었으면 이제 볼 수 있겠죠. 파일들을!

image

이제 완벽한 웹으로 호스팅하기 위해 '속성' 을 들어가 주세요.

image

서버리스의 개념이 내포된 웹 호스팅 메뉴에요.

클릭해볼까요?

image

호스팅을 위한 메뉴가 나오네요.

위에 보이는 엔드포인트 주소가 바로 우리가 접속하게 될 웹의 URL 입니다. 잘 체크해두세요!

웹 사이트를 호스팅한다는 내용을 체크해주고 저장하면 됩니다.

  • 인덱스 문서는 해당 엔드포인트에 접속했을 때 사용자 눈에 보여질 '메인 페이지'
  • 오류 문서는 해당 엔드포인트에 접속 시 오류가 났을 때 보여질 '에러 페이지'

호스팅이 잘 동작한다 표시가 되네요!

image

호스팅 설정 때 가져왔던 엔드포인트를 접속해봅시다.

image

네, 성공이에요!

이렇게 손쉽게 웹을 뚝딱 만드니 웹을 관리하는 개발자, 엔지니어로써는 더욱 편한 상황이 될 것 같아요.