1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWS ECSでAWS AppConfig Agentを試してみる

Last updated at Posted at 2023-07-25

AWS AppConfig Agentとは

AppConfigの値をアプリケーションの代わりに自動でポーリング・データのキャッシュを行ってくれるサービスです。
これを利用することにより、カスタムでAWSのAPIを利用してデータを取りに行ったりキャッシュを構成する必要がなくなりました。

AWS AppConfigについては以下を参照下さい。

ためす

以下の手順を参考に試してみます。

前提

  • 検証用ECRに適当なイメージをPush済み
    • 作成はコチラを参考にcurlだけインストールしています。
  • AppConfig上に簡単なプロファイルを作成して適当な環境にデプロイ済み
    image01.png
  • ECSタスクロールは作成済み
    • AppConfigのアクセス権限を付与
    • ssmのアクセス権限を付与(ecs exec用)

タスク定義の作成

「ECS」→「タスク定義」→「新しいタスク定義の作成」からタスク定義を作成します。
コンテナ- 1に作成したコンテナの設定を行い、「コンテナの追加」を選択します。

AppConfigAgentのサイドカーコンテナを以下のように定義します。

  • 画像URI:public.ecr.aws/aws-appconfig/aws-appconfig-agent:2.x
  • 必須コンテナ:はい
  • ポートマッピング:追加
  • コンテナポート2772

ECSタスクロールでAppConfigへのアクセス権限があるロールを指定し、作成します。

クラスター/サービスの作成

「ECS」→「クラスター」→「クラスターの作成」からクラスターを作成します。

クラスターが作成出来たらサービスを作成します。
作成したクラスターを選択し、サービスタブから「作成」を選択します。

今回は検証の為ネットワーク設定でパブリックサブネットのみを指定しています。確認していませんが、プライベートサブネット内でAgentを利用する場合は恐らくNatGatewayなどが必要となってくると思われます。

サービス作成後、ログ上で以下のようなメッセージが表示されます。
image06.png

値の確認

実際にAppConfigからエージェント経由で値を取得できているか確認します。

ECS Execを利用し、コンテナに入ります。
CloudShellを開き、以下のコマンドでECS Execを有効化します。

aws ecs update-service \
    --cluster <ClusterName> \
    --service <ServiceName> \
    --enable-execute-command | grep enableExecuteCommand

trueが返ってきたら「新しいデプロイの強制」オプションにチェックを入れてサービスの更新を行い、タスクを入れ替えます。

以下のコマンドでAgentではない方のコンテナに入ります。

aws ecs execute-command --cluster <ClusterName> \
    --task <TaskID> \
    --container <ContainerName> \
    --interactive \
    --command "/bin/sh"

image07.png

以下のコマンドでAppConfigの値を取得することができます。

curl "http://localhost:2772/applications/<application_name>/environments/<environment_name>/configurations/<configuration_name>"

値が取得できていることを確認できました。
image08.png

AppConfigから適当に値を変更(dev→stg)してデプロイすると、値が変わっていることも確認できました。
image10.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?