Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Fargateの運用 ~デプロイ自動化や監視等~

kumamatsu
December 06, 2021

Fargateの運用 ~デプロイ自動化や監視等~

初めてFargateを触ったので、運用保守の観点で構築時に設定しておいた方が良いポイントをまとめました。

デプロイの自動化と書いているのにデプロイの話薄めになってしまいました…。

こちらはJAWS-UG朝会 #28で発表したものになります。

kumamatsu

December 06, 2021
Tweet

More Decks by kumamatsu

Other Decks in Technology

Transcript

  1. 三田オフィス(Mita Digital Hub) 〒108-0073 東京都港区三田3-13-16 三田43MTビル12F ベトナム開発センター 7th Floor, Mercury

    Building, No.444 Hoang Hoa Tham Street, Thuy Khue ward, Tay Ho District, Hanoi city 西日本オフィス 〒530-0001 大阪府大阪市北区梅田2-2-2 ヒルトンプラザウエストオフィスタワー19F Tel. 06-6133-5654 シリコンバレーオフィス 3350 Scott Blvd. #29 Santa Clara, CA 95054 東京オフィス(本社) 〒106-0041 東京都港区麻布台2-3-5 ノアビル3F Tel. 03-5114-6171(代表) 札幌オフィス 〒060-0004 北海道札幌市中央区北4条西6-1 毎日札幌会館9F Tel. 011-555-0175 株式会社ビッグツリーテクノロジー&コンサルティング Fargateの運用 ~デプロイ自動化や監視等~ 株式会社ビッグツリーテクノロジー&コンサルティング CCoE 熊谷有輝子 2021年12月6日
  2. 2 Copyright © 2021 BTC Corporation All Rights Reserved. こんな人向け

    ✓ コンテナ、Fargateの基本的な用語を知っている ✓ Fargateはハンズオン程度で触れた経験がある ✓ Fargateを本番導入したことがない ⇒導入する際に押さえておきたいポイントを知りたい ※CloudFormationのテンプレートの記述が随所に登場します
  3. 3 Copyright © 2021 BTC Corporation All Rights Reserved. 自己紹介

    熊谷 有輝子 名前 株式会社ビッグツリーテクノロジー& コンサルティング(2016年2月~) 所属 • Cloud CoE(2021年1月~) 大分県 出身 登山、ハロプロ(今年は8回現場入り) 趣味
  4. 4 Copyright © 2021 BTC Corporation All Rights Reserved. Agenda

    1. アーキテクチャ 2. Why Fargate? 3. ログ管理 4. 監視 5. CI/CD
  5. 6 Copyright © 2021 BTC Corporation All Rights Reserved. Agenda

    1. アーキテクチャ 2. Why Fargate? 3. ログ管理 4. 監視 5. CI/CD
  6. 7 Copyright © 2021 BTC Corporation All Rights Reserved. Why

    Fargate? クラスター起動モード(Fargate vs EC2) 比較項目 コスト 運用/ 保守 EC2に比べて高い Fargateに比べて安い クラスター起動モード Fargate EC2 インスタンスタイプ設定 /クラスター管理が不要 インスタンスタイプ設定 /クラスター管理が必要 ECS Execの導入 Systems Manager Session Managerでログイン OSの運用保守が不要 OSの運用保守が必要 セキュリティソフト OSレイヤーの変更監視やウィルス チェックが不要(AWS管理) OSレイヤーの変更監視やウィルス チェックが必要(要件次第) ランニング コスト 管理コスト EC2に比べて安い Fargateに比べて高い 可用性・性能 パッチ適用 等 SSH接続
  7. 8 Copyright © 2021 BTC Corporation All Rights Reserved. Why

    Fargate? コストについて バッチ起動ではなく、常時稼働するWebサーバにFargateを用いる場合の考慮点の1つがコスト ですが、選択するスペック次第で意外と差が出ません。 Fargate: - vCPU :4 - メモリ :16 GB <計算の前提> EC2: - インスタンスタイプ:m5.xlarge ※4vCPU、16GB メモリ - 台数 :1 - ストレージ :8 GB EC2へのパッチ適用に、四半期に一度1 万円の人件費がかかる場合 毎月730時間(常時)起動する場合
  8. 9 Copyright © 2021 BTC Corporation All Rights Reserved. Why

    Fargate? 運用 インスタンスタイプ設定とクラスター管理について ECS on EC2の場合 ECS on Fargateの場合 EC2 EC2 ECS Container Agent ECS Container Agent Task Task Service Task Task Service Availability Zone A Availability Zone C
  9. 10 Copyright © 2021 BTC Corporation All Rights Reserved. Why

    Fargate? 運用 SSH接続 2021年3月までは「FargateはSSH接続できない」と言うデメリットがありましたが、現在はECS Execという公式の機能を用いて接続可能です。 ①タスク定義にlinuxParametersを追加 ②サービスにEnableExecuteCommandを追加 ③タスクロールに権限を追加 ※CloudFormationのyamlファイルです
  10. 12 Copyright © 2021 BTC Corporation All Rights Reserved. Why

    Fargate? OSの運用保守が不要 ①パッチ適用 ②(AWS関連の)ミドルウェアアップデート Systems Manager ✓ SSM Agent(2週に一度更新) ✓ CloudWatch Agent(月に一度更新) ✓ ECS Agent(月に一度更新) EC2を管理する場合、以下の検討・実装が必要です。
  11. 13 Copyright © 2021 BTC Corporation All Rights Reserved. Why

    Fargate? OSの運用保守が不要(余談) AgentのUpdateはSystems Managerで出来ますが、エラー時のアラート配信の仕組みは必 要です。
  12. 14 Copyright © 2021 BTC Corporation All Rights Reserved. Why

    Fargate? セキュリティソフト ECS on EC2の場合 ECS on Fargateの場合 ◼ Cloud One – Workload Security • 不正プログラム対策 • IPS/IDS • 変更監視 等など… ◼ Cloud One – Application Security • SQLインジェクションの検出 • リモートコマンドの実行 • 不正なファイルアップロードの検知 等など… Fargateを使う場合、インフラをAWSが管理する為ウィルスチェックや変更監視の為にウィルスソフ トを導入する必要がありません。 OSやミドルウェアのセキュリティチェックが必要 OSやミドルウェアのセキュリティチェックが不要 ※アプリケーション脆弱性を検知するためのウィルスソフト もあります
  13. 15 Copyright © 2021 BTC Corporation All Rights Reserved. Agenda

    1. アーキテクチャ 2. Why Fargate? 3. ログ管理 4. 監視 5. CI/CD
  14. 16 Copyright © 2021 BTC Corporation All Rights Reserved. ログ管理

    ①タスク定義にawslogsログドライバーを追加 ②クラスターにログ定義を追加 タスク実行ロールに必要権限を追加
  15. 18 Copyright © 2021 BTC Corporation All Rights Reserved. ログ管理(余談)

    他AWSアカウントへログを集約する 場合でも、ノーコードで実装できます。
  16. 19 Copyright © 2021 BTC Corporation All Rights Reserved. Agenda

    1. アーキテクチャ 2. Why Fargate? 3. ログ管理 4. 監視 5. CI/CD
  17. 20 Copyright © 2021 BTC Corporation All Rights Reserved. 監視

    ECS CPUReservation クラスターでタスクを実行することで予約されている CPU ユニットの割合。 ECS CPUUtilization クラスターやサービスで使用されている CPU の割合。 〇 リソース監視 閾値を超えた場合、提供サービスに影響を与える 可能性があるため ECS MemoryReservation クラスターでタスクを実行することで予約されているメモリの割合。 ECS MemoryUtilization クラスターやサービスで利用されるメモリの割合。 〇 リソース監視 閾値を超えた場合、提供サービスに影響を与える 可能性があるため ECS GPUReservation 使用可能な GPU の合計に対する、クラスター内の実行中のタスクによって予約さ れている GPU の割合。 ECS タスク状態変更イベント ECSのタスク状態変化イベント 〇 死活監視 サービス提供に異常が発生している可能性がある 為 ECS サービス状態変化イベント ECSのサービス状態変化イベント 〇 リソース監視 オートスケールの実行を検知する為 ECS(container) ContainerInstanceCount クラスターに登録されている Amazon ECS エージェントを実行している EC2 イン スタンスの数。 ECS(container) CpuUtilized 使用しているディメンションセットによって指定されるリソースのタスクにより使用されて いる CPU ユニット数。 〇 リソース監視 閾値を超えた場合、提供サービスに影響を与える 可能性があるため ECS(container) CpuReserved 使用しているディメンションセットによって指定されるリソースのタスクにより予約されて いる CPU ユニット数。 ECS(container) DeploymentCount Amazon ECS サービスでのデプロイの数。 ECS(container) DesiredTaskCount Amazon ECS サービスに必要なタスクの数。 〇 死活監視 サービス提供に異常が発生している可能性がある 為 ECS(container) MemoryUtilized 使用しているディメンションセットによって指定されるリソースのタスクにより使用されて いるメモリ。 〇 リソース監視 閾値を超えた場合、提供サービスに影響を与える 可能性があるため ECS(container) MemoryReserved 使用しているディメンションセットによって指定されるリソースのタスクにより予約されて いるメモリ。 ECS(container) NetworkRxBytes 使用しているディメンションによって指定されたリソースにより受信されるバイト数。 ECS(container) NetworkTxBytes 使用しているディメンションによって指定されたリソースにより送信されるバイト数。 ECS(container) PendingTaskCount 現在、PENDING 状態にあるタスクの数。 ECS(container) RunningTaskCount 現在、RUNNING 状態にあるタスクの数。 ECS(container) ServiceCount クラスター内のサービスの数。 ECS(container) StorageReadBytes 使用しているディメンションによって指定されたリソースのストレージから読み込まれた バイト数。 ECS(container) StorageWriteBytes 使用しているディメンションによって指定されたリソースのストレージに書き込まれたバ イト数。 ECS(container) TaskCount クラスターで実行されているタスクの数。 ECS(container) TaskSetCount サービス内のタスクセットの数。 対象リソース情報 監視実施 対象サービス メトリクス メトリクス概要 監視対象 監視カテゴリ 採用理由
  18. 21 Copyright © 2021 BTC Corporation All Rights Reserved. 監視

    コンテナのメトリクス情報はデフォルトで収集されるわけではありません。ECSクラスターの CloudWatch Container Insightsを有効にすると、(パフォーマンスログ)がCloudWatch Logsに出力されます。
  19. 22 Copyright © 2021 BTC Corporation All Rights Reserved. Agenda

    1. アーキテクチャ 2. Why Fargate? 3. ログ管理 4. 監視 5. CI/CD
  20. 24 Copyright © 2021 BTC Corporation All Rights Reserved. CI/CD

    ローリングアップデートとBlue/Greenデプロイ ローリングアップデート target group v1⇒v2 ターゲットグループ配下のコンテナに対してデプロイ メリット:AutoScaling配下でもデフォルトで利用可能 デメリット:ロールバックができない。 前のバージョンに戻したい場合は再デプロイ Blue/Greenデプロイ target group 本番環境 v1 2つのターゲットグループ メリット:デプロイ失敗時、迅速に切り戻しが出来る デメリット:AutoScalingはサポートされていない ⇒デプロイ前にスケーリングプロセスを停止し、 デプロイ後にスケーリングプロセスを再開 v2 target group テスト環境 リリース時のダウンタイムが小さい