メインコンテンツまでスキップ

はじめに

アーキテクチャのcartsコンポーネントは、Amazon DynamoDBをストレージバックエンドとして使用しています。これは、Amazon EKSとの非リレーショナルデータベース統合でよく見られるユースケースです。現在、carts APIは、EKSクラスター内のコンテナとして実行されているAmazon DynamoDBの軽量版でデプロイされています。

次のコマンドを実行すると、これを確認できます:

~$kubectl -n carts get pod
NAME                              READY   STATUS    RESTARTS        AGE
carts-5d7fc9d8f-xm4hs             1/1     Running   0               14m
carts-dynamodb-698674dcc6-hw2bg   1/1     Running   0               14m

上記の出力では、Pod carts-dynamodb-698674dcc6-hw2bgが軽量DynamoDBサービスです。cartsアプリケーションがこれを使用していることは、環境変数を確認することで検証できます:

~$kubectl wait --for=condition=Ready pods -l app.kubernetes.io/component=service -n carts --timeout=120s
~$kubectl -n carts exec deployment/carts -- env | grep RETAIL_CART_PERSISTENCE_DYNAMODB_ENDPOINT
RETAIL_CART_PERSISTENCE_DYNAMODB_ENDPOINT=http://carts-dynamodb:8000

このアプローチはテストには便利ですが、フルマネージドなAmazon DynamoDBサービスを使用するようにアプリケーションを移行し、スケールと信頼性の利点を最大限に活用したいと考えています。以下のセクションでは、Amazon DynamoDBを使用するようにアプリケーションを再構成し、EKS Pod IdentityでAWSサービスへの安全なアクセスを実装します。