S3를 이용해보기 전에 S3를 언제 쓰는지 짚고 넘어가보자
...
#0 S3는 언제쓸까?🤷 - 버킷이란
1. 백업과 저장소로 활용되는데 파일을 저장할 수 있고 디스크 역할도 한다.
2. 또한 재해복구를 위해 한 region 안에 있는 데이터를 옮겨야할 수도 있다.
3. 저렴하게 보관용으로도 쓰이기도 하며(아카이브에 두었다가 나중에 쓸 수도 있다..!)
4. 온프레미스 스토리지를 쓰고 있는데 클라우드로 확장하고 싶으면 사용할 수 있다.
5. 어플리케이션, 미디어 즉 비디오 파일이나 이미지 같은걸 호스팅할 수 있다.
6. 또 소프트웨어 업데이트용으로나 정적 웹사이트 호스팅을 위해서도 사용된다.
7. 마지막으로 빅데이터 분석을 위해 큰 용량의 데이터를 저장하기 위한 데이터 레이크를 만들 수 있다.
...
그렇다면 S3는 파일을 어디에 저장할까? => 버킷의 개념 등장🗑️🌠
<S3 Buckets(버킷 🗑️ )>
S3는 파일을 버킷에 저장하는데 버킷은 최상위 디렉토리같은 것이라고 보면 된다.
S3 버킷에 저장되는 파일을 '오브젝트'라고 부른다..! 나중에 만들 때 깨닫겠지만 이 버킷들은 사용자 계정 안에서 생성되어지게 되는데 버킷의 이름은 서비스 전역적으로 고유한 유니크 이름이어야만 만들 수 있다.
+) 헷갈리는 부분 : 버킷은 region 단위로 정의가 되는데 S3가 이름 짓는 거 때문에 전역적인 서비스같아보이지만 버킷은 특정 region 안에서 생성된다.
버킷 이름을 지을 때 글자, 숫자, 하이픈만 입력하면 뭐든 괜찮다.
#1 버킷 만들기 🌈🗑️
우리가 생성한 버킷은 단 하나의 region에만 위치한다.
일단 다 default로 세팅되어 있는 값으로 버킷을 만들건데 버킷에 들어있는 이미지나 파일을 퍼블릭으로 공개하고 싶으면 여기서 체크를 풀어도되고 일단 차단되어있는 채로 만들었다가 풀어도 좋다!
파란색 줄 url로 접근하려고 하면 접근이 거절되고 노란색 체크 표시 되어있는 열기를 누르면
아래처럼 내가 올린 파일이 웹 브라우저상에 보이는데
url을 보면 url이 엄첨엄청 긴 것을 볼 수 있다. 개인이 확인하는 용으로 AWS가 프라이빗하게 열어놓은 url이기 때문에 다른 사람은 확인이 불가능하다. (나중에 이미지를 퍼블릭으로 오픈하면 다른 사람도 해당 이미지를 볼 수 있다)
#2 버킷 정책 만들기 📜 - 이미지 퍼블릭으로 공개해보기
이걸 해제할 때는 반드시 버킷 정책을 퍼블릭으로 설정하는 게 확실할 때에만 체크박스를 풀어주는 것 명심해야 한다.
( 실수로라도 회사의 중요한 데이터가 유출될 수도 있기 때문에..!)
<버킷 정책 만들기>
▼
1. S3 버킷 정책을 만들기 설정
2. 보안 정책엔 '*' 를 입력해야 모두가 접근할 수 있다.
3. 버킷에 있는 오브젝트를 읽을 것이니 GetObject 클릭
4. 아마존 리소스 이름은 반드시 버킷 이름을 슬래시(/)를 붙이고 아마존 버킷 ARN이름을 복사한다.
예) /arn:aws:s3:::hellomybuckets/* => /* 의미 :
이 액션, GetObject 액션이 적용되는 오브젝트는 버킷 안에 있는 오브젝트 경로는 슬래시 다음에 있고 별표가 버킷 내 모든 오브젝트를 의미한다.
만들기를 누르면 이런 식으로 만들어지는데 자신이 만든 JSON형태의 정책을 그대로 복사하여 버킷 정책에 붙여넣기 하면 된다!
#3 이미지를 정적 웹 사이트로 호스팅해보기🛜
S3에 업로드한 이미지 컨텐츠를 정적 웹사이트로 호스팅해보겠다💁
'정적 웹 사이트 호스팅'은 '비활성화'에서 '활성화'로 바꿔주고 '인덱스 문서'는 호스팅했을 때 보이는 홈 페이지 화면을 세팅해줘야 하는데 내가 홈 페이지로 보여지고 싶은 html 파일을 업로드해주고 변경사항을 저장해주면 해당 url이 웹 브라우저 상에서 호스팅 된 것을 확인할 수 있다.
+) 이미지 상에서도 나왔지만 S3에 올라와있는 모든 콘텐츠들을 전부 읽기가 가능한 상태로 설정해야 한다..! 명심해두자
✅짤막한 개념 정리
액세스 키는 AWS CLI 또는 AWS API에 대한 프로그래밍 방식 요청에 서명하는 데 사용된다.
버킷 정책은 Amazon S3 리소스에 권한을 부여하기 위한 JSON 문서이다.
수명 주기 규칙을 사용하여 S3 객체를 다른 스토리지 클래스로 전환해야 하는 시점 또는 일정 시간 후 객체를 삭제해야 하는 시점을 정의할 수 있다.
Amazon S3 Standard-Infrequent Access로 자주 액세스하지 않는 데이터를 저장하고 필요할 때 신속하게 액세스할 수 있으며 내구성이 높으며 재해 발생 시 데이터 손실을 방지하기 위해 여러 가용 영역에 저장됩니다. 재해 복구, 백업 등을 위해 데이터를 저장하는 데 사용할 수 있다.
'AWS' 카테고리의 다른 글
대규모 배포 및 인프라에 관한 서비스 살펴보기 (1) | 2024.03.07 |
---|---|
AWS Database에 관해 (0) | 2024.03.06 |
EC2 Instance Storage (0) | 2024.03.04 |
EC2 인스턴스 생성하기, 윈도우로 SSH 실행하는 방법과 더 편한 방법 (0) | 2024.03.03 |
AWS IAM Access key 만들어보기, IAM Roles(IAM 역할)에 관해 (0) | 2024.03.01 |