LoginSignup
0
0

Beanstalkプラットフォームバージョンアップざっくり手順|新環境差し替え編

Last updated at Posted at 2022-03-29

一人プロジェクトでレガシーな環境ですがBeanstalkでこんな運用していますという一例です。

前提

プラットフォームのバージョンアップ時にアプリ側もなんやかんや変えて少し不安があるなという状態の時
1-既存の環境を立ち上げたまま
2-新しい環境を立ち上げ
3-RDSのセキュリティグループに新しいEC2のセキュリティグループをアタッチ
4-Cloudfrontのオリジンを切り替える
という流れで作業していますがうまくいくとほぼダウンタイムなしで切り替えができ
ロールバックもCloudfrontの反映時間(最近5分くらい何年か前までは20分くらいかかった)で完了できます。
今回はCloudfrontで切り替えるのであまり関係ありませんが、Beanstalk自体にもアプリケーションのロールバックが簡単にできる機能が標準であるのでこちらも安心材料にはなっています。

環境

ローカル
vagrant+virtualbox(centos7内でebコマンドで管理、gitもローカルのみ)

本番
Route53 → Cloudfront → Beanstalk(ALB+EC2) → RDS
      ∟S3

手順

ローカルでの作業

1.erasticbeanstalk/config.yml編集
 ∟環境とアプリケーションの名前を変更する
 ∟プラットフォームバージョンを変更する

2.eb create

AWSコンソールでの作業(新環境)

1.Beanstalkコンソール → 設定 → ロードバランサで
 ∟ポート443追加
 ∟プロセスに301設定

2.EC2にアタッチされているセキュリティグループのSSHを削除

3.RDSのセキュリティグループ設定を変更
新環境のEC2のセキュリティグループを追加。

※ここまでは事前準備可能
以下のCloudFront手順を実施するといよいよBeanstalk環境が旧から新に切り替わるので
設定が合っていないとダウンタイムが発生する可能性がでてきます。
ので一通り最終確認(セキュリティグループの設定、ロードバランサのリスナなど)

ミスりやすいのはセキュリティグループの違うものがアタッチされたていたり
ロードバランサのセキュリティポリシーがアプリケーションで使えないものだったり

セキュリティポリシーが違っているとBeanstalkコンソール画面に以下のようなエラーが出ます。

Creating Load Balancer listener failed Reason: Resource handler returned message: "SSL policy 'ELBSecurityPolicy-TLS13-1-3-2021-06' is not supported on load balancers of type 'application' (Service: ElasticLoadBalancingV2, Status Code: 400

AWSコンソールでの作業(もとからある環境)

1.ClouudFrontの設定変更
ClouudFrontコンソール画面 → オリジンタブ → ロードバランサが設定されているオリジンを選び編集ボタンを押します。そしてオリジンドメインを変更します。この時プロトコルなど他の設定が自動で変わっていないか念の為チェックした方が安心です。

2.RDSのセキュリティグループ設定からもとからある環境のEC2のセキュリティグループを削除します。

3.最終的なアプリの動作確認をします。表示できるか、投稿などのプログラムは動くか、ログインできるかなど。

4.もとからあったBeanstalk環境を終了します。

後書き

作業自体は慣れてしまえば長く見積もっても30分もかからずダウンタイムもほぼなく移行できる&ロールバックも簡単にできるので新しく環境整えるコストを考えると腰が重くなるのも事実です。ただ予算が取れてFagateに移行できればこの作業自体無くせる(新たな技術と今以上のランニングコストが必要にはなる←ここがネック)と思うので来たるときに備えて粛々と学習だけは進めています。Fagateだいぶ安くなったけどもうちょっと安くなればな〜。
↓便利な計算機能ができてました。

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