SlideShare a Scribd company logo
1 of 26
© 2021, Amazon Web Services, Inc. or its Affiliates.
AWS 公式 Webinar
https://amzn.to/JPWebinar
過去資料
https://amzn.to/JPArchive
サービスディスカバリと
AWS Cloud Map
AWS Black Belt Online Seminar
AWS Container Specialist
Principal Solution Architect
荒⽊靖宏
2021-July
© 2021, Amazon Web Services, Inc. or its Affiliates.
このセッションで扱うこと
• なぜサービスディスカバリが必要か
• サービスディスカバリ/サービスレジストリパターン
• AWS Cloud Map
2
© 2021, Amazon Web Services, Inc. or its Affiliates.
Monolith
すべてを実⾏
Microservices
ひとつのことを実⾏
© 2021, Amazon Web Services, Inc. or its Affiliates.
Monolith
すべてを実⾏
唯一のサービス
死ぬ時は全てが死ぬ
© 2021, Amazon Web Services, Inc. or its Affiliates.
Microservices
ひとつのことを実⾏
個々のサービスは個々に死ぬ
使えるサービスを呼ぶ必要がある
© 2021, Amazon Web Services, Inc. or its Affiliates.
Microservices
ひとつのことを実⾏
個々のサービスは個々に死ぬ
使えるサービスを呼ぶ必要がある
↓
個々のサービスの生死を知る
「サービスレジストリ」を使って
「サービスディスカバリ」する
© 2021, Amazon Web Services, Inc. or its Affiliates.
サービス ディスカバリ/サービス レジストリパターン
© 2021, Amazon Web Services, Inc. or its Affiliates.
サービス ディスカバリ/サービス レジストリパターンとは
• サービスが他のサービスを利⽤する際の課題を解決するパターン
• サービスレジストリは、サービス情報の登録場所
• 個々のコンテナやインスタンスの起動時に、呼び出されるサービスがそ
のサービス⾃体の情報を登録する
• サービスディスカバリは、動的に変更するサービス情報の取得
© 2021, Amazon Web Services, Inc. or its Affiliates.
サービス レジストリパターン
サービスA サービスB
サービスレジストリ
ユーザー
© 2021, Amazon Web Services, Inc. or its Affiliates.
サービス ディスカバリパターン
サービスA サービスB
サービスディスカバリ
ユーザー
© 2021, Amazon Web Services, Inc. or its Affiliates.
実装例1︓Elastic Load Balancing を利⽤
サービスA サービスB
ユーザー Elastic Load Balancing Elastic Load Balancing
サービスB
サービスB
Auto Scaling group
© 2021, Amazon Web Services, Inc. or its Affiliates.
実装例2︓ Amazon ECSのサービスディスカバリを利⽤
AWS Cloud
VPC
Private subnet
Public subnet
Internet
gateway
Application
Load Balancer
Amazon Elastic Container
Service
Service Discovery
Auto Scaling
group
backend.corp
ユーザー
Amazon Route 53
Auto Scaling group
worker.corp
Auto Scaling group
user.corp
AWS Cloud Map
© 2021, Amazon Web Services, Inc. or its Affiliates.
実装例3︓ AWS Cloud Map の利⽤
サービスA サービスB
ユーザー Elastic Load Balancing
AWS Cloud Map
Amazon Route 53
© 2021, Amazon Web Services, Inc. or its Affiliates.
実装例4︓ AWS App Meshのサービスメッシュの
サービスディスカバリ
サービスA
サービスB
ユーザー AWS App Mesh
Amazon EKS
サービスC
Amazon ECS Amazon EC2
Amazon EKS
© 2021, Amazon Web Services, Inc. or its Affiliates.
すべてのクラウドリソースのレジストリ
高速で安全な名前解決
属性ベースの検出
Amazon Route 53 ヘルスチェックを使った一時的な障
害の処理
AWS クラウドおよびオープンソースソリューションと
の統合
AWS Cloud Mapの主な機能の紹介
AWS Cloud
Map
© 2021, Amazon Web Services, Inc. or its Affiliates.
AWS Cloud Map:利点
• 99.99% のSLA可⽤性を持つリージョナルサービス
• ⾼速な変更 — 5 秒未満
• 認証されたサービスディスカバリコール
• 低レイテンシーディスカバリコール — 平均 2 ms
• すべてのコンテナサービスでの統合サービス検出
• 属性ベースのサービス検出
• 論理的でわかりやすい名前でサービスの場所と構成パラメー
タを検出する
• ELB の CNAME および A レコードのサポート
• 複数値の応答ルーティング(最⼤ 8 つのアドレスを返しま
す)
• IP ベースリソースの DNS ディスカバリモード(オプション)
• リージョン間でアプリケーションを簡単に拡張可能
• IP ベースのリソースの Amazon Route 53 ヘルスチェックを設
定する
• AWS およびオープンソースソリューションとの統合
高速かつ安全
シンプルなサー
ビス検出
名前解決
容易な管理性
© 2021, Amazon Web Services, Inc. or its Affiliates.
AWS インテグレーション
AWS Cloud Map:エコシステム
オープンソースインテグレーション
• Kubernetes (via
ExternalDNS)
• Istio (via Pilot) ̶ Tetrate.io
• Consul.io ̶ HashiCorp
• Amazon Elastic Container
Services (ECS)
• Amazon Elastic Container
Services for Kubernetes
(EKS)
• AWS App Mesh
© 2021, Amazon Web Services, Inc. or its Affiliates.
AWS Cloud Map: ⽤語
o Name Space
o サービスの論理グループ
o 使⽤⽅法を指定︓APIのみ、APIとVPCのDNS、APIとパブリックDNS
o サービス
o サービスインスタンスを登録するためのテンプレート
o DNSレコードタイプや、ヘルスチェック⽅法を指定する
o サービスインスタンス
o 実際のリソースにアクセスする⽅法がある
© 2021, Amazon Web Services, Inc. or its Affiliates.
Service
Service Instance
Name Space
Resource
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API + パブリックDNS ディスカバリモードのリソース登録
1. aws servicediscovery create-public-dns-namespace --name
cmtest.araki.net
2. aws servicediscovery create-service --name frontend
--dns-config “NamespaceId=${NAMESPACE_ID} DnsRecords=[{Type=A,
TTL=60}]”
3. aws servicediscovery register-instance --service-id
${SERVICE_ID} --instance-id ${SERVICE_INSTANCE}
--attributes
AWS_INSTANCE_IPV4=10.7.20.100,
AWS_INSAANCE_PORT=8080
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デモ
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API ディスカバリのクラウドリソース登録
1. aws servicediscovery create-http-namespace --name shared
2. aws servicediscovery create-service --name logs --namespace-id
%namespace_id%
3. aws servicediscovery register-instance --service-id
%service_id% --instance-id %id%
--attributes
ARN=arn:aws:s3:::cloudmapdemoservicelogsbeta1,
stage=beta,
shard=s_1,
read_only=no,
path=/mylogs
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
APIコールによるセキュアな名前解決
aws servicediscovery discover-instances --namespace-name shared --service-
name logs
-->
{ "Instances": [
{
"InstanceId": "i1",
"NamespaceName": "shared",
"ServiceName": "logs",
"HealthStatus": "UNKNOWN",
"Attributes": {
"read_only": "no",
"path": "/mylogs",
"shard": "s_1",
"ARN": "arn:aws:s3:::cloudmapdemoservicelogsbeta1",
"stage": "beta”
}
}
]
}
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Python SDKを利⽤したサービスインスタンスの登録例
def register_service():
client = boto3.client('servicediscovery')
response = client.register_instance(
ServiceId = SERVICE_ID,
InstanceId = INSTANCE_ID,
Attributes = {
'version': '1.0',
'stage': 'prod',
'AWS_INSTANCE_IPV4': '34.209.47.250',
'AWS_INSTANCE_PORT': '80'
}
)
return response
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Python SDKを利⽤したサービスインスタンスの取得例
def discover_services():
client = boto3.client('servicediscovery')
response = client.discover_instances(
NamespaceName = NAMESPACE_NAME,
ServiceName = SERVICE_NAME,
QueryParameters = {
"version": "1.0",
"stage": "prod"
}
)
return response
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
このセッションで扱ったこと
• なぜサービスディスカバリが必要か
→ サービスが他のサービスを利⽤する際の課題を解決
• サービスディスカバリ/サービスレジストリパターン
→ 分散システムの前提となる考え⽅とその実装
• AWS Cloud Map
→ アプリケーションのリソースに論理名をマッピングできるマ
ネージドサービス。サービスディスカバリにはAWS SDK、
RESTful API コール、または DNS クエリを使⽤可能。
26

