사용자 지정 도메인 이름을 다른 API 엔드포인트로 마이그레이션 - Amazon API Gateway

사용자 지정 도메인 이름을 다른 API 엔드포인트로 마이그레이션

엣지 최적화 및 리전 엔드포인트 간에 사용자 지정 도메인 이름을 마이그레이션할 수 있습니다. 먼저 사용자 지정 도메인 이름에 대한 기존 endpointConfiguration.types 목록에 새로운 엔드포인트 구성 유형을 추가합니다. 그 다음에 DNS 레코드를 설정하여 사용자 지정 도메인 이름이 새로 프로비저닝된 엔드포인트를 가리키도록 합니다. 선택 사항인 마지막 단계는 폐기된 사용자 지정 도메인 이름 구성 데이터를 제거하는 것입니다.

마이그레이션을 계획할 때는 엣지 최적화 API의 사용자 지정 도메인 이름의 경우 ACM이 제공하는 필수 인증서가 미국 동부(버지니아 북부) 리전(us-east-1)의 인증서여야 한다는 점을 기억해야 합니다. 이 인증서는 모든 지리적 위치에 배포됩니다. 하지만 리전 API의 경우 리전 도메인 이름에 대한 ACM 인증서는 API를 호스팅하는 동일한 리전의 인증서여야 합니다. 먼저 API에 대해 로컬인 리전에 새로운 ACM 인증서를 요청하여 us-east-1 리전에 있지 않은 엣지 최적화 사용자 지정 도메인 이름을 리전 사용자 지정 도메인 이름으로 마이그레이션할 수 있습니다.

API Gateway에서 엣지 최적화 사용자 지정 도메인 이름과 리전 사용자 지정 도메인 이름 간에 마이그레이션을 완료하려면 최대 60초까지 걸릴 수 있습니다. 새로 생성된 엔드포인트가 트래픽을 수신할 준비가 되도록 하는 경우 DNS 레코드를 업데이트하는 시점에 따라 마이그레이션 시간이 달라집니다.

AWS CLI를 사용하여 사용자 지정 도메인 이름 마이그레이션

AWS CLI를 사용하여 엣지 최적화 엔드포인트에서 리전 엔드포인트로 또는 그 반대로 사용자 지정 도메인 이름을 마이그레이션하려면 update-domain-name 명령을 호출하여 새 엔드포인트 유형을 추가하고 선택 사항으로 update-domain-name 명령을 호출하여 이전 엔드포인트 유형을 제거합니다.

엣지 최적화 사용자 지정 도메인 이름을 리전으로 마이그레이션

엣지 최적화 사용자 지정 도메인 이름을 리전 사용자 지정 도메인 이름으로 마이그레이션하려면 다음과 같이 update-domain-name CLI 명령을 호출하십시오.

aws apigateway update-domain-name \ --domain-name 'api.example.com' \ --patch-operations [ \ { op:'add', path: '/endpointConfiguration/types',value: 'REGIONAL' }, \ { op:'add', path: '/regionalCertificateArn', value: 'arn:aws:acm:us-west-2:123456789012:certificate/cd833b28-58d2-407e-83e9-dce3fd852149' } \ ]

리전 인증서는 리전 API와 동일한 리전의 것이어야 합니다.

성공적인 응답에는 다음과 유사한 200 OK 상태 코드와 본문이 있습니다.

{ "certificateArn": "arn:aws:acm:us-east-1:123456789012:certificate/34a95aa1-77fa-427c-aa07-3a88bd9f3c0a", "certificateName": "edge-cert", "certificateUploadDate": "2017-10-16T23:22:57Z", "distributionDomainName": "d1frvgze7vy1bf.cloudfront.net", "domainName": "api.example.com", "endpointConfiguration": { "types": [ "EDGE", "REGIONAL" ] }, "regionalCertificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/cd833b28-58d2-407e-83e9-dce3fd852149", "regionalDomainName": "d-fdisjghyn6.execute-api.us-west-2.amazonaws.com" }

