AWS Cloud Mapを本番に導入して得られた知見をシェアします。
Hiroaki Ogasawara (@hiroga_cc)@ JAWS-UG東京 #32 - マイベストヒット2019AWS Cloud Map ☁本番導入の感想2019, Hiroaki Ogasawara
View Slide
自己紹介
AWS Fargateでホスト、ECSのマイクロサービスアーキテクチャ導⼊したアーキテクチャ
AWS Fargateでホスト、ECSのマイクロサービスアーキテクチャ導⼊したアーキテクチャ内部で通信します!
Cloud Mapとは︖ECSのサービスディスカバリを含む、AWSリソース検出の仕組み• コンテナに対応するプライベートなドメインの登録・更新を、ECSが⾃動でやるための仕組み(サービスディスカバリ)• 従来からECSのサービスディスカバリ機能はあったが、コンソールが追加• EKSにも対応しています(今回は話しません)• AレコードだけでなくSRVレコードも(話しません)• パブリックな名前空間にも対応しています(話しません)• IPアドレスだけでなくAWSのリソース名にも対応しています(ry)
Cloud Mapとは︖内部(公式ドキュメント等から想像)ECS Service AWS Cloud Map Amazon Route 53スケールしたので、サービスにRegisterInstanceお願いしますMutli Valueの回答のType Aレコードセットに1レコード⾜しといてください
Cloud Map(サービスディスカバリ)以前のソリューションは…• ECSのEvent StreamをLambdaで購読してRoute 53のAPIを叩く• Parameter Storeで名前とIPアドレスの組み合わせを持つ• InternalなALB• サードパーティのサービスディスカバリー• HashiCorp Consul• etcd• Netflix Eureka本番導⼊の感想
Cloud Map(サービスディスカバリ)以前のソリューションは…• ECSのEvent StreamをLambdaで購読してRoute 53のAPIを叩く• Parameter Storeで名前とIPアドレスの組み合わせを持つ• InternalなALB• サードパーティのサービスディスカバリー• HashiCorp Consul• etcd• Netflix Eureka本番導⼊の感想余談私はひとつもやったことないです(伝聞)サービスディスカバリ以前を知らないので…!
本番導⼊の感想導⼊が楽
本番導⼊の感想導⼊後の運⽤で活躍• ELBとECSサービスのヘルスチェック失敗時の調査• マネジメントコンソールでサービスのIP調べなくていい• 踏み台サーバーからドメイン名で直接アクセス• あるサービスのドメイン名が、環境ごとに変わったりしない︕• アプリケーション側で環境の差異を巻き取らないでOK(にできる)
カスタム属性やARNの解決など、⾃分が使っていない機能を使ってる⼈の話︕気になっていること
まとめCloud Mapを使うと、Fargateで⽴てたサービスに内部から楽にアクセスできる
参考資料• Implementing Microservices on AWShttps://d1.awsstatic.com/whitepapers/microservices-on-aws.pdf• AWS Fargate、Amazon EKS、Amazon ECS が AWS Cloud Map と統合(2018/11/28)https://aws.amazon.com/jp/about-aws/whats-new/2018/11/aws-fargate-and-amazon-ecs-now-integrate-with-aws-cloud-map/• ECSのサービスディスカバリーが東京にやってきて、コンテナ間通信の実装が簡単になりました!(2018/09/05)https://dev.classmethod.jp/cloud/aws/ecs-service-discovery/• Amazon ECS サービスディスカバリ(2018/03/30)https://aws.amazon.com/jp/blogs/news/amazon-ecs-service-discovery/• Amazon Route 53 Auto Namingでサービスディスカバリを実現する(2017/12/11)https://dev.classmethod.jp/cloud/amazon-route-53-auto-naming/• Amazon Route 53、サービス名の管理および検出用の Auto Naming API をリリース(2017/12/05)https://aws.amazon.com/jp/about-aws/whats-new/2017/12/amazon-route-53-releases-auto-naming-api-name-service-management/• [新機能]Route 53 でマルチバリューの回答ができるようになりました(2017/06/22)https://dev.classmethod.jp/cloud/aws/route53-multivalue-response/References