CI/CDとAWS Batchが体系的に学べるハンズオンをやってみた

JP Contents Hub から CI/CD for AWS Batch Workshop をやってみました!
2024.01.17

はじめに

こんにちは、AWS事業本部コンサルティング部の酒井です。
直近で携わるプロジェクトでAWS Batchが使われているのですが、経験がなかったので概要を把握するべくハンズオンをやってみました。
同時に CI/CDも触れる「CI/CD for AWS Batch Workshop」というハンズオンがあったので、紹介したいと思います。
ハンズオンに記載のなかった削除リソースも一覧化しているので、参考にしてみてください。

概要

ハンズオンでは以下のことが学べました。

  • Cloud9
  • ECR
  • CodeCommit
  • CodeBuild
  • CodePipeline
  • AWS Batch
  • 基本的なGitコマンド
  • 基本的なDockerコマンド

やってみる

1. 事前準備

Adminのロールは作成済みなのでスキップし、Cloud9を作成。

yamlファイルをダウンロードし、スタックを作成。

2. 手動デプロイ

ECRリポジトリを作成して、DockerイメージをCloud9からPushする。
Dokcerコマンドも書いてあるので、初学者でも安心です。

イメージを使用して、AWS Batchのジョブを動かしてみる。
ECS Fargateと操作感が似ていると感じました。

3. 自動デプロイ

ここからは先ほど手動でやっていた手順を自動化します。
CodeCommitにPushすると、自動でCodeBuildが実行されます。

4. (オプション)GitHub Flow

せっかくなのでオプションもやってみました。
プルリクエストを作成して、マージすると先ほどのCodePipelineで変更がリリースされます。

5. まとめ

このフェーズでは先程までの手順を比較しているだけなので、割愛します。

6. クリーンアップ

最後に片付けをします。
クラウド破産しないように、忘れずにリソースを削除しましょう。

ハンズオンに記載されていないリソースも含め以下を削除しました。
リストアップが漏れている可能性もあるので、後日料金が発生していないか改めて確認することをお勧めします。

  • CloudFormation スタック
    handson-YYYYMMDD
  • Cloud9
    handson-env
  • ECR リポジトリ
    queens
  • CodeCommit リポジトリ
    handson-repo
  • CodeBuild ビルドプロジェクト
    handson-pj
  • CodePipeline パイプライン
    handson-pipeline
  • AWS Batch ジョブ定義
    handson-def 改訂2以降
  • CloudWatch ロググループ
    /aws/batch/job
    /aws/codebuild/handson-pj
  • S3 バケット
    codepipeline-ap-northeast-1-************
    cf-templates-***************-ap-northeast-1
  • IAM ロール
    AWSCodePipelineServiceRole-ap-northeast-1-handson-pipeline
    AWSCloud9SSMAccessRole
  • IAM ポリシー
    CodeBuildBasePolicy-handson-pj-ap-northeast-1
    AWSCodePipelineServiceRole-ap-northeast-1-handson-pipeline

おわりに

今回はハンズオンをやってみました。
元々はAWS Batchが目的でしたが、副産物としてCI/CDについても学べたのでとても有意義でした。
1時間程度で終わるボリュームなので、是非やってみて下さい。