튜토리얼: Amazon S3, Amazon CloudFront, Amazon Route 53으로 주문형 비디오 스트리밍 호스팅

튜토리얼: Amazon S3, Amazon CloudFront, Amazon Route 53으로 주문형 비디오 스트리밍 호스팅

Amazon CloudFront와 함께 Amazon S3를 사용해 주문형 시청용 비디오를 안전하고 확장 가능한 방식으로 호스팅할 수 있어요. VOD(주문형 비디오) 스트리밍은 비디오 콘텐츠를 서버에 저장하고 뷰어가 언제든 시청할 수 있다는 뜻이에요.

출처: 문서

본문

CloudFront는 빠르고 보안이 뛰어나며 프로그래밍 가능한 CDN(콘텐츠 전송 네트워크) 서비스예요. CloudFront는 전 세계의 모든 CloudFront 에지 위치에서 HTTPS로 콘텐츠를 안전하게 전달할 수 있어요. CloudFront에 대한 자세한 내용은 Amazon CloudFront Developer Guide의 Amazon CloudFront란 무엇인가요?를 참고하세요.

CloudFront 캐싱은 오리진 서버가 직접 응답해야 하는 요청 수를 줄여줘요. 뷰어(최종 사용자)가 CloudFront로 제공하는 비디오를 요청하면 그 요청은 뷰어가 있는 곳에 더 가까운 인근 에지 위치로 라우팅돼요. CloudFront는 캐시에서 비디오를 제공하며, 캐시되지 않은 경우에만 S3 버킷에서 가져와요. 이러한 캐싱 관리 기능 덕분에 낮은 지연 시간, 높은 처리량, 높은 전송 속도로 전 세계 뷰어에게 비디오 전달이 가속화돼요. CloudFront 캐싱 관리에 대한 자세한 내용은 Amazon CloudFront Developer Guide의 캐싱 및 가용성 최적화를 참고하세요.

목표 — 이 튜토리얼에서 S3 버킷을 구성해 전달에는 CloudFront를, 도메인 이름 시스템(DNS)과 사용자 지정 도메인 관리에는 Amazon Route 53을 사용해 주문형 비디오 스트리밍을 호스팅해요.

사전 요구 사항: Route 53으로 사용자 지정 도메인 등록 및 구성 (Prerequisites: Register and configure a custom domain with Route 53)

이 튜토리얼을 시작하기 전에 Route 53으로 사용자 지정 도메인(예: example.com)을 등록하고 구성해야 해요. 그래야 나중에 CloudFront 배포가 사용자 지정 도메인 이름을 사용하도록 구성할 수 있어요.

사용자 지정 도메인 이름이 없으면 S3 비디오는 공개적으로 접근할 수 있고 CloudFront를 통해 다음 URL과 비슷한 형식으로 호스팅돼요.

https://CloudFront distribution domain name/Path to an S3 video

예: https://d111111abcdef8.cloudfront.net/sample.mp4.

CloudFront 배포를 Route 53으로 구성된 사용자 지정 도메인 이름을 사용하도록 구성한 뒤에는 S3 비디오가 공개적으로 접근할 수 있고 다음 URL과 비슷한 형식으로 CloudFront를 통해 호스팅돼요.

https://CloudFront distribution alternate domain name/Path to an S3 video

예: https://www.example.com/sample.mp4. 사용자 지정 도메인 이름은 뷰어가 사용하기에 더 간단하고 직관적이에요.

사용자 지정 도메인을 등록하려면 Amazon Route 53 Developer Guide의 Route 53으로 새 도메인 등록을 참고하세요.

Route 53으로 도메인 이름을 등록하면 Route 53이 호스팅 영역을 자동으로 만들어 주는데, 이 튜토리얼의 나중에 이 호스팅 영역을 사용해요. 이 호스팅 영역에는 도메인에 대한 트래픽을 어떻게 라우팅할지(예: Amazon EC2 인스턴스나 CloudFront 배포로)에 대한 정보를 저장해요.

도메인 등록, 호스팅 영역, 도메인이 받는 DNS 쿼리에는 요금이 부과돼요. 자세한 내용은 Amazon Route 53 요금을 참고하세요.

참고 도메인을 등록하면 즉시 비용이 들고 되돌릴 수 없어요. 도메인 자동 갱신을 선택하지 않을 수 있지만, 선불로 지불하고 1년간 소유하게 돼요. 자세한 내용은 Amazon Route 53 Developer Guide의 새 도메인 등록을 참고하세요.

1단계: S3 버킷 생성 (Step 1: Create an S3 bucket)

스트리밍할 원본 비디오를 저장할 버킷을 만들어요.

