概要

AW Lightsailのインスタンスをまるごとコピーすることでバックアップと復元を行います。

この作業の目的

  • (作業失敗や攻撃を受けてなど)データ損壊時でもサービス継続が行えるようにします。
  • 新たなサービスを追加するとき、検証環境として新たに立ち上げます。

さっくりとした手順

  1. スナップショットを作成する
  2. 作成したスナップショットから新しインスタンスを立ち上げる
  3. DNS情報を差し替える

手順

インスタンスのバックアップ

AWS Lightsailの管理画面にログインします。

https://lightsail.aws.amazon.com/ls/webapp/home/instances

スナップショットを作成します。

スナップショットをクリックします。

手動スナップショットの「+スナップショットの作成」をクリックします。

任意の名前をつけて「作成」をクリックします。

作成が完了するまで待ちます。(なお、10 USD/月のインスタンスのスペックだと最初に10~15分ほどかかりました

日付、時間、スナップショットの名前が表示されれば作成完了です。

スナップショットからのインスタンスリカバリ

AWS Lightsailの管理画面にログインします。

https://lightsail.aws.amazon.com/ls/webapp/home/instances

スナップショットをクリックします。

同一リージョンからのインスタンス作成 → (自分の環境では失敗)

作成済みのスナップショットの左の矢印をたどっていき、右メニューから「新規インスタンスの作成」をクリックします。

  • スナップショットソース
    • バックアップしたスナップショット
  • インスタンスロケーション
    • 変更なし
  • オプション
    • 変更なし
  • 新規インスタンスプランの選択
    • 変更なし (場合によっては、この段階でスケールアップが可能です)
  • インスタンスを確認
    • 一意の名前をつけます。
  • キーオンリータグ
    • 変更なし
  • キー値タグ
    • 変更なし

全てを設定したら「インスタンスの作成」をクリックします。

失敗

通常ならここで大丈夫だと思うのですが

CreateInstancesFromSnapshot[ap-northeast-1]

Sorry, you've reached your maximum limit of Lightsail Instances : 2. 

と出ました。

そこで、別の手段を執ります。

別リージョンにコピーしてのインスタンスリカバリ

AWS Lightsailの管理画面にログインします。

https://lightsail.aws.amazon.com/ls/webapp/home/instances

スナップショットをクリックします。

別リージョンへのコピー

作成済みのスナップショットの左の矢印をたどっていき、右メニューから「別リージョンへのコピー」をクリックします。

  • コピーするスナップショット
    • バックアップしたスナップショット
  • 新しいスナップショットの送信先を選択する
    • 別のリージョン(ここではロンドンを選択)
  • コピーされたスナップショットの新しい名前を選択する
    • 任意の名前をつけます。

全て設定したら「スナップショットのコピー」をクリックします。

インスタンスが別リージョン(東京→ロンドン)にコピーされたことを確認します。

インスタンスからの復元

Lightsail管理画面 → スナップショット → バックアップしたスナップショット→新規インスタンスの作成をクリックします。

  • スナップショットソース
    • バックアップしたスナップショット
  • インスタンスロケーション
    • 変更なし
  • オプション
    • 変更なし
  • 新規インスタンスプランの選択
    • 変更なし (場合によっては、この段階でスケールアップが可能です)
  • インスタンスを確認
    • 一意の名前をつけます。
  • キーオンリータグ
    • 変更なし
  • キー値タグ
    • 変更なし

全てを設定したら「インスタンスの作成」をクリックします。

リカバリしたスナップショットのネットワーク設定

同一リージョンからのリカバリならネットワークの割当先を変えるだけですみますが、別リージョンは当然IPアドレスのレンジが異なるので、DNSの差し替えも必要になります。

AWS Lightsailの管理画面にログインします。

https://lightsail.aws.amazon.com/ls/webapp/home/instances

新たにコピーされたスナップショットをクリックします。

ネットワークを変更します。

ネットワーキングをクリックします。

「静的IPをアタッチする」をクリックします。

任意の名前をつけて「作成およびアタッチ」をクリックします。

DNSを変更します。

前提

ここでは、LightSailのDNSを用いてのDNSでの手順です。他のDNSサービスを利用している場合はそれに準じてください。

AWS Lightsailの管理画面にログインします。

https://lightsail.aws.amazon.com/ls/webapp/home/instances

DNSを差し替えます。

※ 検証環境として立ち上げる場合は、DNSレコードの追加を行ってください。

ドメインとDNSをクリックします。

割り当てをクリックします。

ドメイン名を選択し、バックアップしていたドメインを入れます。

入力後、「割り当てる」をクリックします。

割り当て後、「バックアップ時のIPとリカバリ後のIPアドレス」2つがDNSに割り当てられてしまいます。これを解消します。

管理画面 → ドメインとDNS → 対象ドメイン → DNSレコードに進みます。

複数あるうち、「バックアップ時のDNSレコード(前のDNSレコード)」を削除します。
→ 新しいIPのみがある状態にします

差し替え確認

nslookup 設定したドメイン

とし、差し替えたIPアドレスのみがあることを確認します。

リカバリ確認

SSHターミナルクライアントからログインします。

(ネットワーク情報が変わるので鍵の差し替えなどが発生しますのでそれに従います)

正常にログインできることを確認します。

注意点

  • 一度追加した静的IPはアタッチされていないと料金が発生します。面倒ですが、都度、デタッチしておくと良いでしょう。