Amazon Virtual Private Cloud(Amazon VPC)에서 Amazon API Gateway 프라이빗 API에 액세스하고 퍼블릭 API에 대한 연결을 유지하려고 합니다.
간략한 설명
API Gateway 프라이빗 REST API에는 Amazon VPC 인터페이스 엔드포인트에서 액세스할 수 있습니다. 하지만 프라이빗 DNS가 활성화되었는지 비활성화되었는지에 따라 프라이빗 및 퍼블릭 API에 동시에 연결하지 못할 수 있습니다.
해결 방법
API Gateway에 대한 VPC 인터페이스 엔드포인트 만들기
다음 단계를 완료하십시오.
- VPC 콘솔을 엽니다.
- 엔드포인트를 선택하고 엔드포인트 만들기를 선택합니다.
- 유형에서 AWS Services를 선택합니다.
- 서비스 검색 창에 execute-api를 입력합니다.
- 서비스 이름에서 com.amazonaws.region.execute-api를 선택합니다.
- VPC 드롭다운 목록을 선택한 다음, VPC 엔드포인트를 만드는 데 사용하려는 VPC를 선택합니다.
- (선택 사항) 프라이빗 DNS를 비활성화하려면 추가 설정을 선택하고 프라이빗 DNS 이름 활성화의 체크 표시를 해제합니다.
참고: 프라이빗 DNS는 기본적으로 활성화되어 있습니다.
- 서브넷에서 해당하는 서브넷을 선택합니다.
- 보안 그룹에서 엔드포인트 네트워크 인터페이스와 연결하려는 보안 그룹을 선택합니다.
- 엔드포인트 만들기를 선택합니다.
- 세부 정보 탭을 선택하고 엔드포인트 ID를 기록해 둡니다(다음 섹션에서 사용하게 됨).
자세한 내용은 VPC 엔드포인트 만들기를 참조하십시오.
프라이빗 API 만들기
다음 단계를 완료하십시오.
- API Gateway 콘솔을 엽니다.
- API 만들기를 선택합니다.
- REST API 프라이빗에서 빌드를 선택합니다.
참고: 프라이빗 REST API는 VPC 안에서만 사용할 수 있습니다.
- API 이름에 프라이빗 API의 이름을 입력합니다.
- VPC 엔드포인트 ID에 VPC 엔드포인트 ID를 입력하고 추가를 선택합니다.
- API 만들기를 선택합니다.
- API를 스테이지에 배포합니다.
자세한 내용은 프라이빗 API 만들기를 참조하십시오.
퍼블릭 API 만들기
다음 단계를 완료하십시오.
- API Gateway 콘솔을 엽니다.
- API 만들기를 선택합니다.
- HTTP API 또는 REST API에서 빌드를 선택합니다.
- API 이름에 퍼블릭 API의 이름을 입력합니다.
- API 만들기를 선택합니다.
자세한 내용은 HTTP API 만들기를 참조하십시오.
프라이빗 DNS를 활성화한 상태로 퍼블릭 API에 연결
중요: VPC 리소스가 인터넷에 연결되어 있어야 퍼블릭 API에 연결할 수 있습니다.
프라이빗 DNS를 활성화한 채로 퍼블릭 API에 연결하려면 엣지 최적화 사용자 지정 도메인 이름 또는 리전별 사용자 지정 도메인 이름을 설정합니다. 그러면 해당 사용자 지정 도메인 이름(예: api.example.com)을 사용하여 API Gateway 퍼블릭 API를 호출할 수 있습니다. 프라이빗 REST API에 대한 연결은 프라이빗 REST API 엔드포인트를 통해 계속 작동합니다.
온프레미스 네트워크에서 연결하려면 Amazon Route 53 Resolver 인바운드 엔드포인트를 설정하십시오. execute-api 호출 URL을 사용하려면 온프레미스 네트워크의 모든 프라이빗 DNS 쿼리를 인바운드 엔드포인트로 전달합니다.
프라이빗 DSN를 비활성화한 상태로 프라이빗 API에 연결
참고: 기본 execute-api 호출 URL은 프라이빗 DNS를 비활성화한 상태로 프라이빗 REST API에 연결할 수 없습니다.
프라이빗 DNS를 비활성화한 상태로 프라이빗 API에 연결하려면 Route 53의 사용자 지정 도메인에 대하여 프라이빗 호스팅 영역을 만드십시오. 해당 프라이빗 호스팅 영역에서 API 식별자에 대한 A 레코드를 추가합니다. A 레코드가 VPC 엔드포인트의 IP 주소를 가리키게 해야 프라이빗 REST API의 기본 execute-api 호출 URL을 사용할 수 있습니다.
관련 정보
프라이빗 API 호출
API Gateway의 REST API에 대한 액세스 제어 및 관리
VPC 엔드포인트가 온프레미스 DNS를 사용하는 경우 프라이빗 API Gateway API에 액세스하려면 어떻게 해야 합니까?
VPC에서 API Gateway 퍼블릭 API에 연결하려 하면 HTTP "403 Forbidden" 오류가 발생하는 이유는 무엇입니까?