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

ECS Scheduled Task 上の定期実行バッチを ecschedule で GitOps 化した話 / A story about a scheduled execution batch on the ECS Scheduled Task converted to GitOps with ecschedule

ECS Scheduled Task 上の定期実行バッチを ecschedule で GitOps 化した話 / A story about a scheduled execution batch on the ECS Scheduled Task converted to GitOps with ecschedule

KGDC Tech Conference #0 通信インフラだけじゃないKDDIグループの多彩な技術 ( https://kgdc.connpass.com/event/203487/ ) で登壇の際に使った資料です。

資料内のリンク:
* ECS Scheduled Taskの管理をecscheduleでGitOps化しました - コネヒト開発者ブログ - https://tech.connehito.com/entry/2021/03/01/155041
* タスクのスケジューリング (cron) - Amazon ECS: https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/userguide/scheduled_tasks.html
* AWSサービスで実現するバッチ実行環境のコンテナ/サーバレス化/ Container service of batch execution environment realized by AWS service - Speaker Deck: https://speakerdeck.com/shoichiron/container-service-of-batch-execution-environment-realized-by-aws-service
* Songmu/ecschedule: https://github.com/Songmu/ecschedule
* ansible-collections/community.aws: https://github.com/ansible-collections/community.aws

Kei Iwasaki

March 17, 2021
Tweet

More Decks by Kei Iwasaki

Other Decks in Technology

Transcript

  1. ECS Scheduled Task 上の定期実行バッチを ecschedule で GitOps 化した話 2021.03.17 KGDC

    Tech Conference #0 通信インフラだけじゃないKDDIグループの多彩な技術 Kei IWASAKI (@laugh_k)
  2. ECS Scheduled Task とは Amazon ECS は、cron のようなスケジュール、または CloudWatch イベ

    ント に応答してタスクをスケジュールする機能をサポートしています。 この機能は、Fargate および EC2 の両方の起動タイプを使用する Amazon ECS タスクでサポートされています。 from: タスクのスケジューリング (cron) - Amazon ECS "
  3. ECS Scheduled Task とは 簡単に言えば EventBridge を組み合わせてECSタスクをCronのように実行できるサービス Amazon ECS は、cron

    のようなスケジュール、または CloudWatch イベ ント に応答してタスクをスケジュールする機能をサポートしています。 この機能は、Fargate および EC2 の両方の起動タイプを使用する Amazon ECS タスクでサポートされています。 from: タスクのスケジューリング (cron) - Amazon ECS "
  4. コネヒトではバッチ用クラスタが三つあり、 dev環境とprd環境があるので実際には次のようなファイル構成に . |-- cluster1/ | |-- dev-events-rules.yaml | |--

    prd-events-rules.yaml |-- cluster2/ | |-- dev-events-rules.yaml | |-- prd-events-rules.yaml `-- cluster3/ |-- dev-events-rules.yaml `-- prd-events-rules.yaml
  5. バッチ管理のためのファイル構成は次のように `-- cluster1/ |-- dev-events-rules.yaml |-- dev-task-definition.json ← 追加 |--

    prd-events-rules.yaml `-- prd-task-definition.json ← 追加 長くなるので一つのクラスタだけ抜粋
  6. バッチ管理のためのファイル構成は次のように (Fargate併用版) `-- cluster3/ |-- dev-events-rules.yaml |-- dev-task-definition-ec2.json ← 追加

    |-- dev-task-definition-fargate.json ← 追加 |-- prd-events-rules.yaml |-- prd-task-definition-ec2.json ← 追加 `-- prd-task-definition-fargate.json ← 追加 長くなるので一つのクラスタだけ抜粋