プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • AWS
  • 【AWS】「ECS/Fargate構成」におけるロギング設計、トレース設計
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【AWS】「ECS/Fargate構成」におけるロギング設計、トレース設計

12.03

  • miyabisan2
  • コメントを書く

この記事は2分で読めます

ロギング設計

実装は、大きく二つあります。

  • CloudWatch Logsを活用する方法
  • FireLensを活用する方法

CloudWatch Logsを活用

閲覧

「CloudWatch Logsサブスクリプションフィルター」を使うことで、ログ内に特定文字が含まれているログのみを抽出できる。

通知

抽出したログのみをLambdaに連携させることでSNSと連動して障害を通知できる。

また、Chatbotを活用することでSlack通知も可能。

ログのメンテナンス

保存期間を設定できるため、必要に応じて蓄積されたログのメンテナンス処理も自動化できる。

FireLensを活用

FireLensとは「ログルーティングの仕組み」になります。

メリット

CloudWatch Logs以外のAWSサービスやAWS以外のSaaSへログを転送しやすい点。Firehoseと連携してS3、Redshift、OpenSearch Serviceへログを転送が可能。

ログルーティングソフトウェア

以下、2つの中からログルーティングソフトを選択可能。

Fluentd
Fluent Bit

Fluentdと比較してプラグインの数が少ないが、リソース効率がよくAWSはこちらの利用を推奨している。

トレース設計

オブザーバビリティを実現のためには、ログやメトリクスに関しに加えてアプリケーションの内部処理の呼び出し、各サービス間のトランザクション情報等のトレース情報(アプリケーションのバックエンドへのAPIリクエスト情報)を取得します。

X-Ray

アプリケーションのリクエスト情報(トレース情報)などを詳細に追えます。トレース情報の取得をサポートするサービス。サービスマップのダッシュボードも提供されておりシステム全体の可視化も併せて実現可能。

ポイント

サイドカー構成によるX-Rayコンテナの配置

ECSタスク定義の中にアプリケーションコンテナとX-Rayコンテナを同梱します。

また、アプリケーション自体にAWSが提供するX-Ray用のSDKで一部コーディングを実施することでX-Rayに対してトレース情報を送出することができる。

サイドカー構成

「メインのコンテナ」に加えて「補助的な役割のコンテナ」を追加した構成。ここで言っているX-Rayコンテナが「補助的な役割のコンテナ」を指しています。

ECSタスクロールを付与

ECS/FargateコンテナアプリからX-Rayにトレース情報を書き込むにはIAM権限が必要。(ECSタスクロールとして「AWSXRayDaemonWriteAccess」)

また、X-Rayにトレース情報を書き込む主体はECSコンテナエージェントではなく、ECSタスクになります。(なので、「タスク実行ロール」ではなく、「ECSタスクロール」への権限付与となるので間違えないようにしましょう。)

ECSコンテナエージェント

Fargateの各インスタンスのことを指しています。

ECSタスク

コンテナ群になります。ECSタスクがAWSに対する実行権限のことを「ECSタスクロール」と呼びこれに対してX-Rayの権限設定ををする必要があります。

VPCエンドポイントが必要

X-RayはVPC外のAWSパブリックネットワークにサービスエンドポイントが存在します。なので、ECSタスクがプライベートネットワークにデプロイされている場合は、X-Ray用のインターフェース型VPCエンドポイントか、NATゲートウェイによるネットワーク経路を用意する必要がある。

アプリケーション側の考慮

アプリケーション側にXRayのSDKを積極的に追加する必要があります。XRayへ詳細なログを出力する必要がある場合はAWSの設定だけでなく、実装言語によっては少し作り込みが必要になるので考慮が必要になります。

スポンサーリンク
  • 2021 12.03
  • miyabisan2
  • コメントを書く
  • AWS
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2021 01.11

    【AWS】「AWS CLI」、初期設定、コマンドの基本、環境別設定(prod、dev)

  2. 2020 12.28

    【AWS】EC2「ユーザーデータ」、「インスタンスメタデータ」について

  3. 2021 11.28

    【AWS】コンテナアーキテクチャパターン

  4. 2021 12.05

    【AWS】「グローバル」、「リージョン」と「AZ」について

  5. 2020 06.09

    【AWS】VPC「ルートテーブル」や「インターネットゲートウェイ」、「NATゲートウェイ」について

  6. 2021 01.10

    【AWS】VPCの「Route53 Resolver」について

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【AWS】「ECS/Fargate構成」におけるメトリ…

【インフラ】本番環境を意識したCI/CD設計、複数アカ…

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー