0
0

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】 Elastic Beanstalkのデプロイメントポリシーについて調べてみた

Posted at

はじめに

Elastic Benstalkでは、アプリケーションのデプロイ時にデプロイメントポリシーなるものを指定できるらしい。
Beanstalk自体は使ったことはないが、現在勉強中のAWS SOAで問われたのと、また将来受験しようかなと考えているAWS DVAの勉強も兼ねてまとめてみることにした。

デプロイメントポリシー

大きく分けると以下の4つ。

  • All at Once
  • Rolling
  • Rolling with additional batch
  • Immutable

All at Once

同時にすべてのインスタンスにデプロイするポリシー。
すべてのインスタンスに一気にデプロイするのでダウンタイムは発生するが、デプロイメントポリシーの中では一番簡単かつ早い。

Rolling

バッチサイズを指定してデプロイするポリシー。
バッチサイズというのは、「デプロイを進める割合もしくはインスタンスの個数」のことである。

たとえば、「4つのインスタンスを稼働させていて、デプロイ時に半分は稼働させた状態にしておきたい…」といったときに、バッチサイズで「50%」と指定してあげることで、半分の数のインスタンスに対してデプロイを行い、終わったら残りのインスタンスにデプロイする、といったことができる。

Rolling with additional batch

バッチサイズを指定しつつ、インスタンスを追加してデプロイするポリシー

同じくインスタンス数は4、バッチサイズは50%とした場合…

①バッチサイズ分のインスタンスを新規で追加し、新規のインスタンスに対してデプロイを実施する。

②新規インスタンスへのデプロイが完了したら、既存のインスタンスのうち50%のインスタンスに対してデプロイを実施する

③既存のうち50%のインスタンスにデプロイが完了したら、残った二つのインスタンスは削除する。

キャパシティを維持したままデプロイ可能なので、本番環境などで採用されやすい。

Immutable

既存のインスタンスは利用せず、新規インスタンスを作成してデプロイするポリシー。

4つのインスタンスが稼働しているのであれば、新規でさらに4つインスタンスを作成し、そこにデプロイする。
その後、古い方のインスタンスをすべて終了する。

全てにおいて一切のダウンタイムが発生しないことが特徴。
その分時間もかかる。

おわりに

SOAの問題として問われたときに「こんなのほかで聞いた事ねーし覚えられねーよー」と思ってたけど、蓋を開けてみればなんてことない内容だった。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?