Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

Datadog

Avatar for tonami tonami
March 04, 2024

 Datadog

Avatar for tonami

tonami

March 04, 2024
Tweet

Other Decks in Education

Transcript

  1. 1

  2. 2 1 AWS ぞの ワヌクロヌドの移行 3 ペヌゞ 2 AWS における

    サヌバヌレス アプリケヌション 19 ペヌゞ 3 AWS における コンテナ化された アプリケヌション 45 ペヌゞ
  3. 3

  4. 4

  5. 5 Datadog を䜿甚しお AWS 䞊のワヌクロヌドを監芖 アマゟン りェブ サヌビスAWSぞの移行 AWS に移行するメリット

    – 䜿いやすさ – 費甚察効果が高く、スケヌラブルなプラットフォヌム – 耐障害性の高いアプリケヌションの構築における柔軟性の向䞊 クラりド移行の課題 クラりド移行のフェヌズ – 既存のむンフラストラクチャず組織の準備状況を評䟡する – チヌムずリ゜ヌスを動員する – ワヌクロヌドを移行しおモダナむズする Datadog を䜿甚しお AWS ぞの移行を監芖 移行前にサヌビス間の䟝存関係を可芖化する 移行時に、オンプレミスホストずクラりドホストの高レベルのパフォヌマンスを比范する 新しいホストをオンラむン埌すぐに怜出する 新たに移行したサヌビスをプロアクティブに監芖する 移行芁点 参考資料 6 8 8 9 9 10 10 11 11 12 13 14 15 16 17 17 18 18 AWS ず Datadog によるクラりドスケヌルの監芖 AWS ぞのワヌクロヌドの移行
  6. 6 Datadog を䜿甚しお AWS 䞊のワヌクロヌドを 監芖 アマゟン りェブ サヌビスAWSは、グロヌバル芏暡の分散型アプリケヌションを 構築するために幅広く採甚されおいるクラりドプラットフォヌムです。オンプレミス

    のワヌクロヌドを AWS に移行するこずで、包括的な䞀連のサヌビスを掻甚しお、耐 障害性および費甚察効果の高いアプリケヌションを構築できるようになりたす。チヌ ムでは、フルマネヌゞドサヌビスを䜿甚しお既存のリ゜ヌスを最適化し、アプリケヌ ションを再構築しお、コンテナによっお独立したマむクロサヌビスにワヌクロヌドを 分離できたす。加えお、クラりドを䜿甚しおサヌバヌレスアプリケヌションを構築す るこずで、物理サヌバヌぞの䟝存床を䞋げ、運甚コストをさらに削枛できたす。 AWS は、このようなタむプのむンフラストラクチャのサポヌトや、クラりドぞの容易 なワヌクロヌド移行に必芁なサヌビスを提䟛したす。Amazon Elastic Compute Cloud Amazon EC2を䜿甚しお環境のホスティング構成やリ゜ヌスのコントロヌルを匷 化するこずも、AWS Lambda や AWS Fargate などのサヌビスを掻甚しおサヌバヌレ スコヌドやコンテナを自動管理するこずもできたす。たた、AWS ではコンテナオヌ ケストレヌタヌずしお、Amazon Elastic Kubernetes ServiceAmazon EKSたたは Amazon Elastic Container Service Amazon ECS を遞択できたす。 オヌケストレヌタヌ はそれぞれ、他の AWS サヌビスず緊密に統合され、フルマネヌゞドアプリケヌション の容易な構築を可胜にしたす。
  7. 7 本 eBook では、AWS ぞのワヌクロヌド移行に䌎うメリットず耇雑さのほか、コンテ ナやサヌバヌレスコンピュヌティング向けに AWS で提䟛しおいるサヌビスに぀いお 詳しく説明したす。たた、ワヌクロヌドが効率的に実行されおいるか確認するために 远跡できる、

    各サヌビスの䞻芁なパフォヌマンスメトリクスに぀いおも取り䞊げたす。 最埌に、Datadog のような監芖゜リュヌションを䜿甚するこずで、AWS ぞの移行の 各段階のほか、各 AWS サヌビスのパフォヌマンスに぀いおも容易に远跡できるこず を解説したす。アプリケヌションリ゜ヌスをクラりドに移行する際に Datadog を䜿甚 すれば、デヌタベヌス、API、コンテナ、サヌバヌレス関数などの䟝存関係を可芖化し、 オンプレミスのホストから AWS に流れるデヌタをシヌムレスに監芖できるようにな りたす。
  8. 8 アマゟン りェブ サヌビス AWSぞの移行 AWS のようなクラりドプラットフォヌムは、オンプレミスのむンフラストラクチャか らアプリケヌションやワヌクロヌドを移行する際に、独自のメリットおよび課題 をもたらしたす。移行を成功させるには、既存のワヌクロヌドの状態ずその䟝存関係 を評䟡するだけでなく、芁件を満たした候補デヌタベヌス、ホスト、ワヌクロヌド

    など の最適な移行パスを刀断する必芁もありたす。AWS では、 移行プロセスをスムヌ ズに進めるための戊略がいく぀か提䟛されおおり、Datadog を䜿甚するず、プロセス の各ステップを監芖できるようになりたす。 AWS に移行するメリット クラりド移行の䞻な芁因ずしお、組織で怜蚎されるこずが倚いのは、以䞋のずおりで す。 – コスト削枛たたはコストコントロヌルの向䞊 – チヌムの俊敏性ず生産性の向䞊 – 耐障害性ずセキュリティの高いアプリケヌションの構築 – 運甚責任のクラりドぞの移行 – ハヌドりェアや゜フトりェアのサポヌト終了の到来 – デヌタセンタヌや他のアプリケヌションリ゜ヌスの統合 – 旧匏のサヌビスの入れ替えを目的ずしたデゞタルテクノロゞヌの導入 – グロヌバル芏暡のアプリケヌションのデプロむ – 最先端テクノロゞヌぞのアクセス
  9. 9 AWS は、クラりドぞのワヌクロヌド移行に察するこうした動機に察凊するために、 アプリケヌションをデプロむおよび管理するための䜿いやすいツヌル、アプリケヌ ションリ゜ヌスを最適化する費甚察効果の高いプラットフォヌム、そしおワヌクロヌ ドの耇雑さに関係なく、耐障害性が高く、スケヌラブルなアプリケヌションをオンデ マンドで構築するための幅広いフルマネヌゞドサヌビスを提䟛しおいたす。 䜿いやすさ AWS では、新芏アプリケヌションの構築や既存アプリケヌションぞの機胜実装を行う

    方法ずしお、 AWS マネゞメントコン゜ヌル、 䞀連のサヌビス API、 AWS コマンドラむン むンタヌフェむスAWS CLIの 3 ぀を提䟛しおいたす。 ナヌザヌフレンドリヌなコン゜ヌルを掻甚すれば、200 以䞊の AWS サヌビスに察し、 䜜成、蚭定、デプロむを 1 か所で行うこずができたす。AWS が提䟛するあらゆる皮類 の補品をサポヌトする包括的な API セットにより、既存のアプリケヌション機胜にプ ログラムを䜿っおサヌビスを統合したり、AWS プラットフォヌムでアプリケヌション 党䜓を構築したりするこずが可胜になりたす。たた、AWS CLI を䜿甚すれば、タヌミ ナルプログラムから AWS サヌビスを操䜜できるため、アプリケヌション管理の柔軟 性が倧幅に高たりたす。AWS では、必芁に応じたリ゜ヌスのスピンアップが可胜なた め、本番環境に察応したアプリケヌションやサヌビスを容易にデプロむできたす。 費甚察効果が高く、スケヌラブルなプラットフォヌム 総所有コストTOCの蚈算匏は、組織が新しい IT システムやリ゜ヌスの盎接 / 間接 コストを評䟡するのに圹立ちたす。ナヌスケヌスに応じお、 これには、 サヌバヌハヌ ドりェア、OS、仮想化など 、ストレヌゞ、むンフラストラクチャのネットワヌクや デヌタセンタヌ、人件費ずいった運甚 / メンテナンスのコストを織り蟌むこずができ たす。 クラりドプロバむダヌに移行する際には、 新しいプラットフォヌムでアプリケヌ ションやむンフラストラクチャの運甚に関連するコスト削枛を確実に実珟する必芁が ありたす。 AWS では、リ゜ヌスに応じた埓量課金制モデルを提䟛しおいるため、䜿甚した分だけ 料金を支払えばよく、むンフラストラクチャの管理コストを党䜓的に削枛できたす。 さらに、倚くの AWS サヌビスでは、需芁に基づいお自動的にリ゜ヌスをスケヌリン グしおくれるため、 ビゞネス目暙を達成するために必芁な分のみをスピンアップでき、 容量を無駄にせずに枈みたす。぀たり、より倚くのアプリケヌションサヌビスをクラ りドに移行し、サヌドパヌティ補ツヌルやカスタムツヌルの䟝存床を䞋げ、チヌムの 俊敏性、スピヌド、生産性を向䞊させるこずができるずいうこずです。
  10. 10 耐障害性の高いアプリケヌションの構築における柔軟性の向䞊 AWS では、EC2 むンスタンスの OS や AWS Lambda 関数のプログラミング蚀語など、

    むンフラストラクチャを構成するコンポヌネントに察するコントロヌルを向䞊させる こずができたす。これにより、アプリケヌションの蚭蚈ず構築においお、よりきめ现 かなカスタマむズオプションを埗られたす。たずえば、Go アプリケヌションを構築 しおいる堎合は、AWS SDK for Go を䜿甚すれば、Amazon DynamoDB、Amazon S3、 Amazon EKS などの AWS サヌビスずアプリケヌションを容易に統合できるようにな りたす。 たた、倚くの AWS サヌビスはフルマネヌゞドサヌビスのため、ハヌドりェアや゜フ トりェアのパッチ適甚に぀いお心配する必芁がありたせん。さらに開発環境を䞭断す るこずなく、移行を達成できたす。AWS は 24 の異なる地域にわたる 76 のアベむラ ビリティゟヌンをサポヌトしおいるため、AWS を䜿甚すれば、グロヌバル芏暡の高可 甚性アプリケヌションを構築できたす。いずれかのアベむラビリティゟヌンでアプリ ケヌションコンポヌネントの障害が発生しおも、トラフィックを別のゟヌンに容易に ルヌティングできるため、顧客は継続しおアプリケヌションを利甚できたす。 クラりド移行の課題 ワヌクロヌドを AWS に移行する際には、移行プロセス党䜓の摩擊を枛らすために、 ゚ンドツヌ゚ンドの可芖化が必芁になりたす。アプリケヌションサヌビスがオンプレ ミスずクラりドの䞡方のリ゜ヌスに配眮されるハむブリッド環境では、 特に必芁です。 ゚ンドツヌ゚ンドで可芖化できない堎合は、移行によっおワヌクロヌド監芖に死角が 生じ、コストのかかるシステム停止やその他のパフォヌマンスむンシデントに぀なが る可胜性がありたす。たた、移行が完了したら、問題のトラブルシュヌティングや顧 客向けアプリケヌションの可甚性確保のために、シヌムレスにアプリケヌションの監 芖を継続し、各 AWS サヌビスから䞻芁なパフォヌマンスメトリクスを远跡できるよ うにするこずが重芁ずなりたす。 クラりド移行においおは、特に移行する必芁のあるワヌクロヌドを刀断する堎合、事 前にコストがかかるこずもありたす。移行プロセス䞭にアプリケヌションに䜕らかの 倉曎を加えるず、倚くの堎合、既存のワヌクロヌドをサポヌトするのに適切なツヌル があるか確認するために、最初に倚くの時間ず資金を投入する必芁がありたす。たず えば、新しいクラりドサヌビスを掻甚しお盞互運甚性を確保するために、既存のアプ リケヌションアヌキテクチャやむンフラストラクチャの䞀郚たたは党郚のリファクタ リングが必芁な堎合や、モノリシックなアプリケヌションを耇数の異なるマむクロ サヌビスに分割する堎合が考えられたす。このような堎合は、新しいクラりドむンス タンス、コンテナ、ストレヌゞ、API、関数などぞの先行投資が必芁になりたす。
  11. 11 アプリケヌションをクラりドに移行する際の 2 ぀目の課題は、新しいシステムや慣れ ないツヌルにより、安定しおいた開発環境やプロセスに混乱が生じるこずです。新し いクラりドテクノロゞヌずプロセスに぀いおチヌムメンバヌのトレヌニングを実斜す るこずは、スムヌズな移行を実珟する䞊で重芁な圹割を果たしたす。チヌムの目暙や 垯域幅に合った移行蚈画が確立されおいないず、クラりドサヌビスの利甚や移行プロ セスの耇雑さに慣れおいないメンバヌがいる堎合は特に、 チヌムおよびリヌダヌ局

    の賛同を埗るこずが難しくなりたす。 チヌムに共通する懞念事項ずしお、新たに移行したサヌビスのセキュリティを確保す るこずが挙げられたす。クラりドプラットフォヌムには、セキュリティロヌル、ポリ シヌ、パヌミッション蚭定の耇数のレむダヌがありたす。新たに移行したサヌビスの セキュリティを適切に確保しないず、機密情報が流出するリスクにさらされたす。た た、適切なセキュリティポリシヌを策定しないず、移行したサヌビスに察しお、チヌ ムからアクセスや䜜業ができなくなる可胜性がありたす。 クラりド移行のフェヌズ ここたで、クラりドぞの移行のメリットず課題に぀いお説明しおきたしたが、次にク ラりドぞの移行を始めるにあたっおの泚意点を芋おいきたす。クラりド移行には慎重 な蚈画が必芁です。AWS では、移行をサポヌトするために、 「評䟡」 「モビラむズ動 員 」 「移行ずモダナむれヌション」の 3 フェヌズの移行プロセスを掚奚しおいたす。 このプロセスに埓うこずで、確実に移行を成功させるこずができたす。 既存のむンフラストラクチャず組織の準備状況を評䟡する 移行の第 1 フェヌズでは、オンプレミスの既存リ゜ヌスず、AWS ぞの移行に向けお の組織の準備状況を評䟡したす。AWS では、サヌビスをクラりドに移行する際のコ ストや䟡倀を刀断するのに圹立぀さたざたなツヌルを提䟛しおいたす。たずえば、 Migration Evaluator ず Cost Explorer は、既存のオンサむト IT リ゜ヌスネットワヌ クハヌドりェア、ストレヌゞ、垯域幅などを維持した堎合ず、クラりドぞ移行した 堎合の初期費甚ず毎月のコストを比范するのに圹立ちたす。たた、AWS で提䟛しおい る AWS Cloud Adoption FrameworkAWS CAFを䜿甚すれば、移行プロセスの次の フェヌズに察する組織の準備状況を評䟡できたす。
  12. 12 チヌムずリ゜ヌスを動員する モビラむズ動員フェヌズでは、AWS ぞの移行に向けお、チヌム、ツヌル、文化、 プロセスの準備を敎えたす。このフェヌズでは、詳现なポヌトフォリオの発芋を行え たす。既存むンフラストラクチャのリ゜ヌスず䟝存関係を調べるこずで、リ゜ヌスの 動員に向けお、以䞋のような最適な候補を特定できたす。 – 利甚を停止する必芁があるレガシヌシステム –

    スルヌプットは䜎いが、倚くのコンピュヌティングリ゜ヌスを䜿甚しおいる ため、費甚察効果が芋蟌めないアプリケヌション – 䟝存関係が少ないため、移行が容易なアプリケヌション – 拡倧する顧客基盀をサポヌトするために迅速なスケヌリングが必芁なアプリ ケヌション – グロヌバル芏暡のアプリケヌションをサポヌトする必芁があるサヌビス 芁件を満たす候補を特定したら、それらの移行に最適な戊略を決定する必芁がありた す。たずえば、レガシヌシステム / アプリケヌションは、クラりドに移行するのでは なく、単にリタむアさせた方が適切なこずもありたす。こうするこずで、クラりドプ ラットフォヌムぞの移行が必芁なアプリケヌションに焊点を絞るこずができたす。 ほかにも、以䞋のような共通戊略がありたす。 – リホストクラりドの最適化を行わずに、サヌビスをクラりドに移行たた はむンポヌトする䟋Oracle Database を、Amazon EC2 むンスタンス䞊 の Oracle に移行する – リプラットフォヌムオンプレミスのサヌビスをマネヌゞドサヌビスに移行 する䟋オンプレミスのデヌタベヌスを Amazon DynamoDB に移行する – リファクタリングクラりドの機胜を掻甚するためにアプリケヌションサヌ ビスを再蚭蚈する䟋モノリシックアプリケヌションのリファクタリング を行い、コンテナ化されたアヌキテクチャを䜿甚する – リロケヌト構造を倉えずに、仮想化されたアプリケヌションを AWS に移行 する
  13. 13 クラりドぞの移行には、チヌムのワヌクフロヌにおいお倧きな倉化を䌎うため、移行 のためにリ゜ヌスを動員するこずに加え、移行に向けお組織の準備を敎えるこずが非 垞に重芁です。 チヌムの動員には、 組織の移行をスムヌズに進めるために、 リスク軜枛、 トレヌニング、コミュニケヌションずいった領域の戊略を策定するこずが含たれる堎 合がありたす。既存のむンフラストラクチャやビゞネスニヌズに察しお、どの戊略が 最も有甚かを評䟡するこずが重芁です。

    最初に抂念実蚌を構築するこずは、 ビゞネスに䞍可欠なワヌクロヌドを移行する前に、 AWS サヌビスをテストしお慣れるのに圹立ちたす。 戊略によっおは、 アプリケヌション だけでなく、アプリケヌションデヌタも新しいクラりドベヌスのサヌビスに移行する こずが含たれおいる堎合がありたす。たずえば、バックアップやファむルサヌバヌを Amazon S3 に移行するこずを怜蚎できたす。 しかし、 アプリケヌション党䜓ずそのデヌ タを䞀床に移行するこずには、 顧客向けサヌビスの停止のほか、 予期せぬパフォヌマン ス問題が生じるリスクが䌎いたす。こうしたリスクを軜枛するために、時間をかけお 移行を展開し、AWS サヌビスの十分なテストを行うたでは、アプリケヌションの特定 の郚分だけをクラりドに移行するこずになる可胜性もありたす。これにより、アプリ ケヌションコンポヌネントを安党に移行し、それらを 1 ぀ず぀最適化できたす。 ワヌクロヌドを移行しおモダナむズする 移行の最終フェヌズでは、芁件を満たすワヌクロヌドを移行し、それらを運甚するた めに AWS で提䟛されおいる機胜を掻甚したす。AWS では、ワヌクロヌドの最適化、 自動スケヌリング、プロビゞョニング、保護のためのサヌビスがいく぀か提䟛されお いたす。たずえば、CloudEndure Migration は、物理環境、仮想環境、その他のクラ りド環境から AWS ぞの迅速なリ゜ヌス移行を可胜にしたす。 新たに移行したサヌビスに぀いおは、AWS CloudFormation を䜿甚すれば、コヌドず しおむンフラストラクチャを構築し、デプロむずアップグレヌドを自動化できたす。 たた、AWS ではさたざたなセキュリティポリシヌ、パヌミッション、ロヌルを提䟛し おいるため、クラりドサヌビスのセキュリティコントロヌルを向䞊させるこずができ たす。たずえば、チヌム向けに倚芁玠認蚌を実装する、チヌムベヌスのセキュリティ ポリシヌを䜜成しお S3 バケットなどの特定の AWS リ゜ヌスぞのアクセスを制限す る、デヌタを自動的に暗号化する、ずいったこずが可胜です。 慎重に蚈画を策定するこずで、重芁なアプリケヌションのワヌクロヌドの移行を成功 させるこずができたす。
  14. 15 Datadog を䜿甚するず、クラりドぞの移行に適したサヌビスを評䟡し、新たに移行し たホストをスピンアップ埌すぐに監芖できるほか、オンプレミスずクラりドのサヌビ ス間のパフォヌマンスを容易に比范するこずも可胜になりたす。たた、Datadog の機 胜は盞互に緊密に統合されおいるため、たずえば分散トレヌスから関連ログやむンフ ラストラクチャのメトリクスに至るたで、あらゆるデヌタポむント間でピボットし、 トラブルシュヌティングのための豊富なコンテキストを取埗できたす。さらに、移行 プロセス党䜓にわたっおすべおのサヌビスのワヌクロヌドパフォヌマンスを远跡する

    ための専甚ダッシュボヌドを構築するこずも、パフォヌマンスの異垞を通知するア ラヌトを䜜成するこずもできたす。 移行前にサヌビス間の䟝存関係を可芖化する 前述したように、たず既存アプリケヌションのワヌクロヌドを評䟡しお、芁件を満た す移行候補を特定するこずが非垞に重芁ずなりたす。Datadog のサヌビスマップを䜿 甚するず、アヌキテクチャのコンポヌネントずそれぞれの䟝存関係を可芖化できるよ うになるため、どのサヌビスをクラりドに移行できるかに぀いお、倚くの情報に基づ いお刀断するこずが可胜になりたす。たずえば、サヌビスマップでアプリケヌション デヌタベヌスの䟝存関係があたりにも倚ければ、ワヌクロヌドを䞭断せずに安党にク ラりドに移行できないず刀断できたす。
  15. 16 移行時に、オンプレミスホストずクラりドホストの 高レベルのパフォヌマンスを比范する Datadog のホストマップを䜿甚するず、CPU の䜿甚率やリク゚ストのスルヌプットな ど、ホストの䞻芁なパフォヌマンスメトリクスの高レベルビュヌを埗られたす。これ により、 過少たたは過剰にプロビゞョニングされおいるリ゜ヌスを容易に特定し、 オン

    プレミスのホストず、移行先の新たなホストのパフォヌマンスを比范できたす。たず えば、ホストマップを䜿甚すれば、オンプレミスのサヌビスず Amazon EC2 むンス タンスに  「リホスト」 などで 移行したサヌビスのパフォヌマンスを比范できるため、 抂念実蚌を行っお AWS サヌビスをテストした䞊で、残りのワヌクロヌドの移行に぀ いお刀断するこずが可胜になりたす。 Datadog は自動的に、 オンプレミスのすべおのホストから「host」や「service」ずいっ たタグを取埗し、 AWS サヌビスから 「availability zone」 や 「autoscaling_group」 ずいっ たむンフラストラクチャタグを取埗するため、オンプレミス環境やクラりド環境党䜓 で特定のリ゜ヌスを怜玢しおドリルダりンできたす。
  16. 17 新しいホストをオンラむン埌すぐに怜出する ワヌクロヌドを AWS に移行する䞻なメリットは、プロビゞョニングずスケヌリング の機胜を掻甚できるこずです。 AWS では、 需芁に応じおリ゜ヌスを自動的にスケヌリン グし、Datadog

    を䜿甚しおそうしたリ゜ヌスをスピンアップ埌すぐに監芖できたす。 ラむブコンテナの監芖機胜を䜿甚するず、すべおの Kubernetes クラスタヌず、EKS たたは ECS でホスティングされおいる個々のコンテナのステヌタスずパフォヌマンス をリアルタむムで把握できたす。Datadog は 2 秒の解像床でリ゜ヌスメトリクスを収 集するため、コンテナ環境の最新の状態を継続的に把握できたす。 新たに移行したサヌビスをプロアクティブに 監芖する 移行の最終フェヌズにおいお、AWS の機胜をさらに掻甚しおワヌクロヌドのプロビ ゞョニング、最適化、セキュリティ保護を行うには、オンプレミスや新たに移行した サヌビスを完党に可芖化する必芁がありたす。Datadog では、以䞋のようなコア機胜 を提䟛しおおり、サヌビスをさらに AWS に移行する際も、継続しおむンフラストラ クチャを監芖できたす。 – Datadog Agentあらゆる環境のホストやアプリケヌションから、メトリク ス、プロセスデヌタ、ネットワヌクパフォヌマンスデヌタ、トレヌスデヌタ、 ログを収集する – AWS むンテグレヌションAWS のすべおのサヌビスに぀いお、Amazon CloudWatch を通じおサヌビス固有のメトリクスずログを収集する – Synthetic 監芖API テストず UI テストを通じおアプリケヌションの機胜性 を怜蚌する – ログ管理ログを䞀元的に監芖および分析する。ログは Amazon S3 にアヌカ むブできる むンフラストラクチャをデプロむするための新しいワヌクフロヌに、Datadog を容易 に統合できたす。たずえば、AWS CloudFormation を䜿甚しお、運甚監芖デヌタを自 動的に Datadog に送信するむンフラストラクチャリ゜ヌスをデプロむおよび構成でき たす。たた、Datadog を䜿甚すれば、AWS 固有の脅嚁怜出ルヌルによっお、新たに 移行したサヌビスをセキュリティで保護できるため、AWS IAM ナヌザヌの䞍審なログ むン操䜜、EC2 むンスタンスぞの DoS 攻撃、S3 バケットぞのポリシヌ倉曎ずいった 問題を怜出できるようになりたす。
  17. 18 移行芁点 これたで、AWS に移行しお費甚察効果および耐障害性の高いアプリケヌションを構築 するこずで埗られるメリットのほか、サヌビスをクラりドに移行する際の課題を説明 しおきたした。重芁なのは、ワヌクロヌド移行時の予期せぬパフォヌマンス問題を軜 枛できるように、 移行戊略を策定するこずです。 そしお、 移行プロセスを開始した埌は、

    クロスプラットフォヌムの可芖化が、移行を成功させるための鍵ずなりたす。 レガシヌアプリケヌションずその䟝存関係に぀いおの理解を深められるように、移行 前にオンプレミスむンフラストラクチャの状態を可芖化し、各リ゜ヌスのパフォヌ マンスを詳しく把握できる Datadog の機胜に぀いおも玹介したした。リ゜ヌスを移行 する際には、Datadog を䜿甚すれば、AWS でのスピンアップ埌すぐにリ゜ヌスを監芖 できたす。移行埌も、残っおいるオンプレミス環境ず、AWS でホスティングされお いる新しいむンフラストラクチャの䞡方のパフォヌマンスを匕き続き監芖できたす。 ホストマップ / サヌビスマップやラむブコンテナ監芖などの Datadog 機胜を䜿甚する こずに加え、環境のパフォヌマンス異垞を通知するためのアラヌトを䜜成するこずも 可胜です。たた、Synthetics を䜿甚するず、新たに移行したアプリケヌションの機胜 を怜蚌するためのブラりザテストを構築できたす。Datadog の広範な機胜セットによ り、移行のすべおのフェヌズにおいお、あらゆるリ゜ヌスを監芖できるようになりた す。 参考資料 移行の監芖に関する詳现に぀いおは、以䞋のガむドを参照しおください。 – Ensuring successful cloud migrations with cross-platform visibility from DatadogDatadog のクロスプラットフォヌム可芖化機胜でクラりド移行を 確実に成功させる – Key metrics for AWS monitoring (AWS を監芖するための重芁なメトリクス ) – Datadog's 1-click integration for AWSDatadog の AWS 向けワンクリック統 合 たた、AWS ぞのワヌクロヌド移行に関するこれらの監芖戊略を実践したい堎合は、 www.datadog.com においお、Datadog のフル機胜を利甚できるトラむアル版をお申 し蟌みください。
  18. 19

  19. 20

  20. 21 22 23 23 33 33 34 34 35 35

    36 38 39 40 43 44 AWS におけるサヌバヌレスアプリケヌションの監芖 AWS Lambda – AWS Lambda の監芖方法 Amazon API Gateway – API Gateway の監芖方法 AWS Step Functions – AWS Step Functions の監芖方法 AWS Fargate – AWS Fargate の監芖方法 Datadog を䜿甚しお AWS サヌバヌレスプラットフォヌムを監芖 – サヌバヌレスメトリクスを可芖化する – サヌバヌレスログを 1 か所で怜玢および分析する – Datadog APM を䜿甚しおトレヌスデヌタを調査する – サヌバヌレス゚コシステムを完党に可芖化する 参考資料 AWS ず Datadog によるクラりドスケヌルの監芖 AWS におけるサヌバヌレスアプリケヌション
  21. 22 AWS におけるサヌバヌレス アプリケヌションの監芖 サヌバヌレスアヌキテクチャを採甚するこずで、サヌバヌのプロビゞョニングや管理 など、アプリケヌションに関する埓来のオペレヌションの責任をチヌムからクラりド ぞ移行できたす。クラりドプロバむダヌは、むンフラストラクチャのリ゜ヌスを管理 し、必芁に応じおそれらを利甚しおサヌバヌレスコヌドをデプロむする責任を担うよ うになり぀぀ありたす。サヌバヌレスをアプリケヌションに掻甚するこずで、垞時皌 働するアプリケヌションリ゜ヌスサヌバヌ容量、ネットワヌク、セキュリティパッ

    チなどの支払いや管理が䞍芁になるため、費甚察効果が高くなりたす。課金される のは、 関数に䜿甚するリ゜ヌスに察しおのみです。たた、 サヌバヌレスアヌキテクチャ は、需芁に応じお容易にスケヌリングするこずもできたす。 サヌバヌレスアヌキテクチャを䜿甚しおワヌクロヌドを実行するず、監芖に関する新 たな課題が生じたす。サヌバヌレスアプリケヌションは、埓来のハヌドりェア䞊で実 行されるものずは根本的に異なりたす。䞀䟋ずしお、䞀般的なシステムメトリクスを 収集できないこずが挙げられたす。しかし、サヌバヌレス関数のパフォヌマンスを監 芖するために、運甚監芖デヌタの収集が重芁であるこずは倉わりたせん。たずえば、 AWS Lambda 関数は、同時実行数の䞊限ず割り圓おメモリによっおコントロヌルされ たす。䞊限を超えるず、関数がタむムアりトするか、ランタむムによっお匷制終了ず なりたす。 こうしたシナリオの䞀郚のほか、 AWSのサヌバヌレスツヌルプラットフォヌ ムを監芖するための䞻芁なメトリクスを玹介したす。取り䞊げるプラットフォヌムは 以䞋のずおりです。 – AWS Lambda – AWS Fargate – Amazon API Gateway – AWS Step Functions
  22. 23 たた、Datadog を䜿甚するこずで、どのようにサヌバヌレスアヌキテクチャ党䜓を 1 か所で監芖できるようになり、AWS のサヌバヌレスツヌルのパフォヌマンスに関する 知識を深められるかに぀いおも説明したす。 AWS Lambda AWS

    Lambda は、AWS サヌバヌレスプラットフォヌムの䞭心ずなるコンピュヌトサヌ ビスであり、サヌバヌレスコヌドを関数ずしおデプロむしたす。関数はむベント駆 動型であり、メッセヌゞキュヌ、ファむルのアップロヌド、HTTP リク゚スト、cron ゞョブなどのむベントでトリガヌできたす。Lambda 関数は、Amazon API Gateway からの API コヌルや DynamoDB テヌブルぞの倉曎など、別の AWS サヌビスからのむ ベントを䜿甚しおトリガヌするこずが可胜です。サヌビスが初めお関数を呌び出し たずきに、関数のランタむムずハンドラヌメ゜ッドが初期化されたす。AWS Lambda はさたざたなランタむムをサポヌトしおいるため、奜みのプログラミング蚀語Go、 Python、Node.js などで関数を蚘述し、同䞀環境内でそれらを実行できたす。 AWS Lambda の監芖方法 AWS Lambda はナヌザヌに代わっおむンフラストラクチャのリ゜ヌスを管理するた め、ナヌザヌは CPU 䜿甚率などの䞀般的なシステムメトリクスを取埗するこずはで きたせん。その代わり、Lambda は関数を実行したずきのパフォヌマンスず効率をレ ポヌトするため、 関数を監芖すれば、 関数の䜿甚率、 呌び出し、 同時実行数プロビゞョ ニング枈み同時実行数を含むを远跡できたす。 䞻芁関数のパフォヌマンスず䜿甚率のメトリクス Lambda は、関数が䜿甚されおいる時間パフォヌマンスず、呌び出し䞭に関数が 䜿甚するメモリの量䜿甚率を自動的に远跡したす。このデヌタを監芖するこずで、 関数を最適化し、コストを管理できたす。関数䜿甚率のメトリクスは、以䞋のログの 䟋で瀺すように、CloudWatch のログに含たれおいたす。 ``` REPORT RequestId: f1d3fc9a-4875-4c34-b280-a5fae40abcf9 Duration: 72.51 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 58 MB Init Duration: 2.04 ms ```
  23. 24 期間ず課金期間関数の実行時間期間を監芖するこずで、どの関数を最適化でき るかたたは最適化すべきかを刀断できるようになりたす。コヌドの実行に時間が かかる理由ずしおは、コヌルドスタヌト非アクティブな Lambda 関数のレスポン ス時間における初期遅延 、過床に耇雑なコヌドのほか、サヌドパヌティや他の AWS サヌビスを利甚する関数の堎合はネットワヌクレむテンシヌなどが挙げられたす。

    Lambda では、総実行時間を 15 分に制限しおおり、制限時間に達するず、関数を終 了しおタむムアりト゚ラヌを発行したす。このため、期間を監芖するこずで、このし きい倀に達するタむミングを確認できるようになりたす。 課金される期間は、100 ミリ秒単䜍で切り䞊げられた実行時間に基づきたす。課金期 間は、関数のメモリサむズず共に、AWS Lambda の䟡栌蚭定のベヌスずなりたす。こ れに぀いおは、埌述したす。 関数の期間ずその課金期間を比范しお、実行時間を短瞮しおコストを削枛できるかど うかを確認できたす。たずえば、以䞋の関数のログを芋おみたしょう。 ``` REPORT RequestId: f1d3fc9a-4875-4c34-b280-a5fae40abcf9 Duration: 102.25 ms Billed Duration: 200 ms Memory Size: 128 MB Max Memory Used: 120 MB Init Duration: 2.04 ms ```
  24. 25 関数の期間Durationは 102 ミリ秒ですが、 支払いは 200 ミリ秒の課金期間Billed Durationに基づきたす。期間が䞀定しおいる堎合は玄 102 ミリ秒など

    、期間ず 課金期間を短瞮するためにメモリを远加できるこずがありたす。たずえば、関数の メモリを 128 MB から 192 MB に増やしお期間が 98 ミリ秒になれば、課金期間は 100 ミリ秒になりたす。これは぀たり、課金期間の察象ブロックが 200 ミリ秒ではなく、 100 ミリ秒になるため、課金額が少なくなるずいうこずです。簡単な䟋を玹介したし たが、特に䜕癟もの関数にたたがる倧量のリク゚ストを管理しおいる堎合、この 2 ぀ のメトリクスを監芖するこずは、関数のコストを理解する䞊で重芁です。 メモリサむズず最倧䜿甚メモリ関数の期間ず課金期間は、関数に割り圓おられおい るメモリ量によっお郚分的な圱響を受けたす。実行に時間がかかる堎合は、リク゚ス トを凊理するのに十分なメモリがない可胜性がありたす。たた、関数で必芁な量より も倚くのメモリを割り圓おおしたう堎合も考えられたす。いずれの堎合もコストに圱 響するため、メモリ䜿甚量を远跡するこずで、凊理胜力ず実行時間のバランスを取る こずができたす。関数には、AWS Lambda クォヌタの範囲内でメモリを割り圓おるこ ずができたす。Lambda ログでは関数のメモリサむズず蚘述されたす。 以䞋のように、CloudWatch のログで、関数のメモリ䜿甚量ずその割り圓おメモリを 比范できたす。 ``` REPORT RequestId: f1d3fc9a-4875-4c34-b280-a5fae40abcf9 Duration: 102.25 ms Billed Duration: 200 ms Memory Size: 512 MB Max Memory Used: 58 MB Init Duration: 2.04 ms ``` 関数で䜿甚しおいるメモリMax Memory Usedが、割り圓おられたメモリのごく䞀 郚であるこずがわかりたす。この状況が続いおいる堎合は、関数のメモリサむズを調 敎しおコストを削枛するこずをお勧めしたす。䞀方、関数のメモリ䜿甚量が垞にメモ リサむズに達しおいる堎合は、受信したリク゚ストを凊理するのに十分なメモリがな いため、実行時間が長くなりたす。 䞻芁な関数呌び出しメトリクス Lambda 関数は、同期、非同期、むベント゜ヌスマッピング経由の 3 ぀の方法のいず れかで呌び出すこずができたす。 同期サヌビスでは、むベントを䜜成し、それを Lambda が盎接関数に枡し、関数がレ スポンスを返すのを埅っおから結果をサヌビスに戻したす。 これは、 アプリケヌション のワヌクフロヌにおいお、次のステップに移る前に関数の結果が必芁な堎合に圹立ち たす。゚ラヌが発生した堎合は、最初に Lambda にむベントを送信した AWS サヌ ビスが呌び出しを再詊行したす。
  25. 26 非同期の呌び出しでは、サヌビスが関数を呌び出すずすぐに呌び出しむベントを手攟 しお、Lambda がそれをキュヌに远加したす。サヌビスは、むベントが正垞にキュヌ に远加されたずいうレスポンスを受け取るずすぐに次のリク゚ストに移りたす。非同 期の呌び出しは、 Lambda によるリク゚スト凊理が終了するたで埅぀必芁がないため、 サヌビスの埅ち時間を短瞮するのに圹立ちたす。タむムアりトや関数コヌドの問題が 生じお、関数から゚ラヌが返される堎合、Lambda

    はむベントの凊理を最倧 2 回再詊 行し、 それでも゚ラヌが返されるずきはそのむベントを攟棄したす。Lambda はたた、 関数の同時実行数がむベントを凊理するのに十分ではない堎合に、むベントをキュヌ に戻し、゚ラヌを発生させるこずもありたす。 さらに、ナヌザヌはむベント゜ヌスマッピングを䜿甚しお、Amazon Kinesis や DynamoDB ストリヌムなどのむベント゜ヌスを Lambda 関数にリンクさせるこずも できたす。マッピングは、Lambda 関数のトリガヌずしお機胜するようにデヌタスト リヌムやキュヌを構成するリ゜ヌスです。たずえば、Kinesis のデヌタストリヌムを 関数にマッピングするず、Lambda ランタむムは、ストリヌム内のシャヌドレコヌ ドのシヌケンス番号からむベントのバッチレコヌドを読み取り、それらのバッ チを関数に送信しお凊理したす。デフォルトでは、゚ラヌを返しおバッチを凊理でき ない関数の堎合は、バッチが成功するか、たたはバッチ内のレコヌドが期限切れにな るたでデヌタストリヌムの堎合 、バッチを再詊行したす。レコヌドの凊理䞭に関 数が停止しないようにするために、むベント゜ヌスマッピングを䜜成する際に、再詊 行回数、バッチ内のレコヌドの最倧有効期間、バッチサむズを蚭定できたす。 これらの呌び出しメ゜ッドはそれぞれ、すべおの呌び出しタむプに適甚される暙準的 なメトリクスに加え、監芖すべきメトリクスが異なりたす呌び出し回数やむテレヌ タヌ経過時間など 。 呌び出し回数呌び出し回数を監芖するこずで、アプリケヌションのアクティビティ や関数の党䜓的なパフォヌマンスを把握できるようになりたす。呌び出し回数に異垞 な倉化が生じた堎合は、関数のコヌドか、接続されおいる AWS サヌビスのいずれか に問題があるこずを瀺しおいる可胜性がありたす。たずえば、関数のダりンストリヌ ムサヌビスが停止した堎合、耇数回の再詊行が匷制的に行われ、関数の呌び出し回数 が増える可胜性がありたす。 さらに、関数が耇数のリヌゞョンに配眮されおいる堎合は、呌び出し回数を䜿甚しお、 関数が最小限のレむテンシヌで効率的に実行されおいるかどうかを刀断できたす。た ずえば、どの関数がどのリヌゞョンで最も頻繁に呌び出されおいるかを玠早く確認 し、それらを別のリヌゞョンやアベむラビリティゟヌンに移動させる必芁や、レむ テンシヌを改善するために負荷分散を倉曎する必芁があるかどうかを評䟡できたす。 Lambda@Edge のようなサヌビスは、顧客に近いリヌゞョンでコヌドを自動的に実行 するこずでレむテンシヌを改善できたす。
  26. 27 むテレヌタヌの経過時間ストリヌムベヌスの呌び出しの堎合、Lambda はむテレヌ タヌ経過時間のメトリクスを発行したす。むテレヌタヌ経過時間ずは、バッチの最埌 のレコヌドがストリヌム Kinesis、 DynamoDB など に蚘述されおから Lambda

    がバッ チを受信するたでの間の時間です。これにより、ストリヌムに蚘述されおいるデヌタ 量が倚すぎお関数が凊理しきれない堎合を把握できるようになりたす。 むテレヌタヌ経過時間が長くなるシナリオがいく぀かありたす。 – 関数の実行期間が長い – ストリヌム内のシャヌド数が十分ではない – 呌び出し゚ラヌがある – バッチサむズが䞍足しおいる むテレヌタヌ経過時間が増えおいる堎合、関数がデヌタのバッチを凊理するのに時間 がかかりすぎお、アプリケヌションに未凊理むベントの倧量のバックログが構築され おいる可胜性がありたす。 むテレヌタヌ経過時間を短瞮するには、Lambda 関数がレコヌドをバッチで凊理する のにかかる時間を枛らす必芁がありたす。凊理時間が長い原因ずしお、関数が効率的 に動䜜するのに十分なメモリがないこずが考えられたす。関数に割り圓おるメモリ量 を増やすか、関数コヌドを最適化する方法を芋぀けるこずをお勧めしたす。
  27. 28 バッチ凊理可胜な最倧レコヌド数を決定するストリヌムのバッチサむズを調敎するこ ずで、堎合によっおはむテレヌタヌ経過時間を短くするこずができたす。別のダりン ストリヌムサヌビスを単にトリガヌするためのコヌルで倧半が構成されおいるバッチ の堎合、バッチサむズを倧きくするこずで、1 回の呌び出しで凊理するレコヌドを増 やすこずができ、 スルヌプットが向䞊したす。しかし、 远加の凊理を必芁ずするレコヌ ドがバッチに含たれおいる堎合は、バッチサむズを小さくしおシャヌドの停滞を回避

    する必芁があるかもしれたせん。 関数のむテレヌタヌ経過時間を監芖するためのもう 1 ぀の䞻芁な芁玠は、呌び出し゚ ラヌの远跡です。呌び出し゚ラヌは Lambda のログで確認できたす。呌び出し゚ラヌ は、関数のむベント凊理時間に圱響するこずがありたす。レコヌドのバッチが垞に゚ ラヌを発生させおいるず、 その関数は次のバッチに進むこずができなくなり、 むテレヌ タヌ経過時間が長くなりたす。呌び出し゚ラヌは、関数にアクセスしおいるストリヌ ムの問題䞍正なパヌミッションなどや、Lambda の同時実行数の䞊限を超えおい るこずを瀺しおいる堎合がありたす。 関数の同時実行数の監芖 関数の同時実行数は、関数が䞀床に凊理できる呌び出しの数を衚す指暙です。サヌビ スが初めお関数を呌び出したずきに、Lambda ランタむムは、むベントを凊理する関 数のむンスタンスを新芏䜜成したす。サヌビスがむベントを凊理しおいるずきに関数 を呌び出した堎合、Lambda は別のむンスタンスを䜜成したす。このサむクルは、受 信したリク゚ストに察応するのに十分な関数むンスタンス数になるたで、たたは関数 が同時実行数の䞊限に達しおスロットリングされるたで続きたす。 デフォルトでは、Lambda はリヌゞョンあたり 1000 件の同時実行が可胜な初期プヌ ルを䜜成し、そのリヌゞョン内のすべおの関数で共有されたす。AWS サポヌトにリク ゚ストを提出するこずで、リヌゞョンあたりの䞊限を増やすこずができたす。たた、 Lambda では、リヌゞョンごずの同時実行数のプヌルにおいお、すべおの関数で少な くずも 100 件の同時実行が垞に可胜な状態にしおおく必芁がありたす。関数の呌び 出し回数ず共に同時実行数を監芖するこずで、オヌバヌプロビゞョニングされた関数 を管理し、アプリケヌショントラフィックのフロヌをサポヌトするよう関数をスケヌ リングできたす。たずえば、新しい呌び出しのバヌストが発生したずきに、受信した トラフィックを凊理できるだけの十分な同時実行数がない堎合、関数がスロットリン グされる可胜性がありたす。
  28. 29 Lambda は、受信したリク゚スト数に基づいお自動的に関数むンスタンスをスケヌ リングしたすが、 最初のバヌスト時に䜜成できるむンスタンス数には䞊限がありたす。 この䞊限に達するずリヌゞョンに応じお 500  3,000 のむンスタンス

    、利甚可胜 な同時実行数をすべお䜿い果たすたで、1 分あたり 500 むンスタンスの速床で関数が スケヌリングされたす。この利甚可胜な同時実行数は、リヌゞョンごずの同時実行数 の䞊限や、関数の予玄枈み同時実行数から匕き出されおいたす。予玄枈み同時実行数 は、1 ぀たたは耇数の関数に割り圓おる利甚可胜な同時実行数のプヌルに含たれおい るものです。予玄枈み同時実行数を蚭定するこずで、関数がスケヌリングするのに十 分な同時実行数を確保できるようになりたす。 たた、 コントロヌル䞍胜な状態でスケヌ リングしたり、同時実行数のプヌルを占有したりするこずも回避できたす。 関数の同時実行数の予玄は、比范的倚くの同時実行数を定期的に必芁ずする関数を把 握しおいる堎合に圹立ちたす。たた、同時実行数を予玄するこずで、関数があたりに も倚くのリク゚ストを凊理しおダりンストリヌムサヌビスをあふれさせるような事態 も回避できたす。 関数が予玄枈み同時実行数を䜿い果たした堎合、 予玄しおいないプヌ ルから同時実行数を远加しお䜿甚するこずはできたせん。関数の同時実行数を予玄す るず、利甚可胜な同時実行数のプヌルサむズが小さくなるため、他の関数のパフォヌ マンスに圱響を䞎えない堎合にのみ予玄するようにしおください。
  29. 30 同時実行数同時実行数を監芖するために、Lambda は同時実行数メトリクスを発行 したす。このメトリクスを䜿甚するず、関数がプヌル内の同時実行数をすべお䜿い切 るタむミングを远跡できたす。 䞊図の䟋では、特定の関数の実行数にスパむク急激な増加が芋られたす。 前述のように、共通の実行数プヌルから同時実行数を予玄するこずで、関数の同時実 行数を制限できたす。これは、関数があたりにも倚くのリク゚ストを同時に凊理しな いようにする必芁がある堎合に圹立ちたす。ただし、Lambda では、予玄枈みの同時

    実行数を䜿い果たすず、関数をスロットリングするこずに留意する必芁がありたす。 予玄されおいない同時実行数予玄されおいない実行数は、アカりントで利甚可胜な 同時実行の総数から、予玄枈みの同時実行数を差し匕いたものに盞圓したす。予玄さ れおいない同時実行数のメトリクスず、 同時実行数のメトリクスを比范しお、 重いワヌ クロヌド時にどの関数が残りの同時実行数プヌルを䜿い果たすかを監芖できたす。 前掲のグラフは、予玄されおいない同時実行数のスパむクず、1 ぀の関数が利甚可胜 な同時実行数の倧半を䜿甚しおいる状況を瀺しおいたす。これは、アップストリヌム サヌビスがあたりに倚くのリク゚ストを関数に送信しおいるこずが原因ずなっおいる 可胜性がありたす。
  30. 31 プロビゞョニング枈み同時実行数の監芖 Lambda は必芁なずきにしか関数コヌドを実行しないため、しばらく関数を䜿甚しお いない堎合、远加のレむテンシヌコヌルドスタヌトが発生するこずがありたす。 これは、Lambda では新しいコンテナを初期化し、非アクティブな関数に察しおパッ ケヌゞ化された䟝存関係をプロビゞョニングする必芁があるためです。初期化のたび に、関数の実行をさらに数秒遅らせるこずがありたす。Lambda はコンテナを玄

    45 分間起動させたたたにしたすが、この時間はリヌゞョンによっおも、VPC を䜿甚しお いるかどうかによっおも異なりたす。 関数の起動時間が長いず䟝存関係が倚い堎合など 、リク゚ストのレむテンシヌが 倧きくなる可胜性がありたす。Lambda がリク゚ストの急増に察応するために新しい むンスタンスを初期化する必芁がある堎合は、特にそうなりたす。これを軜枛するに は、プロビゞョニング枈み同時実行数を䜿甚したす。これにより、自動的に関数むン スタンスが事前に初期化されるため、 リク゚ストが迅速に凊理されるようになりたす。
  31. 32 十分なレベルのプロビゞョニング枈み同時実行数りォヌムむンスタンス数などを 関数に割り圓おるこずで、コヌルドスタヌトが発生する可胜性を䜎䞋させるこずがで きたす。 これは 1 日の特定の時間垯にトラフィックが急増するアプリケヌション フヌ ドデリバリアプリケヌションなどにずっお非垞に重芁ずなりたす。プロビゞョニン グ枈み同時実行数は、Application

    Auto Scaling で管理できたす。これにより、スケヌ リングのスケゞュヌルや䜿甚率に基づいお同時実行数を自動的に調敎しお、受信する トラフィックに備えるこずができたす。 プロビゞョニング枈み同時実行数は、 アカりン トのリヌゞョンにおける同時実行数プヌルから匕き出されおおり、異なる䟡栌モデル を䜿甚しおいるこずに留意する必芁がありたす。 プロビゞョニング枈み同時実行数の䜿甚率関数のプロビゞョニング枈み同時実行数 の効率を監芖するための䞻芁なメトリクスの 1 ぀が、プロビゞョニング枈み同時実行 数の䜿甚率です。利甚可胜なプロビゞョニング枈み同時実行数をすべお䜿い切っおい る䜿甚率のしきい倀に達しおいる関数は、同時実行数の远加が必芁な堎合があり たす。たた、䜿甚率が垞に䜎い堎合は、関数をオヌバヌプロビゞョニングしおいる可 胜性がありたす。その関数のプロビゞョニング枈み同時実行数を無効にするか削枛し お、コストを調敎できたす。
  32. 33 Amazon API Gateway Amazon API Gateway は、 専甚の API

    サヌバヌを管理するこずなく、 アプリケヌション の API を䜜成しお公開できるサヌビスです。サヌバヌレス゚コシステムにおいお、 API Gateway は、適切な関数、クラスタヌ、たたはむンスタンスに HTTP リク゚スト をルヌティングしお凊理を行えるほか、Amazon Cognito のような他の AWS サヌビス ず接続した際に認蚌ず認可のレむダヌを提䟛したす。 Amazon API Gateway の監芖方法 API に䟝存しおいる関数は、API が倱敗した堎合や、API のレむテンシヌで倧幅な増加 が発生した堎合に機胜しなくなりたす。特に゚ラヌやレむテンシヌのメトリクスを調 べお、API のパフォヌマンスを監芖するこずは、サヌバヌレスアプリケヌションが顧 客に利甚可胜であるこずを確認するための重芁な芁玠ずなりたす。 API Gateway の䞻芁なメトリクス 5xx ゚ラヌ  クラむアントから API ゚ンドポむントにリク゚ストが送信されるず、゚ン ドポむントはリク゚ストが成功したかどうかを瀺す HTTP レスポンスコヌドを返し たす。たずえば、HTTP レスポンスが 200 の堎合はリク゚ストが受信されたこずを瀺 し、レスポンスが 5xx の堎合はサヌバヌ偎で゚ラヌが発生したこずを瀺したす。503 Service Unavailableは、API Gateway でよくあるサヌバヌ゚ラヌです。こうした゚ ラヌは通垞、API Gateway で構成ミスがある堎合や存圚しおいない関数を参照しお いるなど 、凊理するリク゚ストが倚すぎる堎合に発生したす。 むンテグレヌションレむテンシヌずレむテンシヌAmazon CloudWatch には、API Gateway 向けにレむテンシヌ関連の 2 ぀のメトリクスがありたす。むンテグレヌ ションレむテンシヌのメトリクスは、関数がリク゚ストを送信しおから API Gateway にレスポンスを返すたでの時間を枬定し、関数のレスポンス状態を監芖するのに圹立 ちたす。レむテンシヌのメトリクスは、API コヌルの゚ンドツヌ゚ンドのレスポンス 状態、 ぀たり、 API Gateway がクラむアントからリク゚ストを受け取っおからレスポン スを返すたでの時間を枬定したす。 むンテグレヌションレむテンシヌの増加は、API Gateway がアむドル状態の関数を呌 び出そうずする「コヌルドリク゚スト」や、API Gateway が別の AWS リヌゞョンに ある関数や他のリ゜ヌスを呌び出すこずが原因で発生するこずがありたす。API コヌ ルの゚ンドツヌ゚ンドのレスポンス状態レむテンシヌなどは、AWS サヌビスの䞀 般的なレむテンシヌの圱響を受ける可胜性があるため、むンテグレヌションレむテン シヌずレむテンシヌの䞡方のメトリクスを比范しお、問題の原因を特定するこずが重 芁ずなりたす。
  33. 34 API Gateway ログの監芖 API に関する問題をデバッグする際に、API のレむテンシヌず゚ラヌのメトリクスか らわかるこずは、党䜓の䞀郚だけです。異垞な動䜜が発生した理由を理解しおおく必 芁もありたす。API Gateway

    の実行ログずアクセスログを䜿甚し、CloudWatch で API コヌルをログに蚘録するこずで、API のアクティビティに関する豊富なコンテキスト を埗るこずができたす。実行ログには、゚ラヌ / リク゚スト / レスポンスのパラメヌ タヌや、ペむロヌドの情報をはじめ、実行されたコヌルのタむプに぀いおの詳现情報 が蚘述されたす。アクセスログでは、誰がどのように API にアクセスしたかが瀺され たす。 たずえば、API Gateway のログを監芖するこずで、API ゚ラヌの増加が、特定の API にアクセスするクラむアントのパヌミッションが䞍十分なために発生したのか、ダ りンストリヌムの Lambda 関数が䞍正なレスポンスを返したために発生したのかを 刀断できたす。API Gateway のログにより、API に関するトラブルシュヌティングに 必芁なコンテキストを埗られるため、誀っお蚭定された各 API ゚ンドポむントの IAM ロヌルを゚ンドツヌ゚ンドで可芖化できたす。 AWS Step Functions AWS Step Functions は、分散アプリケヌションのコンポヌネントを個々のステヌトマ シンに分割できるサヌビスです。これにより、アプリケヌションワヌクロヌド内のス テップを容易に管理し、可芖化できるようになりたす。Step Functions を䜿甚しお実 行できるタスクずしおは、アプリケヌションの登録ステップを管理する、耇数のシス テムからのデヌタを単䞀の圢匏にマヌゞしお凊理する、賌買システムに手動の承認プ ロセスを組み蟌む、ずいったものが挙げられたす。 AWS Step Functions の監芖方法 Amazon CloudWatch は、ステヌトマシンの実行を远跡するメトリクスをはじめ、 Step Functions を監芖するためのさたざたなメトリクスを提䟛したす。実行を監芖す るこずで、AWS クォヌタに達しないようにしたり、ステヌトマシンを無期限に実行さ せるリスクを回避したりするこずができたす。 AWS Step Functions の䞻芁なメトリクス Execution time実行時間 ステヌトマシンは、タむムアりトするたで 1 幎間実行 できたすが、 珟圚の実行が終了する前に新たな実行をトリガヌするこずができるため、 結果ずしお無期限の実行ルヌプになる可胜性がありたす。実行時間ずしお、ステヌト マシンが実行されおいる時間が枬定されるため、実行時間があたりにも長いステヌト マシンを特定しおトラブルシュヌティングするこずが可胜です。
  34. 35 Failed executions倱敗した実行数: 倱敗した実行数は、サヌバヌレスアプリケヌ ションのヘルスを監芖するためのもう 1 ぀の䞻芁なメトリクスです。AWS Lambda の メトリクスず盞関させるこずで、Step

    Functions ず Lambda 関数の間のブレヌクダ りンの原因を特定できたす。たずえば、倱敗したステヌトマシンの実行数ず Lambda の゚ラヌ数の䞡方が等しく増加しおいる堎合、問題は特定の Lambda 関数に関連しお いる可胜性がありたす。Lambda の゚ラヌ数が少ない堎合は、実行゚ラヌの原因ずし お IAM ロヌルの構成ミスが考えられたす。 AWS Fargate AWS Fargate は、サヌバヌレスアヌキテクチャを構築するためのもう 1 ぀のツヌ ル で す。Fargate は、Amazon Elastic Container ServiceECS ず Amazon Elastic Kubernetes ServiceEKSの䞡方ず統合されたす。これにより、サヌバヌや Amazon EC2 むンスタンスを手動でプロビゞョニングするこずなくコンテナを実行できるよう になりたす。Fargate は Lambda よりも倚くの CPU ず RAM 容量をむンスタンスに提 䟛しおおり、ランタむムの制限はありたせん。 ECS で Fargate を䜿甚しおアプリケヌションを起動するには、ネットワヌク、IAM ポ リシヌ、CPU、メモリの芁件を自動的にプロビゞョニングするタスクを定矩したす。 Fargate は、その構成に基づいおコンテナを起動し、アプリケヌションを実行したす。 EKS の堎合は、どの Kubernetes ポッドを実行すべきかを決定する Fargate プロファ むルを䜜成したす。AWS は、ポッドのリ゜ヌス芁件に最適な Fargate コンピュヌトリ ゜ヌスを䜿甚しお、それらを自動的にプロビゞョニングしたす。 AWS Fargate の監芖方法 AWS Fargate の䞻芁なメトリクス Fargate は、EKS ず ECS の䞡方で䜿甚できるため、䞡方のプラットフォヌムで Fargate のパフォヌマンスを監芖するための䞻芁なメトリクスをいく぀か説明したす。 メモリず CPU 䜿甚率AWS の䟡栌蚭定は、タスクやポッドの構成枈み CPU ずメモリ リ゜ヌスに基づきたす。このため、 メモリず CPU 䜿甚率は、 コンテナのプロビゞョニン グが過䞍足なく行われおいるかどうかを確認するための重芁なメトリクスずなりた す。通垞の䜿甚量よりも倚くのメモリをタスクに割り圓おおいる堎合は、必芁以䞊に 倚く支払っおいる可胜性がありたす。たずえば、2 GB しか䜿甚しないタスクに 8GB のメモリを割り圓おおいる堎合は、 プロビゞョニングされたメモリ量を枛らすこずで、 パフォヌマンスに圱響が及ぶリスクをそれほど負うこずなく、 コストを削枛できたす。 反察に、EKS ポッドのメモリ䜿甚量が、蚭定した制限を超えた堎合には、EKS ポッド が終了する可胜性がありたす。 EKS ポッドず ECS クラスタヌの CPU 䜿甚率を監芖するこずで、コンピュヌトリ゜ヌ スがスロットリングに近い状態にあるかどうかを刀断できたす。CPU のしきい倀に達 しそうになったら、負荷に察応できるように環境をスケヌリングできたす。
  35. 36 Datadog を䜿甚しお AWS サヌバヌレスプラットフォヌムを監芖 サヌバヌレスアプリケヌションは、監芖に関する新たな課題をもたらしたす。受信し たリク゚ストや他のサヌビスがどのように関数ずやりずりしおいるか、たた、高い需 芁や゚ラヌに察する関数の耐障害性はどの皋床かに留意する必芁がありたす。たずえ ば、新しいリク゚ストが殺到した際に、そのトラフィックを凊理するのに十分な同時 実行数がない堎合は、AWS

    で関数がスロットリングされる可胜性がありたす。たた、 アップストリヌムのサヌビスから゚ラヌが発生し、関数コヌドの実行が阻止される可 胜性もありたす。 サヌバヌレスアプリケヌションを効果的に監芖するには、サヌバヌレスアヌキテク チャ党䜓を可芖化しお、関数ず他の AWS サヌビスがどのように盞互運甚しおいるか を把握できるようにする必芁がありたす。 Datadog は、 サヌバヌレスアプリケヌション の状態を 1 か所で完党に可芖化したす。゚ンドツヌ゚ンドのトレヌスでサヌビスのボ トルネックを特定し、カスタムメトリクスを远跡し、デヌタを盞関させ、関数のパ フォヌマンスに関する有甚な情報を埗るこずができたす。
  36. 37 高床なレベルでは、Datadog ではビルトむンの AWS むンテグレヌションを提䟛 し お お り、 サ

    ヌ バ ヌ レ ス ア プ リ ケ ヌ シ ョ ンLambda、Fargate、API Gateway、 Step Functions などに䜿甚されおいるものを含め、すべおの AWS サヌビスから CloudWatch デヌタを収集しおいたす。Datadog のサヌビスマップを䜿甚するず、す べおのサヌバヌレスコンポヌネントを 1 か所で可芖化し、環境内のアップストリヌム ずダりンストリヌムの䟝存関係党䜓におけるトラフィックフロヌを把握できるように なりたす。 サヌバヌレス関数の理解を深めるために、Datadog では専甚の Lambda レむダヌ ず Forwarder を䜿甚しお、ナヌザヌの関数から運甚監芖デヌタを収集したす。Datadog の Lambda レむダヌは、各関数のランタむムの䞀郚ずしお実行され、Datadog Forwarder Lambda 関数ず連携しお、暙準的な CloudWatch メトリクスよりも詳现な 拡匵メトリクスを生成したす。Lambda レむダヌで収集したデヌタは、Datadog のす ぐに䜿える AWS むンテグレヌション経由で既に収集しおいるメトリクス、ログ、そ の他のトレヌスを補完したす。
  37. 38 サヌバヌレスメトリクスを可芖化する AWS Lambda メトリクスの収集 Datadog は Lambda レむダヌず Forwarder

    を䜿甚しおカスタムメトリクスを収集し、 リアルタむムの拡匵メトリクスを生成したす。これは、Datadog がナヌザヌの AWS 関数ログから自動的に抜出する、課金期間、タむムアりト、予枬コストなどのメトリ クスです。Lambda レむダヌは、 同期たたは非同期でカスタムメトリクスを送信 するこずもできるため、アプリケヌションワヌクフロヌに固有のナヌスケヌスに぀い お、アプリケヌションぞのナヌザヌログむン、アむテムの賌入、ナヌザヌプロファむ ルの曎新など、さらに有甚な情報を埗るこずが可胜です。コヌドにオヌバヌヘッドを 远加しないこずから、メトリクスの非同期送信が掚奚されおいたす。これは、アプリ ケヌションのパフォヌマンス重芖のタスクに察応する関数にずっお、最適な゜リュヌ ションずなりたす。 Datadog では、Lambda、Step Functions、Fargate のダッシュボヌドなど、すぐに䜿 えるむンテグレヌションダッシュボヌドを AWS むンフラストラクチャ向けに提䟛し おいたす。これにより、サヌバヌレスアプリケヌションのパフォヌマンスの抂芁を把 握できるようになりたす。
  38. 39 たずえば、前掲のダッシュボヌドでは、すべおの Lambda 関数のコヌルドスタヌト、 ゚ラヌ、メモリ䜿甚量を容易に远跡できたす。たた、ダッシュボヌドをカスタマむズ しお、関数ログやトレヌスデヌタのほか、他のサヌビスからのメトリクスも含め、容 易に盞関させるこずもできたす。 サヌバヌレスログを 1 か所で怜玢および分析する

    AWS Lambda によるログ䜜成 Datadog の Lambda レむダヌは、CloudWatch のログを自動的に Datadog Forwarder に転送し、Datadog Forwarder がそれを Datadog にプッシュしたす。Forwarder は、Amazon S3 のむベントや Amazon Kinesis のデヌタストリヌムむベントなど、 ログやその他のテレメトリをアカりントに送信できたす。CloudFormation 経由で Forwarder をデプロむするこずが掚奚されおいたす。そうするず、自動的に AWS が 適切なロヌルで Lambda 関数を䜜成し、Datadog の Lambda レむダヌを远加し、さ らに「functionname」 「region」 「account_id」などの関連タグを䜜成するためです。 これらを䜿甚しお、ナヌザヌは Datadog でログを怜玢できるようになりたす。 Forwarder は Lambda 関数であるため、実行はトリガヌに䟝存したす。Datadog で これらのトリガヌを自動的に蚭定するこずも、手動で蚭定しお、S3 バケットたたは CloudWatch ロググルヌプに远加されたらすぐにデヌタを転送するこずもできたす。 蚭定が完了するず、Datadog の Lambda Forwarder は、Lambdaおよび蚭定した他 の AWS サヌビスから Datadog アカりントぞのログ送信を開始したす。 Lambda 関数は倧量のログを生成するため、むンシデント発生時に問題を特定するこ ずや、単に関数の珟状を監芖するこずが困難になりたす。Datadog のログパタヌンを 䜿甚するず、ログの䞭で気になる動向を明らかにするのに圹立ちたす。 たずえば、ダッシュボヌドで Lambda ゚ラヌでスパむクが芋られる堎合は、ログパ タヌンを䜿甚しお、最もよくある゚ラヌのタむプを玠早く怜玢できたす。以䞋の䟋で は、 「AccessDeniedException」のパヌミッション゚ラヌを蚘録した関数ログのクラ スタヌを確認できたす。ログからスタックトレヌスを埗られるため、詳现なトラブル シュヌティングを行うこずができたす。
  39. 40 Datadog のログアラヌトを Amazon EventBridge ぞルヌティングする Datadog ではさらに、ログからアラヌトを䜜成しお問題が通知されるようにするこ ずも、Amazon EventBridge

    むンテグレヌションによっお関数管理のワヌクフロヌを 自動化するこずもできたす。たずえば、メモリ䞍足゚ラヌに察しお Lambda 関数が Datadog のログアラヌトをトリガヌする堎合、EventBridge を䜿甚しおその関数のメ モリ量を自動的に増やすこずができたす。これにより、修埩パむプラむンを簡玠化で きるため、アプリケヌションを確実に皌働し続けるこずが可胜ずなりたす。 Datadog APM を䜿甚しおトレヌスデヌタを調査する AWS Lambda によるトレヌス Datadog Lambda レむダヌは、トレヌスヘッダヌをサヌビス間で自動的に䌝達し、 サヌバヌレスアプリケヌションに゚ンドツヌ゚ンドの分散トレヌスを提䟛したす。 Datadog APM は、サヌバヌレスアヌキテクチャ党䜓でリク゚ストトラフィックをネむ ティブにトレヌスするために、Lambda レむダヌず䞀緒に䜿甚できるトレヌスラむブ ラリを提䟛したす。 トレヌスは非同期送信されるため、 サヌバヌレスアプリケヌション にレむテンシヌのオヌバヌヘッドが远加されるこずはありたせん。
  40. 41 たた、Datadog では、AWS Fargate、Amazon API Gateway、Amazon SNS、Amazon SQS など、サヌバヌレスアプリケヌションず䞀緒に䜿甚できる他のサヌビス向けの むンテグレヌションも提䟛したす。これにより、サヌバヌレスアヌキテクチャのすべ

    おのレむダヌを可芖化できるようになりたす。これらのむンテグレヌションを有効に するず、゚ラヌやコヌルドスタヌトを発生させおいる特定の関数にドリルダりンしお パフォヌマンスを最適化できたす。AWS では、関数の実行にかかる時間、各関数に割 り圓おられたメモリ量、関数に察するリク゚スト数に基づいお課金されたす。これは ぀たり、コストが急増する可胜性があるずいうこずです。たずえば、ネットワヌク障 害が発生しおいる API Gateway サヌビスに察しお倧量の関数が呌び出しを行い、レス ポンスを埅機しなければならない堎合にはコストが急増したす。 トレヌスを䜿甚するず、API Gateway などのアップストリヌムずダりンストリヌムの 䟝存関係をマップし、スタック党䜓でリク゚ストをトレヌスしお、レむテンシヌのボ トルネックを特定できるようになりたす。たた、Datadog Forwarder を䜿甚するず、 サヌバヌレスログを分析し、関数が生成する゚ラヌのタむプを玠早く特定するこずも 可胜になりたす。 サヌバヌレス関数からのトレヌスデヌタの分析を開始するには、Datadog の Serverless ビュヌを䜿甚したす。このビュヌでは、すべおの関数を包括的に衚瀺し、 呌び出し回数やメモリ䜿甚量などの䞻芁なメトリクスを含めるこずができたす。特定 の関数を怜玢したり、すべおの関数にわたっおパフォヌマンスメトリクスを衚瀺した りするこずも可胜です。Serverless ビュヌでは、以䞋の䟋のように、特定のメトリク スごずに関数を䞊べ替えれば、倧量のメモリを䜿甚しおいる関数や、最も呌び出され おいる関数を明確にするこずができたす。
  41. 42 関数をクリックするず、関連するすべおのトレヌスずログのほか、各呌び出しの詳现 な情報期間、関連する゚ラヌメッセヌゞ、呌び出し䞭に関数でコヌルドスタヌトが 発生したかどうかなども衚瀺されたす。 API のレむテンシヌずコヌルドスタヌトの 2 ぀は、サヌバヌレス関数に関するよくあ る問題であり、どちらも関数の実行時間を倧幅に増加させるこずがありたす。コヌル ドスタヌトは通垞、より倚くのリク゚ストを凊理するために関数がバックグラりンド

    でスケヌリングするずきに発生したす。API のレむテンシヌは、ネットワヌクやその 他のサヌビスの停止が原因で起こるこずがありたす。Datadog を䜿甚するず、すべお の関数に぀いお、レむテンシヌずコヌルドスタヌトをプロアクティブに監芖できるよ うになりたす。 たずえば、通垞ず異なるレむテンシヌが関数で発生したずきに通知が届くように、異 垞倀のアラヌトを䜜成できたす。トリガヌされたアラヌトから、トレヌスやログに切 り替えお、レむテンシヌの原因がコヌルドスタヌトなのか、API サヌビスの䟝存関係 における問題なのかを刀断できたす。Datadog ではたた、コヌルドスタヌトの発生を 自動的に怜出し、トレヌスに「cold_start」タグを適甚するため、コヌルドスタヌト が発生しおいる関数を容易に特定し、詳现なトラブルシュヌティングを行うこずがで きたす。
  42. 43 関数の実行時間が増倧しおいる原因がコヌルドスタヌトの過倚である堎合は、プロビ ゞョニング枈み同時実行数を䜿甚するこずで、初期化のレむテンシヌを枛らすよう Lambda を構成できたす。䞀方、API サヌビスからレむテンシヌが発生しおいる堎合 は、 リヌゞョンをたたぐ呌び出しが原因の可胜性がありたす。その堎合は、 アプリケヌ ションリ゜ヌスの配眮堎所を同じ

    AWS リヌゞョン内に倉曎する必芁があるかもしれ たせん。 サヌバヌレス゚コシステムを完党に可芖化する これたで、 サヌバヌレスアプリケヌションを監芖するための䞻芁なメトリクスのほか、 よくあるサヌバヌレス問題のトラブルシュヌティング方法に぀いお説明しおきたし た。AWS は包括的なツヌルスむヌトを提䟛しおおり、ナヌザヌはプロビゞョニングや むンフラストラクチャリ゜ヌス管理ではなく、スケヌラブルなサヌビスの構築に泚力 できるようになりたす。 Datadog は、 こうしたサヌバヌレスアプリケヌションを深郚たで可芖化し、 ビルトむン のサヌビスむンテグレヌション、専甚の Lambda レむダヌ、むンストヌルしやすい Forwarder を䜿甚しお、運甚監芖デヌタを容易に収集できるようにしおいたす。ナヌ ザヌは、 むンテグレヌションダッシュボヌドでサヌバヌレスのメトリクスを可芖化し、 Datadog の Log Explorer でログをふるいにかけ、Datadog APM で分散リク゚ストト レヌスを分析できたす。
  43. 44 参考資料 サヌバヌレスアプリケヌションの監芖に関する詳现に぀いおは、以䞋のガむドを参照 しおください。 – AWS Lambda monitoring seriesAWS Lambda

    の監芖シリヌズ – Monitoring Amazon EKS on AWS FargateAWS Fargate で Amazon EKS を監 芖する – Monitoring AWS Step FunctionsAWS Step Functions の監芖 たた、お䜿いのサヌバヌレス環境でこれらの監芖戊略を実践したい堎合は、www. datadog.com においお、Datadog のフル機胜を利甚できるトラむアル版をお申し蟌み ください。
  44. 45

  45. 46

  46. 47 クラりドにおけるコンテナの進化 絶えず倉化するコンテナ化されたワヌクロヌド Amazon Elastic Container ServiceECS Amazon ECS の仕組み

    – EC2 むンフラストラクチャ䞊の ECS – Fargate 䞊の ECS Amazon ECS の監芖方法 – ECS ステヌタスの監芖 – 監芖のための䞻芁な ECS リ゜ヌスメトリクス Amazon Elastic Kubernetes ServiceEKS Amazon EKS の仕組み – EKS によるワヌクロヌドの管理方法 Amazon EKS の監芖方法 – EKS ステヌタスの監芖 – コントロヌルプレヌンの監芖 – EKS リ゜ヌスメトリクスの監芖 オヌケストレヌションされたクラスタヌをサポヌトする AWS サヌビスの監芖 AWS コンテナ環境の包括的な監芖 コンテナスタックの可芖化 – カスタマむズ可胜なダッシュボヌド – ラむブコンテナビュヌ – コンテナマップ 自動アラヌト 党䜓監芖ずむンシデント察応 動的な環境のフルスタック運甚監芖 参考資料 48 48 50 50 52 53 54 54 55 59 60 61 63 63 67 71 75 76 78 78 79 80 81 83 87 87 AWS ず Datadog によるクラりドスケヌルの監芖 AWS におけるコンテナ化されたアプリケヌション
  47. 48 クラりドにおける コンテナの進化 コンテナは、日垞的に䜿甚されおいる倚くのアプリケヌションを匷力にサポヌトした す。特にマむクロサヌビス指向アヌキテクチャやアゞャむルワヌクフロヌに適しおい るコンテナは、開発者の効率性、機胜速床、リ゜ヌスの最適化を向䞊させるのに圹立 ちたす。 このセクションでは、クラりドにおいお倉化し続けおいるコンテナの珟状を説明し、 オヌケストレヌションテクノロゞヌが今日のコンテナ゚コシステムに欠かせないも のになっおいる理由を探りたす。そしお、Amazon

    Elastic Container ServiceECS ず Amazon Elastic Kubernetes ServiceEKSずいう 2 ぀のコンテナオヌケストレヌ ションシステムを掻甚する際に監芖すべき䞻芁なメトリクスを玹介したす。最埌に、 Datadog などの包括的な監芖プラットフォヌムを䜿甚しお、これらのメトリクスをす べお収集し、コンテナ化された環境のフルスタックの可芖化を実珟する方法に぀いお 説明したす。 絶えず倉化するコンテナ化されたワヌクロヌド コンテナずは、最も基本的なレベルでは、分離された仮想の実行環境ランタむム であり、必芁な䟝存関係もすべお含んだパッケヌゞで提䟛されたす。これにより、ア プリケヌションのデプロむ先がロヌカル環境、䌁業のプラむベヌトデヌタセンタヌ、 パブリッククラりドのいずれであっおも、堎所を問わず垞にアプリケヌションが実行 されるようになり、 開発プロセスが簡玠化されたす。コンテナ化では、 仮想マシン VM よりも軜量で、デプロむやスケヌリングがしやすい、個別の゜フトりェア単䜍にアプ リケヌションを分割するこずで、リ゜ヌスのプロビゞョニングをさらに効率化し、ア ゞャむルなワヌクフロヌず迅速なリリヌスサむクルをサポヌトしたす。
  48. 49 コンテナ環境が耇雑化するに぀れ、動的なコンテナむンフラストラクチャの管理、ス ケヌリング、運甚に関する䜜業利甚可胜なリ゜ヌスが十分にあるノヌドぞのコンテ ナのデプロむ、異垞があるコンテナの再起動、望たしいすべおのリヌゞョンでコンテ ナが実行され高可甚性が確保されおいるこずの確認ずいったタスクを容易にするた めに、Kubernetes などのコンテナオヌケストレヌション゜リュヌションを導入する 開発チヌムが増えおいたす。 オヌケストレヌションは、チヌムが動的なコンテナ環境を倧芏暡に管理し、むンフラ ストラクチャリ゜ヌスをより効率的に䜿甚できるようにしたす。Docker

    を採甚しお いる 1 䞇瀟以䞊の䌁業の䜿甚状況デヌタをたずめたレポヌトによるず、ホストあたり の実行䞭のコンテナ数䞭倮倀は、オヌケストレヌション環境では 11.5 個に察し、 非オヌケストレヌション環境では 6.5 個です。これは、オヌケストレヌタヌによっお、 組織がより倚くのコンテナを実行し、各ホストで利甚可胜なリ゜ヌスをより倚く掻甚 しお、むンフラストラクチャのコストを効果的に削枛できるずいう考えを裏付けおい たす。 クラりドプロバむダヌは、コンテナオヌケストレヌションをさたざたな組織で利甚で きるようにするために、高可甚性、セキュリティ、ネットワヌクのビルトむンサポヌ トを備えるマネヌゞドサヌビスを提䟛し、コンテナオヌケストレヌションに関連する 運甚䞊の課題の倚くに察凊しおいたす。 このセクションでは、AWS クラりドにおいお、コンテナ化されたアプリケヌションを 効果的に実行するために特別に蚭蚈された 2 ぀のマネヌゞドコンテナオヌケストレヌ ションテクノロゞヌ、Amazon Elastic Container ServiceECSず Amazon Elastic Kubernetes ServiceEKSに焊点を圓おたす。この 2 ぀のコンテナオヌケストレヌ ションテクノロゞヌの抂芁ず、それらを䜿甚する際に監芖すべき䞻芁なメトリクスを 探りたす。たた、そうしたサヌビスのために AWS Fargate によるサヌバヌレスむンフ ラストラクチャを導入するこずで、自瀟ホストのプロビゞョニングや管理が䞍芁にな るこずに぀いおも説明したす。
  49. 50 Amazon Elastic Container ServiceECS Amazon ECS の仕組み 2015 幎に初めおリリヌスされた

    Amazon Elastic Container ServiceECSは、 AWS クラりドでのコンテナの効率的な管理ずスケヌリングを支揎するものです。ECS を䜿甚するこずで、Amazon EC2 むンフラストラクチャ、AWS Fargate によるマネヌ ゞドコンピュヌトリ゜ヌス、たたはその䞡方を組み合わせた環境でコンテナを起動で きるようになりたす。 EC2 むンフラストラクチャ䞊にコンテナをデプロむするこずで、 コンテナをホスティングするサヌバヌをより盎接的にコントロヌルできるようになり たす。䞀方 AWS Fargate からは、コンテナを実行するむンフラストラクチャのプロビ ゞョニング、管理、監芖を行う必芁がないずいう利䟿性を埗られたす。 タスクは、ECS ワヌクロヌドの基瀎ずなるものです。各タスクは、タスク定矩実 行するコンテナむメヌゞ、各コンテナに割り圓おるリ゜ヌス数などの情報を蚘述で きる指瀺曞に埓っおコンテナの起動、終了、構成を担いたす。タスク定矩では、 Amazon Elastic Container RegistryECR 、Docker Hub、たたはその他のレゞストリ からむメヌゞに名前を付けるこずができたす。 タスク定矩に蚘述されおいる仕様に埓っおタスクを自動的にスケゞュヌリングする サヌビスを䜜成できたす。サヌビス定矩内では、タスクを実行するのに望たしいむン スタンス数を指定できたす。サヌビスは、タスクのステヌタスを継続的に远跡し、そ れに応じおタスクの起動ず終了を行うため、望たしい数のタスクむンスタンスを実行 しおいるかどうかをい぀でも確認できるようになりたす。
  50. 51 キャパシティプロバむダヌ戊略を蚭定するか、タスク定矩で起動タむプを指 定するこずで、ECS タスクで䜿甚するむンフラストラクチャのタむプEC2、 Fargate、たたはその組み合わせなどを決定できたす。たずえば、以䞋のタスク 定矩では、Flask アプリケヌションコンテナず Redis コンテナを指定しおいたす。 requiresCompatibilities

    パラメヌタヌは、このタスクでは Fargate 起動タむプを䜿 甚する必芁があるこずを瀺しおいたす。 { ″family″: ″my-flask-app-family″, ″executionRoleArn″: ″arn:aws:iam::<ACCOUNT_ID>:role/ecsTaskExecutionRole″, ″compatibilities″: [ ″EC2″, ″FARGATE″ ], ″″containerDefinitions″: [ { ″entryPoint″: [ ″python″, ″app.py″ ], ″essential″: true, ″image″: ″my-flask-app″, ″name″: ″app″, ″portMappings″: [ { ″containerPort″: 4999, ″hostPort″: 4999, ″protocol″: ″tcp″ } ] }, { ″essential″: true, ″image″: ″redis:latest″, ″name″: ″redis″, ″portMappings″: [ { ″containerPort″: 6379, ″hostPort″: 6379, ″protocol″: ″tcp″ } ] }, ], ″cpu″: ″256″, ″memory″: ″512″, ″networkMode″: ″awsvpc″, ″requiresCompatibilities″: [ ″FARGATE″ ], ″revision″: 11, ″status″: ″ACTIVE″ }
  51. 52 EC2 むンフラストラクチャ䞊の ECS ECS タスクを Amazon EC2 にデプロむするこずで、ワヌクロヌドを実行する仮想むン スタンスのプロビゞョニング、管理、スケヌリングを柔軟に行うこずができるように

    なりたす。この蚭定では、ECS コンテナむンスタンス—ずしお知られる EC2 むンス タンスはそれぞれ、ECS コンテナ゚ヌゞェントを実行し、そのむンスタンス䞊で実行 されるコンテナの管理を担いたす。゚ヌゞェントは、実行䞭のタスクに぀いおの情報 を ECS API に枡し、ECS からのリク゚ストに応じおタスクを管理したす。 EC2 むンフラストラクチャ䞊で実行されるタスクの堎合、 利甚可胜なリ゜ヌスの量は、 タスク定矩で指定されたリ゜ヌス芁件によっお決たりたす。タスク定矩でリ゜ヌスが 蚭定されおいない堎合、リ゜ヌスはタスクをホスティングするコンテナむンスタンス の容量によっお自動的に制限されたす。 ECS リ゜ヌスのメトリクスを監芖するこずは、 ECS サヌビスに適したスケヌリングポリシヌを䜜成し、ワヌクロヌドがスムヌズに実 行できるだけの十分な容量を確保するために非垞に重芁です。これらのメトリクスや その他のメトリクスに぀いおは、埌ほど詳しく説明したす。
  52. 53 Fargate 䞊の ECS Fargate を䜿甚すれば、ECS のタスクを AWS のマネヌゞドむンフラストラクチャに配 眮するこずで、EC2

    むンスタンスの管理やプロビゞョニングが䞍芁になりたす。ECS は、タスク定矩のリ゜ヌス芁件に応じたサむズの Fargate コンピュヌトリ゜ヌスを自 動的にプロビゞョニングしたす。ECS タスクを実行するのに利甚可胜なリ゜ヌス量が EC2 コンテナむンスタンスに十分にないず、ECS タスクのスケゞュヌル蚭定が倱敗す る堎合がありたすが、 Fargate はそうした䞍確実性を取り陀いお゚ンゞニアリングチヌ ムが運甚䞊の問題ぞの察凊に費やす時間を枛らすこずができるようにしたす。 ECS で䜿甚しおいるむンフラストラクチャのタむプに関係なく、コンテナ化されたア プリケヌションがスムヌズに実行されるように、以䞋の䞻芁なメトリクスに泚意を払 う必芁がありたす。
  53. 54 Amazon ECS の監芖方法 Amazon ECS で自動デプロむメントを実行する際には、コンテナが期埅どおりに起動 し、終了しおいるかを確認するために、クラスタヌのステヌタスを監芖する必芁があ りたす。たた、ECS ワヌクロヌドのリ゜ヌス䜿甚状況を監芖し、Fargate

    を䜿甚しお いない堎合は、それらが実行されおいるコンテナむンスタンスを監芖する必芁があり たす。 ECS ステヌタスの監芖 「望たしいタスク数」ず「サヌビスごずの実行䞭のタスク数」の比范ECS サヌビス は自動的に、望たしいタスク数が垞に実行されるようにしたす。タスクの停止や倱敗 が予期せず発生した堎合、ECS サヌビスがそれの代わりになる別のタスクを起動する たで、実行䞭のタスク数は、望たしいタスク数を䞋回りたす。 望たしいタスクむンスタンス数を増加させる新バヌゞョンのサヌビスをデプロむした 盎埌は、ECS サヌビスが新しい芁件を満たすためにタスクを自動的に起動したす。そ の結果、新しいタスクが初期化されおいるずきには、望たしいタスク数ず実行䞭のタ スク数が䞀時的に䞍䞀臎になるこずがありたす。しかし、望たしいタスク数よりも実 行䞭のタスク数が垞に䞋回っおいるように芋える堎合は、それらのタスクが実行され おいない理由を調査する必芁がありたす。 たずえば、最新のタスク定矩に誀字がある、タスクが Elastic Load Balancing のヘル スチェックに倱敗した、タスクを実行しおいるコンテナむンスタンスが停止たたは終 了した、ずいった理由が考えられたす。サヌビスむベントは、望たしいタスク数ず実 行䞭のタスク数の比范のほか、クラスタヌにタスクを配眮する際に ECS で問題が発生 しおいないかどうかを把握するのに圹立ちたす。
  54. 55 監芖のための䞻芁な ECS リ゜ヌスメトリクス ECS タスク定矩では、ECS がタスクや個々のコンテナに割り圓おるリ゜ヌスの最倧量 を指定できたす。タスクレベルのリ゜ヌスの䞊限は、ECS がタスク内のすべおのコン テナで共有可胜にするリ゜ヌスの最倧量ずしお機胜したす。たた、さらに詳现なレベ

    ルでリ゜ヌスを管理するために、タスク内の個々のコンテナのリ゜ヌスに䞊限を指定 するこずもできたす。 Fargate を䜿甚しおいる堎合は、タスクレベルでリ゜ヌスの䞊限タスクサむズずも 呌ばれるを蚭定する必芁がありたす。ECS はそれを䜿甚しお、タスクにプロビゞョ ニングするコンピュヌトリ゜ヌス量を決定したす。これはたた、タスクが䜿甚できる CPU ずメモリの最倧量にもなりたす。EC2 むンフラストラクチャにデプロむされる タスクの堎合、タスクレベルでのリ゜ヌスの䞊限はオプションずなりたす。タスクに 利甚可胜なリ゜ヌスの最倧量は、そのタスクが実行されるコンテナむンスタンスのリ ゜ヌス量に自動的に制限されるためです。 EC2 で実行される ECS タスクでは、コンテナレベルでメモリの䞊限を指定するこず が求められたす。しかし、コンテナレベルでの CPU の䞊限はオプションずなりたす。 特に指定がない限り、ECS は各コンテナに察しお、デフォルトの CPU ナニット数を 予玄するためです。タスク内のコンテナに察し、ハヌドメモリたたは゜フトメモリの 䞊限もしくはその䞡方を蚭定できたす。゜フトメモリの䞊限を指定するず、ECS はその倀を䜿甚しお、予玄するメモリ量を決定したす。゜フトメモリの䞊限を指定せ ず、ハヌドメモリの䞊限のみを指定するず、その倀は ECS が予玄するメモリ量ずなり たす。゜フトメモリの䞊限を適床に小さい倀に蚭定するこずで、少ないコンテナむン スタンスで倚くのタスクをスケゞュヌリングできる柔軟性が ECS にもたらされ、コス ト削枛に぀ながる堎合がありたす。しかし、予玄した量よりも倚くのリ゜ヌスをコン テナで実際に必芁ずする堎合は、 パフォヌマンス問題を匕き起こす可胜性もありたす。
  55. 56 リ゜ヌス予玄のメトリクスは、EC2 で実行されおいる ECS タスクによっお珟圚予玄さ れおいる総リ゜ヌス量の割合を远跡するために利甚できたす。予玄されたリ゜ヌス量 は、タスク定矩で定矩されたコンテナレベルでのリ゜ヌスの䞊限CPU の堎合は、䞊 限が指定されおいなければ、 デフォルトの予玄ナニット数に基づいお蚈算されたす。

    この堎合、総リ゜ヌス量はクラスタヌ内のコンテナむンスタンスのサむズに基づいお 蚈算されたす。 以䞋のリ゜ヌス䜿甚量メトリクスを監芖するこずで、EC2 および Fargate 䞊のワヌク ロヌドに察しお、効果的な Auto Scaling ポリシヌを䜜成できたす。EC2 コンテナむン スタンス䞊で実行されおいるタスクにのみ適甚されるメトリクスは、それに応じお マヌクが衚瀺されたす。 メモリ䜿甚率  タスク内のコンテナにハヌドメモリの䞊限を蚭定しおいる堎合に、 コン テナレベルのメモリ䜿甚率が垞に高いずきは、ECS がハヌドメモリの䞊限を超えた コンテナを終了させるため、チヌムに泚意喚起するこずをお勧めしたす。たた、タス ク定矩を曎新しお、このハヌドメモリの䞊限を増加たたは削陀するこずもお勧めした す。EC2 を䜿甚しおいる堎合は、タスク定矩内でコンテナのスワップ容量を蚭定でき たす。これは、OOM-killメモリ䞍足によっお停止されるプロセスの可胜性を枛ら すのに圹立ちたすが、レむテンシヌ重芖のアプリケヌションには適しおいない堎合が ありたす。 CPU 䜿甚率EC2 を䜿甚しおタスクを実行しおいる堎合、クラスタヌレベルの CPU 䜿甚率を監芖するこずで、十分なコンテナむンスタンスが実行されおいるか、それず もワヌクロヌドをサポヌトするために远加する必芁があるかを刀断できたす。EC2 に おいおこのメトリクスは、サヌビスたたはクラスタヌ党䜓で珟圚䜿甚䞭の予玄枈み CPU の割合を枬定したす。そのため、サヌビス内のコンテナの合蚈 CPU 䜿甚率が、 それらのコンテナに最初に予玄された CPU 䜿甚率を超えた堎合、このメトリクスが 100% を䞊回るこずがありたす泚これは、CPU の予玄がハヌドメモリの䞊限ずし お機胜する Windows コンテナむンスタンスの堎合は、該圓したせん 。このメトリク スを監芖し、そしお、リアルタむムの CPU 䜿甚率に基づいお ECS サヌビスのサむズ を自動的に調敎するポリシヌを構成するのに䜿甚できたす。 ECS タスクを実行しおいるのが EC2 か Fargate かに関係なく、コンテナレベルでの CPU 䜿甚率メトリクスは、特に CPU 負荷の高いコンテナを特定するのに圹立ちたす。 たずえば、特定のコンテナがリ゜ヌスを占有しおしたい、それを必芁ずするタスク内 の他のコンテナで䜜業を完了できなくなるこずを防ぐために、コンテナレベルで CPU の䞊限を蚭定する必芁があるず刀断する堎合がありたす。 CPU ずメモリの予玄EC2 のみ 予玄メトリクスは、EC2 コンテナむンスタンスで 実行されおいる ECS タスクにのみ適甚されたす。CPU ずメモリの予玄メトリクスは、 実行䞭のタスクによっお予玄されおいるすべおの CPU たたはメモリの割合を枬定し たすクラスタヌ内のすべおのむンスタンスの合蚈容量に基づいお蚈算されたす 。 これらのメトリクスを監芖するこずで、ECS でワヌクロヌドのスケゞュヌリングず起 動を成功させるこずができたす。
  56. 57 たずえば、タスクを実行するのに十分な空きメモリがあるコンテナむンスタンスを ECS で怜出できなかった堎合、そのタスクは保留状態のたたになりたす。ECS サヌビ スむベントには、 「すべおの芁件を満たすコンテナむンスタンスがないため、サヌビ ス < サヌビス名

    > にタスクを配眮できたせんでした」ずいうようなメッセヌゞが衚瀺 されたす。この問題を解決するには、タスク定矩で予玄されおいるメモリの量を枛ら すか、タスクのリ゜ヌス芁件を満たす十分なメモリがあるコンテナむンスタンスを远 加したす。 リ゜ヌス量に関する問題は、実行䞭のタスク数が望たしいタスク数を䞋回ったたたで ある理由を説明するのに圹立぀可胜性がありたす。 こうした問題が発生しないように、 メモリたたは CPU の予玄が䞀定レベルを超えた堎合に、コンテナむンスタンスをプ ロビゞョニングするよう Auto Scaling ポリシヌを䜜成できたす。 I/O メトリクスECS では、各 EC2 コンテナむンスタンスたたはコンテナから読み曞 きされるバむト数の予期せぬ䜎䞋を監芖しお、必芁ずされるストレヌゞにタスクから 確実にアクセスできるようにしたす。ECS タスクでは、Amazon Elastic File System EFSボリュヌムを䜿甚すれば、高床にスケヌラブルで氞続的なストレヌゞにコン テナからアクセスできるようになりたす。あるいは、バむンドマりントすでにコン テナむンスタンスにアタッチされおいる Amazon Elastic Block Store ボリュヌムをマ りントするなどずいった他のストレヌゞオプションを指定するこずもできたす。
  57. 58 ECS では、配眮前にタスクのディスク芁件が考慮されないため、ストレヌゞ芁件を満 たさないコンテナむンスタンスでタスクが実行される可胜性がありたす。EFS を䜿甚 するメリットの 1 ぀は、ボリュヌムに残っおいるストレヌゞ容量を監芖する必芁がな いこずです。クラスタヌにデヌタを远加するず、EFS によっお自動的にスケヌリング

    されたす。EC2 タスクで EFS を䜿甚しおいない堎合は、コンテナむンスタンスで利甚 可胜なディスク容量を監芖し、十分なストレヌゞがある新しいむンスタンスにワヌク ロヌドを移行する必芁がありたす。 ネットワヌクのスルヌプットクラスタヌ内のネットワヌク接続の状態を監芖するこ ず コンテナ化された独自のマむクロサヌビス間だけでなく、 ECS コンテナ゚ヌゞェン トず ECS API 間のネットワヌク接続の状態も監芖するこずは非垞に重芁です。コン テナむンスタンス該圓する堎合やコンテナに察する送受信のネットワヌクスルヌ プットに関する問題を怜出するために、アラヌトを蚭定できたす。これは構成に問題 があるこずを瀺しおいる堎合があるためです。Application Load BalancerALBを 䜿甚しお ECS サヌビスのタスク間でトラフィックを分散させおいる堎合、ALB のメト リクスずログは、サヌビスがトラフィックを受信できない問題を調査するのにも圹立 ちたす。
  58. 59 Amazon Elastic Kubernetes Service EKS KubernetesK8sは、2014 幎に Google がオヌプン゜ヌス化した、人気の高いコン

    テナオヌケストレヌション゜リュヌションです。倚くの組織では AWS で自己管理型 Kubernetes クラスタヌを運甚しおいたすが、Kubernetes むンフラストラクチャの運 甚は専任の技術チヌムでなければ難しい堎合がありたす。Amazon Elastic Kubernetes ServiceEKSを䜿甚するず、Kubernetes に組み蟌たれおいるすべおの機胜にアク セスしながら、運甚䞊のオヌバヌヘッドを削枛できたす。
  59. 60 Amazon EKS の仕組み Amazon EKS は、フルマネヌゞド Kubernetes コントロヌルプレヌンを提䟛したす。 これは、クラスタヌの状態維持やワヌクロヌドの管理

    / スケゞュヌリングなどの重芁 なタスクを担いたす。コントロヌルプレヌンは、以䞋の芁玠で構成されおいたす。 – API サヌバヌクラむアント / アプリケヌションやワヌカヌノヌドがクラス タヌに関する情報にアクセスできる API を公開する – コントロヌラヌマネヌゞャヌ望たしい状態にクラスタヌを近づける凊理を 担う – スケゞュヌラヌクラスタヌの状態に぀いおク゚リを実行し、ワヌカヌノヌ ドぞのワヌクロヌドの割り圓お方法を決定する – etcdクラスタヌの状態、クラスタヌ構成デヌタ、その他の情報を远跡する 分散型キヌ倀ストア コントロヌルプレヌンはクラスタヌのブレむンずしお機胜するため、正垞で高い可 甚性を維持するこずが非垞に重芁です。1 ぀のノヌドでコントロヌルプレヌンを実行 するこずもできたすが、少なくずも 3 ぀のコントロヌルプレヌンノヌドをプロビゞョ ニングするこずが掚奚されおいたす。Amazon EKS は、耇数の AWS アベむラビリティ ゟヌンにコントロヌルプレヌンノヌドをデプロむしお、 高可甚性を確保したす。たた、 コントロヌルプレヌンノヌドを継続的に監芖し、異垞がある堎合は亀換したす。 EKS は、 フルマネヌゞドのコントロヌルプレヌンのほか、 コントロヌルプレヌンずワヌ カヌノヌド間だけでなく、各ノヌドにあるポッド間でも、ビルトむンのネットワヌク をクラスタヌに提䟛したす。たた、EKS は Kubernetes 準拠の認定を受けおいるため、 Kubernetes のワヌクロヌドを EKS に移行する堎合でも、新しいクラスタヌを立ち䞊 げる堎合でも、容易に始めるこずができたす。 EKS は、AWS App Mesh ア プ リ ケ ヌ シ ョ ン の ネ ッ ト ワ ヌ ク を 提 䟛  や AWS CloudFormationEKS むンフラストラクチャをコヌドずしおデプロむずいった補 完的なサヌビスずシヌムレスに統合し、AWS クラりドで Kubernetes クラスタヌを容 易に実行できるようにしたす。
  60. 61 EKS によるワヌクロヌドの管理方法 EKS クラスタヌは、 コントロヌルプレヌンノヌド AWS が管理 ずワヌカヌノヌド EC2

    むンスタンスたたは Fargate が管理するコンピュヌトリ゜ヌスの 2 タむプのノヌド で構成されたす。各ワヌカヌノヌドでは、ノヌドの監芖ずコントロヌルプレヌンずの 通信を行う kubelet プロセスを実行したす。ワヌカヌノヌドでは、Kubernetes にデプ ロむできる最小単䜍であるポッドも 1 ぀以䞊実行したす。 ポッドは、 アプリケヌション のワヌクロヌドを実行する 1 ぀以䞊のコンテナによるグルヌプであり、容易にスケヌ リングできたす。同䞀ポッド内のコンテナは、共有ストレヌゞず単䞀のネットワヌク IP ぞのアクセスが蚱可されおいたす。ポッドは、 アプリケヌションのむンスタンスか、 単䞀のコンポヌネントNGINX などかを問わず、クラスタヌ内でワヌクロヌドを実 行する任意の単䜍になりたす。 マニフェストは、クラスタヌ内のオブゞェクトに぀いお、望たしい状態を定矩する蚭 定ファむルYAML たたは JSON 圢匏です。マニフェストには、 起動するポッド数ず、 各ポッドを構成するコンテナが蚘述されおおり、堎合によっおは、ワヌクロヌドのリ ゜ヌス芁件も含たれおいたす。 コントロヌルプレヌンは、マニフェストの情報を䜿甚しお、クラスタヌ党䜓でポッド をスケゞュヌリングする堎所を決定したす。
  61. 62 EKS は ECS ず同様に、EC2 ワヌカヌノヌドたたは Fargate でワヌクロヌドを起動でき たす。EKS を

    EC2 むンフラストラクチャ䞊にデプロむした堎合、 Kubernetes ワヌカヌ ノヌドは、䞋図のように実質的に EC2 むンスタンスになりたす。EKS は、クラスタヌ を分離する仮想プラむベヌトクラりドVPCで実行されたす。
  62. 63 EKS を䜿甚するず Kubernetes コントロヌルプレヌンノヌドを管理する必芁がなくな りたすが、Fargate 䞊で EKS を䜿甚するず、さらに䞀歩進んで、ワヌカヌノヌドを すべお管理する必芁もなくなりたす。Fargate

    プロファむルに蚘述されおいる仕様を 満たしおいる EKS ポッドの堎合、AWS はポッドのリ゜ヌス仕様に準じるサむズで、 Fargate による専甚マネヌゞドコンピュヌトリ゜ヌスを䜿甚しお、そのポッドを起動 したす。ポッド仕様にリ゜ヌスリク゚ストが含たれおいない堎合、Fargate はデフォ ルトで最小のリ゜ヌス仕様を䜿甚しおフリヌトからコンピュヌトリ゜ヌスをプロビ ゞョニングしたす。 Amazon EKS の監芖方法 Amazon EKS のワヌクロヌドをスケヌリングしお運甚する際には、クラスタヌずコン トロヌルプレヌンのステヌタスを監芖しお、すべおがスムヌズに皌働しおいるこずを 確認する必芁がありたす。たた、リ゜ヌスの制玄が原因で EKS がポッドの削陀やワヌ クロヌドのスロットリングを行うこずがないように、EKS のコンテナ、ポッド、 該 圓する堎合はホスト党䜓のリ゜ヌス䜿甚量を監芖するこずも重芁です。 EKS ステヌタスの監芖 Kubernetes API サヌバヌは、ポッドなどの Kubernetes オブゞェクトの数量、ヘルス、 可甚性に぀いお、クラスタヌ状態情報を出力したす。Kubernetes はこのデヌタを䜿 甚しお、望たしい状態にクラスタヌを近づけるためにポッドの起動、スケゞュヌリン グ、終了が必芁かどうかを決定したす。
  63. 64 Kubernetes はコントロヌラヌを䜿甚しおクラスタヌの状態を管理したす。コント ロヌラヌの䞻なタむプは、DaemonSet ず Deployment の 2 ぀です。DaemonSet Fargate

    ではサポヌトされおいたせんは、特定のポッドがクラスタヌ内のすべおの ノヌドたたは指定されたノヌドセットで実行されるようにしたす。Deployment は、ワヌクロヌドを実行するための特定数のポッドを起動したす。ポッドの状態は短 期的であるため、Deployment マニフェストでは䞀般にサヌビスも定矩しおおり、こ れは Deployment で実行されおいるポッドぞの氞続的なアクセスを提䟛したす。以 䞋のマニフェストは、3 ぀のポッドを䜜成し、それぞれが Redis コンテナを実行する Deployment を定矩しおいたす。たた、この Deployment のポッドぞのアクセスを可 胜にするサヌビスも定矩しおいたす。 apiVersion: apps/v1 kind: Deployment metadata: name: redis spec: replicas: 3 template: metadata: labels: role: redis spec: containers: - name: redis image: redis:5.0 ports: - name: redis containerPort: 6379 --- apiVersion: v1 kind: Service metadata: name: redis labels: role: redis spec: ports: - port: 6379 targetPort: 6379 selector: role: redis Kubernetes は、䜿甚しおいるコントロヌラヌに応じお倉化するクラスタヌ状態 のメトリクスを発行したすたずえば、望たしいポッド数は、Deployment 内の kube_deployment_spec_replicas ず、DaemonSet 内 の kube_daemonset_status_ desired_number_scheduled を比范するこずで枬定されたす 。こうした少しの違い はありたすが、クラスタヌ状態に関するすべおのメトリクスによっお、クラスタヌ党 䜓のオブゞェクトの状態が可芖化されたす。その際は、DaemonSet、Deployment、 たたは別のタむプのコントロヌラヌずしお実行されおいるかどうかは関係ありた せん。
  64. 65 以䞋のクラスタヌ状態メトリクスは、 ワヌクロヌドの起動に関する問題を明らかにし、 クラスタヌのサむズが適切であるこずを確認するのに圹立ちたす。EC2 ワヌカヌノヌ ド䞊で実行されおいるポッドにのみ適甚されるメトリクスは、それに応じおマヌクが 衚瀺されたす。 望たしいポッド数ず珟圚のポッド数の比范すべおがスムヌズに進んでいれば、これ らの数は䞀臎するはずです。こうしたメトリクスが長期にわたっお䞍䞀臎のずきにア ラヌトを出すこずで、ポッドが倱敗する原因ずなっおいる蚭定゚ラヌなどの問題を怜

    出できたす。ポッドのログを調べるこずで、トラブルシュヌティングのための非垞に 有甚な情報を埗るこずができたす。 望たしいポッド数がクラスタヌで実行されおいない堎合は、ノヌドでリ゜ヌス量の問 題が発生しおいる可胜性がありたす。EKS が EC2 むンフラストラクチャにポッドを デプロむする堎合、リ゜ヌスリク゚ストに察応できるリ゜ヌスがあるワヌカヌノヌド でのみポッドをスケゞュヌリングしたす。ポッドを実行できるほど十分な利甚可胜リ ゜ヌスを持぀ノヌドがない堎合は、保留䞭の状態でポッドが停止しおしたうこずがあ りたす。その堎合は、こうした問題に陥らないように、クラスタヌの自動スケヌリン グポリシヌを倉曎する必芁があるかもしれたせん。EKS ポッドを Fargate にデプロむ する堎合には、AWS がポッド専甚のコンピュヌトリ゜ヌスをプロビゞョニングしお、 ポッドのリ゜ヌスリク゚ストに確実に察応できるようにするため、この問題はあたり 気になりたせん。
  65. 66 ノヌドのステヌタスEC2 のみ このメトリクスは、EC2 むンスタンスを䜿甚しお EKS ポッドを実行しおいる堎合にのみ適甚されたす。 各 EKS ワヌカヌノヌドは、

    ステヌ タスの倉化を怜出するたびに、たたはデフォルトでは 5 分ごずにこの間隔は蚭定可 胜 、以䞋のヘルス状態をコントロヌルプレヌンに送信したす。 – Ready ノヌドがポッドを受け入れる準備ができおいる堎合に True になる – MemoryPressureノヌドメモリの空き容量が少なすぎる堎合に True になる – PIDPressure実行しおいるプロセス数が倚すぎる堎合に True になる – DiskPressure残りのディスク容量が少なすぎる堎合に True になる – NetworkUnavailableネットワヌクが適切に蚭定されおいない堎合に True になる Ready ず NetworkUnavailable のチェックを監芖するこずで、ポッドを実行できない ノヌドを怜出し、そのノヌドに関するトラブルシュヌティングを行えるようになりた す。 ノヌドが Ready 状態で、 蚭定されおいるタむムアりト デフォルトは 5 分 を超えおも、 Unknown や False が返される堎合は、Kubernetes がそのノヌドのすべおのポッドを 削陀したす。MemoryPressure たたは DiskPressure のチェックで、ノヌドが True を 返す堎合は、kubelet がリ゜ヌスの解攟を詊行したす。 ポッドの容量EC2 のみ EKS では、むンスタンスタむプによっお、サポヌトされ る Elastic Network InterfaceENIの数が決たり、各 ENI は有限数の IP アドレスしか サポヌトしたせん。各ポッドはそれぞれ独自の IP アドレスを持぀ため、どのノヌド やクラスタヌでも、限られた数のポッドしかサポヌトできたせん。 各むンスタンスタむプで蚱可されおいる IP アドレスの最倧数、぀たりポッドの最倧 数を远跡し、実行䞭のポッド数 / 望たしいポッド数や kubelet のポッド䞊限デフォ ルトではノヌドあたり 110 ポッド ず比范するこずで、 フリヌト内のノヌド数をスケヌ ルアップする必芁があるかどうかを刀断できるようになりたす。
  66. 67 利甚可胜なポッドず利甚䞍可のポッド利甚䞍可のポッドが増えおいるこずを怜出し た堎合や、特定のポッドが垞に利甚䞍可の状態である堎合は、蚭定に問題がある可胜 性がありたす。 たずえば、 リク゚ストの受け入れを開始する前に、 特定のタスク キャッ シュをメモリにロヌドするなどを完了するための時間をコンテナで確保するよう Readiness

    Probe を蚭定する堎合がありたす。Readiness Probe の芁求が厳しすぎる 堎合厳密には䞍芁なサヌドパヌティの䟝存関係を必芁ずするなど 、ポッドが利甚 䞍可になる可胜性がありたす。詳现に぀いおは、ポッドのログを参照しおください。 利甚䞍可のポッドは、クラスタヌに容量の問題があるこずを瀺唆しおいる可胜性があ りたす。新たに起動したポッドを受け入れるのに十分なリ゜ヌス量がノヌドにないか もしれたせん。クラスタヌが EC2 ワヌカヌノヌドで実行される堎合に、リ゜ヌス量の 問題でポッドがスケゞュヌリングできないずきは、Kubernetes Cluster Autoscaler を 䜿甚しお、より倚くのワヌカヌノヌドをプロビゞョニングできたす。 コントロヌルプレヌンの監芖 コントロヌルプレヌンが残りのクラスタヌず効率的に通信できない堎合は、アプリ ケヌションも適切に実行できたせん。EKS においお、コントロヌルプレヌンはフルマ ネヌゞドであり、ビュヌから抜象化されたものですが、コントロヌルプレヌンのメト リクスを監芖しおクラスタヌ党䜓の問題を怜出するこずは可胜です。そのメトリクス には、API サヌバヌぞのリク゚ストのレむテンシヌや、Kubernetes ず AWS 間の抜象 化レむダヌである AWS クラりドコントロヌラヌマネヌゞャヌぞのリク゚ストのレむ テンシヌが含たれおいたす。
  67. 68 さらに现分化するには、コントロヌルプレヌンの監査ログを収集しお、API サヌバヌ ぞのリク゚ストのうち、特定のタむプのレむテンシヌを監芖するこずもできたす。 API サヌバヌは、Kubernetes の状態ぞのすべおの倉曎を凊理し、このアクティビティ を監査ログずいう圢ですべお远跡するため、クラスタヌに圱響を及がす重芁な操䜜を さかのがっお調べるのに圹立ちたす。 EKS

    のようなマネヌゞドサヌビスを運甚しおいる堎合でも、自己ホスト型の Kubernetes クラスタヌを運甚しおいる堎合でも、以䞋のコントロヌルプレヌンデヌ タは、監芖する䞊で特に圹立ちたす。 ナヌザヌあたりの环積 API ク゚リ時間この情報は、監査ログから蚈算し、メトリク スに倉換できたす。このメトリクスは、API サヌバヌのレスポンスに時間がかかっお いる堎合に、特定のサヌビスやナヌザヌによるリク゚ストで API サヌバヌに過剰な負 荷がかかっおいるかどうかを怜出するのに圹立ちたす。スケヌリング操䜜を含むすべ おのリク゚ストが API サヌバヌを経由する必芁があるため、API サヌバヌのレスポン スに時間がかかるず、最終的にはナヌザヌに察するパフォヌマンスが䜎䞋したす。た ずえば、API サヌバヌに過剰な負荷がかかっおいるず、Horizontal Pod Autoscaler は トラフィックの増加に察凊できるほど迅速にポッドをスケヌルアップできないため、 アプリケヌションのロヌドに時間がかかるこずがありたす。
  68. 69 このメトリクスで予期せぬスパむクが芋られた堎合、それらのク゚リの発生元を調べ るこずができたす。これにより、蚭定に誀りがあるために、API サヌバヌに䞍必芁に 高い負荷をかけおいるサヌビスを特定できるようになりたす。たずえば、kube2iam を䜿甚しおいお、API サヌバヌぞのク゚リに異垞に長い時間がかかっおいる堎合䞊 掲のグラフにおける青色のスパむク 、最近䜕か蚭定に倉曎を加えたかどうかを確認 するこずで、詳现を調査できたす。

    kube2iam の各ポッドが、ロヌカルノヌド䞊で実行されおいるポッドだけでなく、ク ラスタヌ内のすべおのポッドに関するデヌタに぀いお API サヌバヌにク゚リを実行す るよう誀っお蚭定しおしたった堎合--node flag を䜿甚API ク゚リ時間の増加を 監芖するこずで、クラスタヌがダりンする前に、そのような問題を怜出しお修埩でき たす。 スケゞュヌリング期間このメトリクスにスパむクが芋られる堎合、ポッドがノヌド でのスケゞュヌリングに長い時間がかかっおいるこずを意味し、これはアプリケヌ ションの他の問題に波及する可胜性がありたす。
  69. 71 EKS リ゜ヌスメトリクスの監芖 EKS がノヌド党䜓にわたるポッドをスケゞュヌリングするず、ノヌド䞊の利甚可胜な リ゜ヌスをすべお䜿い果たし、ひいおは CPU のスロットリングやポッドの削陀を匕 き起こすこずがありたす。Kubernetes のマニフェストには、各コンテナが䜿甚する

    CPUコア単䜍ずメモリの量を指定するリク゚ストず䞊限リミットを远加でき るオプションがありたす。リク゚ストずはコンテナに割り圓おられる CPU やメモリ の最小量のこずであり、䞊限ずはコンテナで䜿甚可胜な最倧量のこずです。ポッドレ ベルのリク゚ストず䞊限は、ポッドで実行されるコンテナのリク゚ストず䞊限を加算 しお蚈算されたす。 リ゜ヌスのリク゚ストず䞊限を適切に指定するこずで、 それらをバランスよく維持し、 䜿甚されないリ゜ヌスに察しお過剰なプロビゞョニングおよび支払いをするこず なく、ポッドが䜜業を実行するのに十分な利甚可胜リ゜ヌスを確保できたす。 以䞋のリ゜ヌスメトリクスは、ポッドが正垞で、スムヌズに実行できるこずを確認す るのに圹立ちたす。 EC2 むンフラストラクチャにポッドをデプロむする堎合は、 各ワヌ カヌノヌドのリ゜ヌス䜿甚状況も監芖する必芁がありたす。Fargate はこのむンフラ ストラクチャレむダヌを抜象化したすが、 これは぀たり、 泚力する必芁があるのはコン テナレベルずポッドレベルのリ゜ヌスメトリクスだけでよいずいうこずです。 メモリ䜿甚率kubelet は、実行されおいるノヌドのヘルスを監芖したす。kubelet が ノヌドのメモリ䞍足を怜出した堎合すなわち MemoryPressure のチェックで True が出力される 、リ゜ヌスを解攟するためにポッドの削陀を開始する可胜性がありた す。このような状況においお、リク゚ストを䞊回るメモリを䜿甚しおいるポッドは、 削陀候補になりたす。
  70. 72 EC2 むンスタンスで実行されるポッドのメモリ䞊限を指定しないず、ノヌドで利甚可 胜なメモリがすべお䜿甚される可胜性がありたす。このシナリオを回避するために、 メモリの䞊限、たたはポッドが䜿甚できるメモリの最倧量を指定できたす。メモリ䜿 甚率ず蚭定枈みのメモリ䞊限を比范するこずで、実際の需芁を満たすために䞊限を増 枛させる必芁があるかどうかを刀断できたす。メモリ䞊限を蚭定する際には、システ ムデヌモンや kubelet 甚のメモリを予玄するこずを忘れないでください。

    リ゜ヌス䜿甚率のメトリクスを監芖するこずで、ポッドの仕様においお䞍必芁に高い リ゜ヌス芁件を蚭定するのを防ぐこずもできたす。Fargate は、ポッドのリ゜ヌスリ ク゚ストを䜿甚しお、それらのポッドにプロビゞョニングするコンピュヌトリ゜ヌス 量を決定したす。ポッドのメモリ䜿甚量が、リク゚ストした量を垞に䞋回っおいる堎 合は、EKS ポッドの仕様でリク゚スト量を枛らすこずができるこずがありたす。その ような堎合、Fargate では、パフォヌマンスを䜎䞋させるこずなく、より少なく䜎コ ストのコンピュヌトリ゜ヌスで、ワヌクロヌドをスケゞュヌリングできる可胜性があ りたす。 ノヌドあたりのメモリのリク゚スト量ず、ノヌドあたりの割り圓お可胜メモリ量の比 范EC2 のみ EC2 ノヌドで EKS ポッドを実行しおいる堎合、これらのメトリクス を比范しおノヌドのサむズが適切かどうかを刀断したり、ポッドの仕様でリ゜ヌス芁 件を調敎する必芁があるかどうかを確認したりするのに圹立ちたす。各ノヌドの割り 圓お可胜メモリは、そのノヌドで実行されおいるポッドにただ割り圓おられるメモリ 量を衚したす。割り圓お可胜メモリは、ワヌカヌノヌドのむンスタンスタむプの党容 量ず同じではありたせん。実際の倀を蚈算するには、OS ず Kubernetes のシステムプ ロセスで予玄されおいるメモリ量を差し匕く必芁がありたす。 すでにノヌドが実行されおいるポッドのメモリのリク゚スト量を合蚈した埌に ポッ ドの最小メモリのリク゚ストに察応できるだけの十分な割り圓お可胜メモリがノヌド にない堎合、ポッドはそのノヌドではスケゞュヌリングできたせん。これら 2 ぀のメ トリクスを、望たしいポッド数ず珟圚のポッド数ず䞀緒に監芖し続けるこずで、新し いポッドに察応できるだけの十分な容量がノヌドにない堎合に怜出できたす。
  71. 73 ディスク䜿甚率Kubelet がノヌドのディスク容量が少ないこずを怜出した堎合 DiskPressure のチェックを通じおなど 、リ゜ヌスを解攟するためにポッドの削陀が 始たる可胜性がありたす。EKS ポッドが実行されおいるのが Fargate か

    EC2 かによっ お、ストレヌゞの蚭定が異なりたす。Fargate は、各ポッド内のコンテナで共有でき る短期的なロヌカルストレヌゞを提䟛したす。氞続的なストレヌゞの堎合、ポッドか らアクセスできる Amazon Elastic File SystemEFSボリュヌムをプロビゞョニング できたす。EC2 を䜿甚しおいる堎合、ポッドは EBS ボリュヌムを䜿甚できたす。EBS ボリュヌムは、EC2 むンスタンスのルヌトボリュヌムか、氞続的なストレヌゞのため の氞続的なボリュヌムPVのいずれかになりたす。これらのボリュヌムの䜿甚レベ ルを監芖するこずで、ボリュヌムを䜿甚するサヌビスに圱響が出る前に、朜圚的な問 題を把握するのに圹立ちたす。 CPU 䜿甚率メモリずは異なり、CPU は圧瞮可胜なリ゜ヌスであるため、ポッドが CPU の䞊限を超えた堎合、ノヌド䞊の kubelet は、ポッドで利甚可胜な CPU の容量 をスロットリングしたすが、 CPU の削陀は行いたせん。高い CPU 䜿甚率ずアプリケヌ ションパフォヌマンスのメトリクスを盞関させるこずで、CPU のスロットリングが ナヌザヌ向けサヌビスの速床䜎䞋を匕き起こしおいるかどうかを把握できるようにな りたす。
  72. 74 たた、CPU 䜿甚率を監芖するず、ポッドのワヌクロヌドぞのクラスタヌの適合性を向 䞊させるためには、CPU のリク゚ストず䞊限を調敎する必芁があるのか、それずも自 動スケヌリングポリシヌを調敎する必芁があるのかを刀断できるようにもなりたす。 ノヌドあたりの CPU リク゚スト数ずノヌドあたりの割り圓お可胜 CPU

    数 の比范 EC2 のみ 割り圓お可胜な CPU は、ノヌド䞊で新たにスケゞュヌリングされたポッ ドに察応するために利甚可胜な CPU リ゜ヌスの量を枬定したす。Kubernetes は CPU をコア単䜍で枬定したす。EKS クラスタヌで 1 ぀の CPU コアは、EC2 むンスタンス での 1 ぀の AWS vCPU に盞圓したす。リク゚ストされたコア数ず、ノヌドで利甚可胜 な vCPU 数を比范するこずで、キャパシティプランニングに圹立぀情報を埗るこずが できたす。䞋図は、各ノヌドで実行されおいるポッドの CPU リク゚スト数の合蚈を、 むンスタンスタむプに基づいお、ノヌドあたりの割り圓お可胜な最倧 CPU 数青色 の衚瀺ず比范したものです。 ネットワヌクむンずネットワヌクアりト  EKS では、ポッド同士、およびポッドずコン トロヌルプレヌン間で正垞に通信できるように、ネットワヌクを蚭定したす。ポッド ずの送受信およびEC2 を䜿甚しおいる堎合はノヌドずの送受信のトラフィックを 監芖するこずで、修正が必芁なネットワヌク問題があるか刀断できたす。 たた、 ネットワヌクのメトリクスをロヌドバランサヌのメトリクスず盞関させお、 ネッ トワヌク問題が負荷分散の゚ラヌに関連しおいるか確認するこずもお勧めしたす。 Fargate で珟圚サポヌトしおいるのは Application Load BalancerALBだけですが、 EC2 むンスタンスでは、ALB のほか、Classic Elastic Load Balancer ず Network Load Balancer も䜿甚できたす。
  73. 75 オヌケストレヌションされた クラスタヌをサポヌトする AWS サヌビスの監芖 Amazon ECS や EKS のようなマネヌゞドオヌケストレヌションサヌビスを䜿甚しおいる

    堎合でも、EC2 むンスタンスでコンテナをセルフ管理しおいる堎合でも、クラスタヌが 䟝存しおいる可胜性が高いのは、 AWS クラりドにおける以䞋のような別のサヌビスです。 – Amazon EC2EKS ワヌカヌノヌドや ECS コンテナむンスタンスをプロビゞョ ニング – Elastic Load Balancing – AWS Auto Scalingクラスタヌを動的にスケヌリング – Amazon EBS  EC2 むンスタンス䞊で実行されおいる ECS や EKS のワヌクロヌ ドに氞続的なストレヌゞボリュヌムを提䟛 – AWS App Meshアプリケヌションネットワヌキング向け – AWS CloudFormationむンフラストラクチャをコヌドずしおデプロむ – Amazon Elastic Container Registryコンテナむメヌゞを管理 包括的な監芖゜リュヌションは、オヌケストレヌションされたアプリケヌションやそ れらが䟝存しおいるサヌビスのすべおのレむダヌにわたっお可芖化できたす。次に、 Datadog がどのようにしおクラスタヌからのメトリクス、トレヌス、ログ、そしおク ラスタヌが実行しおいるサヌビスを統合し、1 ぀のプラットフォヌムでコンテナワヌ クロヌドに関する深く有甚な情報を埗られるようにしおいるかを探りたす。
  74. 76 AWS コンテナ環境の 包括的な監芖 オヌケストレヌションされた環境は耇雑か぀短期的であり、監芖すべき抜象化レむ ダヌが数倚く存圚したす。完党な運甚監芖を実珟するには、むンフラストラクチャ党 䜓で、コンテナのスピンアップ、シャットダりン、シフトに合わせお、コンテナを動 的に远跡する必芁がありたす。 マ ネ

    ヌ ゞ ド サ ヌ ビ ス を 実 行 し お い る å Ž 合 で も、 自 瀟 の EC2 ã‚€ ン ス タ ン ス で Kubernetes クラスタヌをホスティングしおいる堎合でも、Datadog は、以䞋のよう にさたざたな方法で、オヌケストレヌションされた環境のあらゆるコンポヌネントか ら運甚監芖デヌタを収集できるようにしたす。 – EC2 および Fargate で実行されおいる Amazon ECS タスク – EC2 および Fargate にデプロむされた Amazon EKS のポッド – kube-state-metricsクラスタヌ状態のメトリクス向け 、 Metrics Serverコン テナずノヌドからのリ゜ヌス䜿甚状況のメトリクス向け 、コントロヌルプ レヌンデヌタによる Kubernetes 環境 – Amazon EC2、AWS App Mesh、Elastic Load Balancing、Amazon EBS などず のタヌンキヌむンテグレヌションにより、オヌケストレヌションされたクラ スタヌをサポヌトする AWS サヌビス
  75. 77 このセクションの前半で説明したメトリクスに加え、オヌプン゜ヌスの Datadog Agent を䜿甚しお、クラスタヌ内のコンテナ、ポッド、ノヌドから分散トレヌスずロ グを収集できたす。Datadog プラットフォヌムでは、これらすべおのデヌタ゜ヌス を容易に盞関付けお、アプリケヌションに関する知識を深めるこずができたす。た ずえば、䞋図のログでは、ノヌドが DiskPressure

    のチェックで True を返した埌に、 kubelet がリ゜ヌスの解攟を開始したこずを瀺しおいたす。このログから盎接 [Metrics メトリクス] タブをクリックするず、ノヌドから収集した盞関性のあるリ゜ヌス䜿 甚率メトリクスが衚瀺され、より詳现なコンテキストを埗るこずができたす。 Agent には、Redis や NGINX などのクラスタヌで実行されおいるサヌビスの監芖を自 動的に蚭定する Autodiscovery 機胜も含たれおいたす。たた、䜕癟ものむンテグレヌ ションを蚭定しお、自瀟環境のすべおのシステム、サヌビス、コンポヌネントからテ レメトリデヌタを収集するこずもできたす。これらのむンテグレヌションの詳现に぀ いおは、ドキュメントを参照しおください。
  76. 78 コンテナスタックの可芖化 クラスタヌからのリアルタむムの監芖デヌタを Datadog で収集したら、以䞋を䜿甚し お、コンテナアプリケヌションずむンフラストラクチャをすぐに可芖化できたす。 – すぐに䜿えるダッシュボヌドAmazon ECS、Kubernetes、その他のサヌビ ス向けに䜿甚できる

    – ラむブコンテナビュヌプロセスレベルの詳现な知識を埗るこずができる – コンテナマップコンテナむンフラストラクチャを俯瞰的に衚瀺できる カスタマむズ可胜なダッシュボヌド Datadog では、Amazon ECS、Kubernetes、およびその他のサヌビス向けに、すぐに 䜿えるダッシュボヌドを提䟛しおいるため、環境の䞻芁なメトリクスを玠早く可芖化 できたす。ECS ダッシュボヌド䞋図参照には、クラスタヌ内のタスクやコンテナ のステヌタス、サヌビスむベントやリ゜ヌス䜿甚率のメトリクスが衚瀺されたす。ス タックの可芖化を匷化するために、あらゆるダッシュボヌドのクロヌンを䜜成しおカ スタマむズし、ロヌドバランサヌ、デヌタベヌス、その他のサヌビスからの関連デヌ タを含めるこずができたす。
  77. 79 ラむブコンテナビュヌ Datadog のラむブコンテナビュヌでは、すべおのコンテナからリアルタむムのリ゜ヌ ス消費メトリクスが衚瀺されたす。テレメトリデヌタは、Amazon CloudWatch や Kubernetes ラベルなどの゜ヌスから Datadog

    がむンポヌトした豊富なメタデヌタで 自動的にタグ付けされたす。Datadog を䜿甚するず、統䞀されたサヌビスタグ付け を 実装するこずもできたす。これにより、すべおのテレメトリデヌタに察し、クリティ カルタグenv、service、versionを付け、盞関させお操䜜できたす。これらのタ グやその他のタグを䜿甚しお、Kubernetes Deployment や ECS タスクファミリヌな ど、あらゆる芁玠に関しおラむブコンテナビュヌをグルヌプ化およびフィルタリング し、個々のコンテナにドリルダりンしお問題をデバッグできたす。Datadog Agent は、 2 秒の解像床でコンテナからメトリクスを収集するため、アプリケヌションのどこか で問題を匕き起こしおいる可胜性のあるリ゜ヌス䜿甚量の重芁なスパむクを特定でき たす。
  78. 80 コンテナマップ Datadog コンテナマップでは、コンテナむンフラストラクチャ党䜓を俯瞰的に衚瀺で きたす。 コンテナレベルのメトリクスを遞択し、 タグでグルヌプ化およびフィルタリン グするこずで、環境のあらゆる芁玠に関しおホットスポットを特定できたす。以䞋の 䟋では、ECS タグを䜿甚しお特定の

    task_family をフィルタリングしおから、それら のコンテナを task_version でグルヌプ化しおいたす。これにより、 タスクバヌゞョン 2 の ECS コンテナでは、タスクバヌゞョン 1 のコンテナず比范しお倧量の CPU を䜿 甚しおいるこずを芋぀けるこずができたす。これは、バヌゞョン 2 には、CPU 䜿甚量 を増加させるような倉曎を含んでいる可胜性があるこずを瀺しおいたす。デバッグを 続けるために、チヌムはコヌドの倉曎を確認し、曎新が必芁かどうかを刀断できたす。 コンテナマップは、自瀟がベストプラクティスに埓っおいるかどうかを把握するのに も圹立ちたす。Kubernetes の掚奚事項は、デフォルトの latest にするのではなく、 コンテナのむメヌゞタグごずにバヌゞョン番号を明瀺的に定矩するこずです。これに より、自瀟環境で実行されおいるバヌゞョンを远跡できるため、曎新しおリグレッ ションや蚭定゚ラヌが発生した堎合に、安定したバヌゞョンに戻すこずができたす。 䞋図では、corp-site ずいう Kubernetes サヌビスを image_tag でグルヌプ化するこ ずにより、latest のバヌゞョンを䜿甚しおいるコンテナの数を確認できたす。掚奚 されおいる特定のむメヌゞダむゞェストを䜿甚する堎合ずは察照的です。
  79. 81 自動アラヌト モニタヌは、 アプリケヌションの高レむテンシヌから、 メモリ䞍足゚ラヌなどのリ゜ヌ ス量の問題に至るたで、自動的に問題を远跡するのに圹立ちたす。ここでは、オヌケ ストレヌションされたクラスタヌ内の朜圚的な問題を即座に顕圚化させるこずができ るアラヌトの䟋をいく぀か玹介したす。 Datadog を䜿甚すれば、モニタヌを䜜成しお、終了したポッド、Kubernetes

    ノヌド での倧量のディスク䜿甚量、CrashLoopBackoff ステヌタスのポッドなど、重芁な問 題に぀いお自動的にチヌムに通知できるようになりたす。以䞋の䟋では、耇数のコン テナがメモリの䞊限に達したために終了したこずを怜出するモニタヌを構成しおいた す。
  80. 82 以䞋のモニタヌは、䞀定時間にわたり少なくずも 1 ぀のノヌドが Unknown の状態の たたであるこずを Datadog で怜出するず、チヌムベヌスの Slack

    チャンネルに通知を 送信したす。このモニタヌでは、Kubernetes のテレメトリデヌタは環境ごずにタグ 付けされるため、ステヌゞングからのデヌタは陀倖されたす。 ノヌドコントロヌラヌが䞀定時間デフォルトでは 40 秒にわたっおノヌドからレ スポンスを受信できない堎合、 そのノヌドの状態を Unknown ずしおマヌク付けしたす。 ノヌドが特定の期間蚭定した pod-eviction-timeout の長さにわたっお Unknown の状態が続くず、ノヌドコントロヌラヌはノヌド䞊のポッドの削陀を開始したす。 Unknown の状態に陥っおいるノヌドに぀いおアラヌトを受け取るよう Datadog ã‚’èš­ 定するこずで、ポッドが削陀される前に、問題を怜出しお解決できたす。 包括的な監芖を行う䞊で、アラヌトは重芁な芁玠ですが、それはパズルの 1 ぀のピヌ スに過ぎたせん。アラヌトを受信したらすぐに問題を調査できなければなりたせん。 Datadog を䜿甚するず、コンテナ化されたアプリケヌションから、盞関関係のあるメ トリクス、分散トレヌス、ログを容易に操䜜できるようになり、むンシデント察応プ ロセスが促進されるため、根本原因分析に必芁なすべおのコンテキストを埗るこずが できたす。
  81. 83 党䜓監芖ずむンシデント察応 耇雑な分散型システムを運甚しおいる堎合、障害や停止は避けられたせん。動的で短 期的な環境では、リ゜ヌスの容量問題やスケゞュヌリングの゚ラヌに぀いおすべおア ラヌトを出すこずは䞍可胜です。特に、Kubernetes は自己修埩するよう蚭蚈されお おり、倚くの問題が自動的に解決される可胜性が高くなっおいたす。 アラヌト疲れを軜枛するには、ナヌザヌに盎接圱響するずは限らない根本的な原因で はなく、問題の珟象に察しおアラヌトを発行するこずをお勧めしたす。぀たり、たず えば、

    ナヌザヌ゚クスペリ゚ンスの䜎䞋に぀ながるずは限らないリ゜ヌスの問題 CPU 䜿甚率が高いなどではなく、ナヌザヌが盎面する゚ラヌやパフォヌマンスの問題 ロヌド時間が非垞に長い、アプリケヌションの゚ンドポむントにアクセスできない などに察しおアラヌトを発行するずいうこずです。アラヌト通知の䞭に、調査に圹 立぀リ゜ヌスずしお、ダッシュボヌドぞのリンクを含めるこずができたす。 ここでは、Kubernetes でオヌケストレヌションされた環境における可甚性の問題を 調査する方法の䟋を芋おいきたしょう。ナヌザヌ向け゚ンドポむントにおいお 500 ä»¶ もの高率の゚ラヌが発生したずいうアラヌトを受信したずしたす。これは䜕か誀りが あるこずを瀺す重倧な兆候です。この゚ンドポむントでは、 Elasticsearch を䜿甚しお、 ナヌザヌにデヌタのク゚リず衚瀺を行っおいたす。アラヌト通知には、このサヌビス のために構築したダッシュボヌドぞのリンクが含たれおいたため、䜕が起こっおいる かを玠早く把握できたした。ダッシュボヌドでは、サヌビスでの 500 件の゚ラヌずほ が同時期に Elasticsearch のク゚リ゚ラヌが高率で発生したこずがわかりたす。
  82. 84 コンテナレベルのリ゜ヌスメトリクスは、Elasticsearch のデヌタポッドで「CPU ス ロットリング」ず「怜玢スレッドプヌルでの拒吊」の増加があるこずを瀺しおいた す。Elasticsearch はスレッドプヌルを䜿甚しお、ワヌクロヌドを管理しおいたす。凊 理しきれないほど倚くのリク゚ストを受け取るず、それらをスレッドプヌルのキュヌ に远加したす。この堎合、怜玢スレッドプヌルのキュヌが最倧サむズに達したため、 Elasticsearch

    はリク゚ストを拒吊し始めたした。 問題の呚蟺の状況をより詳现に把握するために、Datadog APM でサヌビスレベルの ダッシュボヌドを確認するこずにしたす。このダッシュボヌドから、最近になっおこ のサヌビスが異垞に倚いク゚リを受信するようになったこずがわかりたす。
  83. 85 リク゚ストスルヌプットのメトリクスを version タグごずに分類するず、最新のリ リヌス青色は明らかに、以前のリリヌス灰色に比べお、ク゚リのスルヌプッ トが向䞊しおいるこずがわかりたす。さらに詳现に調査するために、そのバヌゞョン で曎新されたアプリケヌションコヌドを調べたす。するず、怜玢ク゚リをあたりにも 積極的に再詊行するバックオフロゞックを䜿甚せずに、最倧 6 回ずいう䞍具合を

    芋぀けたした。これが、Datadog APM ダッシュボヌドで芋られたリク゚スト率の増加 の原因です。 調査の䞀環ずしお、このクラスタヌで蚭定されたリ゜ヌスのリク゚ストず䞊限に぀い おも詳しく調べるこずにしたす。そしお、䜿甚䞭の EC2 むンスタンスタむプの CPU 容量よりも、CPU の䞊限が倧幅に䜎いこずを芋぀けたす。Kubernetes は、コンテナ が䞍必芁に䜎い CPU の䞊限に達するたびに、ノヌドがただ CPU の党容量を䜿甚しお いないにもかかわらず、コンテナの CPU をスロットリングしおいたした。
  84. 86 このクラスタヌではノヌドごずに Elasticsearch ポッドを 1 ぀だけスケゞュヌリング するよう Kubernetes を蚭定しおいるため、実行䞭の EC2

    むンスタンスの CPU 容量を コンテナでより倚く掻甚できるように、CPU の䞊限を匕き䞊げるこずにしたしたた だし、システムデヌモンず kubelet を実行するための CPU 容量は予玄したたたずしお おきたす 。CPU の䞊限を高く蚭定し、再詊行ロゞックの䞍具合を修正するず、サヌ ビスが回埩したす。このサヌビスレベルのダッシュボヌドには、ポッドレベルの CPU 䜿甚率ず CPU 䞊限のメトリクスが自動的に含たれるため、将来的に、CPU スロット リングずアプリケヌションのパフォヌマンス問題ず盞関性があるかどうかを容易に芋 極めるこずができるようになりたす。
  85. 87 動的な環境のフルスタック運甚監芖 このセクションでは、Amazon ECS や Amazon EKS などのマネヌゞドオヌケストレヌ ションサヌビスが、コンテナワヌクロヌドを倧芏暡にデプロむするのにいかに圹立぀ か、そしお、これらの各サヌビスを䜿甚する際に監芖すべき䞻芁なメトリクスに぀い

    お説明しおきたした。たた、Fargate がサヌバヌレスのコンピュヌト゚ンゞンで ECS コンテナや EKS コンテナを実行するオプションを提䟛し、独自のむンフラストラク チャを管理する必芁性を軜枛するこずも解説したした。 マ ネ ヌ ゞ ド サ ヌ ビ ス を 䜿 甹 し お い る å Ž 合 で も、 自 瀟 の EC2 ã‚€ ン ス タ ン ス で Kubernetes を運甚しおいる堎合でも、ナヌザヌが盎面する問題をトラブルシュヌ ティングするためには、フルスタックの運甚監芖が非垞に重芁ずなりたす。Datadog がスタックの党レむダヌからテレメトリデヌタを集玄するこずで、䞍良コヌドのデプ ロむから Kubernetes のリ゜ヌス䞊限の蚭定ミスに至るたで、重倧な問題における朜 圚的な根本原因を効果的に調査できるようになりたす。 参考資料 コンテナ化されたアプリケヌションの監芖の詳现に぀いおは、以䞋のリ゜ヌスを参照 しおください。 – Amazon ECS monitoring guideAmazon ECS 監芖ガむド – Amazon EKS monitoring guideAmazon EKS 監芖ガむド – Kubernetes audit logs monitoring guideKubernetes 監査ログの監芖ガむド お䜿いの環境でこれらの監芖戊略を実践したい堎合は、www.datadog.com においお、 Datadog のフル機胜を利甚できるトラむアル版をお申し蟌みください。
  86. 88