자습서: Amazon ECS 서비스에 대한 프라이빗 통합을 통해 HTTP API 생성
이 자습서에서는 Amazon VPC에서 실행되는 Amazon ECS 서비스에 연결하는 서버리스 API를 생성합니다. Amazon VPC 외부의 클라이언트는 API를 사용하여 Amazon ECS 서비스에 액세스할 수 있습니다.
이 자습서는 완료하는데 약 1시간이 걸립니다. 먼저 AWS CloudFormation 템플릿을 사용하여 Amazon VPC 및 Amazon ECS 서비스를 생성합니다. 그런 다음 API Gateway 콘솔을 사용하여 VPC 링크를 생성합니다. VPC 링크를 통해 API Gateway는 Amazon VPC에서 실행되는 Amazon ECS 서비스에 액세스할 수 있습니다. 그런 다음 VPC 링크를 사용하여 Amazon ECS 서비스에 연결하는 HTTP API를 생성합니다. 마지막으로 API를 테스트합니다.
HTTP API를 호출하면 API Gateway는 VPC 링크를 통해 요청을 Amazon ECS 서비스로 라우팅한 다음 서비스에서 응답을 반환합니다.

이 자습서를 완료하려면 AWS 계정과 콘솔 액세스 권한이 있는 AWS Identity and Access Management 사용자가 있어야 합니다. 자세한 내용은 API Gateway를 사용하도록 설정 단원을 참조하세요.
이 자습서에서는 를 사용합니다AWS Management Console 이 API 및 모든 관련 리소스를 생성하는 AWS CloudFormation 템플릿은 template.yaml을 참조하세요.
주제
1단계: Amazon ECS 서비스 생성
Amazon ECS는 클러스터에서 Docker 컨테이너를 손쉽게 실행, 중지 및 관리할 수 있게 해 주는 컨테이너 관리 서비스입니다. 이 자습서에서는 Amazon ECS에서 관리하는 서버리스 인프라에서 클러스터를 실행합니다.
Amazon VPC를 포함하여 서비스에 대한 모든 종속성을 생성하는 이 AWS CloudFormation 템플릿을 다운로드하고 압축을 풉니다. 이 템플릿을 사용하여 Application Load Balancer를 사용하는 Amazon ECS 서비스를 생성합니다.
AWS CloudFormation 스택을 생성하려면
AWS CloudFormation 콘솔(https://console.aws.amazon.com/cloudformation
)을 엽니다. -
스택 생성을 선택한 다음 새 리소스 사용(표준)을 선택합니다.
-
템플릿 지정에서 템플릿 파일 업로드를 선택합니다.
-
다운로드한 템플릿을 선택합니다.
-
다음을 선택합니다.
-
스택 이름에
http-api-private-integrations-tutorial
을 입력하고 다음을 선택합니다. -
스택 옵션 구성에서 다음을 선택합니다.
-
기능의 경우 AWS CloudFormation이 계정에 IAM 리소스를 생성할 수 있음을 확인합니다.
-
제출을 선택합니다.
AWS CloudFormation는 ECS 서비스를 프로비저닝하며 이 작업은 몇 분 정도 걸릴 수 있습니다. AWS CloudFormation 스택 상태가 CREATE_COMPLETE인 경우 다음 단계로 넘어갈 준비가 된 것입니다.
2단계: VPC 링크 생성
VPC 링크를 사용하면 API Gateway가 Amazon VPC의 프라이빗 리소스에 액세스할 수 있습니다. VPC 링크를 사용하면 클라이언트가 HTTP API를 통해 Amazon ECS 서비스에 액세스할 수 있습니다.
VPC 링크 생성
https://console.aws.amazon.com/apigateway
에서 API Gateway 콘솔에 로그인합니다. -
주요 탐색 창에서 VPC 링크를 선택한 후 생성을 선택합니다.
메뉴 아이콘을 선택하여 기본 탐색 창을 열어야 할 수도 있습니다.
-
VPC 링크 버전 선택(Choose a VPC link version)에서 HTTP API용 VPC 링크(VPC link for HTTP APIs)를 선택합니다.
-
이름에
private-integrations-tutorial
를 입력합니다. -
VPC에서 1단계에서 생성한 VPC를 선택합니다. 이름은 PrivateIntegrationsStack으로 시작해야 합니다.
-
서브넷(Subnets)의 경우 VPC에 있는 두 개의 프라이빗 서브넷을 선택합니다. 이름은
PrivateSubnet
(으)롤 끝납니다. -
보안 그룹의 경우
private-integrations-tutorial
로 시작하고PrivateIntegrationsStack/PrivateIntegrationsTutorialService/Service/SecurityGroup
의 설명이 있는 그룹 ID를 선택합니다. -
Create를 선택합니다.
VPC 링크를 생성한 후 API Gateway는 탄력적 네트워크 인터페이스를 프로비저닝하여 VPC에 액세스합니다. 이 프로세스는 몇 분 정도 걸릴 수 있습니다. 그동안 API를 생성할 수 있습니다.
3단계: HTTP API 생성
HTTP API는 Amazon ECS 서비스에 대한 HTTP 엔드포인트를 제공합니다. 이 단계에서는 빈 API를 생성합니다. 4단계와 5단계에서는 API와 Amazon ECS 서비스를 연결하기 위한 경로 및 통합을 구성합니다.
HTTP API 생성하기
https://console.aws.amazon.com/apigateway
에서 API Gateway 콘솔에 로그인합니다. -
[API 생성(Create API)]을 선택한 다음 HTTP API에 대해 [빌드(Build)]를 선택합니다.
-
API 이름에서
http-private-integrations-tutorial
을(를) 입력합니다. -
[Next]를 선택합니다.
-
경로 구성에 대해 [다음(Next)]을 선택하여 경로 생성을 건너뜁니다. 나중에 루트를 생성합니다.
-
API Gateway가 생성하는 스테이지를 검토합니다. API Gateway는 자동 배포가 활성화된
$default
스테이지를 생성합니다. 이 스테이지는 이 자습서에 가장 적합합니다. [Next]를 선택합니다. -
Create를 선택합니다.
4단계: 경로 생성
경로는 수신 API 요청을 백엔드 리소스로 보내는 방법입니다. 경로는 HTTP 메서드와 리소스 경로(예: GET /items
), 이렇게 두 부분으로 구성됩니다. 이 예제 API의 경우 1개의 경로를 생성합니다.
경로 생성
https://console.aws.amazon.com/apigateway
에서 API Gateway 콘솔에 로그인합니다. -
API를 선택합니다.
-
Routes(라우팅)를 선택합니다.
-
Create를 선택합니다.
-
메서드(Method)에서
ANY
을(를) 선택합니다. -
경로에
/{proxy+}
을(를) 입력합니다. 경로 끝의{proxy+}
은(는) 복잡한 경로 변수입니다. API Gateway는 API에 대한 모든 요청을 이 경로로 보냅니다. -
Create를 선택합니다.
5단계: 통합 생성
백엔드 리소스에 경로를 연결하는 통합을 생성합니다.
통합 생성하기
https://console.aws.amazon.com/apigateway
에서 API Gateway 콘솔에 로그인합니다. -
API를 선택합니다.
-
[통합(Integrations)]을 선택합니다.
-
[통합 관리(Manage integrations)]를 선택한 다음 [생성(Create)]을 선택합니다.
-
이 통합을 경로에 연결(Attach this integration to a route)에서 이전에 생성한 ANY /{proxy+} 경로를 선택합니다.
-
통합 유형(Integration type)에서 프라이빗 리소스(Private resource)를 선택합니다.
-
통합 세부 정보(Integration details)에서 수동 선택(Select manually)을 선택합니다.
-
대상 서비스(Target service)에서 ALB/NLB를 선택합니다.
-
로드 밸런서(Load balancer)의 경우 1단계에서 AWS CloudFormation 템플릿으로 생성한 로드 밸런서를 선택합니다. 이름은 HTTP-Priva로 시작해야 합니다.
-
리스너(Listener)에서
HTTP 80
을(를) 선택합니다. -
VPC 링크(VPC link)의 경우 2단계에서 생성한 VPC 링크를 선택합니다. 이름은
private-integrations-tutorial
이어야 합니다. -
Create를 선택합니다.
경로 및 통합이 올바르게 설정되었는지 확인하려면 경로에 통합 연결(Attach integrations to routes)을 선택합니다. 콘솔에 VPC Load Balancer에 대한 통합의 ANY /{proxy+}
경로가 있음이 표시됩니다.

