이 글은 S3 관리 방법을 다룬 글입니다.
S3는 데이터 저장소입니다.
여러 정적 데이터를 저장하고 사용자들에게 제공하기 위해서 사용됩니다.
저는 s3 버킷 생성, 버킷정책 관리, 버킷 마이그레이션, CloudFront 연동 등 S3와 관련된 기능을 써봤습니다.
그러면서 느낀 점이 두 가지가 있습니다.
첫 번째는 버킷 생성과 파일 업로드, 다운로드를 하는 것은 어렵지 않다는 점이었습니다.
두 번째는 자원을 효율적으로 관리하는 것이 중요하는 점이었습니다.
여러분은 자원을 어떻게 관리해야한다고 생각하십니까?
저는 정책을 통해서 관리해야한다고 생각합니다.
S3자원을 관리하려면 생성할때 다음 세 가지 정책을 고려해야 합니다.
바로 명명 정책, 접근 정책, 비용 정책입니다.
명명 정책
- 버킷 이름은 명명 정책을 따라야합니다.
- 버킷 이름은 처음 생성될때에만 수정이 가능하고 생성이후에는 수정할 수 없습니다.
- 버킷 이름은 유일한 값입니다. 누군가가 이미 사용하고 있는 버킷명이라면 사용할 수 없습니다.
- 그렇기 때문에 버킷 이름이 명시적이고, 유일할 수 있도록 신중하게 지어야합니다.
- 예를 들어 <projectName>-<Usage>.<domainName> 같은 양식으로 지으면 명시적이고, 다른 사용자의 버킷명과 겹치치 않을 수 있습니다.
- ex)Tetris-Images.atari.com
접근 정책
- 버킷의 접근 가능 대상은 정책으로 관리되어야합니다.
- 기본적인 접근 방법은 public access 설정을 통해 접근 대상을 선택할 수 있습니다.
- 모두 차단(Block)한 상태로 만들면 해당 계정 사용자를 제외한 아무도 S3 자원에 접근 할 수 없습니다.
- 기본적으로는 접근을 할 수 있는 대상을 제외하고는 퍼블릭 접근을 막아야합니다.
- public access를 허용하는 버킷을 생성하려고 한다면 Block all public access를 해제하고 필요한 접근만 허용하도록 합니다.
- 사진이나 패치파일처럼 사용자가 다운받을 수 있어야하는 자원이라면 퍼블릭접근을 모두 막고, Cloudfront같은 CDN서비스에서만 접근할 수 있도록 만드는 것이 좋습니다. 표준 저장 클래스의 경우 저장비용은 싸지만 접근 비용이 높기 때문에 접근 비용이 거의 없는 CloudFront같은 CDN서비스에 연동시키는것이 비용적으로 이익을 볼 수 있습니다.
- 버킷 정책(Bucket Policy) 설정하는 것에 대해서는 다뤄야하는 내용이 많습니다. 버킷 정책은 다른 글에서 다루도록 하겠습니다.
비용 정책
- S3의 비용정책은 Storage class를 통해서 결정됩니다.
- 기본적으로는 Standard class를 사용합니다.
- Standard class는 접근비용이 싸고, 저장비용이 상대적으로 비싼 편입니다.
- 다음은 비용을 공시한 페이지입니다. 비용비교표(링크)
- CloudFront를 S3와 연동하면 접근 비용을 더 싸게 만들 수 있습니다.
- S3 Standard class에 접근하는 비용은 1GB당 0.09달러입니다.
- CloudFront에서 캐싱된 데이터에 접근하는 비용은 10TB 당 비싸면 0.085 달러입니다.
- CloudFront를 S3에 연동하는 방법에 대해서는 내용이 길어지기 때문에, 버킷정책과 함께 다른 글에서 다루도록 하겠습니다.
감사합니다.
'AWS series > S3' 카테고리의 다른 글
S3란 무엇인가? (0) | 2020.11.28 |
---|