

# 다중 테넌트 배포의 작동 방식 이해
<a name="distribution-config-options"></a>

여러 배포 테넌트에서 재사용할 수 있는 설정을 사용하여 CloudFront 다중 테넌트 배포를 만들 수 있습니다. 다중 테넌트 배포를 사용하면 CloudFront가 콘텐츠 오리진 유형에 따라 배포 설정을 구성하도록 할 수 있습니다. 재구성 설정에 대한 자세한 내용은 [사전 구성된 배포 설정 참조](template-preconfigured-origin-settings.md) 섹션을 참조하시기 바랍니다.

표준 배포 대신 다중 테넌트 배포를 사용하면 다음과 같은 이점이 있습니다.
+ 운영 부담을 줄입니다.
+ 웹 관리자 및 소프트웨어 공급자가 최종 사용자에게 콘텐츠를 제공하는 여러 웹 애플리케이션에서 CloudFront 배포를 관리하기 위한 재사용 가능한 구성입니다.
+ 자동화된 인증서 관리, 통합 보안 제어 및 규모에 맞는 간편한 구성 제어를 제공하기 위해 다른 AWS 서비스와의 통합을 개선했습니다.
+ 구현 전반에 걸쳐 일관된 리소스 패턴을 유지합니다. 공유해야 하는 설정을 정의한 다음, 재정의할 설정을 사용자 지정합니다.
+ 배포 테넌트 수준에서 특정 요구 사항을 충족하도록 사용자 지정 가능한 오리진 및 보안 설정입니다.
+ 배포 테넌트를 서로 다른 계층에 정리합니다. 예를 들어 일부 배포 테넌트에 Origin Shield가 필요하고 일부는 필요하지 않은 경우 배포 테넌트를 서로 다른 다중 테넌트 배포로 그룹화할 수 있습니다.
+ 여러 도메인에서 공통 DNS 구성을 공유합니다.

표준 배포와 달리 다중 테넌트 배포에는 CloudFront 라우팅 엔드포인트가 없으므로 직접 액세스할 수 없습니다. 따라서 연결 그룹 및 하나 이상의 배포 테넌트와 함께 사용해야 합니다. 표준 배포에는 자체 CloudFront 엔드포인트가 있으며 최종 사용자가 직접 액세스할 수 있지만 템플릿으로 다른 배포에 사용할 수 없습니다.

