0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的備忘録:LambdaからECSを起動する構成について調べた内容を整理してみました

Posted at

はじめに

AWS Lambda から ECS のタスクを起動(run task)できるかどうかについて、個人的な開発メモとして整理しておきます。

個人の備忘録程度の走り書きとなっておりますが、温かい目で見守っていただければ幸いです。

書こうと思ったきっかけ

受講しているITスクールのハッカソンの開発の一環で、Lambdaからマイグレーション用のECSタスクを起動する構成を検討することがありました。

※まだ実際に試したわけではありませんが、初歩的な情報として忘れないように記録しておきます。

内容

結論として、AWS Lambda から ECS タスクを run_task API 経由で起動することは可能なようです。

参考文献

Python(boto3)を使えば、以下のような実装が参考になりそうです。

boto3 を使った実装例(未検証)

import boto3

ecs = boto3.client('ecs')

response = ecs.run_task(
    cluster='your-cluster-name',
    launchType='FARGATE',
    taskDefinition='your-task-def-name',
    count=1,
    platformVersion='LATEST',
    networkConfiguration={
        'awsvpcConfiguration': {
            'subnets': ['subnet-xxxxxxxx'],
            'assignPublicIp': 'ENABLED',
            'securityGroups': ['sg-xxxxxxxx']
        }
    }
)

print(response)

Lambda 側の設定ポイント(調査ベース)

  • ecs:RunTask, iam:PassRole 権限を持つ IAM ロールを Lambda に付与する必要がある
  • ECS 側では executionRoleArntaskRoleArn を定義しておく
  • VPC, サブネット, セキュリティグループなどネットワーク構成も忘れずに
  • CloudWatch Event や S3 イベントなどをトリガーとして Lambda を動かす構成も可能

まとめ

Lambda から run_task で ECS タスクを動かす構成は、調べた限りでは実用的なアプローチに思えます。

特にバッチ処理や一時的なマイグレーションタスクに向いていそうです。今後実際に試す際のベースとしてこの情報を残しておきます。

※本記事は、あくまで個人の備忘録レベルで記載しています。実際に動作確認はまだ行っていません。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?