はじめに
AWSのデプロイ手法についてまとめた記事を記載します。
私自身これまでの経験では、本番環境へのデプロイはメンテナンス時間を確保して、ビルドしたファイルを置き換えるといったシンプルな手法しか扱ったことがありませんでした。(All-at-Once)
しかし、AWSの資格取得に向けて勉強を進める中で、他にも様々なデプロイ手法が存在し、それぞれにメリットとデメリットがあることを知りました。
そこで、私と同じようにAWSの資格取得を目指している方々に向けて、主要なデプロイ手法をまとめてみました。
今後の学習や実際の運用に役立てていただければと思います。
AWSの主なデプロイ手法一覧
AWSでは、以下のような多様なデプロイ手法が用意されています。各手法の特徴と、利用シーンに合わせたメリット・デメリットを簡単にまとめました。
デプロイ手法名 | 説明 |
---|---|
All-at-Once (インプレースデプロイ) |
すべてのインスタンスに対して一斉に新しいバージョンをデプロイします。即時に反映されるため素早いデプロイが可能ですが、失敗すると全インスタンスに影響が及びます。 |
Rolling (ローリングデプロイ) |
インスタンスの一部ずつを更新することで、システム全体の可用性を維持しながらデプロイが行われます。更新には時間がかかるが、サービス停止を避けたい場合に有効です。 |
Rolling with Additional Batch (ローリングデプロイ + 追加バッチ) | ローリングデプロイに似ていますが、追加のインスタンスを用意してデプロイを加速します。リソースに余裕がある場合、デプロイの時間短縮が可能です。 |
Blue/Green (ブルー/グリーンデプロイ) | 新旧2つの環境を用意し、トラフィックを段階的に新しい環境へ移行します。問題が発生した場合、すぐに元の環境に戻せるため、リスクを最小化できます。 |
Canary (カナリアデプロイ) | 少数のユーザーに新バージョンをリリースしてテストし、問題がなければ全ユーザーに展開します。段階的なリリースでリスクを抑えつつ新バージョンを提供可能です。 |
Immutable (イミュータブルデプロイ) | 完全に新しいインフラを用意し、旧インフラは保持したまま新バージョンをデプロイします。失敗時のリスクが最小限に抑えられますが、リソースコストが増える場合があります。 |
それぞれのデプロイ手法の特徴と選び方
上記のデプロイ手法は、システムの性質やデプロイ時のリスク許容度、またデプロイにかける時間やコストによって使い分けるべきです。
-
迅速なデプロイ
が必要な場合、All-at-Onceが最速の選択肢ですが、リスクも大きくなります。 -
可用性を確保しつつデプロイ
したい場合は、RollingやBlue/Greenが適しています。 -
段階的なリリースでリスクを分散
したい場合には、Canaryが非常に効果的です。 -
デプロイ失敗による影響を最小限に抑えたい
場合には、ImmutableやBlue/Greenが最良の選択肢です。
参考
AWSのドキュメントやブログ記事を参考にしつつ、私自身が勉強した内容をもとにこのまとめを作成しました。より詳細な情報を知りたい方は、以下のリンクもご参考ください。
|