最近のブログ投稿で、Amazonはサービスディスカバリメカニズムとして機能し、AWSアプリケーションサービスとクラウドリソースを追跡するAWS Cloud Mapと呼ばれる新しいサービスを紹介した。マイクロサービスアーキテクチャの出現に伴い、これらのアーキテクチャ内で動的にリソースを見つけて管理することがますます困難になっている。しかし、AWS Cloud Mapを使用すると、開発者はカスタム名を使用してデータベース、キュー、マイクロサービス、およびその他のクラウドリソースの状態を発見および監視できます。
サービスマップは新しいものではありませんが、過渡状態というインフラストラクチャの性質により、一部の従来のツールでは異常が発生する可能性がある。Amazonは、このソリューションを使用する利点を次のように位置付けている。
以前は、これらすべてのリソース名とそれらの場所をアプリケーションコード内で手動で管理する必要がありました。依存するインフラストラクチャリソースの数が増えたり、トラフィックに基づいてマイクロサービスの数が動的に増減するにつれて、これは時間がかかりエラーが発生しやすくなりました。サードパーティのサービスディスカバリ製品を使用することもできますが、これにはソフトウェアとインフラストラクチャを追加でインストールし管理する必要がありました。
リソースを動的に最新の状態に保つことは、AWS Cloud Mapの重要な機能である。AWSのシニアテクニカルエバンジェリスト、Abby Fullerが、これがどのように実現されるかを説明します。
AWS Cloud Mapは、すべてのアプリケーションコンポーネント、それらの場所、属性、ヘルスステータスを追跡します。これで、アプリケーションは、AWS SDK、API、DNSを使用してAWS Cloud Mapに簡単にクエリを実行し、依存関係の場所を見つけることができます。これにより、アプリケーションを動的に拡張して上流のサービスに直接接続できるようになり、アプリケーションの応答性が向上します。
WebサービスとクラウドリソースをAWS Cloud Mapに登録することは、デプロイ段階とバージョンを含むカスタム属性を使用してそれらを記述することである。その後、アプリケーションはディスカバリコールを行うことができ、AWS Cloud Mapは渡されたパラメータに基づいてリソースの場所を返す。Fullerはこのアプローチの利点を次のように特徴付けている。
デプロイが単純になり、アプリケーションの運用上の複雑さが軽減します。
リソース追跡に加えて、AWS Cloud Mapは予防的なヘルスモニタリングも提供する。Fullerは次のように説明する。
AWS Cloud Mapに登録されているIPベースのリソースの統合ヘルスチェックは、異常なエンドポイントへのトラフィックのルーティングを自動的に停止します。さらに、サービスのヘルスステートを説明するためのAPIが用意されているので、インフラストラクチャーに関する潜在的な問題について知ることができます。これにより、アプリケーションの回復力が高まります。
AWS Cloud Mapへのリソースの追加は、AWSコンソールまたはCLIを通じて、ネームスペースを作成することによって行われる。ネームスペースがプロビジョニングされたら、管理者はAWS SDKとAWS APIのみを使用して、あるいは、オプションでDNSを使って、リソース発見を有効にするかどうかを決定する必要がある。DNS発見では、登録したすべてのリソースにIPアドレスが必要となる。
Amazon Elastic Container Service (ECS)やAmazon FargateなどのリソースはAWS Cloud Mapと緊密に統合されているため、発見が簡単になる。Fullerは次のように説明する。
サービスを作成してサービスディスカバリを有効にすると、すべてのタスクインスタンスがスケールアップ時に自動的にAWS Cloud Mapに登録され、スケールダウン時に登録解除されます。ECSはまた、常に最新のヘルス情報をAWS Cloud Mapにパブリッシュすることで、正常なタスクインスタンスのみがディスカバリコールで返されるようにします。
AWS Cloud Mapは現在、次のリージョンで利用できる。米国東部(バージニア州)、米国東部(オハイオ州)、米国西部(カリフォルニア州北部)、米国西部(オレゴン州)、カナダ(中央)、ヨーロッパ(フランクフルト)、ヨーロッパ(アイルランド) 、ヨーロッパ(ロンドン)、ヨーロッパ(パリ)、アジア太平洋(シンガポール)、アジア太平洋(東京)、アジア太平洋(シドニー)、アジア太平洋(ソウル)、アジア太平洋(ムンバイ)。