AWS上でのトピックリスナーの構築とデプロイ
トピック・リスナーの構成
トピックリスナーを開発するとき、最も一般的な2つのアプローチは、単一のモノリシックアプリケーション内にすべてのトピックリスナーを展開すること、またはトピックリスナーをマイクロサービスに分割することです。ワークロードの詳細とアプリケーションの複雑さを考慮して決定する必要があります。複数のトピックをリッスンする単一のサブスクライバー・アプリケーションを構築することから始めましょう。アプリケーションのトラフィックとビジネスロジックの複雑さが増してきたら、アプローチを再評価し、トピックのリスナーをマイクロサービスに分割することを検討します。
AWS上でのトピックリスナーのデプロイ
Momento Topicsリスナーは、トピック内の新しいメッセージを拾うために、Momento Cacheへのステートフルな接続を必要とします。AWS Lambdaにはステートフルな接続がないため、Topicsのリスナーには適さず、コンテナでのデプロイが必要になります。聞いたことがあるかもしれませんが、AWS 上でコンテナベースのアプリケーションをデプロイする方法はかなりたくさんあります。いくつかの一般的なオプションについて説明しましょう。
- AWS App Runner
- Amazon ECS on AWS Fargate
AWS App Runner は、ソースコードまたはコンテナイメージから、AWS 上のスケーラブルでセキュアな Momento Topics リスナーアプリケーションに直接デプロイするための、高速でシンプル、かつコスト効率の高い方法を提供する AWS サービスです。AWS App Runner は、新しいアプリケーションを構築するとき、特にプロトタイプを作成するとき、他のコンテナサービスのすべてのカスタムオプションが必要ないとき、またはコンテナベースのアプリケーションに慣れていないときに使用するのに最適です。
大規模なワークロードには、AWS Fargate on Amazon ECSでアプリケーションをデプロイすることをお勧めします。Fargateは、スケーリング、パッチ適用、セキュリティ、サーバー管理のオーバーヘッドを抽象化し、アプリケーションの開発に集中できるようにします。Fargateは、安定したレベルの高トラフィックが予想される場合、AWS App Runnerと比較してより重いワークロードに適しています。
リスナーのアプリケーションにどのコンテナサービスを選択すればよいかわからない場合は、ご連絡ください!お客様のアプリケーションの要件を確認し、最適なものをご提案させていただきます。
トピックスリスナーをAWSにデプロイする際の考慮事項
- クレデンシャルの管理
- リスナーアプリケーションから取得するために、Momento 認証トークンをどのように保存するかを検討します。
- トークンの保存と取得には、AWS Secrets Managerを使用することをお勧めします。
- シークレットマネージャーのコストを削減するために、シークレットをメモリーにキャッシュすることができます。
- Momento認証の詳細については、こちらをご覧ください。 here
- ランタイムの選択(AWS App Runnerのみ)
- ランタイムが AWS App Runner と Momento SDK でサポートされていることを確認します。
- Infrastructure as code
- Momentoキャッシュは、現在サポートしているIaCフレームワークで展開できます。
- CDK
- SAM