[AWS] S3 생성하기

배현호·2021년 4월 27일
0

AWS

목록 보기
5/5

AWS를 사용하면서 이미지파일, 혹은 정적 파일 등은 EC2에 올리지 않는다고 한다.
왜 EC2에 정적 파일을 올리지 않는지, S3를 왜 사용하는지 정리해 보았다.

S3란?

S3는 Simple Storage Service의 약자로 인터넷 스토리지 서비스이다.
HTTPS 형태의 API로 데이터를 저장하거나 추출하게 해주는 전형적인 웹 서비스이다.

S3 용어 정리

Object

S3에 데이터가 저장되는 기본 단위이다.
객체는 객체 데이터와 메타데이터로 구성된다.
객체 하나의 크기는 1Byte부터 5TB까지 허용되며 메타데이터는 MIME 형식으로 파일 확장자를 통해 자동으로 설정되며 사용자 임의로도 지정 가능하다.

Bucket

S3에서 생성할 수 있는 최상위 디렉토리라고 생각하면 된다.
버킷 단위로 지역(region)을 지정 할 수 있고, 또 버킷에 포함된 모든 객체에 대해서 일괄적으로 인증과 접속 제한을 걸 수 있다.

Region

버킷 생성 시 버킷의 위치를 지정할 수 있다.
버킷 위치를 어디에 지정하냐에 따라서 지연 시간 최적화, 비용 최소화 등이 결정된다.

표준스토리지

S3 서비스 수준 계약으로 객체에 대해 99.999999999%의 내구성을 보장하며 99.99%의 가용성을 제공한다.
하지만 높은 내구성을 보장해야 하는 만큼 비용이 높으므로 유실되면 안되는 원본 데이터, 민감정보, 개인정보 등의 중요한 데이터를 저장하는 것이 알맞다.

BitTorrent

분산된 파일 배포 시스템이라고 정의 할 수 있다.
여기서 분산이란 하나의 서버에서 파일을 배포하는 것이 아니라, 파일을 가지고 있는 컴퓨터들로부터 조금씩 파일을 다운받은 후에 이것을 붙여서 완전한 파일을 만드는 방식이다.
대용량의 파일을 배포할 때 BitTorrent를 사용하면 비용을 크게 절감 할 수 있다.

버전관리

S3에 저장된 객체들의 변화를 저장한다.
예를들어 A라는 객체를 사용자가 삭제하거나 변경해도 각각의 변화를 모두 기록하기 때문에 실수를 만회할 수 있다.

RRS(Reduced Redundancy Storage)

일반 S3 객체에 비해서 데이터가 손실될 확률이 높은 형태의 저장 방식이다.
표준 스토리지보다 저렴한 비용으로 데이터를 저장할 수 있다.

가격이 저렴한 편이기에 복원이 가능한 데이터, 이를테면 섬네일 이미지와 같은 것을 저장하는데 적합하다.
그럼에도 불구하고 물리적인 하드 디스크 대비 400배 가량 안전하다.

S3의 특징

  • 단순한 웹 서비스 인터페이스를 사용하여 언제든지 웹상 어디서나 원하는 양의 데이터를 저장하고 검색할 수 있다.
  • S3의 버킷은 무한대의 객체를 저장할 수 있으므로 스토리지의 요구를 미리 추정하여 관리할 필요가 없어 확장/축소에 신경쓰지 않아도 된다.
  • HTTP와 BitTorrent 프로토콜을 지원한다.
  • REST, SOAP 인터페이스를 제공한다.
  • 동적 웹페이지와 정적 웹페이지가 섞여있을 때 동적 웹페이지만 EC2에서 서비스하고 정적 웹페이지는 S3를 이용하면 성능도 높이고 비용도 절감된다.
  • 사용한 스토리지 만큼 요금이 청구되며, 비용은 EC2와 EBS로 구축하는 것보다 훨씬 저렴하다.
  • S3 스토리지를 단독적으로 사용할 수 있고, EC2 등과 함께 쓰일수도 있다.
  • 버전관리 기능을 통해서 사용자에 의한 실수도 복원이 가능하다.

S3 생성하기

먼저 AWS S3사이트에 접속한다.
접속하면 다음과 같은 화면이 뜰 것이다.

위 화면에서 버킷 만들기를 눌러 버킷을 생성할 수 있다.

일반 구성

일반 구성에서는 버킷의 이름과 region을 지정할 수 있다.
기존의 버킷 설정을 가져올 경우, 버킷 선택을 통해 다른 버킷의 설정을 가져올 수 있다.

퍼블릭 액세스 설정

버킷 객체를 외부에서도 접근이 가능하게 하려면 모든 퍼블릭 액세스 차단 체크를 해제해주면 된다.

중요한 상황에서는 퍼블릭으로 데이터를 제공해야되는 경우가 아니라면 서비스 환경에 맞춰 "모든 퍼블릭 액세스 차단" 또는 ACL을 이용해 액세스를 차단해주는것이 좋다.

퍼블릭 액세스가 차단되었을 경우 IAM에서 AwsAccessKeyId와 AwsSecretKey를 발급받고 이를 이용해서 S3 객체에 접근할 수 있다.

버킷 버전 관리

버킷 버전 관리는 파일의 버전을 관리해주는 기능이다.
활성화를 하면 비활성화 상태보다 더 비용이 많이 나가지만, 실수로 삭제한 파일에 대해서 복구를 할 수 있다.

기본 암호화

버킷에 저장되는 객체들의 암호화 여부를 지정한다.
객체를 다운받을 때 암호를 복호화하여 다운로드를 진행한다.


모든 설정을 마치고 버킷 생성을 하면 다음과 같은 화면과 함께 S3 버킷이 생성된 것을 확인할 수 있다.

생성된 버킷을 들어가보면 다음과 같은 화면이 나오게 된다.

이 화면에서 파일을 업로드, 삭제 등을 할 수 있으며, 새로운 폴더를 만들 수도 있다.

액세스 키 생성

버킷의 퍼블릭 액세스를 차단한 경우, S3에 접근하기 위해서는 액세스 키가 필요하다.
액세스 키는 AWSAccessKey와 AWSSecretKey로 구정되어 있다.

먼저 키를 발급받기 위해선 IAM 관리사이트에 접속한다.
사이트에 접속하게 되면 필자 기준, 오른쪽 화면에 빠른 링크로 내 액세스 키가 존재한다.

내 액세스 키에 들어가면 다음과 같은 화면이 뜨게 된다.

이 화면에서 새 액세스 키 만들기를 하면 새로운 키를 발급받을 수 있게 된다.

키 파일 다운로드를 통해 액세스키와 보안 액세스 키를 다운받을 수 있다.
다운로드 하지 않고 끄게 된다면, 내 액세스 키 사이트에서 액세스키는 확인이 가능하지만 보안 액세스 키는 다시 확인할 수 없다.

두 키는 외부에 노출되지 않도록 조심해야 한다.

profile
Spring Boot 공부하고 있는 고등학생입니다.

0개의 댓글