1
0

AWS BatchでHello World(Python)

Posted at

はじめに

AWS Batchを利用してHello Worldしたのでメモに残します。
とりあえず動かし方を知りたい人向けです。
ローカルの環境はWindows10です。

PythonスクリプトとDockerファイルの作成

VSCを起動して作業場所を決めてください
その後、作業場所配下に次のスクリプトとDockerファイルを作成してください

app.py
print("Hello from Fargate!")
Dockerfile
FROM python:3.8-slim

WORKDIR /usr/src/app

/usr/src/app
COPY . .

CMD ["python", "./app.py"]

Amazon ECRへプッシュ

先ほどのスクリプトとDockerファイルをAmazon Elastic Container Registry(ECR)へ登録します。
これによって、ECSやAWS Batchから実行できるようになります。

ECRでリポジトリを作成

  • AmazonECR > プライベートリポジトリを選択し、リポジトリを作成を選択
    image.png

  • リポジトリ名を任意の名前に設定して作成を選択
    image.png

リポジトリへDockerイメージをPush

  • プライベートリポジトリの一覧から、今作成したリポジトリを選択し、プッシュコマンドを表示を選択
  • VSC上で表示されたコマンドをコピペして実行
    image.png

AWS Batchを設定

ここまででAWS上でDockerイメージを実行する準備が整いました。
ECSやAWS Batchから実行することが可能です。

ジョブを定義

  • AWS Batchのページへ移動し、ジョブ定義を作成を選択

  • オーケストレーションタイプはFargateを選択
    image.png

  • 名前は任意を設定
    image.png

  • コンテナの設定 ← ここ重要!!
    イメージには先ほど作成したリポジトリのURIを入力
    コンドオプション削除
    ※削除しないとDockerfileに記載したCMD ["python", "./app.py"]が実行されませんでした

image.png

ジョブの送信(AWS Batchを実行)

  • AWS Batch > ジョブから新しいジョブを送信を選択

  • ジョブの名前を入力後、ジョブ定義を選択してジョブを作成
    image.png

  • 作成したジョブが実行される
    image.png

  • 実行完了するとステータスがSucceededとなる
    image.png

  • 画面下部のログストリームから、CloudWatchのログを表示
    image.png

動きました!!

さいごに

細かい話は置いておいて、まずは動かすだけの手順をメモとして残しました。
作成したジョブを定期実行させたりなどは、次の機会に試します。

1
0
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
1
0