AWS Cloud Map は、クラウドリソース検出サービスです。Cloud Map では、アプリケーションリソースのカスタム名を定義して、動的に変化するこれらのリソースの更新された場所を管理できます。ウェブサービスがそのリソースの最新の場所を常に検出するため、アプリケーションの可用性が向上します。
モダンアプリケーションは一般的に、API を通じてアクセス可能な、特定の機能を実行する複数のサービスから構成されています。各サービスは、データベース、キュー、オブジェクトストア、カスタマー定義のマイクロサービスといったさまざまな他のリソースと対話をしますが、機能するためには、依存しているインフラストラクチャリソースすべての場所を見つけることができなければなりません。多くの場合、これらすべてのリソース名およびその場所は、アプリケーションコード内部で手動で管理されています。しかしながら、手動でのリソース管理は、依存するインフラストラクチャリソースの数や、トラフィックに基づいて動的にスケールアップおよびスケールダウンするマイクロサービスの数が多くなるほど、ますます時間がかかるようになり、ミスも発生しやすくなります。サードパーティーのサービス検出製品を使用することもできますが、追加のソフトウェアやインフラストラクチャをインストールしたり管理したりする必要があります。
Cloud Map では、データベース、キュー、マイクロサービス、その他クラウドリソースなどのアプリケーションリソースを、カスタム名を付けてレジストリに登録できます。その後、Cloud Map はリソースの状態を継続的にチェックし、その場所が最新であることを確認します。そして、アプリケーションは、アプリケーションのバージョンとデプロイ環境に基づき、必要なリソースの場所をレジストリにクエリできます。
利点
アプリケーションの可用性を向上
Cloud Map はアプリケーションの IP ベースのコンポーネントすべての状態を継続的にモニタリングし、各マイクロサービスが追加または削除されると、その場所を動的に更新します。これにより、アプリケーションはリソースの最新の場所のみを検出でき、可用性を向上させることができます。
開発者の生産性を向上
Cloud Map では、単一のレジストリにすべてのアプリケーションサービスをカスタム名で定義して登録できます。これによって、開発チームはリソース名や場所の情報を継続的に保存、追跡、更新しなくてよくなり、アプリケーションコード内部に直接変更を加える必要もなくなります。
仕組み
ユースケース
サービスの検出
マイクロサービスは、一般的にコンテナ等の動的なリソースを使用して実装されており、迅速な起動と終了が可能です。これらのリソースは API を通じて通信し、アプリケーションコード内部から依存するリソースの場所を指定する必要があります。しかしながら、これらの各リソースは動的で場所が継続的に変化するため、個々のリソースにとってすべての依存関係の場所を継続的に追跡して見つけることは困難です。Cloud Map では、サービス名および場所が登録された単一の最新のレジストリを提供するため、マイクロサービスが容易に互いの場所を特定できるようになります。
継続的インテグレーションと継続的デリバリー
複数の環境、リージョン、バージョンをまたいでアプリケーションコードをデプロイするには、すべてのサービスの場所を含んだ複数の設定ファイルを更新しなければなりません。Cloud Map は、サービス名および場所のレジストリを最新の状態に維持します。デプロイ先となる環境、リージョン、アプリケーションのバージョンに基づいてリソースの場所を更新すると、アプリケーションは自動的に正しいリソースを検出します。
自動ヘルスモニタリング
アプリケーションは、一般的に AWS のサービスとカスタムリソースの組み合わせです。しかしながら、アプリケーションリソースすべての最新のヘルスステータスを確実に取得することは容易ではありません。Cloud Map を使用すれば、これは実現可能です。自動ヘルスチェックを通じて正常な状態のリソースのみが登録された最新の状態にレジストリを維持できます。これによって、トラフィックは常に正常な状態のエンドポイントにのみ流れます。
ブログ投稿と記事
Cloud Map の紹介
AWS Cloud Map は、すべてのアプリケーションコンポーネント、その場所、属性、ヘルスステータスを追跡します。AWS Cloud Map にクエリすることで、アプリケーションは依存関係の場所を検出できるようになりました。このクエリの実行には、AWS SDK、API、または DNS さえもが使用できます。
サーバーレスアプリケーションの AWS Cloud Map サービス検出
AWS Cloud Map は、あらゆるビジネスロジックを結びつける接着剤として作用することにより、マイクロサービスへの道を拓きます。Peak.ai では、サーバーレスフレームワークを最大限に活用しています。そこで AWS Cloud Map をサーバーレスフレームワークのワークフローに組み込む方法を探りたいと考えました。