자습서: 프라이빗 통합을 통해 REST API 생성
이 자습서에서는 Amazon VPC에서 실행되는 Amazon ECS 서비스에 연결하는 REST API를 생성합니다. Amazon VPC 외부의 클라이언트는 API를 사용하여 Amazon ECS 서비스에 액세스할 수 있습니다.
이 자습서는 완료하는데 약 1시간이 걸립니다. 먼저 CloudFormation 템플릿을 사용하여 Amazon VPC 및 Amazon ECS 서비스를 생성합니다. 그런 다음 API Gateway 콘솔을 사용하여 VPC 링크 V2를 생성합니다. VPC 링크를 통해 API Gateway는 Amazon VPC에서 실행되는 Amazon ECS 서비스에 액세스할 수 있습니다. 그런 다음 VPC 링크 V2를 사용하여 Amazon ECS 서비스에 연결하는 REST API를 생성합니다. 마지막으로 API를 테스트합니다.
REST API를 간접적으로 호출하면 API Gateway는 VPC 링크 V2를 통해 요청을 Amazon ECS 서비스로 라우팅한 다음 서비스에서 응답을 반환합니다.
참고
이 자습서는 이전에 HTTP API에 대해 지원되었으며, 이제 VPC 링크 V2를 사용하는 REST API에 대해 지원됩니다.
이 자습서를 완료하려면 AWS 계정과 콘솔 액세스 권한이 있는 AWS Identity and Access Management 사용자가 있어야 합니다. 자세한 내용은 API Gateway를 사용하도록 설정 섹션을 참조하세요.
1단계: Amazon ECS 서비스 생성
Amazon ECS는 클러스터에서 Docker 컨테이너를 손쉽게 실행, 중지 및 관리할 수 있게 해 주는 컨테이너 관리 서비스입니다. 이 자습서에서는 Amazon ECS에서 관리하는 서버리스 인프라에서 클러스터를 실행합니다.
Amazon VPC를 포함하여 서비스에 대한 모든 종속성을 생성하는 이 CloudFormation 템플릿을 다운로드하고 압축을 풉니다. 이 템플릿을 사용하여 Application Load Balancer를 사용하는 Amazon ECS 서비스를 생성합니다.
CloudFormation 스택을 생성하려면
CloudFormation 콘솔(https://console.aws.amazon.com/cloudformation
)을 엽니다. -
스택 생성을 선택한 다음 새 리소스 사용(표준)을 선택합니다.
-
템플릿 지정에서 템플릿 파일 업로드를 선택합니다.
-
다운로드한 템플릿을 선택합니다.
-
다음을 선택합니다.
-
스택 이름에
rest-api-private-integrations-tutorial을 입력하고 다음을 선택합니다. -
스택 옵션 구성에서 다음을 선택합니다.
-
기능의 경우 CloudFormation이 계정에 IAM 리소스를 생성할 수 있음을 확인합니다.
-
다음을 선택한 후 제출을 선택합니다.
CloudFormation는 ECS 서비스를 프로비저닝하며 이 작업은 몇 분 정도 걸릴 수 있습니다. CloudFormation 스택 상태가 CREATE_COMPLETE인 경우 다음 단계로 넘어갈 준비가 된 것입니다.
2단계: VPC 링크 생성
VPC 링크를 사용하면 API Gateway가 Amazon VPC의 프라이빗 리소스에 액세스할 수 있습니다. VPC 링크를 사용하면 클라이언트가 REST API를 통해 Amazon ECS 서비스에 액세스할 수 있습니다.
VPC 링크 생성
https://console.aws.amazon.com/apigateway
에서 API Gateway 콘솔에 로그인합니다. -
주요 탐색 창에서 VPC 링크를 선택한 후 생성을 선택합니다.
메뉴 아이콘을 선택하여 기본 탐색 창을 열어야 할 수도 있습니다.
-
VPC 링크 버전 선택에서 VPC 링크 V2를 선택합니다.
-
이름에
private-integrations-tutorial를 입력합니다. -
VPC에서 1단계에서 생성한 VPC를 선택합니다. 이름은 RestApiStack으로 시작해야 합니다.
-
서브넷(Subnets)의 경우 VPC에 있는 두 개의 프라이빗 서브넷을 선택합니다. 이름은
PrivateSubnet(으)롤 끝납니다. -
보안 그룹의 경우
private-integrations-tutorial로 시작하고RestApiStack/RestApiTutorialService/Service/SecurityGroup의 설명이 있는 그룹 ID를 선택합니다. -
생성(Create)을 선택합니다.
VPC 링크 V2를 생성한 후 API Gateway는 탄력적 네트워크 인터페이스를 프로비저닝하여 VPC에 액세스합니다. 이 프로세스는 몇 분 정도 걸릴 수 있습니다. 그동안 API를 생성할 수 있습니다.
3단계: REST API 생성
REST API는 Amazon ECS 서비스에 대한 HTTP 엔드포인트를 제공합니다.
REST API를 생성하려면
https://console.aws.amazon.com/apigateway
에서 API Gateway 콘솔에 로그인합니다. -
API 생성(Create API)을 선택한 다음 REST API에 대해 빌드(Build)를 선택합니다.
-
이름에
private-integration-api를 입력합니다. -
IP 주소 유형에서 IPv4를 선택합니다.
API 생성을 선택합니다.
API를 생성한 후 메서드를 생성합니다.
-
메서드 생성을 선택하고 다음을 수행합니다.
메서드 유형에서
GET를 선택합니다.통합 유형에서 VPC 링크를 선택합니다.
VPC 프록시 통합을 켭니다.
HTTP 메서드에서
GET을 선택합니다.-
VPC 링크의 경우 이전 단계에서 생성한 VPC 링크 V2를 선택합니다.
-
통합 대상에 1단계에서 CloudFormation 템플릿으로 생성한 로드 밸런서를 입력합니다. 이름은 rest-로 시작해야 합니다.
-
엔드포인트 URL에
http://private-integrations-tutorial.com를 입력합니다.URL은 통합 요청의
Host헤더를 설정하는 데 사용됩니다. 이 경우 호스트 헤더는private-integrations-tutorial입니다. 메서드 생성을 선택합니다.
프록시 통합이 있으면 API를 테스트할 준비가 된 것입니다.
4단계: API 테스트
다음으로 API 메서드 간접 호출을 테스트합니다.
API 테스트하기
https://console.aws.amazon.com/apigateway
에서 API Gateway 콘솔에 로그인합니다. -
API를 선택합니다.
테스트 탭을 선택합니다. 탭을 표시하려면 오른쪽 화살표 버튼을 선택해야 할 수도 있습니다.
테스트 선택
API의 응답이 앱이 Amazon ECS에서 실행 중임을 알려주는 시작 메시지인지 확인합니다.
5 단계: API 배포
다음으로 API를 배포합니다.
API를 배포하려면
Deploy API(API 배포)를 선택합니다.
스테이지에서 새 스테이지를 선택합니다.
단계 이름에
Prod를 입력합니다.(선택 사항) 설명에 설명을 입력합니다.
배포(Deploy)를 선택합니다.
6단계: API 직접 호출
API를 배포한 후 직접적으로 호출할 수 있습니다.
API 직접 호출
-
웹 브라우저에 호출 URL을 입력합니다.
전체 URL은
https://와(과) 같아야 합니다.abcd123.execute-api.us-east-2.amazonaws.com/Prod브라우저가 API에
GET요청을 보냅니다. -
API의 응답이 앱이 Amazon ECS에서 실행 중임을 알려주는 시작 메시지인지 확인합니다.
시작 메시지가 표시되면 Amazon VPC에서 실행되는 Amazon ECS 서비스를 성공적으로 생성하고, VPC 링크 V2와 함께 API Gateway REST API를 사용하여 Amazon ECS 서비스에 액세스한 것입니다.
7단계: 정리
불필요한 비용을 방지하려면 이 자습서의 일부로 생성한 리소스를 삭제합니다. 다음 단계에서는 VPC 링크 V2, CloudFormation 스택 및 REST API를 삭제합니다.
REST 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)를 선택한 다음, 해당 선택을 확인합니다.
CloudFormation 스택을 삭제하려면
CloudFormation 콘솔(https://console.aws.amazon.com/cloudformation
)을 엽니다. -
CloudFormation 스택을 선택합니다.
-
삭제를 선택한 다음 해당 선택을 확인합니다.