App Engine에 데이터와 파일을 저장하려면 Google Cloud 서비스 또는 사용자 언어가 지원되고 App Engine 인스턴스에서 액세스할 수 있는 다른 스토리지 서비스를 사용하면 됩니다. 타사 데이터베이스는 다른 클라우드 제공업체에서 호스팅되거나, 온프레미스로 호스팅되거나, 타사 공급업체에서 관리될 수 있습니다.
Google Cloud Storage 서비스
Python 2 표준 환경에서 실행되는 App Engine 앱의 경우 다음 Google Cloud Storage 서비스 중 하나를 사용하는 것이 좋습니다.
이름 | 구조 | 일관성 | 비용 |
---|---|---|---|
Datastore 모드의 Firestore | 스키마 없음(NoSQL) | strong consistency를 가짐(전역 쿼리 수행 시 제외) | Datastore 모드는 일일 한도가 있는 무료 할당량을 제공합니다. 유료 계정은 스토리지, 읽기, 쓰기 작업을 무제한으로 제공합니다. 자세한 내용은 Datastore 할당량 페이지에서 확인할 수 있습니다. |
MySQL용 Cloud SQL 또는 PostgreSQL용 Cloud SQL |
관계형 | Strong Consistency | Google Cloud SQL에는 패키지 단위로 청구되는 요금제와 사용량에 따라 청구되는 요금제가 있습니다. 자세한 내용은 Cloud SQL 가격표에서 확인할 수 있습니다. |
Cloud Storage | 파일 및 관련 메타데이터(Cloud 파일 스토리지) | 강력한 일관성(버킷 또는 객체의 목록을 가져오는 목록 작업 수행 시 제외) | Google Cloud Storage를 호출하는 데는 요금이 청구되지 않습니다.
그러나 Google Cloud Storage에 저장된 모든 데이터에는 일반적인 Google Cloud Storage 데이터 저장 수수료가 청구됩니다. Cloud Storage 가격은 Cloud Storage 가격표에서 확인할 수 있습니다. |
이들 옵션은 함께 사용할 수 있습니다. 예를 들어 동일한 애플리케이션이 Cloud SQL 데이터베이스에 정보를 저장하고 Cloud Storage 버킷에 파일을 저장할 수도 있습니다.
Cloud Storage 제품 페이지의 Google Cloud Storage 제품 전체 목록을 참조하세요.
기타 클라우드 제공업체
App Engine 앱은 다른 퍼블릭 클라우드에 호스팅된 외부 데이터베이스에 연결될 수 있습니다. 단, 해당 데이터베이스 서버와 방화벽이 연결을 허용하도록 적절히 구성되어 있어야 합니다. App Engine 앱은 해당 외부 서비스의 공개 IP 주소를 사용하여 인터넷을 통해 연결됩니다.
타사 공급업체가 관리하는 데이터베이스
다수의 공급업체가 MongoDB용 mLab과 같은 관리형 데이터베이스 서비스를 제공하며, Redis Labs는 호스팅된 Redis 캐싱을 제공합니다. 이러한 공급업체는 데이터베이스의 호스팅, 구성, 유지보수를 담당합니다. App Engine은 다른 퍼블릭 클라우드와 마찬가지로 해당 서비스의 공개 IP 주소를 사용하여 인터넷을 통해 외부 서비스에 연결될 수 있습니다.
온프레미스
App Engine 앱이 액세스할 수 있도록 하려는 기존의 온프레미스 데이터베이스가 있는 경우, 내부 네트워크와 방화벽을 구성하여 데이터베이스에 공개 IP 주소를 부여하거나 VPN을 사용하여 연결할 수 있습니다.
프로덕션 고려사항
다양한 측정항목에 따라 애플리케이션이 수평적으로 자동 확장되도록 App Engine을 구성할 수 있습니다. 웹 애플리케이션과 달리 데이터베이스는 확장에 대응하기 위해 까다로운 변경을 거쳐야 하는 경우가 많습니다. 프로덕션 애플리케이션에서 App Engine은 트래픽 급증 시 데이터베이스를 빠르게 가득 채울 수 있습니다. 따라서 데이터베이스를 구성하고 배포할 때 예상되는 평균 트래픽 부하뿐만 아니라 급증 시 부하도 고려해야 합니다.