コンテンツにスキップ

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

はじめに

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


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

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


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

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

記入中...


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

▼ マルチECSサービス

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

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

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

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

ecs-fargate_microservices

▼ AWS Route53とAWS Cloud Mapによるサービス検出

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

これにより、AWS ECSタスクが他のECSタスクと通信可能にする。

aws_ecs_service-discovery

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

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_lambda

▼ 認可サービス

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

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

aws_cognito_lambda


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

▼ 永続データの場合

永続データを管理する。

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

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

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

aws_rds-proxy_lambda


AWS VPC内のL3管理

▼ publicサブネット

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

▼ protectedサブネット

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

▼ privateサブネット

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