投稿日:2021年3月28日
GoogleCloudのComputeエンジンのマシンタイプを変更する方法についてメモしました。
この記事を読む前に今回僕が実行する例は非常に特殊であることを注意しておいてください。
今回の僕のインスタンスにはアプリケーション(Django)、データベース、SSL 更新ボットすべてが含まれています。
よくある Web サイトであれば DB が別のインスタンスに別れていたり、SSL の機能がロードバランサに組み込まれていたり、コンテンツキャッシュサーバーが手前に立っていたりするはずです。
そのようなサイトでマシンタイプを変える場合はもっと別のアプローチになるでしょう。
あくまで参考程度に見ていただくと幸いです。
まずは現在稼働している GCE インスタンスのスナップショットを取ります。
今回の僕のインスタンスの場合、自分で更新する以外はデータの更新はありえないため、このままスナップショットを取りますが、ユーザーによって常にデータの更新がある場合などには、スナップショット作成前にインスタンスを停止してデータが更新されることを防ぎましょう。
次に作成したスナップショットをもとにインスタンスを作成します。
今回は以下のように設定しました。
- インスタンス名:marsquai-blog-ec2
- マシンタイプ:e2-small
- ファイアウォール:HTTP と HTTPS にチェック
- ネットワークインターフェース:エフェメラル
HTTP と HTTPS にチェックを入れたのはもとのインスタンスが DNS から直接リクエストを受け取っているためです。
またネットワークインターフェースをエフェメラルにしていますが、すべての確認が終わった後にここは静的 IP アドレスにします。
もともとのインスタンスに自動起動設定がくんであれば、この時点でインスタンスの IP アドレスから新しいWeb サイトが閲覧できるはずです。確認してみましょう。
自動起動の設定が組んでいない場合は手動で起動してから確認しましょう。
今はまだ IP アドレスがエフェメラルで、インスタンスが再起動されるたびに変わってしまうので、静的な IP アドレスにします。
インスタンスの『編集』から IP アドレスに名前をつけて予約しましょう。
最後に自分が契約しているドメインのプロバイダ(お名前ドットコム)の DNS に新しく作成したインスタンスの静的 IP アドレスを A レコードを設定して完了です。
古い A レコードの削除もわすれない様にしましょう。
変更の反映には場合によっては時間がかかると思います。nslookupコマンドや確認サイトを使って変更を確認しましょう。
IPアドレスが無事変更できたら不要なリソースを削除していきましょう。
まずは今までのインスタンスを削除します。
今回はそのまま削除していますが、通常ならいったん『停止』して1日ほどたってから『削除』するといいでしょう。
静的IPアドレスが残っている場合はそれも削除しておきましょう。
最後にスナップショットを削除します。スナップショットは1週間〜1ヶ月ほど残しておいて新しいインスタンスが問題なく動作することを確認してから削除することをおすすめします。