コンテンツにスキップ

マイクロサービスアーキテクチャ@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を配置し、ネットワークを作成する。