

# API Gateway의 퍼블릭 REST API에 대한 사용자 지정 도메인 이름
<a name="how-to-custom-domains"></a>

*사용자 지정 도메인 이름*은 API 사용자에게 제공할 수 있는 더 간단하고 직관적인 URL입니다.

API를 배포한 후 사용자 및 사용자 고객은 다음 형식의 기본 URL을 사용하여 API를 호출할 수 있습니다.

```
https://{{api-id}}.execute-api.{{region}}.amazonaws.com/{{stage}}
```

여기서 {{api-id}}는 API Gateway에서 생성되고 {{region}}은 AWS 리전이며 {{stage}}는 API를 배포할 때 사용자가 지정합니다.

URL의 호스트 이름 부분(즉, `{{api-id}}.execute-api.{{region}}.amazonaws.com`)은 API 엔드포인트를 가리킵니다. 기본 API 엔드포인트는 임의로 생성되므로 기억하기가 어려우며 사용자 친화적이지 않습니다.

사용자 지정 도메인 이름을 사용하면 API의 호스트 이름을 설정하고 기본 경로(예: `myservice`)를 선택하여 대체 URL을 API에 매핑할 수 있습니다. 예를 들어, 더 사용자 친화적인 API 기본 URL은 다음과 같습니다.

```
https://api.example.com/myservice
```

**참고**  
프라이빗 API의 사용자 지정 도메인 이름에 대한 자세한 내용은 [API Gateway의 프라이빗 API에 대한 사용자 지정 도메인 이름](apigateway-private-custom-domains.md) 섹션을 참조하세요.

## 고려 사항
<a name="custom-domain-considerations"></a>

