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?

個人的備忘録:AWS CLIでRunTaskを実行し、DBマイグレーションができるか調べた内容をメモしてみた

Posted at

はじめに

本記事は、個人の調べ備忘録としてまとめたものであり、正確性については今後さらに検証・調査していく予定です。

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

書こうと思ったきっかけ

AWS 上でのアプリケーションデプロイにおいて、DB マイグレーションの一時的な実行方法を調べていた際、RunTask を使うことで効率的に実現できそうだと感じたため、手順を整理することにしました。

RunTask を使った DB Migration の概要

一時的にマイグレーションを実行する方法として、ECS/Fargate 上で RunTask を用いることができます。

参考文献

Web アプリとは分離された形でマイグレーションを実行できるため、CI/CD パイプラインに組み込みやすい点も利点です。

想定構成

  • 環境: AWS ECS(Fargate)
  • 用途: DB マイグレーション用に RunTask で一時タスクを起動
  • 例: Django の python manage.py migrate、Alembic の alembic upgrade head など

手順の概要

1. Docker イメージの準備

DB マイグレーション用の Docker イメージを作成し、ECR に登録します。

2. ECS タスク定義を作成

Web アプリ用とは別に、マイグレーション専用のタスク定義を用意します。

  • イメージ: マイグレーション専用 Docker イメージ
  • コマンド例: python manage.py migrate
  • 環境変数: DB 接続情報など

3. RunTask コマンドでタスク実行例(自分調べ:サンプルコマンド)

aws ecs run-task \
  --cluster your-cluster-name \
  --launch-type FARGATE \
  --task-definition your-migration-task-def \
  --network-configuration "awsvpcConfiguration={subnets=[subnet-abc123],securityGroups=[sg-xyz456],assignPublicIp=DISABLED}" \
  --platform-version "LATEST"

4. ログの確認と後処理

  • CloudWatch Logs に出力されたログを確認
  • 必要に応じてロールバック対応や通知処理を実装

まとめ

RunTask を用いた一時的なマイグレーションの実行は、以下のような場面に便利です:

  • 本番前のマイグレーション実行
  • CI/CD パイプラインに組み込む際の分離実行

なお、この記事の内容はあくまで調査ベースの備忘録であり、構成やパラメータの正確性は今後の実証を通じてアップデートしていく予定です...!

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?