이제 기존 번들 서비스에서 제공하는 대부분의 기능이 Cloud 클라이언트 라이브러리에서 제공됩니다.
자세한 내용은 아래의 권장 옵션을 참조하세요.
프로젝트에서 번들되지 않은 솔루션으로 마이그레이션할 수 없는 경우 대체 수단으로
앱에서 기존 번들 서비스를 계속 사용할 수 있습니다. 이 방식을 사용하면 나중에 마이그레이션 주기 시 번들되지 않은 서비스로 유연하게 전환할 수 있습니다.
기존 번들 서비스에서 마이그레이션한 후에는 App Engine을 계속 사용하거나 Cloud Run으로 마이그레이션할 수 있습니다. Cloud Run은 App Engine 환경을 개선하도록 설계되었으며 표준 환경과 가변형 환경의 최고의 기능을 다양하게 통합합니다. 기능 비교와 마이그레이션 방법을 알아보려면 App Engine 및 Cloud Run 비교 가이드를 참조하세요.
또한 App Engine 이미지 서비스는 제공 URL로 이미지 크기 조절을 처리하여 애플리케이션으로의 동적 요청을 방지하는 기능을 제공합니다. 유사한 기능이 필요한 경우 크기가 조절된 이미지를 미리 생성하고 Cloud Storage에 업로드하여 제공할 수 있습니다.
또는 이미지 크기 조절 기능을 제공하는 서드 파티 콘텐츠 전송 네트워크(CDN) 서비스를 사용할 수도 있습니다.
로깅
로그 탐색기에서 로그 보기, 로그 다운로드, 심각도별로 메시지 필터링, 특정 요청과 앱 메시지 간의 상관관계와 같은 기능을 지원하는 Cloud Logging을 사용하도록 앱을 업데이트하는 것이 좋습니다. 또는 데이터 정확성보다 단순성을 원하는 경우 구조화된 로그를 stdout 또는 stderr에 작성하면 됩니다.
자세한 내용은 로그 작성 및 보기을 참조하세요.
메일
이메일을 보내려면 SendGrid, Mailgun 또는 Mailjet과 같은 타사 메일 공급업체를 사용하세요. 이러한 모든 서비스는 애플리케이션에서 이메일을 보낼 수 있는 API를 제공합니다. 현재 인바운드 메시지에 권장되는 서드 파티 대안은 사용할 수 없습니다.
Compute Engine의 ElasticSearch와 같은 전체 텍스트 검색 데이터베이스를 호스팅하고 서비스에서 이 데이터베이스에 액세스합니다.
태스크 큐
Cloud Tasks REST API, RPC API, Cloud 클라이언트 라이브러리를 사용하여 비동기 코드를 실행하기 위한 태스크를 큐에 추가하고
App Engine 표즌 서비스를 푸시 대상으로 사용하세요. 자세한 내용은 태스크 큐에서 Cloud Tasks로 마이그레이션을 참조하세요.
별도의 작업자가 가져와서 처리할 태스크나 메시지를 큐에 추가와 같이 pull 큐를 사용할 수 있는 여러 상황에서는 유사한 기능을 제공하고 전송을 보장하는 Pub/Sub가 좋은 대안이 될 수 있습니다.
사용자 인증
Users API의 대안으로 사용자 인증 페이지에 설명된 HTTP 기반 인증 메커니즘을 사용합니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-04(UTC)"],[[["\u003cp\u003eMost functionalities from legacy bundled services are now provided by Cloud Client Libraries, offering a modern approach to App Engine development.\u003c/p\u003e\n"],["\u003cp\u003eIf unbundled solutions are not immediately feasible, you can still use legacy bundled services as a temporary fallback, allowing a phased migration to newer services.\u003c/p\u003e\n"],["\u003cp\u003eAfter migrating away from legacy bundled services, consider transitioning from App Engine to Cloud Run, which enhances the App Engine experience with improved features.\u003c/p\u003e\n"],["\u003cp\u003eFor services like Blobstore, Datastore, Images, Logging, Mail, Memcache, Search, and Task Queues, use recommended Google Cloud or third-party alternatives, detailed within the document.\u003c/p\u003e\n"],["\u003cp\u003eTo obtain information and modify your application's running services, you can utilize environment variables in conjunction with the App Engine Admin API, as the document clearly presents the way to do so for each service.\u003c/p\u003e\n"]]],[],null,["# Migrate off of legacy bundled services\n\nGo Java PHP Python\n\nMost of the functionality provided by the legacy bundled services is\nnow provided by the [Cloud Client Libraries]().\nFor more information, see the recommended alternatives listed below.\n\nIf migrating to an unbundled solution is not an option for your project, then\nyou may be able to continue\n[using legacy bundled services in your\napps](/appengine/docs/standard/\n\n/services/access)\nas a fallback. This approach gives you flexibility to move to unbundled services\nlater in the migration cycle.\n| **Note**: Not all the legacy bundled services available for have a corresponding service in , so those will need to be migrated to either a Google Cloud or third-party service before porting to .\n\nAfter you migrate off of legacy bundled services, you can continue using App Engine\nor migrate to Cloud Run. Cloud Run is designed to improve upon the App Engine experience, and incorporates many of the best features of both the\nstandard environment and the flexible environment. To compare\nfeatures and understand how to migrate, see the\n[App Engine and Cloud Run comparison guide](/appengine/migration-center/run/compare-gae-with-run).\n\n\u003cbr /\u003e\n\nMigration paths for App Engine bundled services\n-----------------------------------------------\n\n### Blobstore\n\nTo store and retrieve data, use [Cloud Storage](/storage) through the\n[Cloud Client Libraries](/storage/docs/reference/libraries). To get started, see\n[Using Cloud Storage](/appengine/docs/standard/using-cloud-storage).\n\n### Datastore\n\n### Images\n\nYou can [serve images from Cloud Storage](/appengine/docs/standard/serving-static-files#serving_files_from), serve them\ndirectly, or use a third-party content delivery network (CDN).\n\nThe App Engine Images service also provided functionality to avoid\ndynamic requests to your application by handling image resizing using a serving\nURL. If you want similar functionality, you can generate the re-sized images\nahead of time and upload them to Cloud Storage for serving.\nAlternatively, you could use a third-party content delivery network (CDN)\nservice that offers image resizing.\n\n### Logging\n\nWe recommend that you update your app to use Cloud Logging, which supports\nfeatures such as viewing logs in the Logs Explorer, downloading logs,\nfiltering messages by severity, and correlating app messages with specific\nrequests. Alternatively, if you prefer simplicity over data accuracy, you can write structured logs to `stdout` or `stderr`.\nFor more information, see\n[Writing and viewing logs](/appengine/docs/standard/writing-application-logs).\n\n### Mail\n\nTo send email, use a third-party mail provider such as [SendGrid](https://sendgrid.com/),\n[Mailgun](https://www.mailgun.com/), or\n[Mailjet](https://www.mailjet.com/). All of\nthese services offer APIs to send emails from applications. A recommended\nthird-party alternative for inbound messaging is not available at this time.\n\n### Memcache\n\nTo cache application data, [use Memorystore for Redis](/appengine/docs/standard/using-memorystore).\n\n### Modules\n\nTo obtain information and modify your application's running services, use a\ncombination of environment variables and the App Engine Admin API:\n\nFor more information about the data available about your application's\nrunning services, see\n[runtime environment](/appengine/docs/standard/\n\n/runtime#environment_variables).\n\n### OAuth\n\nInstead of using the App Engine OAuth service to verify OAuth 2.0 tokens,\nuse the\n[`oauth2.tokeninfo`](https://developers.google.com/apis-explorer/#search/oauth2/oauth2/v2/oauth2.tokeninfo)\nmethod of the\n[OAuth 2.0 API](https://developers.google.com/identity/protocols/OAuth2).\n\n### Search\n\nHost any full-text search database such as Elasticsearch on Compute Engine and\naccess it from your service.\n\n### Task queue\n\nQueue tasks for asynchronous code execution using the\n[Cloud Tasks](/tasks/docs) REST API, RPC API, or the Cloud Client Libraries,\nand use a\n\nApp Engine standard service\nas a Push target. For more information, see\n[Migrating from Task Queues to Cloud Tasks](/tasks/docs/migrating).\n\nIn many cases where you might use pull queues, such as queuing up tasks or\nmessages that will be pulled and processed by separate workers,\n[Pub/Sub](/appengine/docs/standard/writing-and-responding-to-pub-sub-messages)\ncan be a good alternative as it offers similar functionality and delivery\nguarantees.\n\n### User authentication\n\nFor an alternative to the Users API, use any of the HTTP-based authentication\nmechanisms described on the\n[User authentication](/appengine/docs/standard/authenticating-users) page.\n\n\u003cbr /\u003e"]]