More Related Content

More from Amazon Web Services Japan

202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用Amazon Web Services Japan
 
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdfAmazon Web Services Japan
 
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介Amazon Web Services Japan
 
Amazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon Web Services Japan
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことAmazon Web Services Japan
 
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチAmazon Web Services Japan
 
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介Amazon Web Services Japan
 
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer ProfilesAmazon Web Services Japan
 
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Web Services Japan
 
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨Amazon Web Services Japan
 
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介Amazon Web Services Japan
 
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介Amazon Web Services Japan
 
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...Amazon Web Services Japan
 
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピAmazon Web Services Japan
 
20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operations20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operationsAmazon Web Services Japan
 
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報Amazon Web Services Japan
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをなAmazon Web Services Japan
 
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPNAmazon Web Services Japan
 

More from Amazon Web Services Japan (20)

202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
 
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
 
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
 
Amazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDD
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
 
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
 
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
 
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
 
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
 
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
 
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
 
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
 
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
 
20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operations20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operations
 
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
 
20211109 JAWS-UG SRE keynotes
20211109 JAWS-UG SRE keynotes20211109 JAWS-UG SRE keynotes
20211109 JAWS-UG SRE keynotes
 
20211109 bleaの使い方(基本編)
20211109 bleaの使い方(基本編)20211109 bleaの使い方(基本編)
20211109 bleaの使い方(基本編)
 
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
 

