クラウドベースのソフトウェア プロジェクトには複数の環境が必要です。これらの環境には、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 を設計するためのおすすめの方法を確認します。
- マイクロサービスのパフォーマンスを高めるためのおすすめの方法を確認します。
- 既存のモノリシック アプリケーションを、マイクロサービスを使用するアプリケーションに移行する方法を確認します。