ssig33.com

Elastic Beanstalk で安全なデプロイ

以下は Ruby On Rails を使っている場合の話です。 Ruby On Rails なので

という固有事情があります。以下の手段は主にこの固有事情を解決する為の問題なので、そうではないという人達にはあまり関係無い話です(が Immutable Infrastructure の実現とかそういう方面で RoR の人達以外にも意味のある記事だと思う)。

Beanstalk ではデプロイ時のコマンド 10 分制限というものがある為、 CPU 負荷の高い状態では assets precompile が 10 分以上かかってデプロイが一生できないみたいな事態になったりします。

そのような事態を避ける為には、 Env を 2 個用意してキリキリ切り替えるだとか、毎回新しい Env を用意するだとかすると解決できます。そのような話は一個前の記事にも書いた。

で。大抵のアプリケーションは Route 53 を使って A レコードに ELB のエイリアスを設定する形で独自ドメインで公開されているのではないかと思います。

この場合 Beanstalk の中で URL をスワップしたところで意味はなくて、古い方にアクセスが流れ続けます。なのでデプロイが完了した後 Route 53 の A レコードを新環境の ELB の DNS Name のエイリアスにしましょう。

このあたり危険な操作なので自動化するコマンドを書いておくほうがよいのではないかと思います。

Beanstalk はデプロイする度に DNS をいじるという狂気のデプロイ方法を用いることではじめて安全確実なデプロイが出来るという狂気の環境であることが明らかになりました。

まとめ

あなたが Java の人で無い限り Heroku を使いましょう。

back to index of texts


Site Search