[TIL] 10월 4일: AWS S3

Jung·2021년 10월 4일
0

TIL

목록 보기
18/77
post-thumbnail

AWS를 사용해보기 전에는 AWS라는 단어만 들어도 어려운 거다.. 라고 생각하며 사용을 안 해왔는데 이번에 공부를 하며 사용해 보게 되었다. AWS를 잘 사용하는 글로벌 서비스로는 NETFLIX가 있다. 넷플릭스는 AWS로 전환하는 데만 7년이라는 시간이 걸렸다고 한다. 우리나라도 쿠팡, 배달의 민족, 당근마켓 등 대부분의 스타트업들이 AWS를 사용하고 있다. AWS는 여러 나라에 데이터 센터를 갖고 있어, 데이터 센터가 있는 나라를 Region이라고 하고, Region 내의 데이터 센터 위치를 Availability Zone(AZ)이라고 한다. 즉, Region은 AWS의 모든 서비스가 위치하고 있는 물리적인 장소이고, AZ는 Region 내의 서버를 분리 시켜, 어느 한 쪽 AZ에 문제가 생겨도 다른 한 쪽에서 정상 작동하게 할 수 있는 가용성을 높여주는 구분이다.
한국에서 서비스 하려면 ap-northeast-2 Region을 사용한다.

참고
Watahomigie, Lucille J., et al. “Ko.” Amazon, Hualapai Bilingual Program, Peach Springs School District No. 8, 1983, https://aws.amazon.com/ko/solutions/case-studies/netflix/.

AWS S3(Simple Stroage Service)는 인터넷 스토리지 서비스다. 웹 규모 컴퓨팅 작업을 보다 쉽게 할 수 있도록 설계되어 있다.

AWS 사이트에 들어가보면 S3 사용의 장점이 나와있다.

Amazon S3 장점

버킷

  • 데이터를 저장하는 버킷을 만들고 해당 버킷의 이름을 지정한다. 버킷은 데이터 스토리지를 위한 Amazon S3의 기본 컨테이너다.

데이터 저장

  • 버킷에 데이터를 무한정으로 저장한다. Amazon S3 버킷에 객체를 원하는 만큼 업로드할 수 있고, 각 객체에 최대 5TB의 데이터를 포함할 수 있다. 각 객체는 고유한 개발자 할당 키를 사용하여 저장 및 검색한다.

데이터 다운로드

  • 데이터를 직접 다운로드하거나 다른 사람이 다운로드할 수 있도록 한다. 언제든지 데이터를 직접 다운로드하거나 다른 사람이 다운로드하도록 허용할 수 있다.

권한

  • 데이터를 S3 버킷으로 업로드 또는 다운로드하려는 사용자에게 액세스 권한을 부여하거나 해당 권한을 거부한다. 3가지 유형의 사용자에게 업로드 및 다운로드 권한을 부여할 수 있다. 인증 메커니즘을 사용하면 데이터가 무단으로 액세스 되지 않도록 보호하는 데 도움이 될 수 있다.

표준 인터페이스

  • 모든 인터넷 개발 도구 키트에서 사용할 수 있도록 설계된 표준 기반 REST 및 SOAP 인터페이스를 사용한다.

비용절감

  • S3 스토리지를 단독적으로 사용할 수 있고, EC2 등과 함께 쓰일수도 있다.
  • 동적 웹페이지와 정적 웹페이지가 섞여있을 때 동적 웹페이지만 EC2에서 서비스하고 정적 웹페이지는 S3를 이용하면 성능도 높이고 비용도 절감된다.
  • 사용한 스토리지 만큼 요금이 청구되며, 비용은 EC2와 EBS로 구축하는 것보다 훨씬 저렴하다.

복원

  • 버전관리 기능을 통해서 사용자에 의한 실수도 복원이 가능하다.

참고
HTTP를 통한 SOAP 지원은 중단되었지만 HTTPS를 통해 계속해서 사용할 수 있다. 새로운 Amazon S3 기능은 SOAP에 대해 지원되지 않는다. REST API 또는 AWS SDK를 사용하는 것이 좋다.

Amazon S3이란 무엇인가요? - Amazon Simple Storage Service. https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/Welcome.html.

“[AWS] S3 생성하기.” Velog, https://velog.io/@hanif/AWS-S3-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0.

나는 AWS 프리티어를 사용하고 있기 때문에 Amazon S3를 5GB의 S3 스토리지, 20000건의 GET 요청, 2000건의 PUT, COPY, POST 또는 LIST 요청, 15GB의 데이터 송신 한정으로 무료로 사용할 수 있다.
자세한 내용은 이곳에서 확인할 수 있다.

버킷 만들기

일반구성

  • 버킷이름: 고유한 이름으로 정한다.
  • AWS 리전: Region을 선택한다. (아시아 태평양-서울: ap-northeast-2)
  • 기존 버킷에서 설정 복사: 기존 버킷의 설정을 그대로 사용할 때 지정

액세스 차단 설정

  • 버킷에 저장한 파일의 권한을 설정하는 기능
  • 퍼블릭 액세스: 버킷이 생성되면 고유한 URL이 부여된다. URL을 통해 저장된 파일에 접근할 수 있게 하는 기능
  • ACL: 액세스 제어 목록(ACL)으로 버킷과 객체에 대한 액세스 관리

태그

  • 태그를 지정해놓으면 나중에 버킷을 태그로 검색할 수 있다.

기본 암호화

  • 파일들을 암호화 하여 보안적으로 신경써서 관리해주는 기능

고급 설정

  • 중요한 파일이 버킷에 저장되면 보안에 더 신경써야하는데 이럴 때 사용하는 기능

S3 정적호스팅

속성 ➡️ 정적 웹 사이트 호스팅 활성화

인덱스 문서

  • 기본 페이지 설정(대부분 index.html)

오류 문서

  • 오류가 발생했을 때 해당 문서로 이동
  • React, VueJs 같은 SPA 개발을 할 때 index.html을 입력

정적 웹 사이트 호스팅을 활성화했다면 엔드포인트 URL이 나오는데 이를 이용해 브라우저에서 사이트를 볼 수 있다. 들어가보면 403 Forbidden 에러 페이지가 뜬다. 왜 그러는 것일까??

이유는 index.html 파일을 업로드 하지 않았기 때문에 이와 같은 에러 페이지가 뜨는 것이다. 버킷에 들어가 객체에 index.html 파일을 업로드 하면 정상적으로 해당 사이트가 뜬다.

Monolithic vs MSA

Monolithic

  • 프로젝트에 관한 모든 부분을 하나의 서버에 배치하는 방법

MSA

  • 간단하게 설명하면 프론트, 백엔드를 물리적으로 다른 서버에 배치하는 방법
profile
97kim.github.io

0개의 댓글