그 결과 얻는 regionalDomainName 속성은 마이그레이션된 리전 사용자 지정 도메인 이름에 대해 리전 API 호스트 이름을 반환합니다. 리전 사용자 지정 도메인 이름이 이 리전 호스트 이름을 가리키도록 DNS 레코드를 설정해야 합니다. 이렇게 하면 목적지가 사용자 지정 도메인 이름인 트래픽이 리전 호스트로 라우팅됩니다.

DNS 레코드가 설정된 후에는 AWS CLI의 update-domain-name 명령을 호출하여 엣지 최적화 사용자 지정 도메인 이름을 제거할 수 있습니다.

aws apigateway update-domain-name \ --domain-name api.example.com \ --patch-operations [ \ {op:'remove', path:'/endpointConfiguration/types', value:'EDGE'}, \ {op:'remove', path:'certificateName'}, \ {op:'remove', path:'certificateArn'} \ ]

리전 사용자 지정 도메인 이름을 엣지 최적화 사용자 지정 도메인 이름으로 마이그레이션

리전 사용자 지정 도메인 이름을 엣지 최적화 사용자 지정 도메인 이름으로 마이그레이션하려면 다음과 같이 AWS CLI의 update-domain-name 명령을 호출합니다.

aws apigateway update-domain-name \ --domain-name 'api.example.com' \ --patch-operations [ \ { op:'add', path:'/endpointConfiguration/types',value: 'EDGE' }, \ { op:'add', path:'/certificateName', value:'edge-cert'}, \ { op:'add', path:'/certificateArn', value: 'arn:aws:acm:us-east-1:123456789012:certificate/34a95aa1-77fa-427c-aa07-3a88bd9f3c0a' } \ ]

엣지 최적화 도메인 인증서는 us-east-1 리전에 생성되어야 합니다.

성공적인 응답에는 다음과 유사한 200 OK 상태 코드와 본문이 있습니다.

{ "certificateArn": "arn:aws:acm:us-east-1:738575810317:certificate/34a95aa1-77fa-427c-aa07-3a88bd9f3c0a", "certificateName": "edge-cert", "certificateUploadDate": "2017-10-16T23:22:57Z", "distributionDomainName": "d1frvgze7vy1bf.cloudfront.net", "domainName": "api.example.com", "endpointConfiguration": { "types": [ "EDGE", "REGIONAL" ] }, "regionalCertificateArn": "arn:aws:acm:us-east-1:123456789012:certificate/3d881b54-851a-478a-a887-f6502760461d", "regionalDomainName": "d-cgkq2qwgzf.execute-api.us-east-1.amazonaws.com" }

API Gateway는 지정된 사용자 지정 도메인 이름에 대해 distributionDomainName 속성 값으로 엣지 최적화 API 호스트 이름을 반환합니다. DNS 레코드를 설정하여 엣지 최적화 사용자 지정 도메인 이름이 이 배포 도메인 이름을 가리키도록 해야 합니다. 이렇게 하면 목적지가 엣지 최적화 사용자 지정 도메인 이름인 트래픽이 엣지 최적화 API 호스트 이름으로 라우팅됩니다.

DNS 레코드가 설정된 후에는 다음과 같이 사용자 지정 도메인 이름의 REGION 엔드포인트 유형을 제거할 수 있습니다.

aws apigateway update-domain-name \ --domain-name api.example.com \ --patch-operations [ \ {op:'remove', path:'/endpointConfiguration/types', value:'REGIONAL'}, \ {op:'remove', path:'regionalCertificateArn'} \ ]

이 명령의 결과는 엣지 최적화 도메인 이름 구성 데이터만 있는 다음 출력과 유사합니다.

{ "certificateArn": "arn:aws:acm:us-east-1:738575810317:certificate/34a95aa1-77fa-427c-aa07-3a88bd9f3c0a", "certificateName": "edge-cert", "certificateUploadDate": "2017-10-16T23:22:57Z", "distributionDomainName": "d1frvgze7vy1bf.cloudfront.net", "domainName": "regional.haymuto.com", "endpointConfiguration": { "types": "EDGE" } }