AWS S3 사용 이유와 사용 경험에 대한 것은 개발자 면접에서 자주 나오는 질문 중의 하나!
아래에 AWS S3 를 이용한 이미지 업로드 과정을 정리해두었다.
"Simple Storage Service"
AWS(Amazon Web Service)에서 제공하는 인터넷(온라인) 스토리지 서비스
S3 에는 'Object'와 'Bucket' 라는 단위가 있다.
S3 는 Bucket 이라는 컨테이너를 놓을 지역(region)을 선택하고, 해당 컨테이너 내부에 Object 라는 형태로 데이터를 저장한다.
객체(Object)
데이터와 메타데이터를 구성하고 있는 저장 단위
객체를 그룹화하는 디렉터리를 생성 가능
객체마다 각각의 접근 권한 설정 가능
AWS는 S3에 저장된 데이터 하나 하나를 객체라고 명명
버킷(Bucket)
이러한 객체(Object)를 저장하고 관리하는 역할
Bucket을 생성하면 Owner 권한을 부여받게 되어서 Bucket 단위로 여러 가지 기능들을 제어할 수 있다.
버킷 안에 다른 버킷을 둘 수 없다.
버킷 소유권은 이전할 수 없다.
연관된 객체들을 그룹핑한 최상위 디렉토리라고 할 수 있다.
버킷에 포함된 모든 객체에 대해서 일괄적으로 인증과 접속 제한을 걸 수 있다.
버킷 단위로 지역(region)을 지정 할 수 있다.
일반적인 파일 서버는 트래픽이 증가함에 따라서 장비를 증설하는 작업을 해야 한다.
S3는 저장 용량이 무한대이고 파일 저장에 최적화되어 있다. 용량을 추가하거나 성능을 높이는 작업이 필요없다.
예측 할 수 없는 재해가 일어났을 때 여러 저장소에 분산 저장되므로, 저장소가 한꺼번에 파괴되지 않는 이상 복구가 빨라서 내구도가 높다.
버전관리
SSL(Secure Sockets Layer)을 통하여 데이터 전송과 암호화를 하기 때문에, 해킹 위험 小
파일에 인증을 붙여서 무단으로 엑세스 하지 못하도록 할 수 있다.
EC2 와 EBS 로 구축하는 것보다 훨씬 저렴하다. (이미지, 영상 등... 저장 시)
RSS (Reduced Redundancy Storage)
각 지역에 맞게 선택
업/다운로드 시, 지역시간 최소화를 위한 멀티 파트 업로드를 지원
동적 웹페이지와 정적 웹페이지가 섞여있을 때
참고: 초보자도 이해할 수 있는 S3(Simple Storage Service)
참고: Amazon S3이란
참고: [AWS] S3 소개
참고: AWS S3란 무엇이고 왜 사용하는 것일까?(Azure, GCP 비교 포함)