App Engine에 데이터와 파일을 저장하려면 Google Cloud 서비스 또는 사용자 언어가 지원되고 App Engine 인스턴스에서 액세스할 수 있는 다른 스토리지 서비스를 사용하면 됩니다. 타사 데이터베이스는 다른 클라우드 제공업체에서 호스팅되거나, 온프레미스로 호스팅되거나, 타사 공급업체에서 관리될 수 있습니다.
임시 파일 읽기 및 쓰기는 임시 파일 읽기 및 쓰기를 참조하세요.Google Cloud Storage 서비스
표준 환경에서 실행되는 App Engine 앱의 경우 다음 Google Cloud Storage 서비스 중 하나를 사용하는 것이 좋습니다.
- Datastore 모드의 Firestore: NoSQL 데이터베이스에 데이터를 저장합니다.
- MySQL용 Cloud SQL: MySQL 데이터베이스에 데이터를 저장합니다.
- PostgreSQL용 Cloud SQL: PostgreSQL 데이터베이스에 데이터를 저장합니다.
- Cloud Storage: 런타임 환경에서 파일 읽고 쓰며 동영상, 이미지 또는 기타 정적 콘텐츠와 같은 정적 파일을 저장하고 제공합니다.
Cloud Storage 제품 페이지의 Google Cloud Storage 제품 전체 목록을 참조하세요.
기타 클라우드 제공업체
App Engine 앱은 다른 퍼블릭 클라우드에 호스팅된 외부 데이터베이스에 연결될 수 있습니다. 단, 해당 데이터베이스 서버와 방화벽이 연결을 허용하도록 적절히 구성되어 있어야 합니다. App Engine 앱은 해당 외부 서비스의 공개 IP 주소를 사용하여 인터넷을 통해 연결됩니다.
타사 공급업체가 관리하는 데이터베이스
다수의 공급업체가 MongoDB용 mLab과 같은 관리형 데이터베이스 서비스를 제공하며, Redis Labs는 호스팅된 Redis 캐싱을 제공합니다. 이러한 공급업체는 데이터베이스의 호스팅, 구성, 유지보수를 담당합니다. App Engine은 다른 퍼블릭 클라우드와 마찬가지로 해당 서비스의 공개 IP 주소를 사용하여 인터넷을 통해 외부 서비스에 연결될 수 있습니다.
온프레미스
기존 온프레미스 데이터베이스가 App Engine 앱에 액세스할 수 있도록 하려면 내부 네트워크와 방화벽을 구성하여 데이터베이스에 공개 IP 주소를 부여하거나 VPN을 사용하여 연결할 수 있습니다.
Cloud VPN을 설정하면 데이터베이스 서버를 공개 인터넷에 직접 노출하지 않고 App Engine 앱이 온프레미스 네트워크에 액세스할 수 있습니다. App Engine과 Compute Engine은 동일한 네트워킹 인프라를 사용하므로, VPN 연결과 데이터베이스 서버의 내부 IP 주소를 사용하여 App Engine 앱과 온프레미스 데이터베이스 간의 연결을 설정할 수 있습니다.
프로덕션 고려사항
다양한 측정항목에 따라 애플리케이션이 수평적으로 자동 확장되도록 App Engine을 구성할 수 있습니다. 웹 애플리케이션과 달리 데이터베이스는 확장에 대응하기 위해 까다로운 변경을 거쳐야 하는 경우가 많습니다. 프로덕션 애플리케이션에서 App Engine은 트래픽 급증 시 데이터베이스를 빠르게 가득 채울 수 있습니다. 따라서 데이터베이스를 구성하고 배포할 때 예상되는 평균 트래픽 부하뿐만 아니라 급증 시 부하도 고려해야 합니다.