

# API Gateway의 프라이빗 REST API
<a name="apigateway-private-apis"></a>

프라이빗 API는 Amazon VPC 내에서만 호출이 가능한 REST API입니다. VPC에서 생성하는 엔드포인트 네트워크 인터페이스인 [인터페이스 VPC 엔드포인트](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)를 사용하여 API에 액세스할 수 있습니다. 인터페이스 엔드포인트는 사설 IP 주소를 사용하여 비공개로 AWS PrivateLink 서비스에 액세스할 수 있게 해주는 AWS 기술을 통해 제공됩니다.

또한 Direct Connect를 사용하여 온프레미스 네트워크에서 Amazon VPC에 연결한 다음 그 연결을 통해 프라이빗 API에 액세스할 수도 있습니다. 어떤 경우에든 프라이빗 API로 가는 트래픽은 보안 연결을 사용하고 퍼블릭 인터넷과 격리됩니다. 트래픽은 Amazon 네트워크를 벗어나지 않습니다.

## 프라이빗 API 관련 모범 사례
<a name="apigateway-private-api-best-practices"></a>

프라이빗 API를 생성할 때 다음 모범 사례를 따르는 것이 좋습니다.
+ VPC 엔드포인트 하나를 사용하여 여러 개의 프라이빗 API에 액세스합니다. 이렇게 하면 필요한 VPC 엔드포인트 수가 줄어듭니다.
+ VPC 엔드포인트를 API에 연결합니다. 이렇게 하면 Route 53 별칭 DNS 레코드가 생성되어 프라이빗 API 간접 호출이 간소화됩니다.
+ VPC의 프라이빗 DNS를 켭니다. VPC에 프라이빗 DNS를 켜면 `Host` 또는 `x-apigw-api-id` 헤더를 전달하지 않고도 VPC 내에서 API를 간접적으로 호출할 수 있습니다.

  프라이빗 DNS를 켜면 퍼블릭 API의 기본 엔드포인트에 액세스할 수 없습니다. 퍼블릭 API의 기본 엔드포인트에 액세스하려면 프라이빗 DNS를 끄고 VPC에서 각 프라이빗 API에 대한 프라이빗 호스팅 영역을 만든 다음 Route 53에서 필요한 레코드를 프로비저닝하면 됩니다. 이렇게 하면 프라이빗 API를 확인하는 동시에 VPC에서 퍼블릭 기본 엔드포인트를 간접적으로 호출할 수 있습니다. 자세한 내용은 [프라이빗 호스팅 영역 생성](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html)을 참조하세요.
+ 프라이빗 API에 대한 액세스를 특정 VPC 또는 VPC 엔드포인트로 제한합니다. API의 리소스 정책에 `aws:SourceVpc` 또는 `aws:SourceVpce` 조건을 추가하여 액세스를 제한합니다.
+ 가장 안전한 데이터 경계를 위해 VPC 엔드포인트 정책을 생성할 수 있습니다. 이는 프라이빗 API를 간접적으로 호출할 수 있는 VPC 엔드포인트에 대한 액세스를 제어합니다.

## 프라이빗 API 관련 고려 사항
<a name="apigateway-private-api-considerations"></a>

다음 고려 사항은 프라이빗 API 사용에 영향을 미칠 수 있습니다.
+ REST API만 지원됩니다.
+ 그러나 프라이빗 API를 엣지 최적화된 API로 전환할 수는 없습니다.
+ 프라이빗 API는 TLS 1.2만 지원합니다. 이전 버전의 TLS는 지원되지 않습니다.
+ HTTP/2 프로토콜을 사용하여 요청하는 경우 HTTP/1.1 프로토콜을 사용하도록 요청이 적용됩니다.
+ IPv4 주소만 프라이빗 API를 간접적으로 호출하도록 프라이빗 API의 IP 주소 유형을 설정할 수 없습니다. 듀얼 스택만 지원됩니다. 자세한 내용은 [API Gateway의 REST API에 대한 IP 주소 유형](api-gateway-ip-address-type.md) 섹션을 참조하세요.
+ 프라이빗 API를 사용하여 트래픽을 전송하기 위해 Amazon VPC에서 지원하는 모든 IP 주소 유형을 사용할 수 있습니다. VPC 엔드포인트에서 설정을 구성하여 듀얼 스택 및 IPv6 트래픽을 전송할 수 있습니다. API Gateway를 사용하여 이를 수정할 수 없습니다. 자세한 내용은 [VPC에 대한 IPv6 지원 추가](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6-add.html)를 참조하세요.
+ 프라이빗 API를 위한 VPC 엔드포인트에도 다른 인터페이스 VPC 엔드포인트와 동일한 제한이 적용됩니다. 자세한 내용은 *AWS PrivateLink 설명서*의 [인터페이스 VPC 엔드포인트를 사용하여 AWS 서비스에 액세스](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)를 참조하세요. 공유 VPC 및 공유 서브넷에서 API Gateway를 사용하는 방법에 대한 자세한 내용은 *AWS PrivateLink 가이드*의 [공유 서브넷](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#interface-endpoint-shared-subnets)을 참조하세요.

## 프라이빗 API 관련 다음 단계
<a name="apigateway-private-api-next-steps"></a>

 프라이빗 API를 생성하고 VPC 엔드포인트를 연결하는 방법을 알아보려면 [프라이빗 API 생성](apigateway-private-api-create.md) 섹션을 참조하세요. CloudFormation에서 종속성을 생성하고 AWS Management Console에서 프라이빗 API를 생성하는 튜토리얼을 따르려면 [자습서: 프라이빗 REST API 생성](private-api-tutorial.md) 섹션을 참조하세요.