クラウドベースのソフトウェア プロジェクトには複数の環境が必要です。これらの環境には、dev、qa、staging、prod などの名前を付けるのが一般的です。これらの環境を互いに完全に分離することが重要です。通常、これらの環境には、まったく異なるオペレータ アクセス権限を付与します。たとえば、開発チームに dev 環境に対する完全アクセス権を付与する一方で、prod 環境に対しては限定的なアクセス権だけを付与し、この環境へのコードデプロイがすべて自動スクリプトのみで行われるようにします。また、環境ごとにデータを分離することも極めて重要になります。
上記の要件を満たす最適な方法は、複数の Google Cloud プロジェクトを使用することです。複数のプロジェクトを使用してコードとデータを完全に分離すれば、オペレータ権限をプロジェクトごとに管理できるためです。App Engine は稼働インスタンスを自動的にスケーリングするため、使用した分にのみ課金されます。たとえば、4 週間のうち 1 週間だけステージング環境が必要な場合に、残りの 3 週間分のインスタンス稼働費をお支払いいただく必要はありません。ただし、そのプロジェクトで保管されているデータについては費用が発生する点にご注意ください。
環境に名前を付ける
複数のサービスだけを使用してマイクロサービス アプリケーションを作成する場合は、各環境に Google Cloud プロジェクトを 1 つずつ作成し、環境に応じた名前(web-app-dev、web-app-qa、web-app-prod など)を付けることができます。
また、複数のプロジェクトを使用してマイクロサービス アプリケーションを作成する場合でも、同じように環境を分離できます。ただし、web-app-dev、web-app-prod、user-service-dev、user-service-prod などのように、使用するプロジェクト数が多くなります。dev プロジェクトは dev プロジェクト同士でのみ通信し、prod プロジェクトは prod プロジェクト同士でのみ通信するようにするために、コード上のパターンを使用する必要があります。

次のステップ
- App Engine のマイクロサービス アーキテクチャの概要を確認します。
- マイクロサービス間で通信する API を設計するためのおすすめの方法を確認します。
- マイクロサービスのパフォーマンスを高めるためのおすすめの方法を確認します。
- 既存のモノリシック アプリケーションを、マイクロサービスを使用するアプリケーションに移行する方法を確認します。