https://youtu.be/LazOCTfdSeQ?si=pwvfc1ZbqhAfQrtR
S3 (Amazon Simple Storage Service)
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/Welcome.html
Amazon S3란 무엇인가요? - Amazon Simple Storage Service
Amazon S3란 무엇인가요? Amazon Simple Storage Service(Amazon S3)는 업계 최고의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스입니다. 모든 규모와 업종의 고객은 Amazon S3를 사용하
docs.aws.amazon.com
객체 스토리지 서비스. 파일 보관만 가능.
데이터는 리전에 저장. (리전 단위)
- 버킷 : S3의 저장 공간을 구분하는 단위. 고유 값으로 딱 하나씩만 생성 가능.
Owner - 소유자 / Key - 파일의 이름 / Value - 파일의 데이터 / Version ID - 파일의 버전 아이디 / Metadata - 파일의 정보를 담은 데이터 / ACL - Access Contril List / Torrents 등... 으로 구성.
-S3 스토리지 클래스
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/storage-class-intro.html
Amazon S3 스토리지 클래스 이해 및 관리 - Amazon Simple Storage Service
Amazon S3 스토리지 클래스 이해 및 관리 Amazon S3의 각 객체에는 그와 연결된 스토리지 클래스가 있습니다. 기본적으로 S3의 객체는 S3 Standard 스토리지 클래스에 저장되지만, Amazon S3는 저장하는 객
docs.aws.amazon.com
S3에도 다양한 유형이 있다... 라고 생각하면 될듯?
최소 용량, 가용성, 내구성, 데이터 요청 비용 등등... 여러 가지 기준에 따라 S3 클래스를 선택하는 것이 좋다
Standard > 자주 액세스 하는 데이터
Standard-IA > 밀리초 단위의 액세스로 한 달에 한 번 이따금 액세스하는 수명이 긴 데이터, 자주 사용하지 않는 파일 중 중요한 파일
One Zone-IA > 재생성 가능하고 자주 액세스하지 않는 데이터, 단 한 개의 가용 영역에만 보관한다.
Glacier Instant Retrieval > 밀리초 단위의 액세스로 분기에 한 번 액세스하는 수명이 긴 아카이브 데이터. 바로 액세스 가능.
Glacier Flexible Retrieval > 몇 분에서 몇 시간의 검색 시간으로 1년에 한 번 액세스하는 수명이 긴 아카이브 데이터. 바로 액세스 불가.
Glacier Deep Archive > 몇 시간의 검색 시간으로 1년에 한 번 미만 액세스하는 수명이 긴 아카이브 데이터. 데이터 가져오는데 꽤 시간이 걸림 (12~48시간...)
Intelligent-Tiering > 알 수 없거나 변경되거나 예측할 수 없는 액세스 패턴이 있는 데이터. 머신 러닝을 통해 자동으로 클래스가 변경됨.
- S3 권한 관리
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/access-management.html
Amazon S3의 액세스 제어 - Amazon Simple Storage Service
정책을 생성할 때 Principal 요소에 와일드카드 문자(*)를 사용하면 모든 사용자가 Amazon S3 리소스에 액세스할 수 있게 되므로 와일드카드 문자는 사용하지 않도록 합니다. 대신, 버킷에 액세스할
docs.aws.amazon.com
IAM 정책의 종류 >
Identity-based policies (자격 증명 기반 정책) / Resource-based policies(리소스 기반 정책)
버킷 정책 : 버킷 단위로 부여되는 리소스 기반 정책.
기본적으로는 Private이며 Public으로 변경하여 외부의 접근을 받아오는 것도 가능함.
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/access-policy-language-overview.html
Amazon S3의 정책 및 권한 - Amazon Simple Storage Service
AWS 계정의 루트 사용자 자격 증명을 사용하여 인증된 요청을 하지 않는 것이 좋습니다. 대신, IAM 역할을 생성하고 해당 역할에 모든 액세스 권한을 부여합니다. 이러한 역할이 부여된 사용자를
docs.aws.amazon.com
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/example-bucket-policies.html
Amazon S3 버킷 정책 예시 - Amazon Simple Storage Service
aws:Referer 조건 키를 사용할 때 주의하는 것이 좋습니다. 공개적으로 알려진 HTTP 참조자 헤더 값을 포함하는 것은 위험합니다. 권한이 없는 사용자가 수정된 브라우저나 사용자 지정 브라우저를
docs.aws.amazon.com
버킷 관리 방법
* Identity-based policies 자격 증명 기반 정책
* Resource-based policies 리소스 기반 정책
S3 ACL
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/acls.html
ACL을 사용한 액세스 관리 - Amazon Simple Storage Service
범용 버킷이 S3 객체 소유권에 대해 버킷 소유자 적용 설정을 사용하는 경우 정책을 사용하여 범용 버킷과 버킷의 객체에 대한 액세스 권한을 부여해야 합니다. 버킷 소유자 적용 설정이 활성화
docs.aws.amazon.com
버킷 혹은 객체 단위로 읽기, 쓰기의 권한을 부여. > 버킷 정책으로 거의 관리가 가능하기에 쓰지 않는 것을 추천하고 있음.
- 버전 관리
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/Versioning.html
S3 버전 관리로 여러 버전의 객체 유지 - Amazon Simple Storage Service
이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.
docs.aws.amazon.com
객체의 생성, 업데이트, 삭제의 모든 단계를 저장
버전은 기본으로는 비활성화되어 있음. 활성화 되면 버전 아이디가 생성이 되고...
파일 삭제되더라도 버전은 삭제되지 않음! (Delete marker가 생성될 뿐)
버전 삭제와 파일 삭제는 다르다. 버전 삭제는 말 그대로 버전을 지우는 것.
버전에 대해 각각 비용이 청구됨. 주의할 것.
- 객체 잠금
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/object-lock.html
Object Lock으로 객체 잠금 - Amazon Simple Storage Service
기본적으로 Amazon S3 콘솔에는 x-amz-bypass-governance-retention:true 헤더가 포함됩니다. 거버넌스 모드로 보호되는 객체를 삭제하려는 경우 s3:BypassGovernanceRetention 권한이 있으면 작업이 성공합니다.
docs.aws.amazon.com
Write Once Read Many (WORM) 모델을 활용하여 객체를 저장.
보관모드 > 일정 기간 동안! : 규정 준수 모드 - 누구도 잠금 설정 변경, 객체 삭제 불가능 / 거버넌스 모드 - 특별한 권한 없으면 변경, 삭제 불가.
법적보존 > 제한 기간 없이 쭉...이다가 해제되면 삭제, 수정 가능.
- 암호화
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/UsingEncryption.html
암호화로 데이터 보호 - Amazon Simple Storage Service
이제 Amazon S3가 Amazon S3 관리형 키를 사용한 서버 측 암호화(SSE-S3)를 Amazon S3 내 모든 버킷 암호화의 기본 수준으로 적용합니다. 2023년 1월 5일부터 Amazon S3로의 모든 새 객체 업로드는 추가 비용 없
docs.aws.amazon.com
1. On Transit
2. At Rest (서버에서 처리 Server Side)
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/serv-side-encryption.html
서버 측 암호화를 사용하여 데이터 보호 - Amazon Simple Storage Service
이제 Amazon S3가 Amazon S3 관리형 키를 사용한 서버 측 암호화(SSE-S3)를 Amazon S3 내 모든 버킷 암호화의 기본 수준으로 적용합니다. 2023년 1월 5일부터 Amazon S3로의 모든 새 객체 업로드는 추가 비용 없
docs.aws.amazon.com
SSE S3 - S3 버킷에서 암호화 처리
SSE KMS - AWS KMS 서비스를 통해 암호화. 추가적인 하나를 거치는 것. 키에 대한 제어 기능이 추가됨. 권한 부여 이용 가능!(역할 분담)
SSE C - 클라이언트 키 생성. 키 보관해야 한다는 단점. 없으면 다시는 찾을 수 없음.
3. Client Side - 클라이언트 쪽에서 암호화해서 키를 주는 것. 키 관리가 필요함.
- S3 Static Hosting
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/WebsiteHosting.html
Amazon S3를 사용하여 정적 웹 사이트 호스팅 - Amazon Simple Storage Service
이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.
docs.aws.amazon.com
서버 없이 웹사이트 호스팅 가능.
Amazon Route 53 : 도메인 관리 프로그램
서버리스 홈페이지를 만들어볼 수도 있음.
실습
1. 간단 S3 실습
1-1. S3 생성
버킷을 만들어준다. 대충 버킷이름만 적고 나머지는 디폴트 값으로 설정.
1-2. 파일 업로드
생성된 s3을 선택 강의자료를 업로드해준다.
드롭다운도 가능하다.
업로드한 파일을 확인하면 다양한 정보를 알 수 있음. (리전이라던지, 소유자 등등...)
1-3. IAM 역할 만들기
EC2에서 S3에 접근할 수 있는 권한을 만들어줘야만 한다. > 권한을 위해 IAM 역할을 만든다.
서비스 선택 EC2의 역할을 만드는 것이므로 EC2를 선택해준다.
실습 중이므로 s3 풀액세스 권한을 주기로 한다.
이름을 지정하고 저장하면 끝!
1-4. 인스턴스 생성
AMI - amazon linux 2
인스턴스 - t2.micro
key pair - 없음
보안 그룹 - 22번 포트 열려있는 것을 선택. 나는 default 보안그룹이 22번 포트가 열려있지 않기 때문에 열려있는 보안 그룹을 사용.
고급 세부 정보 - IAM 인스턴스 프로파일 : 아까 생성한 IAM 역할 선택
사용자 데이터에 제공된 파일을 붙여넣어준다. 이 때 s3 name을 생성한 것으로 바꿀 것.
httpd php를 다운로드 하고
aws s3 버킷에 접속하여 업로드했던 index.php를 복사한다.
그 후 웹서버 시작!
생성된 인스턴스의 퍼블릭 IP로 접속하면 업로드한 PHP 화면이 보이는 걸 알 수 있다.
EC2가 시작될 때 사용자데이터에 있는 코드에 의해 S3에 있는 파일을 다운로드(복사)하게 되고 EC2가 시작될 때 index.php 화면이 보이게 된다.
2. 정적 웹 사이트 만들기
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/HostingWebsiteOnS3Setup.html
자습서: Amazon S3에서 정적 웹 사이트 구성 - Amazon Simple Storage Service
이제 Amazon S3가 Amazon S3 관리형 키를 사용한 서버 측 암호화(SSE-S3)를 Amazon S3 내 모든 버킷 암호화의 기본 수준으로 적용합니다. 2023년 1월 5일부터 Amazon S3로의 모든 새 객체 업로드는 추가 비용 없
docs.aws.amazon.com
2-1. 버킷 만들기
범용 버킷을 하나 생성했다.
2-2. 정적 웹 사이트 호스팅 활성화
아까 생성했던 버킷을 선택하고 속성 > 정적 웹 사이트 호스팅 편집을 눌러준다.
정정 웹 사이트 호스팅을 활성화로 클릭해준다.
인덱스 문서는 그냥 index.html 으로 지정 후 저장.
버킷 웹 사이트 엔드포인트가 생성된다.
2-3. 퍼블릭 액세스 차단 설정 편집
버킷 > 권한 > 퍼블릭 액세스 차단
체크를 해지하고 저장한다.
2-4. 버킷 콘텐츠를 공개적으로 사용 가능하도록 설정하는 버킷 정책 추가
버킷 > 권한 > 버킷 정책 편집 클릭
정책에 사이트에서 제공하는 코드를 붙여넣는다.
이 때 Bucket Name을 생성한 버킷 이름으로 바꾸어준다! 나같은 경우 example-yy.com
2-5. 인덱스 문서 구성
웹사이트에서 제공하는 index.html 파일 코드를 복사하여 로컬에 생성한다.
생성한 파일을 버킷에 업로드한다.
2-6. 웹 사이드 엔드포인트 테스트
버킷 선택 > 속성 > 정적 웹 사이트 호스팅(Static website hosting) > 버킷 웹 사이트 엔드포인트(Bucket website endpoint)를 선택
정적 사이트가 표시된다! 우와
'AWS' 카테고리의 다른 글
312 과제 - 참고 문서 및 개념 (0) | 2025.07.25 |
---|---|
311 과제 - 참고 문서 및 개념 (0) | 2025.06.08 |
돈 뜯기다 (AWS 비용 청구 원인 뜯어보기) (0) | 2025.05.29 |
AWS - VPC (0) | 2025.05.28 |
AWS - ELB / EFS (0) | 2025.05.27 |