버킷을 만드는 방법은 다음과 같아요.

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 열어요.
  2. 탐색 모음에서 현재 표시된 AWS 리전의 이름을 선택하고, 버킷을 만들 리전을 선택해요. 참고: 지연 시간과 비용을 최소화하고 규제 요구 사항을 충족하려면 가까운 리전을 선택해요. 리전에 저장된 객체는 명시적으로 다른 리전으로 전송하지 않는 한 그 리전을 벗어나지 않아요. Amazon S3 AWS 리전 목록은 Amazon Web Services General Reference의 AWS 서비스 엔드포인트를 참고하세요.
  3. 왼쪽 탐색 창에서 General purpose buckets를 선택해요.
  4. Create bucket을 선택해요. Create bucket 페이지가 열려요.
  5. Bucket name에 버킷 이름을 입력해요(예: tutorial-bucket). Amazon S3에서 버킷 이름 지정에 대한 자세한 내용은 일반 목적 버킷 이름 규칙을 참고하세요.
  6. Region에 버킷이 위치할 AWS 리전을 선택해요. 가능하면 뷰어 대다수에 가장 가까운 리전을 선택해야 해요. 버킷 리전에 대한 자세한 내용은 일반 목적 버킷 개요를 참고하세요.
  7. Block Public Access settings for this bucket에서 기본 설정(Block all public access가 활성화됨)을 유지해요. Block all public access가 활성화되어 있어도 뷰어는 CloudFront를 통해 업로드된 비디오에 여전히 접근할 수 있어요. 이것은 S3에 저장된 비디오를 호스팅하는 데 CloudFront를 사용하는 큰 장점이에요. 사용 사례에서 하나 이상 꺼야 하는 경우가 아니라면 모든 설정을 켜 둘 것을 권장해요. 공개 액세스 차단에 대한 자세한 내용은 Amazon S3 스토리지에 대한 공개 액세스 차단을 참고하세요.
  8. 나머지 설정은 기본값을 유지해요. (선택 사항) 특정 사용 사례에 맞는 추가 버킷 설정을 구성하려면 일반 목적 버킷 생성을 참고하세요.
  9. Create bucket을 선택해요.

2단계: 비디오를 S3 버킷에 업로드 (Step 2: Upload a video to the S3 bucket)

다음 절차는 콘솔로 S3 버킷에 비디오 파일을 업로드하는 방법을 설명해요. S3에 많은 대용량 비디오 파일을 업로드한다면 Amazon S3 Transfer Acceleration로 빠르고 안전한 파일 전송을 구성하고 싶을 수도 있어요. Transfer Acceleration은 큰 비디오의 장거리 전송에서 S3 버킷으로의 업로드를 가속화할 수 있어요. 자세한 내용은 Amazon S3 Transfer Acceleration으로 빠르고 안전한 파일 전송 구성을 참고하세요.

버킷에 파일을 업로드하는 방법은 다음과 같아요.

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 열어요.
  2. 왼쪽 탐색 창에서 General purpose buckets를 선택해요.
  3. General purpose buckets 목록에서 1단계에서 만든 버킷 이름(예: tutorial-bucket)을 선택해 파일을 업로드해요.
  4. 버킷의 Objects 탭에서 Upload를 선택해요.
  5. Upload 페이지의 Files and folders 아래에서 Add files를 선택해요.
  6. 업로드할 파일을 선택하고 Open을 선택해요. 예를 들어 sample.mp4라는 비디오 파일을 업로드할 수 있어요.
  7. Upload를 선택해요.

3단계: CloudFront 오리진 접근 식별 생성 (Step 3: Create a CloudFront origin access identity)

S3 버킷에서 비디오에 대한 직접 접근을 제한하려면 OAI(오리진 접근 식별)라는 특별한 CloudFront 사용자를 만들어요. 이 튜토리얼의 나중에 이 OAI를 배포와 연결해요. OAI를 사용하면 뷰어가 CloudFront를 우회해 S3 버킷에서 직접 비디오를 가져올 수 없게 돼요. CloudFront OAI만 S3 버킷의 파일에 접근할 수 있어요. 자세한 내용은 Amazon CloudFront Developer Guide의 S3 오리진으로 접근 제한을 참고하세요.

중요 정적 웹사이트를 호스팅하는 데 사용하는 버킷이 AWS Key Management Service(AWS KMS) 키를 사용한 서버 측 암호화(SSE-KMS)로 암호화되어 있다면 오리진을 보호하려면 OAI 대신 OAC(오리진 접근 제어)를 사용해야 해요. OAI는 SSE-KMS를 지원하지 않으므로 OAC를 사용해야 해요. OAC에 대한 자세한 내용은 Amazon CloudFront Developer Guide의 S3 오리진으로 접근 제한을 참고하세요.