다음 고려 사항은 사용자 지정 도메인 이름 사용에 영향을 미칠 수 있습니다.
+ API의 기본 엔드포인트를 비활성화할 수 있습니다. 클라이언트는 여전히 기본 엔드포인트에 연결할 수 있지만 `403 Forbidden` 상태 코드를 받게 됩니다.
+ 리전 사용자 지정 도메인 이름은 REST API 및 HTTP API와 연결될 수 있습니다. [API Gateway 버전 2 API](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/api-reference.html)를 사용하여 REST API에 대한 리전 사용자 지정 도메인 이름을 생성하고 관리할 수 있습니다.
+ 사용자 지정 도메인 이름은 모든 AWS 계정에 걸쳐 한 리전 내에서 고유해야 합니다.
+ 엣지 최적화 엔드포인트와 리전 엔드포인트 간에 사용자 지정 도메인 이름을 마이그레이션할 수 있지만 퍼블릭 사용자 지정 도메인을 프라이빗 사용자 지정 도메인 이름으로 마이그레이션할 수는 없습니다.
+ DNS 공급자의 리소스 레코드를 생성하거나 업데이트하여 API 엔드포인트에 매핑해야 합니다. 이렇게 매핑하지 않으면 사용자 지정 도메인 이름이 목적지인 API 요청은 API Gateway에 도달할 수 없습니다.
+ 와일드카드 인증서를 사용하면 기본 할당량을 초과하지 않고 거의 무제한 수의 도메인 이름을 지원할 수 있습니다. 자세한 내용은 [와일드카드 사용자 정의 도메인 이름](#wildcard-custom-domain-names) 섹션을 참조하세요.
+ 사용자 지정 도메인에 대한 보안 정책을 선택할 수 있습니다. 자세한 내용은 [API Gateway에서 사용자 지정 도메인에 대한 보안 정책 선택](apigateway-custom-domain-tls-version.md) 섹션을 참조하세요.
+ 여러 수준으로 API 매핑을 구성하려면 리전 사용자 지정 도메인 이름과 TLS 1.2 보안 정책을 사용해야 합니다.

## 사용자 지정 도메인 이름에 대한 사전 조건
<a name="how-to-custom-domains-prerequisites"></a>

퍼블릭 또는 프라이빗 사용자 지정 도메인 이름을 생성하기 위한 사전 요구 사항은 다음과 같습니다. 프라이빗 API의 사용자 지정 도메인 이름에 대한 자세한 내용은 [API Gateway의 프라이빗 API에 대한 사용자 지정 도메인 이름](apigateway-private-custom-domains.md) 섹션을 참조하세요.

### 도메인 이름 등록
<a name="custom-domain-names-register"></a>

API에 대한 사용자 지정 도메인 이름을 설정하려면 등록된 인터넷 도메인 이름이 있어야 합니다. [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/)를 사용하거나 사용자가 선택한 서드 파티 도메인 등록자를 사용하여 인터넷 도메인을 등록할 수 있습니다. 사용자 지정 도메인 이름은 하위 도메인의 이름이거나 등록된 인터넷 도메인의 루트 도메인("zone apex"라고도 함) 이름일 수 있습니다.

도메인 이름은 [RFC 1035](https://tools.ietf.org/html/rfc1035#section-2.3.4) 사양을 따라야 하며 라벨당 최대 63옥텟, 총 255옥텝을 포함할 수 있습니다.

### 사용자 지정 도메인 이름에 대한 인증서를 지정합니다.
<a name="custom-domain-names-certificates"></a>

API에 대한 사용자 지정 도메인 이름을 설정하기 전에 ACM에서 SSL/TLS 인증서를 준비해야 합니다. 사용자 지정 도메인 이름을 생성하는 AWS 리전에서 ACM을 사용할 수 없는 경우 해당 리전의 API Gateway로 인증서를 가져와야 합니다.

SSL/TLS 인증서를 가져오려면 PEM 형식의 SSL/TLS 인증서 본문, 해당하는 프라이빗 키 및 사용자 지정 도메인 이름에 대한 인증서 체인을 제공해야 합니다.

ACM에 저장된 각 인증서는 ARN으로 식별됩니다. ACM에서 발행한 인증서를 사용하면 프라이빗 키 같은 민감한 인증서 세부 정보의 공개를 걱정할 필요가 없습니다. 해당 ARN을 참조하기만 하면 도메인 이름에 대해 AWS에서 관리하는 인증서를 사용할 수 있습니다.

애플리케이션에서 ACM 인증서를 고정하기 위해 인증서 고정(SSL 고정)을 사용하는 경우, AWS가 인증서를 갱신한 후 애플리케이션이 도메인에 연결하지 못하게 될 수 있습니다. 자세한 내용은 *AWS Certificate Manager 사용 설명서*의 [인증서 고정 문제](https://docs.aws.amazon.com/acm/latest/userguide/troubleshooting-pinning.html)를 참조하세요.

## 와일드카드 사용자 정의 도메인 이름
<a name="wildcard-custom-domain-names"></a>

와일드카드 사용자 지정 도메인 이름을 사용하면 [기본 할당량](limits.md)을 초과하지 않고 거의 무제한 수의 도메인 이름을 지원할 수 있습니다. 예를 들어 각 고객에게 고유한 도메인 이름인 `{{customername}}.example.com`을 제공할 수 있습니다.

와일드카드 사용자 지정 도메인 이름을 생성하려면, 와일드카드(`*`)를 루트 도메인의 가능한 모든 하위 도메인을 나타내는 사용자 지정 도메인의 첫 번째 하위 도메인으로 지정할 수 있습니다.

예를 들어 `*.example.com`을 와일드카드 사용자 지정 도메인 이름으로 사용하면 `a.example.com`, `b.example.com` 및 `c.example.com` 등이 하위 도메인이 됩니다. 와일드카드 사용자 지정 도메인 이름을 만들면 모든 하위 도메인이 와일드카드 도메인 이름의 라우팅 모드로 라우팅됩니다. 하위 도메인을 다른 API로 라우팅하려면 다음 중 하나를 수행할 수 있습니다.
+ 라우팅 규칙을 사용하여 수신 요청을 `*.example.com`으로 라우팅한 후 `Host` 헤더를 사용하여 다른 대상 REST API로 다시 라우팅합니다. 자세한 내용은 [예제 4: 와일드카드 도메인 이름에 대한 라우팅 규칙](rest-api-routing-rules-examples.md#rest-api-routing-rules-examples-rule-for-wildcard-domains) 섹션을 참조하세요.
+ 다른 엔드포인트로 라우팅하려는 모든 하위 도메인의 도메인 이름을 만듭니다. 단일 AWS 계정에서 `*.example.com` 및 `a.example.com`을 모두 가질 수 있습니다.

`$context.domainName` 및 `$context.domainPrefix` 컨텍스트 변수를 사용하여 클라이언트가 API를 호출하는 데 사용한 도메인 이름을 확인할 수 있습니다. 컨텍스트 변수에 대해 자세히 알아보려면 [API Gateway의 데이터 변환을 위한 변수](api-gateway-mapping-template-reference.md) 단원을 참조하세요.

와일드카드 사용자 지정 도메인 이름을 생성하려면 DNS 또는 이메일 검증 방법을 사용하여 검증한 ACM에서 발급한 인증서를 제공해야 합니다.

**참고**  
다른 AWS 계정에서 와일드카드 사용자 지정 도메인 이름과 충돌하는 사용자 지정 도메인 이름을 만든 경우에는 와일드카드 사용자 지정 도메인 이름을 생성할 수 없습니다. 예를 들어 계정 A에서 `a.example.com`가 생성된 경우, 계정 B는 와일드카드 사용자 지정 도메인 이름 `*.example.com`을 생성할 수 없습니다.  
계정 A와 계정 B가 한 소유자를 공유하는 경우 [AWS 지원 센터](https://console.aws.amazon.com/support/home#/)에 문의하여 예외를 요청할 수 있습니다.

## 사용자 지정 도메인 이름에 대한 다음 단계
<a name="how-to-custom-domains-next-steps"></a>

사용자 지정 도메인 이름에 대한 다음 단계는 다음과 같습니다.

**다음 단계**
+ SSL/TLS 인증서를 설정하는 방법을 알아보려면 [AWS Certificate Manager에서 인증서 준비](how-to-specify-certificate-for-custom-domain-name.md) 단원을 참조하세요.
+ 리전 사용자 지정 도메인 이름을 생성하는 방법을 알아보려면 [API Gateway에서 리전 사용자 지정 도메인 이름 설정](apigateway-regional-api-custom-domain-create.md) 단원을 참조하세요.
+ 엣지 최적화 사용자 지정 도메인 이름을 생성하는 방법을 알아보려면 [API Gateway API에서 엣지 최적화 사용자 지정 도메인 이름 설정](how-to-edge-optimized-custom-domain-name.md) 단원을 참조하세요.
+ 리전 사용자 지정 도메인 이름과 엣지 최적화 사용자 지정 도메인 이름 간에 마이그레이션하는 방법을 알아보려면 [API Gateway에서 사용자 지정 도메인 이름을 다른 API 엔드포인트 유형으로 마이그레이션](apigateway-regional-api-custom-domain-migrate.md) 단원을 참조하세요.
+ API 스테이지를 사용자 지정 도메인 이름에 연결하는 방법을 알아보려면 [API Gateway에서 사용자 지정 도메인 이름을 통해 API로 트래픽을 전송합니다.](rest-api-routing-mode.md) 단원을 참조하세요.
+ 사용자 지정 도메인 이름에 대한 보안 정책을 선택하는 방법을 알아보려면 [API Gateway에서 사용자 지정 도메인에 대한 보안 정책 선택](apigateway-custom-domain-tls-version.md) 단원을 참조하세요.
+ 사용자 지정 도메인 이름의 기본 엔드포인트를 비활성화하는 방법을 알아보려면 [REST API의 기본 엔드포인트 비활성화](rest-api-disable-default-endpoint.md) 단원을 참조하세요.
+ Route 53 상태 확인을 사용하여 API Gateway API의 DNS 장애 조치를 제어하는 방법을 알아보려면 [API Gateway API에 DNS 장애 조치에 대한 사용자 지정 상태 확인 구성](dns-failover.md) 단원을 참조하세요.

사용자 지정 도메인 이름을 처음 생성하는 경우 먼저 [AWS Certificate Manager에서 인증서 준비](how-to-specify-certificate-for-custom-domain-name.md)으로 시작하여 인증서를 지정한 다음 [API Gateway에서 리전 사용자 지정 도메인 이름 설정](apigateway-regional-api-custom-domain-create.md)로 리전 사용자 지정 도메인 이름을 생성하는 것이 좋습니다.