S3(Simple Storage Service)
S3(Simple Storage Service)
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 생성을 진행하세요!
저같은 경우에는 모두가 접속할 수 있도록 퍼블릭 액세스를 허용했어요.
퍼블릭 액세스에 관한 설정은 버킷 내부에서 '권한' 탭으로 가면 있답니다.
웹으로 적용할 파일 등록!
사용되는 파일을 버킷에 쭉 드래그 해주세요.
다음, 권한 설정
퍼블릭 액세스에 대한 권한을 부여 했어요!
다음, 속성 설정
각자의 상황에 맞게 사용하시면 돼요. 저는 스탠다드!
다음, 검토 후 업로드
업로드가 되었으면 이제 볼 수 있겠죠. 파일들을!
이제 완벽한 웹으로 호스팅하기 위해 '속성' 을 들어가 주세요.
서버리스의 개념이 내포된 웹 호스팅 메뉴에요.
클릭해볼까요?
호스팅을 위한 메뉴가 나오네요.
위에 보이는 엔드포인트 주소가 바로 우리가 접속하게 될 웹의 URL 입니다. 잘 체크해두세요!
웹 사이트를 호스팅한다는 내용을 체크해주고 저장하면 됩니다.
- 인덱스 문서는 해당 엔드포인트에 접속했을 때 사용자 눈에 보여질 '메인 페이지'
- 오류 문서는 해당 엔드포인트에 접속 시 오류가 났을 때 보여질 '에러 페이지'
호스팅이 잘 동작한다 표시가 되네요!
호스팅 설정 때 가져왔던 엔드포인트를 접속해봅시다.
네, 성공이에요!
이렇게 손쉽게 웹을 뚝딱 만드니 웹을 관리하는 개발자, 엔지니어로써는 더욱 편한 상황이 될 것 같아요.