CloudFront OAI를 만드는 방법은 다음과 같아요.

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/cloudfront/v4/home에서 CloudFront 콘솔을 열어요.
  2. 왼쪽 탐색 창의 Security 섹션 아래에서 Origin access를 선택해요.
  3. Identities 탭 아래에서 Create origin access identity를 선택해요.
  4. 새 오리진 접근 식별의 이름을 입력해요(예: S3-OAI).
  5. Create를 선택해요.

4단계: CloudFront 배포 생성 (Step 4: Create a CloudFront distribution)

CloudFront로 S3 버킷의 비디오를 제공하고 배포하려면 CloudFront 배포를 만들어야 해요.

CloudFront 배포 생성 (Create a CloudFront distribution)

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/cloudfront/v4/home에서 CloudFront 콘솔을 열어요.
  2. 왼쪽 탐색 창에서 Distributions를 선택해요.
  3. Create distribution을 선택해요.
  4. Origin 섹션의 Origin domain에서 1단계에서 만든 S3 버킷 이름으로 시작하는 S3 오리진의 도메인 이름(예: tutorial-bucket)을 선택해요.
  5. Origin access에서 Legacy access identities를 선택해요.
  6. Origin access identity 아래에서 3단계에서 만든 오리진 접근 식별(예: S3-OAI)을 선택해요.
  7. Bucket policy 아래에서 Yes, update the bucket policy를 선택해요.
  8. Default cache behavior 섹션의 Viewer protocol policy 아래에서 Redirect HTTP to HTTPS를 선택해요. 이 기능을 선택하면 HTTP 요청이 자동으로 HTTPS로 리디렉션되어 웹사이트를 보호하고 뷰어의 데이터를 안전하게 지켜요.
  9. Default cache behaviors 섹션의 다른 설정은 기본값을 유지해요. (선택 사항) CloudFront가 오리진에 다른 요청을 전달하기 전에 파일이 CloudFront 캐시에 머무는 시간을 제어할 수 있어요. 지속 시간을 줄이면 동적 콘텐츠를 제공할 수 있어요. 지속 시간을 늘리면 파일이 에지 캐시에서 직접 제공될 가능성이 높아져 뷰어가 더 나은 성능을 얻어요. 더 긴 지속 시간은 오리진의 부하도 줄여줘요. 자세한 내용은 Amazon CloudFront Developer Guide의 콘텐츠가 캐시에 머무는 시간 관리(만료)를 참고하세요.
  10. 다른 섹션의 나머지 설정은 기본값을 유지해요. 다양한 설정 옵션에 대한 자세한 내용은 Amazon CloudFront Developer Guide의 배포를 만들거나 업데이트할 때 지정하는 값을 참고하세요.
  11. Create distribution을 선택해요.
  12. CloudFront 배포의 General 탭에서 Details 아래의 Last modified 열 값이 Deploying에서 배포가 마지막으로 수정된 타임스탬프로 바뀌는지 확인해요. 이 과정은 일반적으로 몇 분이 걸려요.

