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

Rails_on_EKSのマイグレーション_失敗パターンを検証してみた

Avatar for 納谷太陽 納谷太陽 PRO
September 25, 2025
220

 Rails_on_EKSのマイグレーション_失敗パターンを検証してみた

Avatar for 納谷太陽

納谷太陽 PRO

September 25, 2025
Tweet

Transcript

  1. なぜやろうと思ったか? • 最近転職してRailsを学習する必要がある • ITインフラ 勉強もサボるわけに いかない 何か効率 良い方法 ないか

    🤔 そういえ Kubernetes勉強したときにITインフラについて 網羅的に学習できた気がしたな....
  2. Rails マイグレーションと ? マイグレーション(migration) Active Recordと呼 れるRails 標準機能 1つで あり、データベーススキーマが長期にわたって進化を安定して繰り返せるようにす

    るため 仕組みです。 マイグレーション機能 おかげで、スキーマ変更を生SQLで記述せずに、Rubyで作 成されたマイグレーション用 DSL(ドメイン固有言語)を用いてテーブル 変更を 簡単に記述できます。 ▪ 公式ドキュメント https://railsguides.jp/active_record_migrations.html
  3. # 失敗時:直近に戻す→確認 bin/rails rollback STEP=1 bin/rails db:version # 生成→適用→確認 bin/rails

    g model novice name:string description:text bin/rails db:migrate bin/rails db:version # 変更(列追加)→適用→確認 bin/rails g migration AddNayanayaToNovices nayanaya:text bin/rails db:migrate bin/rails db:version
  4. Rails on EKSマイグレーション 失敗パターン • 複数 db:migrateが同時実行 • InitContainerにdb:migrateを記述する •

    Resource不足で OOMKilled ※他にも様々なパターン(IAM権限やDB権限不足など)が  あるかもしれないですが検証まで行えた これらになります。
  5. OOMとresources:limitsと ? OOM アウトオブメモリ(Out Of Memory) 略でシステムが必要 とするメモリ容量を確保できず、処理 続行が不可能となり発生 するエラー

    こと。 resources:limits Kubernetesで 、コンテナによって使用される リソース 最大量 設定値 こと。メモリ量とCPUが定義できる。 ▪ 公式ドキュメント https://kubernetes.io/ja/docs/tasks/configure-pod-container/assign-memory-res ource/
  6. まとめ • db:migrate ジョブで分離し、CI/CDなどで制御する。 • 適切なリソース 調整が必要 • 初めて オンライン登壇

    👏 👉 初めて触る技術が多かった で学びが多かった 良かったです。   と いえ、実務で扱っているわけで ない で有識者 方ナレッジ募です。