프라이빗 통합 설정
Application Load Balancer 또는 Network Load Balancer와 프라이빗 통합을 생성하려면 HTTP 프록시 통합을 생성하고, 사용할 VPC 링크 V2를 지정하고, Network Load Balancer 또는 Application Load Balancer의 ARN을 제공해야 합니다. 기본적으로 프라이빗 통합 트래픽은 HTTP 프로토콜을 사용합니다. HTTPS를 사용하려면 https://example.com:443/test와 같이 보안 서버 이름이 포함된 uri를 지정합니다. 프라이빗 통합을 사용하여 REST API를 생성하는 방법에 대한 전체 자습서는 자습서: 프라이빗 통합을 통해 REST API 생성 섹션을 참조하세요.
프라이빗 통합 생성
다음 절차에서는 VPC 링크 V2를 사용하여 로드 밸런서에 연결하는 프라이빗 통합을 생성하는 방법을 보여 줍니다.
- AWS Management 콘솔
-
프라이빗 통합을 생성하는 방법에 대한 자습서는 자습서: 프라이빗 통합을 통해 REST API 생성 섹션을 참조하세요.
- AWS CLI
다음 put-integration 명령은 VPC 링크 V2를 통해 로드 밸런서에 연결하는 프라이빗 통합을 생성합니다.
aws apigateway put-integration \ --rest-api-id abcdef123 \ --resource-id aaa000 \ --integration-target 'arn:aws:elasticloadbalancing:us-east-2:111122223333:loadbalancer/app/myLoadBalancerName/1234567891011' \ --uri 'https://example.com:443/path' \ --http-method GET \ --type HTTP_PROXY \ --integration-http-method GET \ --connection-type VPC_LINK \ --connection-id bbb111연결 ID를 직접 제공하는 대신 스테이지 변수를 사용할 수 있습니다. API를 스테이지에 배포할 때 VPC 링크 V2 ID를 설정합니다. 다음 put-integration 명령은 VPC 링크 V2 ID에 대한 스테이지 변수를 사용하여 프라이빗 통합을 생성합니다.
aws apigateway put-integration \ --rest-api-id abcdef123 \ --resource-id aaa000 \ --integration-target 'arn:aws:elasticloadbalancing:us-east-2:111122223333:loadbalancer/app/myLoadBalancerName/1234567891011' \ --uri 'https://example.com:443/path' \ --http-method GET \ --type HTTP_PROXY \ --integration-http-method GET \ --connection-type VPC_LINK \ --connection-id "\${stageVariables.vpcLinkV2Id}"단계 변수 표현식(${stageVariables.vpcLinkV2Id})을 큰따옴표로 묶고 $ 문자를 이스케이프합니다.
- OpenAPI
API의 OpenAPI 파일을 가져와 프라이빗 통합이 포함된 API를 설정할 수 있습니다. 다음만 제외하면 설정은 HTTP 통합이 포함된 API의 OpenAPI 정의와 비슷합니다.
-
명시적으로
connectionType을VPC_LINK로 설정해야 합니다. -
명시적으로
connectionId를VpcLinkV2의 ID 또는VpcLinkV2의 ID를 참조하는 단계 변수로 설정해야 합니다. -
프라이빗 통합의
uri파라미터는 VPC의 HTTP/HTTPS 엔드포인트를 가리키지만 그 대신 통합 요청의Host헤더를 설정하는 데 사용됩니다. -
VPC에 HTTPS 엔드포인트가 있는 프라이빗 통합의
uri파라미터는 VPC 엔드포인트에 설치된 인증서에 있는 이름과 대조하여 지정된 도메인 이름을 확인하는 데 사용됩니다.
단계 변수를 사용하여
VpcLinkV2ID를 참조할 수 있습니다. 또는 ID 값을 직접connectionId에 할당할 수 있습니다.다음 JSON 형식의 OpenAPI 파일은 단계 변수(
${stageVariables.vpcLinkIdV2})가 참조하는 VPC 링크가 포함된 API의 예를 보여 줍니다.{ "swagger": "2.0", "info": { "version": "2017-11-17T04:40:23Z", "title": "MyApiWithVpcLinkV2" }, "host": "abcdef123.execute-api.us-west-2.amazonaws.com", "basePath": "/test", "schemes": [ "https" ], "paths": { "/": { "get": { "produces": [ "application/json" ], "responses": { "200": { "description": "200 response", "schema": { "$ref": "#/definitions/Empty" } } }, "x-amazon-apigateway-integration": { "responses": { "default": { "statusCode": "200" } }, "uri": "https://example.com:443/path", "passthroughBehavior": "when_no_match", "connectionType": "VPC_LINK", "connectionId": "${stageVariables.vpcLinkV2Id}", "integration-target": "arn:aws:elasticloadbalancing:us-east-2:111122223333:loadbalancer/app/myLoadBalancerName/1234567891011", "httpMethod": "GET", "type": "http_proxy" } } } }, "definitions": { "Empty": { "type": "object", "title": "Empty Schema" } } }-
프라이빗 통합 업데이트
다음 예시에서는 프라이빗 통합을 위해 VPC 링크 V2를 업데이트합니다.
- AWS Management 콘솔
-
프라이빗 통합 업데이트
https://console.aws.amazon.com/apigateway
에서 API Gateway 콘솔에 로그인합니다. 프라이빗 통합이 포함된 REST API를 선택합니다.
프라이빗 통합을 사용하는 리소스와 메서드를 선택합니다.
통합 요청 탭의 통합 요청 설정에서 편집을 선택합니다.
-
프라이빗 통합의 설정을 편집할 수 있습니다. 현재 VPC 링크 V1을 사용하는 경우 VPC 링크를 VPC 링크 V2로 변경할 수 있습니다.
저장을 선택합니다.
-
변경 사항을 적용하려면 API를 재배포합니다.
- AWS CLI
-
다음 update-integration 명령은 VPC 링크 V2를 사용하도록 프라이빗 통합을 업데이트합니다.
aws apigateway update-integration \ --rest-api-id a1b2c3d4e5 \ --resource-id a1b2c3 \ --http-method GET \ --patch-operations "[{\"op\":\"replace\",\"path\":\"/connectionId\",\"value\":\"pk0000\"}, {\"op\":\"replace\",\"path\":\"/uri\",\"value\":\"http://example.com\"}, {\"op\":\"replace\",\"path\":\"/integrationTarget\",\"value\":\"arn:aws:elasticloadbalancing:us-east-2:111122223333:loadbalancer/app/myLoadBalancerName/1234567891011\"}]"