マイクロサービスアーキテクチャ@AWS¶
はじめに¶
本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。
01. AWS EKSによるリクエスト駆動型マイクロサービスアーキテクチャ¶
自著『クラウドネイティブ技術とマイクロサービスアーキテクチャーのつながり』を確認する。
02. AWS ECSによるリクエスト駆動型マイクロサービスアーキテクチャ¶
AWS ECSによるマイクロサービスアーキテクチャ¶
記入中...
AWS VPC内のマイクロサービス領域¶
▼ マルチECSサービス¶
AWS ECSクラスターに複数のAWS ECSサービスを作成する。
AWS ECSサービスをマイクロサービス単位で稼働させる。
ただ、AWS ECSによるマイクロサービスアーキテクチャはアプリとインフラの責務を分離できないため、非推奨である。
Kubernetes Cluster上でこれを稼働させることが推奨である。
▼ AWS Route53とAWS Cloud Mapによるサービス検出¶
AWS CloudMapを使用して、AWS ECSタスクの宛先情報を動的にAWS Route53に追加削除する。
これにより、AWS ECSタスクが他のECSタスクと通信可能にする。
▼ AWS ECS Service Connectによるサービス検出¶
03. AWS Lambdaによるイベント駆動型マイクロサービスアーキテクチャ¶
AWS Lambdaによるイベント駆動型マイクロサービスアーキテクチャ¶
AWS Lambdaをマイクロサービス単位で稼働させる。
ただ、AWS Lambdaによるマイクロサービスアーキテクチャはアプリとインフラの責務を分離できないため、非推奨である。
Kubernetes Cluster上でこれを稼働させることが推奨である。
AWS VPC外のAPIゲートウェイ領域¶
RESTful-APIをAWS API Gatewayで構築する。
AWS VPC内のマイクロサービス領域¶
▼ ドメインサービス¶
マイクロサービスのドメインロジックを持つ。
▼ レイヤーサービス¶
マイクロサービスの横断的な共有ロジックを持つ。
Lambda Layerを使用し、サービスコンポーネントがレイヤーコンポーネントを読み込めるようにする。
▼ 認証サービス¶
マイクロサービスの認証ロジックを持つ。
AWS Cognitoユーザープールを使用する。
▼ 認可サービス¶
マイクロサービスの認可ロジックを持つ。
AWS Cognitoオーソライザーを使用する。
AWS VPC内のデータベース領域¶
▼ 永続データの場合¶
永続データを管理する。
リクエスト駆動型アプリケーションの場合、複数のリクエストに対して単一のDB接続を再利用できる。
一方で、イベント駆動型アプリケーションの場合、単一リクエストに対して単一のDB接続を使用する。
AWS RDSにはDB接続の上限数があり、前段にAWS RDSプロキシーがないとすぐに上限数に達してしまう。
AWS VPC内のL3管理¶
▼ publicサブネット¶
AWS NAT Gatewayを配置し、ネットワークを作成する。
▼ protectedサブネット¶
AWS Lambdaを配置し、ネットワークを作成する。
▼ privateサブネット¶
AWS RDSプロキシーとAWS RDSを配置し、ネットワークを作成する。