前回は概要として、システム構成と手順をお伝えしました。
ということで、実際にHerokuからBeanstalkに移行を実際にやってみましょう!
環境の確認
Herokuの環境って、このようなシステム構成でしたよね(復習)
これを、こんな風にしちゃいます。
さ、準備を開始していきましょう!
GitHubのソースを、まるっとダウンロードしてZip圧縮
BeanstalkではZip圧縮したものをアップすることでアプリをデプロイすることが可能です。ということで、まずはHerokuにデプロイしているソースをZipでまとめましょう。以下は、GitHubでダウンロードした一式を圧縮しています。
注意すべきことは、全選択してZipすることです。解凍して、1つのルートフォルダが出てくるような圧縮だとNGですのでこの点お気を付けくださいね。
ACMで新しい証明書を用意
続きまして、Beanstalkで使うSSL証明書を用意しておきましょう。
証明書をリクエストして、、
所持しているドメイン名を、例えばアスタリスク付きで入力しておきましょう。ここではテストで無料ドメインのTKドメインを使っています。
「DNSの検証」をチェックして進みましょう。
最後に確定とリクエストです。
そうすると、管理しているドメインのDNSレコードに登録すべきCNAMEの値が出てきます。
(お持ちのドメインにレコード追加です)ちゃちゃっと追加しましょう。
そうすると、しばらくして検証が終了して「発行済み」ステータスに変わります。おめでとうございます!
はい、無事SSL証明書発行完了!
Beanstalkで環境構築
サーバの設定
続いて、主題のBeanstalkです。新しい環境の作成を始めましょう。
Herokun の Dyno と同じような感じですね。ウェブサーバを選びましょう。
アプリの名前を入れましょう。なんでも良いです。
次に、利用する言語と、それぞれのバージョンの選択です。
で、最初にZipにしたソースをアップロードです。
SSLの設定
はい、ここで終わったら超シンプルなんですが、ロードバランサを使うのでSSLの設定が、もう少々必要です。ロードバランサを使うために「高可用性」を選択します。
あとは、リスナが80番だけですので、追加しましょう。
具体的には、443番を追加します。ここでロードバランサに証明書もセットします。
これで設定をしておくと、起動はしました!
環境変数の設定
最後に環境変数をセットしましょう。これで、内部への設定も入りますね。省略しましたが、データベースもリストアしたところへの接続文字列を入れましょう。
しかしながら、これだけではダメです。ロードバランサからインスタンスへSSL/443で接続されますので、mod_sslをウェブサーバに入れる必要があります。
.ebextensionsでの設定
Beanstalkで各種設定を入れるためには、ソースのルートディレクトリに「.ebextensions」というディレクトリを作って、configファイルをいれます。SSLの場合はこんな感じ。この設定ファイルは奥が深いからいろいろ調べてみてくださいな。
以上で、完了!!
ソースがあるから環境さえ整えば動作するのは当然なのですが、Herokuで動いていたアプリがBeanstalkでバッチリ動いてくれると、かなり嬉しいです。
これでバックアップ環境の準備、完了ー!
クラウドってインフラの障害時には手も足も出ずに、復旧をただ待つのみになりますが、これで他に手を打てるようになります。簡単に扱える分こういう力って必要だと思うの。
ということで、今回は具体的な手順を示しました!最近忙しかったけど、ようやく記事を書けてほっとしました。次は何を書こうかな。