이제 API를 테스트 할 준비가 되었습니다.
6단계: API 테스트
다음으로, API를 테스트하여 제대로 작동하는지 확인합니다. 간단하게 하기 위해, 웹 브라우저를 사용하여 API를 호출합니다.
API 테스트하기
https://console.aws.amazon.com/apigateway
에서 API Gateway 콘솔에 로그인합니다. -
API를 선택합니다.
-
API의 호출 URL을 기록해 둡니다.
-
웹 브라우저에서 API의 호출 URL로 이동합니다.
전체 URL은
https://
와(과) 같아야 합니다.abcdef123
.execute-api.us-east-2
.amazonaws.com브라우저가 API에
GET
요청을 보냅니다. -
API의 응답이 앱이 Amazon ECS에서 실행 중임을 알려주는 시작 메시지인지 확인합니다.
시작 메시지가 표시되면 Amazon VPC에서 실행되는 Amazon ECS 서비스를 성공적으로 생성하고, VPC 링크와 함께 API Gateway HTTP API를 사용하여 Amazon ECS 서비스에 액세스한 것입니다.
7단계: 정리
불필요한 비용을 방지하려면 이 자습서의 일부로 생성한 리소스를 삭제합니다. 다음 단계에서는 VPC 링크, AWS CloudFormation 스택 및 HTTP API를 삭제합니다.
HTTP API 삭제하기
https://console.aws.amazon.com/apigateway
에서 API Gateway 콘솔에 로그인합니다. -
API 페이지에서 API를 선택합니다. 작업(Actions)을 선택하고 삭제(Delete)를 선택한 다음 선택을 확인합니다.
VPC 링크 삭제
https://console.aws.amazon.com/apigateway
에서 API Gateway 콘솔에 로그인합니다. -
VPC 링크(VPC link)를 선택합니다.
-
VPC 링크를 선택하고 삭제(Delete)를 선택한 다음, 해당 선택을 확인합니다.
AWS CloudFormation 스택을 삭제하려면
AWS CloudFormation 콘솔(https://console.aws.amazon.com/cloudformation
)을 엽니다. -
AWS CloudFormation 스택을 선택합니다.
-
삭제를 선택한 다음 해당 선택을 확인합니다.
다음 단계: 를 통한 자동화AWS CloudFormation
이 자습서와 관련된 모든 AWS 리소스의 생성 및 정리를 자동화할 수 있습니다. 전체 예제 AWS CloudFormation 템플릿에 대해서는 template.yaml을 참조하세요.