일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 코딩테스트
- AWS S3
- MySQL server on 'db' (115)
- 2차 코딩테스트
- 재귀함수가 뭔가요
- 우아한 테크코스 2차 합격
- 우아한테크코스 2차
- python all testcode
- Django
- 갓재석
- classproperty
- TypeError: 'property' object is not iterable
- docker
- S3
- Spring
- github
- python
- javascript
- springboot 3.0.0
- github skyline
- AWS
- docker-compose
- OperationalError
- METACLASS
- DB
- EC2
- classmethod
- depends
- depends_on
- 프로그래머스
Archives
hanbin.dev
[AWS] S3 정리 본문
Bucket
- 버킷 이름은 AWS 전체에서 유니크 해야한다.
- Region을 선택해서 어떤 지역에서 배포할 지 정할 수 있음
Block Public Access settings for bucket
- Block all public access 옵션이 켜져 있으면 권한을 줄 때 오류가 날 수 있음
Objects
S3 URI
- 엔드포인트 주소 (아마존 CLI를 통해서 파일을 다운 받을 때 사용함)
- ex) aws s3 cp s3://hanbin-test-s3/asdf.txt .→ 거꾸로 하면 업로드가 됨
- → s3://hanbin-test-s3/asdf.txt 를 . 으로 다운로드해라.
Object URL
- 파일에 접근 할 수 있는 URL 주소
- https://0313-s3.s3-ap-northeast-1.amazonaws.com/index.html
- 그냥 접속하면 권한이 없다고 접근에 불가능한다고 한다.(버킷의 Block all public access 를 해제해야 함)
- → make public 을 해주면 접근 할 수 있으나, 자주 사용하지 않는다.
Presigned URL
- 시간이 지나면 만료가 되는 엑세스키를 포함한 미리 서명이 된 URL을 만드는 것이다.
- 기간을 정해둔 다운로드 링크를 만들거나 할 때 사용할 수 있다.
Versioning
- 만약 index.html 라는 이름이 같은 두개의 파일을 모두 S3에 올렸다면 전에 있던 index.html 를 덮어쓰게 되버려 이전의 파일이 사라지게 된다.
- 이를 방지하기 위해 Bucket Versioning이 존재한다.
- Bucket Versioning을 활성화 시키면 위와 같이 전 파일이 사라지지 않고 수정했던 시간과 함께 나오게 된다
- 하지면 옛날 버전의 용량을 모두 계산해서 비용이 청구된다.
Default Encryption
- 암호화 할 것인지 정함
Server Access logging
- 어떤 ip가 어떤 resource에 접근했는지 로그를 남겨줌
Event Notification
- 어떤 오브젝트의 이벤트를 캐치해서 그거에 맞는 이벤트를 발생 시킬 수 있다.
ex) 파일이 올라오면 그 파일에 대한 서브넷을 만들어줌
- 만약 사용자가 S3에 큰 용량의 이미지 파일을 업로드함
- lambda가 이미지 용량을 줄인다.
- 조정한 이미지를 따로 모아둔다.
Transfer Acceleration
- 남미에 있는 사람이 도쿄로 이미지를 업로드하면 시간이 오래 걸린다.
- 아마존의 전세계 네트워크를 통해서 속도를 빠르게 해준다.
Requester pays
- 다른 아마존 계정을 가진 유저가 S3에 오브젝트 요청을 보낼 때, 요청을 보낸 유저가 요금을 지불하는 방식
With Route 53
- 만약 S3 버킷을 Route 53으로 호스팅 하고 싶으면 Record name과 버킷의 이름이 동일해야함 ex) s3.hanbin.awscloud.work
- 만약 ec2 인스턴스가 동작하고 있지 않을 때 같은 도메인을 띄워 오류 메세지를 띄울 수 있다.
Bucket Policy
{
"Version" : "2012-10-17",
"Statement" : [
{
"Sid" : "IPAllow",
"Effect" : "Deny",
"Principal" : "*",
"Action" : ["s3:GetObject", "s3:GetObjectVersion"]
"Resource" : [
"arn:aws:s3:::DOC-EXAMPLE-BUCKET",
],
"Condition": {
"NotIpAddress" : {"aws:SourceIp": "54.240.143.0/24"}
}
}
]
}
CORS
- example.com이라는 도메인에서 S3에 요청을 보낼 때 허가되지 않는 도메인 또는 메소드 라면 CORS 오류 가 발생한다.
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>http://www.example.com</AllowedOrigin>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
</CORSRule>
</CORSConfiguration>
위와 같이 허가를 해줄 수 있다.
Lifecycle rule
- 생성 후 90일이 지나면 가장 싼 storage class로 바꾸는 규칙 등 아래의 규칙들을 추가할 수 있다.
Replication rule
- 한 버킷에서 다른 버킷으로 복사할 수 있다.
- 백업 용도로 사용할 수 있다.
- 나는 서울 리전에 S3 버킷을 가지고 있는데 미국에 더 빠르게 데이터를 전송하기 위해서 사용할 수 있다.
VPC endpoint
- NAT Gateway도 없고 Internet Gateway 도 없는 ec2 인스턴스가 s3 버킷에 접근할 수 있는 방법
- 실제로 많이 사용한다고 한다.
'AWS' 카테고리의 다른 글
[AWS] 클라우드 컴퓨팅이란 (0) | 2021.04.06 |
---|---|
[AWS] AWS 서비스 정리 - Database Service (0) | 2021.04.05 |
[AWS] AWS 서비스 정리 - Storage Service (0) | 2021.04.05 |
[AWS] AWS 서비스 정리 - Computing Service (0) | 2021.04.04 |
[AWS] 웹서버에 https를 적용해보자! (0) | 2021.03.28 |