プログラミング バックエンド

【docker】EC2内でdockerコンテナを起動し、ログをCloud Watchに出力する方法

こんにちは!

今回は「EC2内でdockerコンテナを起動し、ログをCloud Watchに出力する方法」についてお伝えしたいと思います。

EC2内のdockerコンテナのログをCloud Watcnに出力するのは意外と簡単にできます。

最近はECSでコンテナを起動することも多く、ECSだとデフォルト設定でCloud Watchにログ出力してくれるので、需要は少ないかもしれませんが。。(笑)

docker-compose.ymlファイルを修正し、dockerコンテナ内のログ出力先をCloud Watchに設定する

dockerにはロギング・ドライバの機能があり、こちらを使います。

今回はdocker-composeを使用する前提でお話しさせてください。

Cloud Watchにロググループを作成する

AWS マネジメントコンソール>Cloud Watch>ロググループ
からロググループを新規作成します。

docker-compose.yml設定

docker-compose.ymlファイルを以下のように修正します。
例はnodeコンテナのログをCloud Watchに出力する例です。

sample-node:
    command: [sh, -c, npm install && npm start]
    logging:
      driver: awslogs
      options:
        awslogs-region: ap-northeast-1 # 東京リージョン
        awslogs-group: /aws/EC2/test # 作成したロググループ名

EC2にIAMロールを設定する

AWS マネジメントコンソール>EC2>アクション>セキュリティ>IAMロールを変更

IAMロールにはCloud Watchの書き込み権限のあるロールを設定します。(ロールがなければ新規作成)

ざっくりとしてますが、これでEC2→Cloud Watch出力はできます。

ただし、ローカル環境を立ち上げる際、上記の.ymlファイルだとエラーになってしまうため、
必要であれば環境ごとに.ymlファイルを読みかえてあげてください。

以上、お疲れ様でしたー!🍵

-プログラミング, バックエンド

© 2024 エンジニア×ライフハック Powered by AFFINGER5