Recently uploaded

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 

Recently uploaded (9)

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 

202107 AWS Black Belt Online Seminar サービスディスカバリと AWS Cloud Map

  • 1. © 2021, Amazon Web Services, Inc. or its Affiliates. AWS 公式 Webinar https://amzn.to/JPWebinar 過去資料 https://amzn.to/JPArchive サービスディスカバリと AWS Cloud Map AWS Black Belt Online Seminar AWS Container Specialist Principal Solution Architect 荒⽊靖宏 2021-July
  • 2. © 2021, Amazon Web Services, Inc. or its Affiliates. このセッションで扱うこと • なぜサービスディスカバリが必要か • サービスディスカバリ/サービスレジストリパターン • AWS Cloud Map 2
  • 3. © 2021, Amazon Web Services, Inc. or its Affiliates. Monolith すべてを実⾏ Microservices ひとつのことを実⾏
  • 4. © 2021, Amazon Web Services, Inc. or its Affiliates. Monolith すべてを実⾏ 唯一のサービス 死ぬ時は全てが死ぬ
  • 5. © 2021, Amazon Web Services, Inc. or its Affiliates. Microservices ひとつのことを実⾏ 個々のサービスは個々に死ぬ 使えるサービスを呼ぶ必要がある
  • 6. © 2021, Amazon Web Services, Inc. or its Affiliates. Microservices ひとつのことを実⾏ 個々のサービスは個々に死ぬ 使えるサービスを呼ぶ必要がある ↓ 個々のサービスの生死を知る 「サービスレジストリ」を使って 「サービスディスカバリ」する
  • 7. © 2021, Amazon Web Services, Inc. or its Affiliates. サービス ディスカバリ/サービス レジストリパターン
  • 8. © 2021, Amazon Web Services, Inc. or its Affiliates. サービス ディスカバリ/サービス レジストリパターンとは • サービスが他のサービスを利⽤する際の課題を解決するパターン • サービスレジストリは、サービス情報の登録場所 • 個々のコンテナやインスタンスの起動時に、呼び出されるサービスがそ のサービス⾃体の情報を登録する • サービスディスカバリは、動的に変更するサービス情報の取得
  • 9. © 2021, Amazon Web Services, Inc. or its Affiliates. サービス レジストリパターン サービスA サービスB サービスレジストリ ユーザー
  • 10. © 2021, Amazon Web Services, Inc. or its Affiliates. サービス ディスカバリパターン サービスA サービスB サービスディスカバリ ユーザー
  • 11. © 2021, Amazon Web Services, Inc. or its Affiliates. 実装例1︓Elastic Load Balancing を利⽤ サービスA サービスB ユーザー Elastic Load Balancing Elastic Load Balancing サービスB サービスB Auto Scaling group
  • 12. © 2021, Amazon Web Services, Inc. or its Affiliates. 実装例2︓ Amazon ECSのサービスディスカバリを利⽤ AWS Cloud VPC Private subnet Public subnet Internet gateway Application Load Balancer Amazon Elastic Container Service Service Discovery Auto Scaling group backend.corp ユーザー Amazon Route 53 Auto Scaling group worker.corp Auto Scaling group user.corp AWS Cloud Map
  • 13. © 2021, Amazon Web Services, Inc. or its Affiliates. 実装例3︓ AWS Cloud Map の利⽤ サービスA サービスB ユーザー Elastic Load Balancing AWS Cloud Map Amazon Route 53
  • 14. © 2021, Amazon Web Services, Inc. or its Affiliates. 実装例4︓ AWS App Meshのサービスメッシュの サービスディスカバリ サービスA サービスB ユーザー AWS App Mesh Amazon EKS サービスC Amazon ECS Amazon EC2 Amazon EKS
  • 15. © 2021, Amazon Web Services, Inc. or its Affiliates. すべてのクラウドリソースのレジストリ 高速で安全な名前解決 属性ベースの検出 Amazon Route 53 ヘルスチェックを使った一時的な障 害の処理 AWS クラウドおよびオープンソースソリューションと の統合 AWS Cloud Mapの主な機能の紹介 AWS Cloud Map
  • 16. © 2021, Amazon Web Services, Inc. or its Affiliates. AWS Cloud Map:利点 • 99.99% のSLA可⽤性を持つリージョナルサービス • ⾼速な変更 — 5 秒未満 • 認証されたサービスディスカバリコール • 低レイテンシーディスカバリコール — 平均 2 ms • すべてのコンテナサービスでの統合サービス検出 • 属性ベースのサービス検出 • 論理的でわかりやすい名前でサービスの場所と構成パラメー タを検出する • ELB の CNAME および A レコードのサポート • 複数値の応答ルーティング(最⼤ 8 つのアドレスを返しま す) • IP ベースリソースの DNS ディスカバリモード(オプション) • リージョン間でアプリケーションを簡単に拡張可能 • IP ベースのリソースの Amazon Route 53 ヘルスチェックを設 定する • AWS およびオープンソースソリューションとの統合 高速かつ安全 シンプルなサー ビス検出 名前解決 容易な管理性
  • 17. © 2021, Amazon Web Services, Inc. or its Affiliates. AWS インテグレーション AWS Cloud Map:エコシステム オープンソースインテグレーション • Kubernetes (via ExternalDNS) • Istio (via Pilot) ̶ Tetrate.io • Consul.io ̶ HashiCorp • Amazon Elastic Container Services (ECS) • Amazon Elastic Container Services for Kubernetes (EKS) • AWS App Mesh
  • 18. © 2021, Amazon Web Services, Inc. or its Affiliates. AWS Cloud Map: ⽤語 o Name Space o サービスの論理グループ o 使⽤⽅法を指定︓APIのみ、APIとVPCのDNS、APIとパブリックDNS o サービス o サービスインスタンスを登録するためのテンプレート o DNSレコードタイプや、ヘルスチェック⽅法を指定する o サービスインスタンス o 実際のリソースにアクセスする⽅法がある
  • 19. © 2021, Amazon Web Services, Inc. or its Affiliates. Service Service Instance Name Space Resource
  • 20. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API + パブリックDNS ディスカバリモードのリソース登録 1. aws servicediscovery create-public-dns-namespace --name cmtest.araki.net 2. aws servicediscovery create-service --name frontend --dns-config “NamespaceId=${NAMESPACE_ID} DnsRecords=[{Type=A, TTL=60}]” 3. aws servicediscovery register-instance --service-id ${SERVICE_ID} --instance-id ${SERVICE_INSTANCE} --attributes AWS_INSTANCE_IPV4=10.7.20.100, AWS_INSAANCE_PORT=8080
  • 21. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デモ
  • 22. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API ディスカバリのクラウドリソース登録 1. aws servicediscovery create-http-namespace --name shared 2. aws servicediscovery create-service --name logs --namespace-id %namespace_id% 3. aws servicediscovery register-instance --service-id %service_id% --instance-id %id% --attributes ARN=arn:aws:s3:::cloudmapdemoservicelogsbeta1, stage=beta, shard=s_1, read_only=no, path=/mylogs
  • 23. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. APIコールによるセキュアな名前解決 aws servicediscovery discover-instances --namespace-name shared --service- name logs --> { "Instances": [ { "InstanceId": "i1", "NamespaceName": "shared", "ServiceName": "logs", "HealthStatus": "UNKNOWN", "Attributes": { "read_only": "no", "path": "/mylogs", "shard": "s_1", "ARN": "arn:aws:s3:::cloudmapdemoservicelogsbeta1", "stage": "beta” } } ] }
  • 24. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Python SDKを利⽤したサービスインスタンスの登録例 def register_service(): client = boto3.client('servicediscovery') response = client.register_instance( ServiceId = SERVICE_ID, InstanceId = INSTANCE_ID, Attributes = { 'version': '1.0', 'stage': 'prod', 'AWS_INSTANCE_IPV4': '34.209.47.250', 'AWS_INSTANCE_PORT': '80' } ) return response
  • 25. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Python SDKを利⽤したサービスインスタンスの取得例 def discover_services(): client = boto3.client('servicediscovery') response = client.discover_instances( NamespaceName = NAMESPACE_NAME, ServiceName = SERVICE_NAME, QueryParameters = { "version": "1.0", "stage": "prod" } ) return response
  • 26. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. このセッションで扱ったこと • なぜサービスディスカバリが必要か → サービスが他のサービスを利⽤する際の課題を解決 • サービスディスカバリ/サービスレジストリパターン → 分散システムの前提となる考え⽅とその実装 • AWS Cloud Map → アプリケーションのリソースに論理名をマッピングできるマ ネージドサービス。サービスディスカバリにはAWS SDK、 RESTful API コール、または DNS クエリを使⽤可能。 26