API Gateway API에서 엣지 최적화 사용자 지정 도메인 이름 설정
엣지 최적화 API에 대한 사용자 지정 도메인 이름을 생성하면 API Gateway는 CloudFront 배포와 DNS 레코드를 설정하여 API 도메인 이름을 CloudFront 배포 도메인 이름에 매핑합니다. 그러면 API에 대한 요청은 매핑된 CloudFront 배포를 통해 API Gateway로 라우팅됩니다. 이 매핑은 매핑된 CloudFront 배포를 통해 API Gateway에 라우팅될 사용자 지정 도메인 이름에 바인딩된 API 요청에 사용됩니다.
고려 사항
다음은 엣지 최적화 사용자 지정 도메인 이름에 대한 고려 사항입니다.
-
엣지 최적화 사용자 지정 도메인 이름을 설정하거나 해당 인증서를 업데이트하려면 CloudFront 배포를 업데이트할 수 있는 권한이 있어야 합니다.
CloudFront 배포를 업데이트하려면 다음 권한이 필요합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFrontUpdateDistribution", "Effect": "Allow", "Action": [ "cloudfront:updateDistribution" ], "Resource": [ "*" ] } ] }
-
미국 동부(버지니아 북부) –
us-east-1
리전에서 엣지 최적화 사용자 지정 도메인 이름에 대한 인증서를 요청하거나 가져와야 합니다. -
API Gateway가 생성한 CloudFront 배포는 API Gateway와 연계된 리전별 계정이 소유합니다. CloudTrail에서 이러한 CloudFront 배포를 생성하고 업데이트하는 작업을 추적할 때는 이 API Gateway 계정 ID를 사용해야 합니다. 자세한 내용은 CloudTrail에서 사용자 지정 도메인 이름 생성 로그 단원을 참조하십시오.
-
API Gateway는 CloudFront 배포에서 SNI(Server Name Indication)를 활용하여 엣지 최적화 사용자 지정 도메인 이름을 지원합니다. 필요한 인증서 형식 및 인증서 키 길이의 최대 크기를 포함하여 CloudFront 배포에서 사용자 지정 도메인 이름을 사용하는 방법에 대한 자세한 내용은 Amazon CloudFront 개발자 안내서의 대체 도메인 이름 및 HTTPS 사용을 참조하세요.
-
엣지 최적화 사용자 지정 도메인 이름은 사용할 수 있을 때까지 약 40분이 소요됩니다.
-
엣지 최적화 사용자 지정 도메인 이름을 생성한 후에는 사용자 지정 도메인 이름을 CloudFront 배포 이름에 매핑하는 DNS 레코드를 생성해야 합니다.
엣지 최적화 사용자 지정 도메인 이름 생성
다음 절차에서는 API에 대한 엣지 최적화 사용자 지정 도메인 이름을 생성하는 방법을 설명합니다.
엣지 최적화 사용자 지정 도메인 이름은 사용할 수 있을 때까지 약 40분이 걸리지만, 콘솔에는 연결된 CloudFront 배포 도메인 이름이 인증서 ARN과 함께
형식으로 즉시 표시됩니다. 그 동안 다음 단계를 진행하여 사용자 지정 도메인 이름을 연결된 CloudFront 배포 도메인 이름에 매핑하기 위한 DNS 레코드 별칭을 구성할 수 있습니다.distribution-id
.cloudfront.net
엣지 최적화 사용자 지정 도메인 이름에 대한 DNS 레코드 생성
엣지 최적화 사용자 지정 도메인 이름을 만들기 시작한 후 DNS 레코드 별칭을 설정합니다.
Route 53를 사용하여 사용자 지정 도메인 이름의 A 레코드 별칭을 생성하고 CloudFront 배포 도메인 이름을 별칭 대상으로 지정하는 것이 좋습니다. 다시 말해서 사용자 지정 도메인이 zone apex라고 하더라도 Route 53은 사용자 지정 도메인 이름을 라우팅할 수 있습니다. 자세한 내용은 Amazon Route 53 개발자 안내서의 별칭 및 비별칭 리소스 레코드 세트 간의 선택에서 확인할 수 있습니다.
Amazon Route 53에 대한 지침은 Amazon Route 53 개발자 안내서에서 도메인 이름을 사용하여 Amazon API Gateway API로 트래픽 라우팅을 참조하세요.
CloudTrail에서 사용자 지정 도메인 이름 생성 로그
계정에서 수행한 API Gateway 호출을 로깅하기 위해 CloudTrail을 활성화한 경우, API에 대한 사용자 지정 도메인 이름을 생성하거나 업데이트할 때 API Gateway는 연결된 CloudFront 배포 업데이트를 기록합니다. 이 로그는 us-east-1
에서 사용할 수 있습니다. 이러한 CloudFront 배포는 API Gateway가 소유하므로, 이러한 각 보고된 CloudFront 배포는 API 소유자의 계정 ID 대신 다음과 같은 리전별 API Gateway 계정 ID 중 하나로 식별됩니다.
리전 |
계정 ID |
---|---|
us-east-1 | 392220576650 |
us-east-2 | 718770453195 |
us-west-1 | 968246515281 |
us-west-2 | 109351309407 |
ca-central-1 | 796887884028 |
eu-west-1 | 631144002099 |
eu-west-2 | 544388816663 |
eu-west-3 | 061510835048 |
eu-central-1 | 474240146802 |
eu-central-2 | 166639821150 |
eu-north-1 | 394634713161 |
eu-south-1 | 753362059629 |
eu-south-2 | 359345898052 |
ap-northeast-1 | 969236854626 |
ap-northeast-2 | 020402002396 |
ap-northeast-3 | 360671645888 |
ap-southeast-1 | 195145609632 |
ap-southeast-2 | 798376113853 |
ap-southeast-3 | 652364314486 |
ap-southeast-4 | 849137399833 |
ap-south-1 | 507069717855 |
ap-south-2 | 644042651268 |
ap-east-1 | 174803364771 |
sa-east-1 | 287228555773 |
me-south-1 | 855739686837 |
me-central-1 | 614065512851 |
사용자 지정 도메인 이름을 호스트 이름으로 사용하여 API의 기본 경로 매핑 구성
기본 경로 매핑을 사용하여 단일 사용자 지정 도메인 이름을 여러 API의 호스트 이름으로 사용할 수 있습니다. 이렇게 하면 사용자 지정 도메인 이름 및 연결된 기본 경로의 결합을 통해 API에 액세스할 수 있습니다.
예를 들어, API 게이트웨이에서 PetStore
라는 API와 Dogs
라는 다른 API를 생성하고 api.example.com
이라는 사용자 지정 도메인 이름을 설정한 경우 PetStore
API의 URL을 https://api.example.com
으로 설정할 수 있습니다.
이렇게 하면 PetStore
API가 빈 문자열의 기본 경로와 연결됩니다. PetStore
API의 URL을 https://api.example.com/PetStore
로 설정하면 PetStore
API가 PetStore
의 기본 경로와 연결됩니다. Dogs
API에 대해 MyDogList
의 기본 경로를 할당할 수 있습니다. https://api.example.com/MyDogList
의 URL은 Dogs
API의 루트 URL입니다.
여러 수준에서 API 매핑을 구성하려면 지역 사용자 지정 도메인 이름만 사용할 수 있습니다. 엣지 최적화 사용자 지정 도메인 이름은 사용할 수 없습니다. 자세한 내용은 API 스테이지를 REST API에 대한 사용자 지정 도메인 이름에 매핑 단원을 참조하십시오.
다음 절차에서는 사용자 지정 도메인 이름에서 API 스테이지로 경로를 매핑하도록 API 매핑을 설정합니다.
ACM에 가져온 인증서 교체
ACM은 발급한 인증서의 갱신을 자동으로 처리합니다. 사용자 지정 도메인 이름에 대해 ACM이 발급한 인증서는 교체할 필요가 없습니다. CloudFront가 사용자를 대신하여 처리합니다.
하지만 인증서를 ACM에 가져와서 사용자 지정 도메인 이름에 사용할 경우 만료되기 전에 인증서를 교체해야 합니다. 여기에는 도메인 이름에 대한 새 타사 인증서를 가져오고 기존 인증서를 새 인증서로 교체하는 작업이 포함됩니다. 새로 가져온 인증서가 만료되면 이 프로세스를 반복해야 합니다. 또는 도메인 이름에 대한 새 인증서를 발급하도록 ACM에 요청하고 기존 인증서를 ACM에서 발급한 새 인증서로 교체할 수 있습니다. 이후에는 ACM과 CloudFront에서 인증서 교체를 자동으로 처리하도록 둘 수 있습니다. 새 ACM 인증서를 생성하거나 가져오려면 SSL/TLS 인증서를 생성하거나 ACM으로 가져오려면의 단계를 수행합니다.
다음 절차에서는 도메인 이름에 대한 인증서를 교체하는 방법에 대해 설명합니다.
참고
ACM으로 가져온 인증서를 교체하는 데는 약 40분이 소요됩니다.
사용자 지정 도메인 이름을 사용하여 API 호출
사용자 지정 도메인 이름을 사용하여 API를 호출하는 것은 올바른 URL을 사용한 경우 기본 도메인 이름을 사용하여 API를 호출하는 것과 동일합니다.
다음 예제에서는 기본 URL 세트와 지정된 리전(udxjef
) 및 해당 사용자 지정 도메인 이름(qf3duz
)의 두 API(us-east-1
및 api.example.com
)에 해당되는 사용자 지정 URL을 비교 및 대비합니다.
API ID | Stage | 기본 URL | 기본 경로 | 사용자 지정 URL |
---|---|---|---|---|
udxjef | prod | https://udxjef.execute-api.us-east-1.amazonaws.com/prod | /petstore | https://api.example.com/petstore |
udxjef | tst | https://udxjef.execute-api.us-east-1.amazonaws.com/tst | /petdepot | https://api.example.com/petdepot |
qf3duz | dev | https://qf3duz.execute-api.us-east-1.amazonaws.com/dev | /bookstore | https://api.example.com/bookstore |
qf3duz | tst | https://qf3duz.execute-api.us-east-1.amazonaws.com/tst | /bookstand | https://api.example.com/bookstand |
API Gateway는 SNI(Server Name Indication)
API Gateway는 CloudFront 배포에 SNI를 적용합니다. CloudFront에서 사용자 지정 도메인 이름을 사용하는 방법에 대한 자세한 내용은 Amazon CloudFront 사용자 지정 SSL