개요

개념

S3는 Simple Storage Service의 약자로 클라우드 파일 저장소다.

S3에 중요한 개념이 두 가지가 있는데 버킷과 키다. 한번 알아보자.

버킷은 S3에서 데이터를 저장하는 컨테이너 단위를 말한다. 또한 S3스토리지의 최상위 계층이며 사용자가 데이터를 저장하고 관리할 수 있는 일종의 폴더와 같다. 각 버킷들은 고유한 이름을 가져야하며 전 세계적으로도 유일해야한다.

키는 S3버킷 내에서 객체(파일)을 고유하게 식별하는 문자열이다.

일단 한 번 만들어보자

AWS 사이트에서 S3를 검색하면 된다.
리전은 현재 위치와 가장 가까운 서울을 선택했다.
스크린샷 2024-09-02 시간: 23 29 10

여기서 버킷 만들기를 통해 생성해준다.
버킷의 이름은 유일해야함을 기억하자. 스크린샷 2024-11-06 시간: 21 30 19 무언가를 빠르게 배우려면 아무렇게나 해봐야한다.
설정이 이것저것 많아보이지만 기본으로 만들어본다.

이렇게 만든 뒤 버킷을 클릭하여 업로드 버튼을 누르면 파일을 업로드할 수 있다.

스크린샷 2024-11-06 시간: 21 34 21 스크린샷 2024-11-06 시간: 21 36 04 이렇게 업로드되었고 객체 url을 통해 파일을 온라인 상에서 열어볼 수 있다.
(여기서 url이 굉장히 길게 되어있는 것은 이미지 이름에 한글이 포함되어있는 경우로 UTF-8인코딩을 거치기 때문에 해당 URL을 디코드해보면 원래의 파일 이름이 나온다.)

스크린샷 2024-11-06 시간: 21 36 59

눌러보면 위와 같이 접속이 제한되었다고 나온다.
S3의 경우 디폴트로 퍼블릭 엑세스를 모두 차단하고있다.

만약 제한을 풀고싶은 경우 버킷 정책을 손봐야한다.
버킷에 들어가서 객체 속성 다음 메뉴인 권한을 클릭한다.
아래로 내려서 버킷 정책을 설정한다.
정책 생성기로 만들면 더 쉽다.

S3를 사용하려면 파일 전송 절차를 거쳐야한다.
그러나 아무곳에서나 해당 버킷에 파일을 올리고 내려받는다면 문제가 생긴다 따라서 일종의 키를 발급받아 사용해야한다.

그러기 위해 IAM 계정을 만든뒤 키를 발급받는다.
그런 뒤 사용하는 프로그램에서 이를 등록하면 프로그램에서 S3를 사용할 수 있게 된다.

Cloudfront

클라우드 프론트란 아마존 CDN 서비스를 말한다.
클라우드와 가장 앞단을 의미하는 프론트의 결합으로 가장 앞단에 위치한 클라우드라는 의미가 된다.

우선 CDN이란 Contents Delivery Network의 약자로 프론트를 다뤄보았다면 이미 알고 있을 개념으로 웹 컨텐츠의 복사본을 사용자와 가까운 곳에 두거나 동적 컨텐츠의 전달을 활성화하여 웹 성능을 향상시킬 수 있게 하는 방법이다.

마찬가지로 AWS에서 Cloudfront를 검색하여 들어간다. 여기서 배포 생성을 클릭한다.
제일 처음에 나오는 Origindomain을 설정해주는데 위에서 만든 S3를 설정해주면 된다.
이렇게 하면 S3에 올라오는 파일들을 클라우드 프론트에서 캐싱하게 된다.

기본 설정으로 놔두고 생성해보면 S3와는 다르게 만드는 순간 네트워크에서 전파하는 작업이 일어나서 사용할 수 있을 때까지 다소 지연이 발생한다.

클라우드 프론트는 S3와 다르게 퍼블릭 엑세스가 허용되어있다. 따라서 클라우드 프론트를 통해 접속하면 파일에 바로 접근할 수 있다.

만약 이런 상황에서 S3에 있는 원본 파일을 삭제한다고 해도 클라우드 프론트에서는 여전히 확인할 수 있다.
이런 특성 때문에 무효화라는 기능이 제공된다. 이렇게 하면 클라우드 프론트에서 캐싱된 파일과 S3에 저장된 파일이 달라졌으니 갱신해달라는 의미가 된다.