다중 테넌트 배포 할당량에 대한 자세한 내용은 [다중 테넌트 배포의 할당량](cloudfront-limits.md#limits-template) 섹션을 참조하시기 바랍니다.

**Topics**
+ [작동 방식](#how-template-distribution-works)
+ [용어](#template-distributions-concepts)
+ [지원되지 않는 기능](#unsupported-saas)
+ [배포 테넌트 사용자 지정](tenant-customization.md)
+ [CloudFront 배포 테넌트에 대한 인증서 요청](managed-cloudfront-certificates.md)
+ [사용자 지정 연결 그룹 생성(선택 사항)](custom-connection-group.md)
+ [다중 테넌트 배포로 마이그레이션](template-migrate-distribution.md)

## 작동 방식
<a name="how-template-distribution-works"></a>

*표준 배포*의 배포에는 오리진 구성, 캐시 동작, 보안 설정 등 웹 사이트 또는 애플리케이션에서 사용 설정하려는 모든 설정이 포함됩니다. 별도의 웹 사이트를 만들고 동일한 설정을 많이 사용하려면 매번 새 배포를 만들어야 합니다.

CloudFront 다중 테넌트 배포는 초기 다중 테넌트 배포를 만들 수 있다는 점에서 다릅니다. 각 새 웹 사이트에서 소스 배포의 정의된 값을 자동으로 상속하는 배포 테넌트를 만듭니다. 그런 다음 배포 테넌트에 대한 특정 설정을 사용자 지정합니다.

**개요**

1. 시작하려면 먼저 다중 테넌트 배포를 만듭니다. CloudFront는 콘텐츠 오리진 유형에 따라 배포 설정을 구성합니다. VPC 오리진을 제외한 모든 오리진에서 설정을 사용자 지정할 수 있습니다. VPC 오리진 설정은 VPC 오리진 리소스 자체에서 사용자 지정됩니다. 사용자 지정할 수 있는 다중 테넌트 배포 설정에 대한 자세한 내용은 [사전 구성된 배포 설정 참조](template-preconfigured-origin-settings.md) 섹션을 참조하시기 바랍니다.
   + 다중 테넌트 배포에 사용하는 TLS 인증서는 배포 테넌트에서 상속될 수 있습니다. 다중 테넌트 배포 자체는 라우팅할 수 없으므로 연결된 도메인 이름이 없습니다.

1. 기본적으로 CloudFront에서는 연결 그룹을 만듭니다. 연결 그룹은 콘텐츠에 대한 뷰어 요청이 CloudFront에 연결되는 방식을 제어합니다. 연결 그룹에서 일부 라우팅 설정을 사용자 지정할 수 있습니다.

   연결 그룹을 직접 수동으로 만들어 이를 변경할 수 있습니다. 자세한 내용은 [사용자 지정 연결 그룹 생성(선택 사항)](custom-connection-group.md) 섹션을 참조하세요.

1. 그런 다음 하나 이상의 배포 테넌트를 만듭니다. 배포 테넌트는 뷰어가 콘텐츠에 액세스할 수 있는 '출입구'입니다. 각 배포 테넌트는 다중 테넌트 배포를 참조하며 CloudFront에서 만든 연결 그룹과 자동으로 연결됩니다. 배포 테넌트는 개별 도메인 또는 하위 도메인을 지원합니다.

1. 그런 다음 가상 도메인 및 오리진 경로 등 일부 배포 테넌트 설정을 사용자 지정할 수 있습니다. 자세한 내용은 [배포 테넌트 사용자 지정](tenant-customization.md) 섹션을 참조하세요.

1. 마지막으로 DNS 호스트의 DNS 레코드를 업데이트하여 트래픽을 배포 테넌트로 라우팅해야 합니다. 이렇게 하려면 연결 그룹에서 CloudFront 엔드포인트 값을 가져오고 CloudFront 엔드포인트를 가리키는 CNAME 레코드를 만듭니다.

**Example 예제**  
다음 그래픽은 다중 테넌트 배포, 배포 테넌트, 연결 그룹이 함께 작동하여 여러 도메인의 뷰어에게 콘텐츠를 제공하는 방법을 보여줍니다.  

1. 다중 테넌트 배포는 각 배포 테넌트에서 상속된 설정을 정의합니다. 다중 테넌트 배포를 템플릿으로 사용합니다.

1. 다중 테넌트 배포에서 만든 각 배포 테넌트에는 자체 도메인이 있습니다.

1. 배포 테넌트는 다중 테넌트 배포를 만들 때 CloudFront에서 만든 연결 그룹에 자동으로 추가됩니다. 연결 그룹은 뷰어 요청이 CloudFront 네트워크에 연결되는 방식을 제어합니다.

![\[다중 테넌트 배포가 배포 테넌트와 작동하는 방식.\]](http://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/images/template_distribution.png)


자세한 다중 테넌트 배포 만들기 설명은 [콘솔에서 CloudFront 배포 생성](distribution-web-creating-console.md#create-console-distribution) 섹션을 참조하시기 바랍니다.

## 용어
<a name="template-distributions-concepts"></a>

다음 개념은 다중 테넌트 배포의 구성 요소를 설명합니다.

**다중 테넌트 배포**  
캐시 동작, 보안 보호 및 오리진을 포함하여 모든 배포 테넌트에 대한 모든 공유 구성 설정을 지정하는 블루프린트 멀티 테넌트 배포입니다. 다중 테넌트 배포는 트래픽을 직접 제공할 수 없습니다. 연결 그룹 및 배포 테넌트와 함께 사용해야 합니다.

**표준 배포**  
다중 테넌트 기능이 없는 배포입니다. 이러한 배포는 단일 웹 사이트 또는 앱을 지원하는 데 가장 적합합니다.

**배포 테넌트**  
배포 테넌트는 다중 테넌트 배포 구성을 상속합니다. 일부 구성 설정은 배포 테넌트 수준에서 사용자 지정할 수 있습니다. 배포 테넌트 도메인 또는 하위 도메인을 포함하면 배포 테넌트에는 다중 테넌트 배포에서 상속할 수 있는 유효한 TLS 인증서가 있어야 합니다.  
배포 테넌트는 연결 그룹과 연결되어야 합니다. CloudFront는 배포 테넌트를 만들 때 연결 그룹을 만들고 해당 연결 그룹에 배포 테넌트를 자동으로 할당합니다.

**멀티테넌시**  
구성과 인프라를 공유하면서 다중 테넌트 배포를 사용하여 여러 도메인의 콘텐츠를 제공할 수 있습니다. 이 접근 방식을 사용하면 여러 도메인(테넌트라고 함)이 자체 사용자 지정을 유지하면서 다중 테넌트 배포의 공통 설정을 공유할 수 있습니다.

**연결 그룹**  
뷰어에게 콘텐츠를 제공하는 CloudFront 라우팅 엔드포인트를 제공합니다. 배포 테넌트 도메인 또는 하위 도메인에 대해 만든 CNAME 레코드에 해당하는 CloudFront 라우팅 엔드포인트를 가져오려면 각 배포 테넌트를 연결 그룹에 연결해야 합니다. 연결 그룹은 여러 배포 테넌트 간에 공유할 수 있습니다. 연결 그룹은 IPv6 및 애니캐스트 IP 목록 설정 등의 배포 테넌트의 라우팅 설정을 관리합니다.

**파라미터**  
오리진 경로 및 도메인 이름과 같은 자리 표시자 값의 키-값 페어 목록입니다. 다중 테넌트 배포에서 파라미터를 정의하고 배포 테넌트 수준에서 해당 파라미터의 값을 제공할 수 있습니다. 배포 테넌트에 파라미터 값을 입력해야 하는지 여부를 선택합니다.  
배포 테넌트에서 선택 사항 파라미터 값을 제공하지 않으면 다중 테넌트 배포의 기본값이 값으로 사용됩니다.

**CloudFront 라우팅 엔드포인트**  
연결 그룹의 표준 DNS입니다(예: `d123.cloudfront.net`). 배포 테넌트 도메인 또는 하위 도메인의 CNAME 레코드에 사용됩니다.

**사용자 지정**  
배포 테넌트가 다중 테넌트 배포와 *다른* 설정을 사용하도록 사용자 지정할 수 있습니다. 각 배포 테넌트에서 다른 AWS WAF 웹 액세스 제어 목록(ACL), TLS 인증서 및 지리적 제한 사항을 지정할 수 있습니다.

## 지원되지 않는 기능
<a name="unsupported-saas"></a>

다음 기능은 다중 테넌트 배포에 사용할 수 없습니다. 표준 배포와 동일한 설정을 사용하여 새 멀티 테넌트 배포를 만들면 일부 설정을 사용할 수 없으니 참고하시기 바랍니다.

**참고**  
현재 AWS Firewall Manager 정책은 표준 배포에만 적용됩니다. Firewall Manager는 향후 릴리스에서 다중 테넌트 배포에 대한 지원을 추가할 예정입니다.
표준 배포와 달리 *배포 테넌트* 수준에서 도메인 이름(별칭)을 지정합니다. 자세한 내용은 [CloudFront 배포 테넌트에 대한 인증서 요청](managed-cloudfront-certificates.md) 및 [CreateDistributionTenant](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistributionTenant.html) API 작업을 확인하시기 바랍니다.
+ [지속적 배포](continuous-deployment.md)
+ [오리진 액세스 ID(OAI)](private-content-restricting-access-to-s3.md#private-content-restricting-access-to-s3-oai) - [오리진 액세스 제어(OAC)](private-content-restricting-access-to-origin.md)를 대신 사용합니다.
+ [전용 IP 사용자 지정 SSL 지원](DownloadDistValuesGeneral.md#DownloadDistValuesClientsSupported) - `sni-only` 메서드만 지원됩니다.
+ [AWS WAF 클래식(V1) 웹 ACL](DownloadDistValuesGeneral.md#DownloadDistValuesWAFWebACL) - AWS WAF V2 웹 ACL만 지원됩니다.
+ [표준 로깅(레거시)](standard-logging-legacy-s3.md)
+ [최소 TTL](DownloadDistValuesCacheBehavior.md#DownloadDistValuesMinTTL)
+ [기본 TTL](DownloadDistValuesCacheBehavior.md#DownloadDistValuesDefaultTTL)
+ [최대 TTL](DownloadDistValuesCacheBehavior.md#DownloadDistValuesMaxTTL)
+ [ForwardedValues](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ForwardedValues.html)
+ [PriceClass](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_DistributionConfig.html)
+ [신뢰할 수 있는 서명자 ](DownloadDistValuesCacheBehavior.md#DownloadDistValuesTrustedSigners)
+ [스무스 스트리밍](DownloadDistValuesCacheBehavior.md#DownloadDistValuesSmoothStreaming)
+ [AWS Identity and Access Management(IAM) 서버 인증서](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html)
+ [전용 IP 주소](cnames-https-dedicated-ip-or-sni.md#cnames-https-dedicated-ip)
+ [최소 프로토콜 버전 SSLv3](DownloadDistValuesGeneral.md#DownloadDistValues-security-policy)

다음 설정은 다중 테넌트 배포 또는 배포 테넌트에서 구성할 수 없습니다. 대신 연결 그룹에서 원하는 값을 설정합니다. 연결 그룹에 연결된 모든 배포 테넌트는 이러한 설정을 사용합니다. 자세한 내용은 [사용자 지정 연결 그룹 생성(선택 사항)](custom-connection-group.md) 섹션을 참조하세요.
+ [IPv6 활성화(뷰어 요청)](DownloadDistValuesGeneral.md#DownloadDistValuesEnableIPv6)
+ [애니캐스트 고정 IP 목록](request-static-ips.md)

# 배포 테넌트 사용자 지정
<a name="tenant-customization"></a>

다중 테넌트 배포를 사용하는 경우 배포 테넌트는 다중 테넌트 배포 구성을 상속합니다. 하지만 배포 테넌트 수준에서 일부 설정을 사용자 지정할 수 있습니다.

다음을 사용자 지정할 수 있습니다.
+ **파라미터** - 파라미터는 오리진 도메인 또는 원본 경로에 사용할 수 있는 키-값 페어입니다. [파라미터가 배포 테넌트와 작동하는 방식](#tenant-customize-parameters)을(를) 참조하세요.
+ **AWS WAF 웹 ACL(V2)** - 배포 테넌트에 대해 별도의 웹 ACL을 지정할 수 있습니다. 그러면 다중 테넌트 배포에 사용되는 웹 ACL이 *재정의*됩니다. 특정 배포 테넌트에 대해 이 설정을 사용 해제할 수도 있습니다. 즉, 배포 테넌트는 다중 테넌트 배포에서 웹 ACL 보호를 상속하지 않습니다. 자세한 내용은 [AWS WAF 웹 ACL](DownloadDistValuesGeneral.md#DownloadDistValuesWAFWebACL) 섹션을 참조하세요.
+ **지리적 제한 **- 배포 테넌트에 지정하는 지리적 제한은 다중 테넌트 배포에 대한 모든 지리적 제한을 *재정의*합니다. 예를 들어 다중 테넌트 배포에서 독일(DE)을 차단하면 모든 연결된 배포 테넌트도 DE를 차단합니다. 그러나 특정 배포 테넌트에 대해 DE를 허용하면 해당 배포 테넌트 설정이 다중 테넌트 배포에 대한 설정을 재정의합니다. 자세한 내용은 [콘텐츠의 지리적 배포 제한](georestrictions.md) 섹션을 참조하세요.
+ **무효화 경로 **- 배포 테넌트에 대해 무효화하려는 콘텐츠의 파일 경로를 지정합니다. 자세한 내용은 [파일 무효화](Invalidation_Requests.md) 섹션을 참조하세요.
+ **사용자 지정 TLS 인증서** - 배포 테넌트에 지정하는 AWS Certificate Manager(ACM) 인증서는 다중 테넌트 배포에 제공된 인증서를 보완합니다. 하지만 동일한 도메인이 다중 테넌트 배포 및 배포 테넌트 인증서 모두에 포함되는 경우 테넌트 인증서가 사용됩니다. 자세한 내용은 [CloudFront 배포 테넌트에 대한 인증서 요청](managed-cloudfront-certificates.md) 섹션을 참조하세요.
+ **도메인 이름** - 배포 테넌트당 하나 이상의 도메인 이름을 지정해야 합니다.

## 파라미터가 배포 테넌트와 작동하는 방식
<a name="tenant-customize-parameters"></a>

파라미터는 자리 표시자 값에 사용할 수 있는 키-값 페어입니다. 다중 테넌트 배포에 사용할 파라미터를 정의하고 필요 여부를 지정합니다.

다중 테넌트 배포에서 파라미터를 정의할 때 해당 파라미터를 배포 테넌트 수준에서 입력해야 하는지 여부를 선택합니다.
+ 다중 테넌트 배포에서 *필요*에 따라 파라미터를 정의하는 경우 배포 테넌트 수준에서 입력해야 합니다. (상속되지 않음)
+ 파라미터가 *필요하지 않은* 경우 배포 테넌트에서 상속된 다중 테넌트 배포에 기본값을 제공할 수 있습니다.

다음 속성에 파라미터를 사용할 수 있습니다.
+ 오리진 도메인 이름
+ 오리진 경로

다중 테넌트 배포에서는 위의 각 속성에 대해 최대 2개의 파라미터를 정의할 수 있습니다.

## 파라미터 예시
<a name="examples-parameters"></a>

도메인 이름 및 오리진 경로에 파라미터를 사용하려면 다음 예시를 참조하세요.

**도메인 이름 파라미터**

다중 테넌트 배포 구성에서 다음 예시와 같이 오리진 도메인 이름에 대한 파라미터를 정의할 수 있습니다.

**Amazon S3**
+ `{{parameter1}}.amzn-s3-demo-logging-bucket.s3.us-east-1.amazonaws.com`
+ `{{parameter1}}–amzn-s3-demo-logging-bucket.s3.us-east-1.amazonaws.com`

**사용자 지정 오리진**
+ `{{parameter1}}.lambda-url.us-east-1.on.aws`
+ `{{parameter1}}.mediapackagev2.ap-south-1.amazonaws.com`

배포 테넌트를 생성할 때 `parameter1`에 사용할 값을 지정합니다.

```
"Parameters": [
  {
    "Name": "parameter1",
    "Value": "mycompany-website"
  }
]
```

다중 테넌트 배포에 지정된 이전 예시를 사용하면 배포 테넌트의 오리진 도메인 이름이 다음으로 확인됩니다.
+ `mycompany-website.amzn-s3-demo-bucket3.s3.us-east-1.amazonaws.com`
+ `mycompany-website–amzn-s3-demo-bucket3.s3.us-east-1.amazonaws.com`
+ `mycompany-website.lambda-url.us-east-1.on.aws`
+ `mycompany-website.mediapackagev2.ap-south-1.amazonaws.com`

**오리진 경로 파라미터**

마찬가지로 다음 예시와 같이 다중 테넌트 배포에서 오리진 경로에 대한 파라미터를 정의할 수 있습니다.
+ `/{{parameter2}}`
+ `/{{parameter2}}/test`
+ `/public/{{parameter2}}/test`
+ `/search?name={{parameter2}}`

배포 테넌트를 생성할 때 `parameter2`에 사용할 값을 지정합니다.

```
"Parameters": [
  {
    "Name": "parameter2",
    "Value": "myBrand"
  }
]
```

다중 테넌트 배포에 지정된 이전 예시를 사용하면 배포 테넌트의 오리진 경로가 다음으로 확인됩니다.
+ `/myBrand`
+ `/myBrand/test`
+ `/public/myBrand/test`
+ `/search?name=myBrand`



**Example 예제**  
고객을 위해 여러 웹 사이트(테넌트)를 만들려는 경우 각 배포 테넌트 리소스가 올바른 값을 사용하는지 확인해야 합니다.  

1. 다중 테넌트 배포를 만들고 배포 테넌트 구성에 2개의 파라미터를 포함합니다.

1. 오리진 도메인 이름에서 *customer-name*이라는 파라미터를 만들고 필수로 지정합니다. S3 버킷 앞에 파라미터를 입력하면 다음과 같이 표시됩니다.

   `{{customer-name}}.amzn-s3-demo-bucket3.s3.us-east-1.amazonaws.com`.

1. 오리진 경로에서 *my-theme*이라는 두 번째 파라미터를 만들고 기본값이 *기본*인 선택 사항을 지정합니다. 오리진 경로는 `/{{my-theme}}`으로 표시됩니다.

1. 배포 테넌트를 만들 때는 다음과 같이 합니다.
   + 도메인 이름의 경우 다중 테넌트 배포에서 필수로 표시되는 *customer-name*의 값을 지정해야 합니다.
   + 오리진 경로의 경우 선택적으로 *my-theme*의 값을 지정하거나 기본값을 사용할 수 있습니다.

# CloudFront 배포 테넌트에 대한 인증서 요청
<a name="managed-cloudfront-certificates"></a>

배포 테넌트를 만들면 테넌트는 다중 테넌트 배포에서 공유 AWS Certificate Manager(ACM) 인증서를 상속합니다. 이 공유 인증서는 다중 테넌트 배포와 연결된 모든 테넌트에 HTTPS를 제공합니다.

CloudFront 배포 테넌트를 만들거나 업데이트하여 도메인을 추가할 때 ACM에서 관리형 CloudFront 인증서를 추가할 수 있습니다. 그런 다음 CloudFront는 사용자를 대신하여 ACM에서 HTTP 검증 인증서를 가져옵니다. 이 테넌트 수준 ACM 인증서를 사용자 지정 도메인 구성에 사용할 수 있습니다. CloudFront는 갱신 워크플로를 간소화하여 인증서를 최신 상태로 유지하고 콘텐츠 전송을 중단 없이 보호합니다.

**참고**  
인증서를 소유하고 있지만 CloudFront 리소스*에만* 사용할 수 있으며 프라이빗 키는 내보낼 수 *없습니다*.

배포 테넌트를 만들거나 업데이트할 때 인증서를 요청할 수 있습니다.

**Topics**
+ [도메인 및 인증서 추가(분산 테넌트)](#vanity-domain-tls-tenant)
+ [도메인 설정 완료](#complete-domain-ownership)
+ [도메인을 CloudFront로 가리키기](#point-domains-to-cloudfront)
+ [도메인 고려 사항(배포 테넌트)](#tenant-domain-considerations)
+ [와일드카드 도메인(배포 테넌트)](#tenant-wildcard-domains)

## 도메인 및 인증서 추가(분산 테넌트)
<a name="vanity-domain-tls-tenant"></a>

다음 절차에서는 도메인을 추가하고 배포 테넌트의 인증서를 업데이트하는 방법을 보여줍니다.

**도메인 및 인증서를 추가하려면(배포 테넌트) 다음과 같이 합니다.**

1. AWS Management Console에 로그인한 다음 [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)에서 CloudFront 콘솔을 엽니다.

1. **SaaS**에서 **배포 테넌트**를 선택합니다.

1. 배포 테넌트를 검색합니다. 검색 창의 드롭다운 메뉴를 사용하여 도메인, 이름, 배포 ID, 인증서 ID, 연결 그룹 ID 또는 웹 ACL ID를 기준으로 필터링합니다.

1. 배포 테넌트 이름을 선택합니다.

1. **도메인**에서 **도메인 관리**를 선택합니다.

1. **인증서**에서 배포 테넌트에 대한 **사용자 지정 TLS 인증서**를 원하는지 선택합니다. 인증서는 도메인 이름을 사용할 권한이 있는지 확인합니다. 미국 동부(버지니아 북부) 리전에서 인증서를 가져와야 합니다.

1. **도메인**에서 **도메인 추가**를 선택하고 도메인 이름을 입력합니다. 도메인에 따라 입력한 도메인 이름 아래에 다음 메시지가 표시됩니다.
   + 이 도메인은 인증서의 적용을 받습니다.
   + 이 도메인은 검증 보류 중인 인증서의 적용을 받습니다.
   + 이 도메인은 인증서의 적용을 받지 않습니다. (즉, 도메인 소유권을 확인해야 합니다.)

1. **배포 테넌트 업데이트**를 선택합니다.

   테넌트 세부 정보 페이지의 **도메인**에서 다음 필드를 볼 수 있습니다.
   + **도메인 소유권** - 도메인 소유권의 상태입니다. CloudFront가 콘텐츠를 제공할 수 있으려면 먼저 TLS 인증서 검증을 사용하여 도메인 소유권을 확인해야 합니다.
   + **DNS 상태** - 트래픽을 올바르게 라우팅하려면 도메인의 DNS 레코드가 CloudFront를 가리켜야 합니다.

1. 도메인 소유권이 확인되지 않은 경우 테넌트 세부 정보 페이지의 **도메인**에서 **도메인 설정 완료**를 선택한 다음, 다음 절차를 완료하여 DNS 레코드가 CloudFront 도메인 이름을 가리키도록 합니다.

## 도메인 설정 완료
<a name="complete-domain-ownership"></a>

다음 절차에 따라 배포 테넌트의 도메인을 소유하고 있는지 확인합니다. 도메인에 따라 다음 절차 중 하나를 선택합니다.

**참고**  
도메인이 이미 Amazon Route 53 별칭 레코드가 있는 CloudFront를 가리키는 경우 도메인 이름 앞에 `_cf-challenge.`를 사용하여 DNS TXT 레코드를 추가해야 합니다. 이 TXT 레코드는 도메인 이름이 CloudFront에 연결되어 있는지 확인합니다. 각 도메인에 대해 이 단계를 반복합니다. 다음은 TXT 레코드를 업데이트하는 방법을 보여줍니다.  
레코드 이름: `_cf-challenge.DomainName`
레코드 유형: `TXT`
레코드 값: `CloudFrontRoutingEndpoint`
예를 들어 TXT 레코드는 `_cf-challenge.example.com TXT d111111abcdef8.cloudfront.net`과 같을 수 있습니다.  
CloudFront 라우팅 엔드포인트는 콘솔의 배포 테넌트 세부 정보 페이지에서 찾거나 *Amazon CloudFront API 참조*의 [ListConnectionGroups](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListConnectionGroups.html) API 작업을 사용하여 찾을 수 있습니다.

**작은 정보**  
SaaS 공급자이고 고객(테넌트)이 DNS에 TXT 레코드를 직접 추가할 필요 없이 인증서를 발급하도록 허용하려면 다음을 수행합니다.  
도메인 `example-saas-provider.com`을 소유한 경우 `customer-123.example-saas-provider.com`과 같이 테넌트에 하위 도메인을 할당합니다.
DNS에서 DNS 구성에 `_cf-challenge.customer-123.example-saas-provider.com TXT d111111abcdef8.cloudfront.net` TXT 레코드를 추가합니다.
그런 다음 고객(테넌트)은 자체 DNS 레코드를 업데이트하여 도메인 이름을 제공된 하위 도메인에 매핑할 수 있습니다.  
`www.customer-domain.com CNAME customer-123.example-saas-provider.com`

------
#### [ I have existing traffic ]

도메인이 가동 중지 시간을 허용할 수 없는 경우 이 옵션을 선택합니다. 오리진/웹 서버에 액세스할 수 있어야 합니다. 다음 절차에 따라 도메인 소유권을 검증합니다.

**기존 트래픽이 있을 때 도메인 설정을 완료하려면 다음과 같이 합니다.**

1. **웹 트래픽 지정**에서 **기존 트래픽이 있음**을 선택한 후 **다음**을 선택합니다.

1. **도메인 소유권 확인**에서 다음 옵션 중 하나를 선택합니다.
   + **기존 인증서 사용** - 기존 ACM 인증서를 검색하거나 나열된 도메인을 포함하는 인증서 ARN을 입력합니다.
   + **수동 파일 업로드** - 웹 서버에 파일을 업로드할 수 있는 직접 액세스 권한이 있는 경우 선택합니다.

     각 도메인에 대한 **토큰 위치**에서 검증 토큰이 포함된 일반 텍스트 파일을 만들고 기존 서버의 지정된 **파일 경로**에서 오리진에 업로드합니다. 예를 들어 이 파일에 대한 경로는 다음(`/.well-known/pki-validation/acm_9c2a7b2ec0524d09fa6013efb73ad123.txt`)과 같을 수 있습니다. 이 단계를 완료하면 ACM은 토큰을 확인한 다음, 도메인에 대한 TLS 인증서를 발급합니다.
   + **HTTP 리디렉션** - 웹 서버에 파일을 업로드할 수 있는 직접 액세스 권한이 없거나 CDN 또는 프록시 서비스를 사용하는 경우 선택합니다.

     각 도메인에서 기존 서버에 301 리디렉션을 만듭니다. **다음에서 리디렉션**에서 잘 알려진 경로를 복사하고 **다음으로 리디렉션**에서 지정된 인증서 엔드포인트를 가리킵니다. 리디렉션은 다음 예제와 비슷할 수 있습니다.

     ```
     If the URL matches: example.com/.well-known/pki-validation/leabe938a4fe077b31e1ff62b781c123.txt
     Then the settings are:Forwarding URL
     Then 301 Permanent Redirect:To validation.us-east-1.acm-validations.aws/123456789012/.well-known/pki-validation/leabe938a4fe077b31e1ff62b781c123.txt
     ```
**참고**  
**인증서 상태 확인**을 선택하여 ACM이 도메인에 대한 인증서를 발급하는 경우를 확인할 수 있습니다.

1. **다음**을 선택합니다.

1. [도메인을 CloudFront로 가리키기](#point-domains-to-cloudfront)의 단계를 완료합니다.

------
#### [ I don't have traffic ]

새 도메인을 추가하는 경우 이 옵션을 선택합니다. CloudFront에서 인증서 검증을 관리합니다.

**트래픽이 없는 경우 도메인 설정을 완료하려면 다음과 같이 합니다.**

1. **웹 트래픽 지정**에서 **아직 트래픽이 없음**을 선택합니다.

1. 각 도메인 이름에서 [도메인을 CloudFront로 가리키기](#point-domains-to-cloudfront)의 단계를 완료합니다.

1. 각 도메인 이름에서 DNS 레코드를 업데이트한 후 **다음**을 선택합니다.

1. 인증서가 발급될 때까지 기다립니다.
**참고**  
**인증서 상태 확인**을 선택하여 ACM이 도메인에 대한 인증서를 발급하는 경우를 확인할 수 있습니다.

1. **제출**을 선택합니다.

------

## 도메인을 CloudFront로 가리키기
<a name="point-domains-to-cloudfront"></a>

DNS 레코드를 업데이트하여 각 도메인의 트래픽을 CloudFront 라우팅 엔드포인트로 라우팅합니다. 여러 도메인 이름을 가질 수 있지만 모두 이 엔드포인트로 확인되어야 합니다.

**도메인을 CloudFront로 가리키려면 다음과 같이 합니다.**

1. d111111abcdef8.cloudfront.net 등의 CloudFront 라우팅 엔드포인트 값을 복사합니다.

1. DNS 레코드를 업데이트하여 각 도메인의 트래픽을 CloudFront 라우팅 엔드포인트로 라우팅합니다.

   1. 도메인 등록 또는 DNS 공급자의 관리 콘솔에 로그인합니다.

   1. 도메인의 DNS 관리 섹션으로 이동합니다.
      + **하위 도메인** - CNAME 레코드를 만듭니다. 예제:
        + **이름** - 하위 도메인(예: `www` 또는 `app`)
        + **값/대상** - CloudFront 라우팅 엔드포인트
        + **레코드 유형** - CNAME
        + **TTL** – 3600(또는 사용 사례에 적합한 것)
      + **apex/루트 도메인의 경우** - 루트 또는 apex 도메인 수준에서는 표준 CNAME 레코드를 사용할 수 없으므로 고유한 DNS 구성이 필요합니다. 대부분의 DNS 공급자는 ALIAS 레코드를 지원하지 않기 때문에 Route 53에서 ALIAS 레코드를 생성하는 것이 좋습니다. 예제:
        + **이름** - apex 도메인(예: `example.com`)
        + **레코드 유형** - A
        + **별칭** - 예
        + **별칭 대상** - CloudFront 라우팅 엔드포인트
        + **라우팅 정책** - 단순(또는 사용 사례에 적합한 것)

   1. DNS 변경 사항이 채워졌는지 확인합니다. (이는 일반적으로 TTL이 만료될 때 발생합니다. 경우에 따라 24\$148시간이 걸릴 수 있습니다.) `dig` 또는 `nslookup` 등의 도구를 사용합니다.

      ```
      dig www.example.com
      # Should eventually return a CNAME pointing to your CloudFront routing endpoint
      ```

1. CloudFront 콘솔로 이동하여 **제출**을 선택합니다. 도메인이 활성 상태이면 CloudFront는 도메인이 트래픽을 처리할 준비가 되었음을 나타내도록 도메인 상태를 업데이트합니다.

자세한 내용은 DNS 공급자의 설명서를 참조하세요.
+ [Cloudflare](https://developers.cloudflare.com/dns/manage-dns-records/how-to/create-dns-records/)
+ [ClouDNS](https://www.cloudns.net/wiki/article/9/)
+ [DNSimple](https://support.dnsimple.com/categories/dns/)
+ [Gandi.net](https://www.gandi.net/)
+ [GoDaddy](https://www.godaddy.com/help/manage-dns-records-680)
+ [Google Cloud DNS](https://cloud.google.com/dns/docs/records)
+ [Namecheap](https://www.namecheap.com/support/knowledgebase/article.aspx/767/10/how-to-change-dns-for-a-domain/)

## 도메인 고려 사항(배포 테넌트)
<a name="tenant-domain-considerations"></a>

도메인이 활성 상태이면 도메인 제어가 설정되고 CloudFront는 이 도메인에 대한 모든 뷰어 요청에 응답합니다. 활성화되면 도메인을 비활성화하거나 비활성 상태로 변경할 수 없습니다. 이미 사용 중인 동안에는 도메인을 다른 CloudFront 리소스와 연결할 수 없습니다. 도메인을 다른 배포와 연결하려면 [UpdateDomainAssociation](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDomainAssociation.html) 요청을 사용하여 도메인을 한 CloudFront 리소스에서 다른 CloudFront 리소스로 이전합니다.

도메인이 비활성 상태이면 CloudFront는 도메인에 대한 뷰어 요청에 응답하지 않습니다. 도메인이 비활성 상태일 때 다음 사항에 유의합니다.
+ 보류 중인 인증서 요청이 있는 경우 CloudFront는 잘 알려진 경로에 대한 요청에 응답합니다. 요청이 보류 중인 동안에는 도메인을 다른 CloudFront 리소스와 연결할 수 없습니다.
+ 보류 중인 인증서 요청이 없는 경우 CloudFront는 도메인에 대한 요청에 응답하지 않습니다. 도메인을 다른 CloudFront 리소스와 연결할 수 있습니다.
+ 배포 테넌트당 *보류 중인 인증서 요청은 하나*만 가질 수 있습니다. 추가 도메인에 대해 다른 인증서를 요청하려면 먼저 보류 중인 기존 요청을 취소해야 합니다. 기존 인증서 요청을 취소해도 연결된 ACM 인증서는 삭제되지 않습니다. ACM API를 사용하여 인증서를 삭제할 수 있습니다.
+ 배포 테넌트에 새 인증서를 적용하면 이전 인증서의 연결이 해제됩니다. 인증서를 재사용하여 다른 배포 테넌트의 도메인에 적용할 수 있습니다.

DNS 검증 인증서 갱신과 마찬가지로 인증서 갱신이 성공하면 알림이 전송됩니다. 하지만 사용자는 조치를 취할 필요가 없습니다. CloudFront는 도메인의 인증서 갱신을 자동으로 관리합니다.

**참고**  
인증서 리소스를 만들거나 업데이트하기 위해 ACM API 작업을 호출할 필요가 없습니다. [CreateDistributionTenant](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistributionTenant.html) 및 [UpdateDistributionTenant](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistributionTenant.html) API 작업을 사용하여 관리형 인증서 요청에 대한 세부 정보를 지정하여 인증서를 관리할 수 있습니다.

## 와일드카드 도메인(배포 테넌트)
<a name="tenant-wildcard-domains"></a>

다음과 같은 경우 배포 테넌트에 와일드카드 도메인이 지원됩니다.
+ 상위 다중 테넌트 배포에서 상속된 공유 인증서에 와일드카드가 포함된 경우
+ 배포 테넌트에 유효한 기존 사용자 지정 TLS 인증서를 사용하는 경우

# 사용자 지정 연결 그룹 생성(선택 사항)
<a name="custom-connection-group"></a>

기본적으로 CloudFront는 다중 테넌트 배포를 만들 때 연결 그룹을 만듭니다. 연결 그룹은 콘텐츠에 대한 뷰어 요청이 CloudFront에 연결되는 방식을 제어합니다.

기본값 연결 그룹을 그대로 사용하는 것이 좋습니다. 그러나 엔터프라이즈 애플리케이션을 격리하거나 배포 테넌트 그룹을 별도로 관리해야 하는 경우 사용자 지정 연결 그룹을 만들도록 선택할 수 있습니다. 예를 들어 DDoS 공격이 발생하는 경우 배포 테넌트를 별도의 연결 그룹으로 이전해야 할 수 있습니다. 이렇게 하면 다른 배포 테넌트가 영향을 받지 않도록 보호할 수 있습니다.

## 사용자 지정 연결 그룹 생성(선택 사항)
<a name="create-connection-group"></a>

필요에 따라 배포 테넌트에 대한 사용자 지정 연결 그룹을 만들도록 선택할 수 있습니다.

**사용자 지정 연결 그룹을 만들려면 다음과 같이 합니다(선택 사항).**

1. AWS Management Console에 로그인한 다음 [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)에서 CloudFront 콘솔을 엽니다.

1. 탐색 창에서 **설정**을 선택합니다.

1. **연결 그룹** 설정을 켭니다.

1. 탐색 창에서 **연결 그룹**을 선택한 다음 **연결 그룹 생성**을 선택합니다.

1. **연결 그룹 이름**에 연결 그룹의 이름을 입력합니다. 연결 그룹을 만든 후에는 이 이름을 업데이트할 수 없습니다.

1. **IPv6**에서 이 IP 프로토콜을 사용 설정할지 여부를 지정합니다. 자세한 내용은 [IPv6 활성화(뷰어 요청)](DownloadDistValuesGeneral.md#DownloadDistValuesEnableIPv6) 섹션을 참조하세요.

1. **애니캐스트 고정 IP 목록**에서, IP 주소 집합에서 배포 테넌트로 트래픽을 전송할지 여부를 지정합니다. 자세한 내용은 [애니캐스트 고정 IP 목록](request-static-ips.md)을 참조하시기 바랍니다.

1. (선택 사항) 연결 그룹에 태그를 추가합니다.

1. **연결 그룹 생성**을 선택합니다.

연결 그룹이 만들어지면 지정한 설정과 ARN 및 엔드포인트를 찾을 수 있습니다.
+ ARN은 다음 예제(`arn:aws:cloudfront::123456789012:connection-group/cg_2uVbA9KeWaADTbKzhj9lcKDoM25`)와 비슷하게 표시됩니다.
+ 엔드포인트는 다음 예제(d111111abcdef8.cloudfront.net)와 비슷하게 표시됩니다.

사용자 지정 연결 그룹을 만든 후 편집하거나 삭제할 수 있습니다. 연결 그룹을 삭제하려면 먼저 모든 연결된 배포 테넌트를 삭제해야 합니다. 다중 테넌트 배포를 만들 경우 CloudFront에서 만든 기본 연결 그룹은 삭제할 수 없습니다.

**중요**  
배포 테넌트의 연결 그룹을 변경하면 CloudFront는 배포 테넌트에 대한 트래픽을 계속 전달하지만 지연 시간이 증가합니다. 새 연결 그룹에서 CloudFront 라우팅 엔드포인트를 사용하도록 배포 테넌트의 DNS 레코드를 업데이트하는 것이 좋습니다.  
DNS 레코드를 업데이트할 때까지 CloudFront는 웹 사이트가 현재 DNS를 가리키고 있는 라우팅 엔드포인트에 대해 정의된 설정을 기반으로 라우팅합니다. 예를 들어 기본값 연결 그룹이 애니캐스트 고정 IP를 사용하지 않지만 새로운 사용자 지정 연결 그룹은 사용한다고 가정합니다. CloudFront가 사용자 지정 연결 그룹의 배포 테넌트에 애니캐스트 고정 IP를 사용하기 전에 DNS 레코드를 업데이트해야 합니다.

# 다중 테넌트 배포로 마이그레이션
<a name="template-migrate-distribution"></a>

CloudFront 표준 배포가 있으며 다중 테넌트 배포로 마이그레이션하려는 경우 다음 단계를 따르세요.

**표준 배포에서 다중 테넌트 배포로 마이그레이션하려면**

1. [지원되지 않는 기능](distribution-config-options.md#unsupported-saas)을(를) 검토합니다.

1. 지원되지 않는 기능을 제외하고 표준 배포와 동일한 구성으로 다중 테넌트 배포를 생성합니다. 자세한 내용은 [콘솔에서 CloudFront 배포 생성](distribution-web-creating-console.md#create-console-distribution) 섹션을 참조하세요.

1. 배포 테넌트를 생성하고 소유한 대체 도메인 이름을 추가합니다.
**주의**  
표준 배포와 연결된 현재 도메인 이름은 사용하지 *마세요*. 대신 자리 표시자 도메인을 추가합니다. 나중에 도메인을 이동합니다. 배포 테넌트 생성에 대한 자세한 내용은 [콘솔에서 CloudFront 배포 생성](distribution-web-creating-console.md#create-console-distribution) 섹션을 참조하세요.

1. 배포 테넌트 도메인에 대한 기존 인증서를 제공합니다. 이 인증서는 자리 표시자 도메인과 이동하려는 도메인에 적용됩니다.

1. 콘솔의 배포 테넌트 세부 정보 페이지에서 CloudFront 라우팅 엔드포인트를 복사합니다. 또는 *Amazon CloudFront API 참조*의 [ListConnectionGroups](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListConnectionGroups.html) API 작업을 사용하여 이를 찾을 수 있습니다.

1. 도메인 소유권을 확인하려면 배포 테넌트의 CloudFront 라우팅 엔드포인트를 가리키는 DCV TXT 레코드를 밑줄( \$1 ) 접두사를 사용하여 생성합니다. 자세한 내용은 [도메인을 CloudFront로 가리키기](managed-cloudfront-certificates.md#point-domains-to-cloudfront) 섹션을 참조하세요.

1. 변경 사항이 전파되면 이전에 표준 배포에 사용한 도메인을 사용하도록 배포 테넌트를 업데이트합니다.
   + **콘솔** - 자세한 지침은 [도메인 및 인증서 추가(분산 테넌트)](managed-cloudfront-certificates.md#vanity-domain-tls-tenant) 섹션을 참조하세요.
   + **API** - *Amazon CloudFront API 참조*의 [UpdateDomainAssociation](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDomainAssociation.html) API 작업을 사용합니다.
**중요**  
이렇게 하면 콘텐츠의 캐시 키가 재설정됩니다. 그런 다음 CloudFront는 새 캐시 키를 사용하여 콘텐츠 캐싱을 시작합니다. 자세한 내용은 [캐시 키 이해](understanding-the-cache-key.md) 섹션을 참조하세요.

1. 도메인이 배포 테넌트의 CloudFront 라우팅 엔드포인트를 가리키도록 DNS 레코드를 업데이트합니다. 이 단계를 완료하면 도메인이 배포 테넌트에 트래픽을 제공할 준비가 됩니다. 자세한 내용은 [도메인을 CloudFront로 가리키기](managed-cloudfront-certificates.md#point-domains-to-cloudfront) 섹션을 참조하세요.

1. (선택 사항) 도메인을 배포 테넌트에 성공적으로 마이그레이션한 후에는 배포 테넌트의 도메인 이름에 적용되는 다른 CloudFront 관리형 인증서를 사용할 수 있습니다. 관리형 인증서를 요청하려면 별도의 TXT 레코드를 생성하여 인증서를 발급하고 [도메인 설정 완료](managed-cloudfront-certificates.md#complete-domain-ownership)의 단계를 따릅니다.