S3는 확장성이 뛰어나며, 무한대로 저장 가능하고 버킷이라는 리전내 에서 유일한 영역을 생성하고 데이터를 key-value 형식의 객체로 저장한다
프리티어로 5GB까지 가능하고 Get 20,000건, Put 요청 2,000건가능하다
이를 통해 정적 웹서비스를 호스팅해보자
s3를 이용하여 정적 웹 호스팅하기
aws cli를 통하여 s3를 사용할 수 있다
1. 웹페이지파일을 만들어놓기
~ > mkdir s3_web
~ > cd s3_web
~/s3_web > mv ./../Downloads/html5up-paradigm-shift . //웹페이지파일
~/s3_web > ls
html5up-paradigm-shift
2. 버킷 생성후 파일 연동
~/s3_web > aws s3 mb s3://web-cli //버킷생성
make_bucket: web-cli
~/s3_web > aws s3 sync . s3://web-cli //현재파일위치(.) 파일들을 버킷으로 이동
3. 권한 설정
해당 버킷 선택 → 권한
탭
권한은 총 3가지로 나뉘어진다
- 퍼블릭 액세스 차단: 퍼블릭할지말지
- 객체 소유권
- ACL
버킷정책
버킷정책을 설정하면 위 설정을 하지않아도 권한을 설정해줄수있다
버킷정책 편집
클릭후 정책 생성기
클릭
버킷정책설정
정책편집기 설명
- Effect
Allow
: 접속을 허용한다Deny
: 접속을 거부한다
- Principal : 대상 상대
- Actions : 허용/거부할 방식
- 회원가입같이 동적 웹은 post나 put이 필요하지만 우리는 정적 웹사이트이기때문에 Get만 있으면되기때문에
GetObject
를 선택
- 회원가입같이 동적 웹은 post나 put이 필요하지만 우리는 정적 웹사이트이기때문에 Get만 있으면되기때문에
- Amazon Resource Name: 타겟
-
해당 버킷의
속성
탭에 나와있다
-
결과
위 결과 내용(json
)을 버킷 정책에 복사하고 붙여넣는다
특정파일에게 권한주기
"Resource": "arn:aws:s3:::web-cli/html5up-paradigm-shift/*",
모든 파일에게 권한주기
"Resource": "arn:aws:s3:::web-cli/*",
4. 결과확인
해당 버킷에서 url을 복사한 뒤 링크를 들어가면 정상적으로 접속한다
만약 버킷정책에서 특정파일은 거부하고싶다면
버킷정책입력기
에서 두가지 설정(허용/제한)을 만들자
{
"Id": "Policy1644381359437",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1644381356688",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::web-cli/*", // 허용할 디렉토리 설정
"Principal": "*"
},
{
"Sid": "Stmt1644381299071",
"Action": [
"s3:GetObject"
],
"Effect": "Deny",
"Resource": "arn:aws:s3:::web-cli/test/*", //거부할 디렉토리 설정
"Principal": "*"
}
]
}
댓글 쓰기