AWS 계정 또는 리전 간에 AWS Gateway API를 마이그레이션하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 12월 20일

AWS 계정 또는 리전 간에 Amazon API Gateway API를 마이그레이션하려고 합니다. 어떻게 해야 합니까?

간략한 설명

API Gateway에서 OpenAPI 2.0(Swagger) 또는 OpenAPI 3.0 정의 파일로 REST API를 내보낼 수 있습니다. 그런 다음, API를 다른 계정 또는 리전의 API Gateway로 가져옵니다.

참고: API를 가져오려면 대상 계정 또는 리전에 통합 API 리소스도 다시 생성해야 합니다.

​해결 방법

API 내보내기

API Gateway 콘솔 또는 AWS 명령줄 인터페이스(AWS CLI)를 사용하여 API를 내보냅니다.

  1. API Gateway 콘솔에서 API를 선택합니다.
  2. API를 스테이지에 배포합니다.
  3. [스테이지 편집기] 창에서 [내보내기] 탭을 선택합니다.
  4. [다른 이름으로 내보내기]에서 Swagger 또는 OpenAPI3를 선택합니다.
  5. 이전 단계에서 선택한 항목에 따라 다음 중 하나를 잠시 정지합니다.
    Swagger + API Gateway 익스텐션으로 내보내기
    OpenAPI 3 + API Gateway 익스텐션으로 내보내기
  6. JSON 또는 YAML을 선택합니다. OpenAPI 정의가 콘솔에 표시되고 정의 파일을 자동으로 다운로드하기 시작합니다.

또는 AWS CLI에서 get-export 명령을 사용합니다. 예:

$ aws apigateway get-export --parameters extensions='integrations' --rest-api-id a1b2c3d4e5 --stage-name dev --export-type swagger /path/to/filename.json

이 예제 명령은 스테이지에 대한 API Gateway 익스텐션을 포함한 JSON Swagger 템플릿을 반환합니다. 원하는 속성과 유형으로 내보내기 위해 명령 옵션인 --parameters--export-type의 값을 변경합니다.

자세한 내용은 API Gateway에서 REST API 내보내기를 참조하십시오.

OpenAPI 정의에서 리소스 ARN 변경

내보낸 OpenAPI 정의에서 API 리소스의 Amazon 리소스 이름(ARN)을 업데이트합니다. 이를 마이그레이션할 AWS 계정과 리전의 리소스로 변경합니다. 예를 들어 다음과 같은 AWS Lambda 통합이 포함된 API에 대한 Swagger 템플릿의 코드 조각을 참조하십시오.

"x-amazon-apigateway-integration": {
          "uri": "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:12345678910:function:mylambda/invocations",
          "responses": {
            "default": {
              "statusCode": "200"
            }
          }

이 예제에서는 arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:12345678910:function:mylambda/invocations을 대상 계정의 Lambda 함수 ARN으로 변경합니다.

API 가져오기

API 리소스의 ARN을 오프라인으로 업데이트한 다음, OpenAPI 정의를 다른 AWS 계정 또는 리전의 API Gateway로 가져옵니다.

  1. 대상 AWS 계정 또는 리전의 API Gateway 콘솔을 엽니다.
  2. [API 생성]을 선택합니다.
  3. [API 유형 선택]의 경우, [REST API] 아래에서 [가져오기]를 선택합니다.
  4. [Swagger 또는 Open API 3에서 가져오기]에서 다음 중 하나를 수행합니다.
    [Swagger 파일 선택]을 선택한 다음, 업데이트된 OpenAPI 정의 파일을 선택합니다.
    업데이트된 OpenAPI 정의를 텍스트 편집기 필드에 붙여넣습니다.
  5. [설정]에서 엔드포인트 유형으로 [리전별], [엣지 최적화] 또는 [프라이빗]을 선택합니다.
  6. 가져오는 동안 오류 또는 경고가 발생하면 [경고 발생 시 실패 처리]를 선택하여 가져오기를 중단합니다. 또는, 그래도 가져오려면 [경고 무시]를 선택합니다.

또는, 대상 AWS 계정이나 리전에 대해 AWS CLI를 구성한 다음 import-rest-api 명령을 사용합니다. 예:

$ aws apigateway import-rest-api --endpointConfigurationTypes 'REGIONAL' --fail-on-warnings --body 'file:/// path/to/filename.json'

자세한 내용은 REST API를 API Gateway로 가져오기를 참조하십시오.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?