[AWS] S3 & CloudFront

이채리·2024년 5월 20일
0

AWS

목록 보기
4/5

ACC 에서 AWS 의 스토리지 서비스인 S3 와 CDN 인 CloutFront 에 대해 간략히 학습하고, 핸즈온을 진행하였다.

S3(Amazon Simple Storage Service)

Amazon S3 는 인터넷용 스토리지 서비스이다. 사용자는 데이터를 버킷(bucket)이라는 논리적 단위에 저장할 수 있으며, 이 버킷은 각기 다른 지역에 분산될 수 있다. S3 는 높은 내구성, 가용성을 제공하며, 데이터 백업, 아카이빙, 정적 웹 사이트 호스팅 등에 사용된다.

CloudFront

Amazon CloudFront 는 콘텐츠 전송 네트워크(CDN) 서비스이다. CloudFront 를 통해 콘텐츠를 사용자에게 더 빠르고 효율적으로 전달할 수 있다. CloudFront 는 전 세계에 분산된 엣지 로케이션을 사용해 사용자가 가까운 서버에서 콘텐츠를 전달받을 수 있도록 한다. 이는 웹 페이지 로딩 속도를 높이고 사용자 경험을 향상시킨다.

핸즈온 과정

1. S3 버킷 생성

  • AWS 콘솔에서 S3 서비스로 이동
  • '버킷생성' 버튼을 클릭하고, 버킷 이름과 리전을 설정한다. 버킷이름은 고유해야 한다.
  • 추가 설정은 기본값으로 두고, 버킷을 생성한다.

2. 파일 업로드

  • 생성한 S3 버킷에 접근하여 '업로드' 버튼을 클릭한다.
  • 업로드할 파일을 선택한다. 이번 핸즈온에서는 HTML, CSS, JavaScript, 이미지파일을 업로드했다.
  • 파일을 업로드한 후, 각 파일의 퍼블릭 접근 권한을 설정한다. 이는 정적 웹사이트로 호스팅되기 위해 필요하다.

3. 정적 웹호스팅 설정

  • 업로드한 S3 버킷의 '속성' 탭으로 이동하여 '정적 웹사이트 호스팅'을 활성화한다.
  • 인덱스 문서 (index.html)를 지정하고, 필요 시 오류 문서도 설정한다. (이번 핸즈온에서는 인덱스문서와 동일하게 index.html로 지정했다)

4. CloudFront 배포 생성

  • AWS 콘솔에서 CloudFront 서비스로 이동한다.
  • '배포 생성'을 클릭하고, '웹' 배포를 선택한다.
  • 오리진 도메인 필드에 S3 버킷의 엔드포인트를 입력한다.
  • 'Origin Access Control' 을 설정한다. (CloudFront 가 S3 버킷에 접근할 수 있도록 S3 Origin)
  • 배포 설정에서 기본값을 사용하고, '배포생성'을 클릭한다.

5. S3 버킷 정책 편집

  • S3 버킷에서 '권한' 탭으로 접속
  • 버킷 정책 편집을 클릭하여 CloudFront 에서 생성한 OAC 정책을 복사 붙여 넣는다. (아래는 예시)
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow", // allow 
            "Principal": {
                "Service": "cloudfront.amazonaws.com"
            },
            "Action": "s3:GetObject", // s3 로부터 객체 가져오는 것을
            "Resource": "arn:aws:s3:::YOUR_BUCKET_NAME/*",
            "Condition": {
                "StringEquals": {
                    "AWS:SourceArn": "arn:aws:cloudfront::YOUR_CLOUDFRONT_DISTRIBUTION_ID" // 이 소스에서
                }
            }
        }
    ]
}

6. 배포 완료 및 확인

  • CloudFront 배포가 완료되면, 제공된 도메인 이름을 통해 웹 사이트에 접근할 수 있다.
  • 브라우저에서 CloudFront 도메인 이름을 입력하여 정적 웹 사이트가 정상적으로 로딩되는지 확인하면 된다.
profile
성장하며 남기는 흔적들. 그때 그때 떠오르는 생각들과 하고 있는 작업들. 나의 소소한 성과.

0개의 댓글