コンテンツにスキップ

マイクロサービスアーキテクチャ@AWS

はじめに

本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。


01. Amazon EKS によるリクエスト駆動型マイクロサービスアーキテクチャ

自著『クラウドネイティブ技術とマイクロサービスアーキテクチャーのつながり』を確認する。


02. Amazon ECS によるリクエスト駆動型マイクロサービスアーキテクチャ

Amazon ECS によるマイクロサービスアーキテクチャ

記入中...


Amazon VPC 内のマイクロサービス領域

▼ マルチ ECS サービス

Amazon ECS クラスターに複数の Amazon ECS サービスを作成する。

Amazon ECS サービスをマイクロサービス単位で稼働させる。

ただ、Amazon ECS によるマイクロサービスアーキテクチャはアプリとインフラの責務を分離できないため、非推奨である。

Kubernetes Cluster 上でこれを稼働させることが推奨である。

ecs-fargate_microservices

▼ Amazon Route 53 と AWS Cloud Map によるサービス検出

AWS CloudMap を使用して、Amazon ECS タスクの宛先情報を動的に Amazon Route 53 に追加削除する。

これにより、Amazon ECS タスクは他の ECS タスクと通信できる。

aws_ecs_service-discovery

▼ Amazon ECS Service Connect によるサービス検出

aws_ecs_service-connect


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_lambda

▼ 認可マイクロサービス

マイクロサービスの認可ロジックを持つ。

AWS Cognito オーソライザーを使用する。

aws_cognito_lambda


Amazon VPC 内のデータベース領域

▼ 永続データの場合

永続データを管理する。

リクエスト駆動型アプリケーションの場合、複数のリクエストに対して単一の DB 接続を再利用できる。

一方で、イベント駆動型アプリケーションの場合、単一リクエストに対して単一の DB 接続を使用する。

Amazon RDS には DB 接続の上限数があり、前段に Amazon RDS プロキシーがないとすぐに上限数に達してしまう。

aws_rds-proxy_lambda


Amazon VPC 内の L3 管理

▼ public サブネット

AWS NAT Gateway を配置し、ネットワークを作成する。

▼ protected サブネット

AWS Lambda を配置し、ネットワークを作成する。

▼ private サブネット

Amazon RDS プロキシーと Amazon RDS を配置し、ネットワークを作成する。