이 페이지에서는 App Engine 리소스에 네트워킹 옵션 구성에 대한 권장사항을 간략하게 설명합니다. 이 페이지의 모든 섹션을 검토하여 App Engine에서 지원하는 네트워킹 옵션과 그 영향을 이해하는 것이 좋습니다.
권장사항:
IP 주소 관리IP 주소 사용량 모니터링
RFC 1918 이외의 IP 주소 사용
IPv4 및 IPv6(이중 스택) 서브넷 사용
연결 풀링 사용 및 연결 재사용
지원되는 런타임 사용
인터넷에 대한 외부 처리량 가속화
Google API에 대한 내부 처리량 가속화
IP 관리
App Engine 서비스의 각 인스턴스는 서브넷의 IP 주소를 사용하므로 IP 주소를 관리해야 합니다. IP 주소를 관리하려면 다음 전략을 사용하세요.
대체 IP 할당: 표준 비공개 범위 또는 대체 IP 범위를 할당하여 IP 주소 소진을 완화합니다. IP 주소 소진 전략을 참조하세요.
서브넷 크기 조정: 확장을 위한 충분한 IP 주소를 제공하려면 서브넷의 IPv4 주소 범위가
/26이상이어야 합니다.IP 주소 초과 프로비저닝: 소진을 방지하기 위해 서브넷에서 사용 가능한 IP 주소 수를 초과 프로비저닝하는 것이 좋습니다. 다른 App Engine 서비스와 마찬가지로 원활한 확장 및 업데이트를 위해 일반적으로 실행 중인 인스턴스 수의 4배(안정적인 상태의 경우 2배, 배포 중 추가 2배)만큼의 IP 주소를 사용해야 합니다.
IP 주소 사용량 모니터링
VPC 직접 연결 이그레스를 사용하는 경우 서브넷에 충분한 IP 주소가 할당되어 있는지 확인합니다. 사용하는 IP 주소 수는 워크로드가 실행되는 인스턴스 수에 따라 다르므로 IP 주소 사용량을 모니터링하는 것이 좋습니다. 시간 경과에 따른 IP 사용량이 서브넷에서 지원하는 범위 내에 있는지 확인합니다.
IP 주소 사용량을 추정하려면 다음 안내를 따르세요.
Google Cloud 콘솔에서 측정항목 탐색기 페이지로 이동합니다.
appengine.googleapis.com/system/instance_count측정항목 유형을 사용하여 프로젝트의 인스턴스 수를 빠른 검색합니다. 이 측정항목은 프로젝트 전체의 모든 App Engine 인스턴스를 계산합니다. VPC 직접 연결 이그레스로 구성된 버전의 경우 서비스를 식별하는module_id라벨 또는version_id라벨로 필터링합니다. Cloud Monitoring을 사용하면 시간 경과에 따른 이 측정항목 값을 볼 수 있습니다.인스턴스 수 측정항목 값에 2를 곱하여 사용 중인 IP 주소 수를 추정합니다.
IP 주소 소진 전략
App Engine 워크로드가 많은 경우 VPC 직접 연결 이그레스와 함께 RFC 1918 비공개 IP 주소 공간을 사용하면 IP 소진 문제가 발생할 수 있습니다. 다음 전략은 대체 IP 주소 범위를 사용하여 IP 주소 소진을 관리하는 데 도움이 됩니다.
RFC 1918 이외의 IPv4 주소 사용
App Engine은 RFC 1918 IPv4 주소 범위 외에도 RFC 6598 및 클래스 E/RFC 5735 범위를 지원합니다. 모든Google Cloud 서비스와 기능은 VPC 네트워크, Cloud Load Balancing, Private Service Connect를 포함한 RFC 1918 이외의 범위에서 작동합니다.
최고의 호환성을 위해 RFC 6598(100.64.0.0/10) 범위로 시작하는 것이 좋습니다. 다른 곳에서 이미 이 범위를 사용하고 있으면 클래스 E/RFC 5735(240.0.0.0/4)를 대신 사용하는 것이 좋습니다. 클래스 E는 IP 주소를 2억 6, 800만 개 이상 사용할 수 있는 거대한 공간이므로 장기간 성장을 지원할 수 있습니다. 하지만 클래스 E에는 몇 가지 제한사항이 있습니다. 예를 들어 Windows 및 일부 온프레미스 하드웨어에서는 지원되지 않습니다. 클래스 E IPv4 주소 공간을 활용하여 GKE의 IPv4 소진 문제를 완화하는 방법을 알아보세요.
Cloud NAT 또는 Private Service Connect 사용
App Engine 워크로드가 RFC 1918 이외의 범위에 있고 RFC 1918만 허용하는 온프레미스 대상에 도달해야 하는 경우 다음 솔루션 중 하나를 선택합니다.
- Hybrid NAT를 사용하여 작은 RFC 1918 범위에서 주소 변환 및 이그레스를 실행합니다.
- 온프레미스 서비스를 Private Service Connect 하이브리드 서비스로 노출합니다.
IPv4 및 IPv6(이중 스택) 서브넷 사용
IPv4 소진을 줄이지는 못하지만 앱을 IPv6로 이전하는 것이 좋습니다. 향후 IPv4 소진 문제를 방지하려면 이중 스택 리소스를 설정합니다.
포트 소진 감소 전략
다음 섹션에서는 App Engine으로 포트 소진을 줄이는 전략을 설명합니다.
연결 풀링 사용 및 연결 재사용
App Engine 앱에서 단일 대상 IP 주소로 다수의 요청을 전송할 경우 연결 풀링을 사용하여 대상에 대한 연결을 유지하고 재사용합니다. 단일 IP 주소에 대한 연결 비율이 높으면 아웃바운드 포트가 소진되고 연결 거부 오류가 발생할 수 있습니다.
성능 및 처리량 전략
이 섹션에서는 인터넷 및 Google 서비스에 대한 네트워크 성능과 처리량을 향상시킬 수 있는 확장 가능한 옵션을 설명합니다.
지원되는 런타임 사용
VPC 직접 연결 이그레스는 표준 2세대 런타임에서만 지원됩니다. 지원되는 런타임은 표준 언어 구현을 실행하고, 최신 라이브러리 통합을 지원하며, 더 빠르고 강력한 네트워킹 성능을 제공합니다.
VPC 직접 연결 이그레스를 사용하여 네트워크 이그레스 처리량 가속화
네트워크 이그레스 연결에서 처리량을 가속화하려면 VPC 직접 연결을 사용하여 VPC 네트워크를 통해 트래픽을 라우팅합니다.
예시 1: 인터넷에 대한 외부 트래픽
외부 트래픽을 공개 인터넷으로 전송하는 경우 app.yaml 파일에서 vpc_egress 필드를 all-traffic로 설정하여 VPC 네트워크를 통해 모든 트래픽을 라우팅합니다.
이 방식을 사용하려면 Cloud NAT가 공개 인터넷에 연결되도록 설정해야 합니다.
App Engine 서비스에 Cloud NAT를 설정하려면 고정 아웃바운드 IP 주소 설정을 참조하세요. Public NAT 또는 Private NAT에 VPC 직접 연결 이그레스와 함께 사용할 Cloud NAT 게이트웨이 설정은 Cloud NAT VPC 직접 연결 상호작용을 참조하세요.
예시 2: Google API에 대한 내부 트래픽
직접 VPC 이그레스를 사용하여 Cloud Storage와 같은 Google API로 트래픽을 전송하는 경우 다음 옵션 중 하나를 선택합니다.
- 비공개 Google 액세스로
private-ranges-only(기본값)를 지정합니다.app.yaml파일에서vpc_egress: private-ranges-only를 설정합니다.- 비공개 Google 액세스를 사용 설정합니다.
- 비공개 Google 액세스용 DNS를 구성합니다.
대상 도메인(예:
storage.googleapis.com)이 다음 내부 IP 주소 범위 중 하나에 매핑되는지 확인하세요.199.36.153.8/30199.36.153.4/30
- 비공개 Google 액세스로
all-traffic을 지정합니다.app.yaml파일에서vpc_egress: all-traffic를 설정합니다.- 비공개 Google 액세스를 사용 설정합니다.
App Engine에 기본 MTU 설정 사용
App Engine과 함께 사용할 때는 VPC 네트워크의 최대 전송 단위(MTU) 설정을 변경하지 마세요. 대신 기본 MTU인 1,460바이트를 사용하세요.
비용 고려사항
리소스의 네트워킹 옵션을 구성할 때는 다음 사항을 고려하세요.
- 리소스 공동 배치: Cloud SQL, Firestore, Cloud Storage 버킷과 같은 백엔드 데이터베이스와 동일한 리전에 App Engine 리소스를 배포합니다. 동일한 리전 내의 Google Cloud 리소스 간 데이터 전송은 무료입니다.
- VPC 직접 연결 이그레스로 전환: 트래픽을 내부 VPC 네트워크 리소스로 안전하게 라우팅하는 경우 서버리스 VPC 액세스 커넥터에서 VPC 직접 연결 이그레스로 전환하는 것이 좋습니다. VPC 직접 연결 이그레스에는 기준 컴퓨팅 요금이 발생하지 않으므로 커넥터 인스턴스와 관련된 기준 컴퓨팅 오버헤드 및 유휴 비용이 발생하지 않습니다.
- Cloud CDN 사용: App Engine 리소스 앞에 Cloud CDN을 배치하여 정적 애셋과 캐시 가능성이 높은 콘텐츠를 오프로드합니다. 에지에서 데이터를 제공하는 것이 App Engine에서 직접 표준 인터넷 이그레스 비용을 지불하는 것보다 훨씬 저렴합니다. 기본
appspot.comURL에서 Cloud CDN을 직접 사용 설정할 수 없습니다. 대신 서버리스 네트워크 엔드포인트 그룹(NEG) 백엔드가 있는 외부 애플리케이션 부하 분산기를 통해 요청을 라우팅합니다. 자세한 내용은 App Engine으로 전역 외부 애플리케이션 부하 분산기 설정을 참조하세요. - 인터넷 이그레스 모니터링: 리전 경계를 넘거나 공개 인터넷으로 나가는 아웃바운드 트래픽에는 표준 요금이 부과됩니다. 리전 경계를 넘나드는 아웃바운드 트래픽에 모니터링 노력을 집중하세요.
자세한 내용은 App Engine 가격 책정을 검토하거나 가격 계산기로 비용을 추정하세요.