1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【備忘録】AWS Backupでk3sクラスタを復元する時の注意点

Last updated at Posted at 2024-10-12

お試しk3sクラスタをAWS EC2上で運用しています。暫く使わないので、AWS Backupを使ってバックアップ・レストア(復元)を試しました。
AWS Backupは大変便利で、EC2をバックアップするとついでにアタッチされたEBSボリューム一緒にバックアップしてくれます。ですが、私が試しに使ってみると、問題になる点がいくつかありました。

  • 復元したEC2インスタンスには元のプライベートIPアドレスが割り振られず、違うアドレスになってしまう。
  • 復元したEC2インスタンスにSSHでログインしようとすると、「SSHのホスト鍵が変わっている」と盛大に叱られてしまう。
  • k3sで使う証明書を作り直す必要がある。

元のプライベートアドレスを保持してEC2インスタンスを復元する

バックアップした時と同じプライベートIPアドレスにしてあげないと、k3sクラスタが復元後にまともに動作しなくなります。しかし何も考えずにAWSコンソール上で復元すると勝手に違うアドレスに割り振ってしまいます。
元のプライベートIPアドレスを保持して復元する方法は、以下に書いてあります。

ですが、以下のQiita記事の方が分かりやすいでしょう。

二点だけ。
メタデータ取得する時、--output jsonを指定してあげないと、json形式でメタデータを取れなかったのですが、私だけでしょうか。
もうひとつ取得したメタデータを編集し、不要な部分を削るのですが、私の場合上記記事の内容にプラスして
\"SecondaryPrivateIpAddressCount\":0
も削除する必要がありました。これを残していると復元が失敗し、「SecondaryPrivateIpAddressCountの内容は正の数を入れる必要があります。」と叱られました(AWS Backupの復元ジョブを確認すると分かります)。

ホスト鍵が変わってしまう場合の対策

EC2インスタンスの復元に成功したのですが、SSHで使うホスト鍵は変わってしまうようです(メカニズムは分かりませんw)そこで、以下のQiita記事に基づいて処置をしました。

こちらは簡単に、

$ ssh-keygen -R example.com

を行って解決しました。

k3s証明書の作り直し

k3sの証明書の作り直しも必要でした。参考記事は手前味噌ですが、

これを見ながら処置しました。「キャッシュされた証明書の削除」は多分不要かな、と思ってやりませんでしたが。

まとめ

その他、k3s自体を新しく入れなおしたら、ローカル側(Windows10)のkubectlが古いと文句を言われたり色々あったのですが、これはまた別の話だと思います。

AWS Backupは便利だな、と思う反面、ipアドレスまで簡単に元通りになる訳ではない、とか、証明書類の作り直しなどが必要だったり、面倒な点はいくつかありました。
とは言え、私の場合勉強用・実験用なので使わないがあります。その間、EBSボリュームなどをそのままにしておくのは料金がもったいない。使わない時はインスタンスごと全て削除してしまい、必要な時に復元する運用としたいです。
これで大幅に料金が節約できる、、、、、、はず!?

1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?