AWS Backup で EC2 の AMI が対応されたと聞き、すぐに確認しました。
それまでは、Lambdaでバックアップを日次で取得していましたが、Lambdaの管理の煩わしさや、万が一バックアップが取れていなかった時の不安から解放されそうです。
では、確認していきましょう👀
AWS Backup
ざっくりいうと、AWS内の特定リソースのバックアップを、AWSマネージドで管理できるサービスですね。
基本的には、バックアッププランというものを作成して、ターゲットとなるリソースを指定することで、各サービスのバックアップが行える構成になっています。すぐにバックアップを行えるオンデマンドバックアップ
とスケジューリングバックアップ
の2通りの取得方法があります。
また、取得したバックアップの保存期間も設定できるようになっています。
- Backup Plan
- Backup Rule(複数可)
- schedule(日次、週次、月次など)
- lifecycle(保持期間、1日保存など)
- backup vault(論理コンテナ、KMSキー)
- Resouce(複数可)
- resource(下記に記載)
- iam role(バックアップ/リストの権限)
対象リソースは、こちら👇
- EBS
- RDS
- DynamoDB
- EFS
- Storage Gateway
- EC2 ←これを待ってました!!
これで現状のバックアップ用のLambdaの役割は、賄えてそうな感じ👍
そういえば、AMIのバックアップはない?
それで今回、待ってましたのEC2のバックアップが追加されました!EC2?? AMIではないの?
読んでみると、EC2インスタンスそのものを丸ごとバックアップ/リストア機能らしい。
AMIだけでなく、設定されているマシンタイプ、VPC、IAMロールなどの属性、アタッチされているEBSボリュームもまとめてバックアップをしてくれるみたいです。リストア時は、しっかり復元してくれる。
AMI単位でのバックアップはないが、EC2丸ごとバックアップしてくれるなら、問題なさそう👍
では、設定してみます
実際に、EC2のバックアップをスケジュールで取得するよう設定していきます。
今回は、スケジュールでのバックアップを想定しているので、「バックアッププランを管理」を選択します。
対象インスタンス名:Wordpress
バックアッププラン作成
バックアッププランの一覧画面に遷移します。そのあと、「バックアッププランを作成」を選択する。
バックアッププランの作成画面に遷移し、以下の様に3種類の作成方法を選ぶことができます。
- 既存のプランから開始
- 定義済みのテンプレートから新しいプランを作成する方式です
- 新しいプランを立てる
- プランの定義をいちから作成します
- JSONを使用してプランを定義
- プランをJSONの定義から作成します
今回は「新しいプランを立てる」を選び、1日1回のバックアップ、保持期限1日のプランを作成してみます。
バックアッププラン名は wordpress-backup-plan とします。
バックアップルールの作成
「バックアップルールの設定」欄で適切なルール名を記入します。
今回は「daily-backup-rule」としておきます。
スケジュールの「頻度」を「毎日」にすると1日1回のバックアップ、のいわゆる日次バックアップになります。「バックアップウィンドウ」はUTC時間で開始時間とウィンドウ時間を設定できます。
今回はPM 03:00(JSTだと00:00)
開始、1時間のウィンドウ
としています。
ライフサイクルは「有効期限切れ」欄を1日後
に設定します。
バックアップボールドの作成
バックアップボールトはデフォルトのものではなく新しく作成します。
「新しいバックアップボールトを作成」ボタンをクリックします。
新しいバックアップボールトの作成画面がポップアップされますので必要事項を記入します。
今回は名前だけ設定しその他の項目はデフォルトのままとしました。
画面でも案内されていますがバックアップ対象であるリソースの定義はこの後行いますので、「プランを作成」をクリックします。
リソースの割り当て
バックアッププランの画面下部にある「リソースを割り当てる」ボタンをクリックします。
リソースの割り当て画面に遷移しますので、適切なリソース割り当て名を付けます。
今回はIAMロールはデフォルトのままとし、画面下部の「リソース割り当てる」欄にバックアップ対象のEC2のインスタンスIDを指定します。
これでバックアップ対象の設定が完了し、すべての設定が完了となります。
バックアップの確認
バックアップの実行結果は「ジョブ」欄から確認することができます。
無事、JST 00:00に実行され、EC2のバックアップがされていることを確認できます。
また、EC2のコンソール画面(AMI)でも作成されたリソースの確認が出来ます。
AMI名は、AwsBackup_[インスタンスID(i-xxx~]_[バックアップジョブID]
で作成されます。
所感
Lambdaの管理がなくなるのはだいぶ助かりそう。
今回は、インスタンスIDでのリソースの割り当てをしたが、タグでの指定もできるので、タグでの制御も実装できそう⤴️
検証を進めていき、本運用に持っていきたいものです。