버킷 정책 검토 (Review the bucket policy)

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 열어요.
  2. 왼쪽 탐색 창에서 Buckets를 선택해요.
  3. Buckets 목록에서 이전에 CloudFront 배포의 오리진으로 사용한 버킷 이름(예: tutorial-bucket)을 선택해요.
  4. Permissions 탭을 선택해요.
  5. Bucket policy 섹션에서 버킷 정책 텍스트에 다음과 비슷한 문이 보이는지 확인해요.
{
  "Version": "2008-10-17",
  "Id": "PolicyForCloudFrontPrivateContent",
  "Statement": [
    {
      "Sid": "1",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity EH1HDMB1FH2TC"
      },
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::tutorial-bucket/*"
    }
  ]
}

이것은 이전에 Yes, update the bucket policy를 선택했을 때 CloudFront 배포가 버킷 정책에 추가한 문이에요. 이 버킷 정책 업데이트는 CloudFront 배포가 S3 버킷에 대한 접근을 제한하도록 성공적으로 구성되었음을 나타내요. 이 제한 때문에 버킷의 객체는 CloudFront 배포를 통해서만 접근할 수 있어요.

5단계: CloudFront 배포를 통해 비디오에 접근 (Step 5: Access the video through the CloudFront distribution)

이제 CloudFront가 S3 버킷에 저장된 비디오를 제공할 수 있어요. CloudFront를 통해 비디오에 접근하려면 CloudFront 배포 도메인 이름과 S3 버킷의 비디오 경로를 결합해야 해요.

CloudFront 배포 도메인 이름으로 S3 비디오 URL을 만드는 방법은 다음과 같아요.

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/cloudfront/v4/home에서 CloudFront 콘솔을 열어요.
  2. 왼쪽 탐색 창에서 Distributions를 선택해요.
  3. 배포 도메인 이름을 가져오려면 다음을 수행해요. Origins 열에서 1단계에서 만든 S3 버킷으로 시작하는 오리진 이름을 찾아 올바른 CloudFront 배포를 찾아요. 목록에서 배포를 찾은 뒤 Domain name 열을 넓혀 CloudFront 배포의 도메인 이름 값을 복사해요.
  4. 새 브라우저 탭에 복사한 배포 도메인 이름을 붙여넣어요.
  5. 이전 브라우저 탭으로 돌아가 https://console.aws.amazon.com/s3/에서 S3 콘솔을 열어요.
  6. 왼쪽 탐색 창에서 Buckets를 선택해요.
  7. Buckets 목록에서 1단계에서 만든 버킷 이름(예: tutorial-bucket)을 선택해요.
  8. Objects 목록에서 2단계에서 업로드한 비디오의 이름(예: sample.mp4)을 선택해요.
  9. 객체 세부 정보 페이지의 Object overview 섹션에서 Key 값을 복사해요. 이 값은 S3 버킷에서 업로드된 비디오 객체의 경로예요.
  10. 이전에 배포 도메인 이름을 붙여넣은 브라우저 탭으로 돌아가 배포 도메인 이름 뒤에 슬래시(/)를 입력하고, 아까 복사한 비디오 경로(예: sample.mp4)를 붙여넣어요. 이제 S3 비디오는 공개적으로 접근할 수 있고 다음 URL과 비슷한 형식으로 CloudFront를 통해 호스팅돼요: https://CloudFront distribution domain name/Path to the S3 video. CloudFront distribution domain name과 Path to the S3 video를 적절한 값으로 바꾸세요. 예시 URL은 https://d111111abcdef8.cloudfront.net/sample.mp4예요.

6단계: CloudFront 배포가 사용자 지정 도메인 이름을 사용하도록 구성 (Step 6: Configure your CloudFront distribution to use your custom domain name)

S3 비디오에 접근하는 URL에서 CloudFront 도메인 이름 대신 자신의 도메인 이름을 사용하려면 CloudFront 배포에 대체 도메인 이름을 추가해요.

SSL 인증서 요청 (Request an SSL certificate)

뷰어가 비디오 스트리밍의 URL에서 HTTPS와 사용자 지정 도메인 이름을 사용할 수 있게 하려면 AWS Certificate Manager(ACM)로 SSL(Secure Sockets Layer) 인증서를 요청해요. SSL 인증서는 웹사이트에 암호화된 네트워크 연결을 설정해요.

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/acm/에서 ACM 콘솔을 열어요.
  2. 소개 페이지가 나타나면 Provision certificates 아래에서 Get Started를 선택해요.
  3. Request a certificate 페이지에서 Request a public certificate를 선택한 뒤 Request a certificate를 선택해요.
  4. Add domain names 페이지에서 SSL/TLS 인증서로 보호할 사이트의 FQDN(정규화된 도메인 이름)을 입력해요. 별표(*)를 사용해 같은 도메인의 여러 사이트 이름을 보호하는 와일드카드 인증서를 요청할 수 있어요. 이 튜토리얼에서는 *와 사전 요구 사항에서 구성한 사용자 지정 도메인 이름을 입력해요. 예를 들어 *.example.com을 입력하고 Next를 선택해요. 자세한 내용은 AWS Certificate Manager User Guide의 ACM 공개 인증서 요청(콘솔)을 참고하세요.
  5. Select validation method 페이지에서 DNS validation을 선택한 뒤 Next를 선택해요. DNS 구성을 편집할 수 있다면 이메일 검증보다 DNS 도메인 검증을 사용할 것을 권장해요. DNS 검증은 이메일 검증에 비해 여러 이점이 있어요. 자세한 내용은 AWS Certificate Manager User Guide의 옵션 1: DNS 검증을 참고하세요.
  6. (선택 사항) Add tags 페이지에서 인증서에 메타데이터 태그를 지정해요.
  7. Review를 선택해요.
  8. Review 페이지에서 Domain name과 Validation method 아래의 정보가 올바른지 확인한 뒤 Confirm and request를 선택해요. Validation 페이지에 요청이 처리 중이고 인증서 도메인이 검증되고 있다고 표시돼요. 검증을 기다리는 인증서는 Pending validation 상태예요.
  9. Validation 페이지에서 사용자 지정 도메인 이름 왼쪽의 아래 화살표를 선택하고, DNS로 도메인 소유권을 검증하려면 Create record in Route 53을 선택해요. 이렇게 하면 AWS Certificate Manager가 제공하는 CNAME 레코드가 DNS 구성에 추가돼요.
  10. Create record in Route 53 대화 상자에서 Create를 선택해요. Validation 페이지에 Success 상태 알림이 표시돼야 해요.
  11. Continue를 선택해 Certificates 목록 페이지를 봐요. 새 인증서의 Status가 30분 안에 Pending validation에서 Issued로 바뀌어요.

CloudFront 배포에 대체 도메인 이름 추가 (Add the alternate domain name to your CloudFront distribution)

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/cloudfront/v4/home에서 CloudFront 콘솔을 열어요.
  2. 왼쪽 탐색 창에서 Distributions를 선택해요.
  3. 4단계에서 만든 배포의 ID를 선택해요.
  4. General 탭의 Settings 섹션으로 가서 Edit를 선택해요.
  5. Edit settings 페이지의 Alternate domain name (CNAME) - optional에서 Add item을 선택해 이 CloudFront 배포가 제공하는 S3 비디오의 URL에 사용할 사용자 지정 도메인 이름을 추가해요. 이 튜토리얼에서 예를 들어 www.example.com 같은 하위 도메인에 트래픽을 라우팅하려면 도메인 이름(example.com)과 함께 하위 도메인 이름(www)을 입력해요. 구체적으로 www.example.com을 입력해요. 참고: 추가하는 대체 도메인 이름(CNAME)은 이전에 CloudFront 배포에 연결한 SSL 인증서로 보호되어야 해요.
  6. Custom SSL certificate - optional에서 아까 요청한 SSL 인증서(예: *.example.com)를 선택해요. 참고: 요청 직후에 SSL 인증서가 안 보인다면 30분 기다렸다가 선택할 수 있을 때까지 목록을 새로 고쳐요.
  7. 나머지 설정은 기본값으로 두고 Save changes를 선택해요.
  8. 배포의 General 탭에서 Last modified 값이 Deploying에서 배포가 마지막으로 수정된 타임스탬프로 바뀔 때까지 기다려요.

대체 도메인 이름에서 CloudFront 배포 도메인 이름으로 트래픽을 라우팅하는 DNS 레코드 생성 (Create a DNS record to route traffic from your alternate domain name to your CloudFront distribution's domain name)

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/route53/에서 Route 53 콘솔을 열어요.
  2. 왼쪽 탐색 창에서 Hosted zones를 선택해요.
  3. Hosted zones 페이지에서 사전 요구 사항에서 Route 53이 만든 호스팅 영역의 이름(예: example.com)을 선택해요.
  4. Create record를 선택하고 Quick create record 방법을 사용해요.
  5. Record name에서 레코드 이름 값을 이전에 추가한 CloudFront 배포의 대체 도메인 이름과 같게 유지해요. 이 튜토리얼에서 www.example.com 같은 하위 도메인에 트래픽을 라우팅하려면 도메인 이름 없이 하위 도메인 이름을 입력해요. 예를 들어 사용자 지정 도메인 이름 앞 텍스트 필드에 www만 입력해요.
  6. Record type에서 A - Routes traffic to an IPv4 address and some AWS resources를 선택해요.
  7. Value에서 Alias 토글을 선택해 별칭 리소스를 활성화해요.
  8. Route traffic to 아래에서 드롭다운 목록에서 Alias to CloudFront distribution을 선택해요.
  9. Choose distribution이라고 표시된 검색 상자에서 4단계에서 만든 CloudFront 배포의 도메인 이름을 선택해요. CloudFront 배포의 도메인 이름을 찾으려면 다음을 수행해요. 새 브라우저 탭에서 AWS Management Console에 로그인하고 https://console.aws.amazon.com/cloudfront/v3/home에서 CloudFront 콘솔을 열어요. 왼쪽 탐색 창에서 Distributions를 선택해요. Origins 열에서 1단계에서 만든 S3 버킷으로 시작하는 오리진 이름을 찾아 올바른 CloudFront 배포를 찾아요. 목록에서 배포를 찾은 뒤 Domain name 열을 넓혀 CloudFront 배포의 도메인 이름 값을 확인해요.
  10. Route 53 콘솔의 Create record 페이지에서 나머지 설정은 기본값을 유지해요.
  11. Create records를 선택해요.

배포에 IPv6가 활성화되어 있는지 확인하고 필요하면 다른 DNS 레코드 생성 (Check whether IPv6 is enabled for your distribution and create another DNS record if needed)

배포에 IPv6가 활성화되어 있다면 다른 DNS 레코드를 만들어야 해요.

  1. 배포에 IPv6가 활성화되어 있는지 확인하려면 다음을 수행해요. AWS Management Console에 로그인하고 https://console.aws.amazon.com/cloudfront/v4/home에서 CloudFront 콘솔을 열어요. 왼쪽 탐색 창에서 Distributions를 선택해요. 4단계에서 만든 CloudFront 배포의 ID를 선택해요. General 탭의 Settings 아래에서 IPv6가 Enabled로 설정되어 있는지 확인해요. 배포에 IPv6가 활성화되어 있다면 다른 DNS 레코드를 만들어야 해요.
  2. 배포에 IPv6가 활성화되어 있다면 다음을 수행해 DNS 레코드를 만들어요. AWS Management Console에 로그인하고 https://console.aws.amazon.com/route53/에서 Route 53 콘솔을 열어요. 왼쪽 탐색 창에서 Hosted zones를 선택해요. Hosted zones 페이지에서 사전 요구 사항에서 Route 53이 만든 호스팅 영역의 이름(예: example.com)을 선택해요. Create record를 선택하고 Quick create record 방법을 사용해요. Record name에서 사용자 지정 도메인 이름 앞 텍스트 필드에 이전에 IPv4 DNS 레코드를 만들 때 입력한 것과 같은 값을 입력해요. 예를 들어 이 튜토리얼에서 www.example.com 하위 도메인에 트래픽을 라우팅하려면 www만 입력해요. Record type에서 AAAA - Routes traffic to an IPv6 address and some AWS resources를 선택해요. Value에서 Alias 토글을 선택해 별칭 리소스를 활성화해요. Route traffic to 아래에서 드롭다운 목록에서 Alias to CloudFront distribution을 선택해요. Choose distribution이라고 표시된 검색 상자에서 4단계에서 만든 CloudFront 배포의 도메인 이름을 선택해요. 나머지 설정은 기본값을 유지해요. Create records를 선택해요.

7단계: 사용자 지정 도메인 이름으로 CloudFront 배포를 통해 S3 비디오에 접근 (Step 7: Access the S3 video through the CloudFront distribution with the custom domain name)

사용자 지정 URL로 S3 비디오에 접근하려면 대체 도메인 이름과 S3 버킷의 비디오 경로를 결합해야 해요.

CloudFront 배포를 통해 S3 비디오에 접근하는 사용자 지정 URL을 만드는 방법은 다음과 같아요.

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/cloudfront/v4/home에서 CloudFront 콘솔을 열어요.
  2. 왼쪽 탐색 창에서 Distributions를 선택해요.
  3. CloudFront 배포의 대체 도메인 이름을 가져오려면 다음을 수행해요. Origins 열에서 1단계에서 만든 S3 버킷 이름으로 시작하는 오리진 이름을 찾아 올바른 CloudFront 배포를 찾아요. 목록에서 배포를 찾은 뒤 Alternate domain names 열을 넓혀 CloudFront 배포의 대체 도메인 이름 값을 복사해요.
  4. 새 브라우저 탭에 CloudFront 배포의 대체 도메인 이름을 붙여넣어요.
  5. 이전 브라우저 탭으로 돌아가 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 열어요.
  6. 5단계에서 설명한 대로 S3 비디오의 경로를 찾아요.
  7. 이전에 대체 도메인 이름을 붙여넣은 브라우저 탭으로 돌아가 슬래시(/)를 입력하고 S3 비디오의 경로(예: sample.mp4)를 붙여넣어요. 이제 S3 비디오는 공개적으로 접근할 수 있고 다음 URL과 비슷한 형식의 사용자 지정 URL로 CloudFront를 통해 호스팅돼요: https://CloudFront distribution alternate domain name/Path to the S3 video. CloudFront distribution alternate domain name과 Path to the S3 video를 적절한 값으로 바꾸세요. 예시 URL은 https://www.example.com/sample.mp4예요.

(선택 사항) 8단계: CloudFront 배포가 받은 요청에 대한 데이터 보기 (Step 8: View data about requests received by your CloudFront distribution)

CloudFront 배포가 받은 요청에 대한 데이터를 보려면:

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/cloudfront/v4/home에서 CloudFront 콘솔을 열어요.
  2. 왼쪽 탐색 창의 Reports & analytics 아래에서 Cache statistics, Popular Objects, Top Referrers, Usage, Viewers 범위의 콘솔 보고서를 선택해요. 각 보고서 대시보드를 필터링할 수 있어요. 자세한 내용은 Amazon CloudFront Developer Guide의 콘솔의 CloudFront 보고서를 참고하세요.
  3. 데이터를 필터링하려면 4단계에서 만든 CloudFront 배포의 ID를 선택해요.

9단계: 정리 (Step 9: Clean up)

CloudFront와 Route 53으로 S3 스트리밍 비디오를 학습 목적으로만 호스팅했다면 요금이 더 이상 발생하지 않도록 할당했던 AWS 리소스를 삭제해요.

참고 도메인을 등록하면 즉시 비용이 들고 되돌릴 수 없어요. 도메인 자동 갱신을 선택하지 않을 수 있지만, 선불로 지불하고 1년간 소유하게 돼요. 자세한 내용은 Amazon Route 53 Developer Guide의 새 도메인 등록을 참고하세요.

CloudFront 배포 삭제 (Delete the CloudFront distribution)

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/cloudfront/v4/home에서 CloudFront 콘솔을 열어요.
  2. 왼쪽 탐색 창에서 Distributions를 선택해요.
  3. Origins 열에서 1단계에서 만든 S3 버킷 이름으로 시작하는 오리진 이름을 찾아 올바른 CloudFront 배포를 찾아요.
  4. CloudFront 배포를 삭제하려면 먼저 비활성화해야 해요. Status 열 값이 Enabled이고 Last modified 값이 배포가 마지막으로 수정된 타임스탬프라면, 삭제하기 전에 계속해서 배포를 비활성화해요. Status 값이 Enabled이고 Last modified 값이 Deploying이라면 Status 값이 배포가 마지막으로 수정된 타임스탬프로 바뀔 때까지 기다린 뒤 삭제하기 전에 계속해서 배포를 비활성화해요.
  5. CloudFront 배포를 비활성화하려면 다음을 수행해요. Distributions 목록에서 삭제할 배포의 ID 옆 확인란을 선택해요. 배포를 비활성화하려면 Disable을 선택한 뒤 확인을 위해 Disable을 선택해요. 연결된 대체 도메인 이름이 있는 배포를 비활성화하면 CloudFront가 그 도메인 이름(예: www.example.com)에 대한 트래픽 수락을 중지해요. 다른 배포에 같은 도메인을 일치시키는 와일드카드(*) 대체 도메인 이름(예: *.example.com)이 있더라도 마찬가지예요. Status 값이 즉시 Disabled로 바뀌어요. Last modified 값이 Deploying에서 배포가 마지막으로 수정된 타임스탬프로 바뀔 때까지 기다려요. CloudFront가 이 변경을 모든 에지 위치에 전파해야 하므로 업데이트가 완료되고 배포를 삭제할 수 있는 Delete 옵션이 나타나기까지 몇 분이 걸릴 수 있어요.
  6. 비활성화된 배포를 삭제하려면 다음을 수행해요. 삭제할 배포의 ID 옆 확인란을 선택해요. Delete를 선택한 뒤 확인을 위해 Delete를 선택해요.

DNS 레코드 삭제 (Delete the DNS record)

도메인의 공개 호스팅 영역( DNS 레코드 포함)을 삭제하려면 사용자 지정 도메인의 공개 호스팅 영역 삭제를 참고하세요. 6단계에서 만든 DNS 레코드만 삭제하려면 다음을 수행해요.

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/route53/에서 Route 53 콘솔을 열어요.
  2. 왼쪽 탐색 창에서 Hosted zones를 선택해요.
  3. Hosted zones 페이지에서 사전 요구 사항에서 Route 53이 만든 호스팅 영역의 이름(예: example.com)을 선택해요.
  4. 레코드 목록에서 삭제할 레코드(6단계에서 만든 레코드) 옆의 확인란을 선택해요. 참고: Type 값이 NS 또는 SOA인 레코드는 삭제할 수 없어요.
  5. Delete records를 선택해요.
  6. 삭제를 확인하려면 Delete를 선택해요. 레코드 변경 사항이 Route 53 DNS 서버에 전파되는 데 시간이 걸려요. 현재 변경 사항이 전파되었는지 확인하는 유일한 방법은 GetChange API 작업을 사용하는 것이에요. 변경 사항은 일반적으로 60초 안에 모든 Route 53 네임 서버에 전파돼요.

사용자 지정 도메인의 공개 호스팅 영역 삭제 (Delete the public hosted zone for your custom domain)

경고 도메인 등록은 유지하되 웹사이트나 웹 애플리케이션에 대한 인터넷 트래픽 라우팅을 중지하려면 호스팅 영역을 삭제하는 대신 호스팅 영역에서 레코드를 삭제할 것을 권장해요(앞 섹션에서 설명).

호스팅 영역을 삭제하면 다른 사람이 그 도메인을 사용해 자신의 리소스로 트래픽을 라우팅할 수 있어요.

또한 호스팅 영역을 삭제하면 되돌릴 수 없어요. 새 호스팅 영역을 만들고 도메인 등록의 네임 서버를 업데이트해야 하며, 이는 적용되는 데 최대 48시간이 걸릴 수 있어요.

도메인을 인터넷에서 사용할 수 없게 만들고 싶다면 먼저 DNS 서비스를 무료 DNS 서비스로 전환한 뒤 Route 53 호스팅 영역을 삭제할 수 있어요. 이렇게 하면 향후 DNS 쿼리가 잘못 라우팅될 가능성을 방지할 수 있어요.

  • 도메인이 Route 53에 등록되어 있다면 Route 53 네임 서버를 새 DNS 서비스의 네임 서버로 교체하는 방법에 대한 정보는 Amazon Route 53 Developer Guide의 도메인의 네임 서버와 글루 레코드 추가 또는 변경을 참고하세요.
  • 도메인이 다른 등록 대행사에 등록되어 있다면 해당 등록 대행사가 제공하는 방법으로 도메인의 네임 서버를 변경해요.

참고 하위 도메인(www.example.com)의 호스팅 영역을 삭제한다면 도메인(example.com)의 네임 서버를 변경할 필요가 없어요.

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/route53/에서 Route 53 콘솔을 열어요.
  2. 왼쪽 탐색 창에서 Hosted zones를 선택해요.
  3. Hosted zones 페이지에서 삭제할 호스팅 영역의 이름을 선택해요.
  4. 호스팅 영역의 Records 탭에서 삭제할 호스팅 영역에 NS와 SOA 레코드만 있는지 확인해요. 추가 레코드가 있다면 먼저 삭제해요. 호스팅 영역에 하위 도메인용 NS 레코드를 만들었다면 그 레코드도 삭제해요.
  5. 호스팅 영역의 DNSSEC signing 탭에서 DNSSEC 서명이 활성화되어 있다면 비활성화해요. 자세한 내용은 Amazon Route 53 Developer Guide의 DNSSEC 서명 비활성화를 참고하세요.
  6. 호스팅 영역의 세부 정보 페이지에서 Delete zone을 선택해요.
  7. 삭제를 확인하려면 delete를 입력하고 Delete를 선택해요.

Route 53에서 사용자 지정 도메인 이름 삭제 (Delete the custom domain name from Route 53)

대부분의 최상위 도메인(TLD)에 대해 등록을 더 이상 원하지 않으면 삭제할 수 있어요. Route 53에서 도메인 이름 등록을 등록 만료 예정일 이전에 삭제하면 AWS는 등록 수수료를 환불하지 않아요. 자세한 내용은 Amazon Route 53 Developer Guide의 도메인 이름 등록 삭제를 참고하세요.

중요 도메인을 AWS 계정 간에 전송하거나 다른 등록 대행사로 전송하려면 도메인을 삭제하고 즉시 다시 등록할 것을 기대하지 마세요. 대신 Amazon Route 53 Developer Guide의 관련 문서를 참고하세요.

S3 소스 버킷의 원본 비디오 삭제 (Delete the original video in the S3 source bucket)

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 열어요.
  2. 왼쪽 탐색 창에서 Buckets를 선택해요.
  3. Bucket name 목록에서 2단계에서 비디오를 업로드한 버킷 이름(예: tutorial-bucket)을 선택해요.
  4. Objects 탭에서 삭제할 객체의 이름(예: sample.mp4) 옆 확인란을 선택해요.
  5. Delete를 선택해요.
  6. Permanently delete objects? 아래에서 이 객체를 삭제하겠다고 확인하려면 permanently delete를 입력해요.
  7. Delete objects를 선택해요.

S3 소스 버킷 삭제 (Delete the S3 source bucket)

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 열어요.
  2. 왼쪽 탐색 창에서 Buckets를 선택해요.
  3. Buckets 목록에서 1단계에서 만든 버킷 이름(예: tutorial-bucket) 옆 라디오 버튼을 선택해요.
  4. Delete를 선택해요.
  5. Delete bucket 페이지에서 텍스트 필드에 버킷 이름을 입력해 버킷을 삭제하겠다고 확인하고 Delete bucket을 선택해요.

다음 단계 (Next steps)

이 튜토리얼을 완료한 뒤 다음 관련 사용 사례를 더 탐색할 수 있어요.

더 알아보기 (Learn more)