AWSでマイクロサービスのアーキテクチャを構築するつもりですが、私の疑問を明確にするようにお願いします。
私の現在の一般的な概念
Elastic Beanstalkで実行されているマイクロサービスのAPIを公開するAPIゲートウェイを使用したいと思います。インターネットからインスタンスに直接アクセスせずにVPCにElastic Beanstalkを配置したいと思います。
質問と疑問:
私は意見に基づいていない点に答えます:
- Elastic Beanstalkは、アプリケーションの作成時にサブドメインを取得します。このサブドメインは、統合タイプがAWSのAPI Gateway、アクション構成で使用する必要があります-私は正しいですか?
いいえ、AWSサービスの統合は、実際にElastic Beanstalkサービスを呼び出している場合にのみ適用されます。独自のbeanstalkinstanceを呼び出すため、HTTP統合を使用します。
- 単一のマイクロサービスを表すものは何ですか? Elastic Beanstalkのアプリケーションは、特定のスケーラブルなマイクロサービスですか?
これはあなた次第ですが、コメントで述べたように、多くのお客様はBeanstalkアプリケーションではなくLambda関数を使用してこれを行うことを選択します。 Lambdaを使用すると、beanstalkアプリケーションのスケーリングを管理する必要がないという利点があります。
- テスト環境:テスト環境(またはステージング環境)ではどのような構造を使用する必要がありますか?別のElastic Beanstalkと他のAmazonサービスを使用して個別のVPCを作成することを検討しています。
ここでの注意点として、API Gatewayは現在VPCのリソースにアクセスできません。 Beanstalkインスタンスはすべて、パブリックにアクセスできる必要があります。
- テスト環境とAPIゲートウェイ:APIゲートウェイを設定するにはどうすればよいですか?リクエストにtest.mydomain.com/hello_world/say_helloのような特定のサブドメインがある場合、テスト環境でクライアントがマイクロサービスにアクセスできるようにする必要があります。テストステージから本番ステージに構成を手動でコピーせずに、CI/CDでAPI Gatewayを使用して高速かつシンプルにする方法がわかりません。 (私はどんな複雑なソリューションも期待していません、それに使用できるコンポーネント、パーツ、コンセプトについてのいくつかのヒントだけです。詳細は自分で見つけます)。
stage variables を見てください。これにより、これらの変数に格納されたdev/test/prod間の違いを含む基本的な設定を使用できるようになります。
API GatewayがプライベートVPCとの統合をサポートするようになったため、ELBをプライベートVPCにデプロイし、.ebextension
を使用してAPI Gatewayを前面に配置できると思います