Amazon S3는 객체 스토리지 서비스로, 인터넷에서 언제든지 데이터를 저장하고 검색할 수 있도록 설계되었다. S3는 간단한 API를 사용하여 파일을 저장하고 검색할 수 있으며, 클라이언트 측의 복잡한 로직이나 데이터베이스를 사용하지 않아도 된다. 또한 S3는 가용성과 내구성이 뛰어나며, 필요에 따라 자동으로 확장할 수 있다. 위와 같은 CRA로 만들어진 프로젝트를 S3를 이용하여 정적 웹 사이트로 호스팅하는 방법에 대해 설명하겠다.
index.html
이 노출되도록 한다.정적 웹사이트로 사용하기 위한 설정
index.html
을 지정하여 기본 페이지를 설정하고 저장한다.401(인증)
403(인가)
권환설정
Resource
에는 버킷 ARN을 지정한다.{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::<bucket-name>/*"
}
]
}
// 설명
{
"Version" : 2012-10-17의 문법을 사용해 설정
"Statement" : [
{
"Sid" : 여러개의 Statement의 부르는 이름(유니크한 이름)
"Effect" : 허용또는 거부(허용)
"Principal" : 모두
"Action" : s3에서 object파일을 get하는 걸 허용
"Resource" : 권환의 대상(버킷 이름)
}
]
}
만약 프로젝트를 수정하거나 업데이트하여 다시 배포해야 하는 경우, objects에 있는 모든 파일을 삭제한 후 새로 빌드된 파일을 업로드해야 하는 불편함이 있다. 이를 해결하기 위한 자동화 방법에 대해 다음 포스트에서 작성하겠다.
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/WebsiteHosting.html
원티드 프리온보딩 9차 참여 과정