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

はじめに

アーキテクチャの 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 サービスへの安全なアクセスを提供します。