マイクロサービスアーキテクチャ¶
はじめに¶
本サイトにつきまして、【IT技術の知見】はじめに - 俺の技術ノート をご認識のほど宜しくお願いいたします。
01. Amazon EKS によるリクエスト駆動型マイクロサービスアーキテクチャ¶
自著『クラウドネイティブ技術とマイクロサービスアーキテクチャーのつながり』を確認する。
02. Amazon ECS によるリクエスト駆動型マイクロサービスアーキテクチャ¶
Amazon ECS によるマイクロサービスアーキテクチャ¶
Amazon ECS サービスをマイクロサービス単位で稼働させ、マイクロサービス間ではサービス検出を介して通信する。
Amazon VPC 内のマイクロサービス領域¶
▼ マルチ ECS サービス¶
Amazon ECS クラスターに複数の Amazon ECS サービスを作成する。
Amazon ECS サービスをマイクロサービス単位で稼働させる。
ただ、Amazon ECS によるマイクロサービスアーキテクチャはアプリとインフラの責務を分離できないため、非推奨である。
Kubernetes Cluster 上でこれを稼働させることが推奨である。

▼ Amazon Route 53 と AWS Cloud Map によるサービス検出¶
AWS CloudMap を使用して、Amazon ECS タスクの宛先情報を動的に Amazon Route 53 に追加削除する。
これにより、Amazon ECS タスクは他の ECS タスクと通信できる。

▼ Amazon ECS Service Connect によるサービス検出¶
Amazon ECS Service Connect では、Amazon ECS タスクの宛先情報が AWS Cloud Map に登録され、送信元の Amazon ECS タスクのサイドカーの Envoy がその宛先情報を使用して他の Amazon ECS タスクにリクエストを送信する。

03. AWS Lambda によるイベント駆動型マイクロサービスアーキテクチャ¶
AWS Lambda によるイベント駆動型マイクロサービスアーキテクチャ¶
AWS Lambda をマイクロサービス単位で稼働させる。
ただ、AWS Lambda によるマイクロサービスアーキテクチャはアプリとインフラの責務を分離できないため、非推奨である。
Kubernetes Cluster 上でこれを稼働させることが推奨である。
Amazon VPC 外の API ゲートウェイ領域¶
RESTful-API を Amazon API Gateway で構築する。
Amazon VPC 内のマイクロサービス領域¶
▼ ドメインサービス¶
マイクロサービスのドメインロジックを持つ。
▼ レイヤーサービス¶
マイクロサービスの横断的な共有ロジックを持つ。
Lambda Layer を使用し、サービスコンポーネントがレイヤーコンポーネントを読み込めるようにする。
▼ 認証マイクロサービス¶
マイクロサービスの認証ロジックを持つ。
AWS Cognito ユーザープールを使用する。

▼ 認可マイクロサービス¶
マイクロサービスの認可ロジックを持つ。
AWS Cognito オーソライザーを使用する。

Amazon VPC 内のデータベース領域¶
▼ 永続データの場合¶
永続データを管理する。
リクエスト駆動型アプリケーションの場合、複数のリクエストに対して単一の DB 接続を再利用できる。
一方で、イベント駆動型アプリケーションの場合、単一リクエストに対して単一の DB 接続を使用する。
Amazon RDS には DB 接続の上限数があり、前段に Amazon RDS プロキシーがないとすぐに上限数に達してしまう。

Amazon VPC 内の L3 管理¶
▼ public サブネット¶
AWS NAT Gateway を配置し、ネットワークを作成する。
▼ protected サブネット¶
AWS Lambda を配置し、ネットワークを作成する。
▼ private サブネット¶
Amazon RDS プロキシーと Amazon RDS を配置し、ネットワークを作成する。