AWS Backupを利用してEC2のバックアップをコマンドで作成します。
AWS Backupとは
AWSのフルマネージド型のバックアップサービスです。
下記リンクに対象サービスが記載されていますが、今回はコマンドでのEC2バックアップ取得方法です。
AWS Backup とは?
またAWS Backupはオンラインバックアップです。本来AMIを取得する際はオフラインであることが望ましいため、データの整合性が重要なアプリケーションが入っているEC2インスタンスでの使用は避けた方がよさそうです。
Amazon EC2 の操作
AWS CLIのインストール
自分の端末でAWSのコマンドを使用するために、「AWS CLI」のインストールを行います。
(すでにインストール済の場合は不要です。)
下記リンクからダウンロード、インストールを行います。
AWS CLIの最新バージョンをインストールまたは更新する
OSに応じて下記を起動してバージョン確認のコマンドを実行し、下記のように表示されていたら問題なくインストールされています。
- Windows:コマンドプロンプト
- Mac :ターミナル
aws --version
IAMユーザーを作成する
AWS Backupを取得するためのIAMユーザーを作成します。
AWSのマネジメントコンソールでIAMにアクセスし、左メニューのユーザーから「ユーザーを追加」クリック。
ユーザー名を入力し、「アクセスキー・プログラムによるアクセス」にチェックを入れて次のステップへ。
AWS Backupを作成するためのポリシーを当てます。
「既存のポリシーを直接アタッチ」を選択、”Backup”でフィルタすると表示される「AWSBackupFullAccess」にチェックして次のステップへ。
任意でタグを設定し、次のステップへ。
内容を確認したら「ユーザーの作成」をクリック。
csvファイルはダウンロードし、無くさないように保存。
「アクセスキー」と「シークレットアクセスキー」はこの次で使用するためコピーして控えておきます。
ユーザーが作成されたことを確認します。
AWS CLIの設定
作成できたらcredentialsファイルにIAMの情報を登録します。
(すでにユーザが登録済の場合不要です。権限が不足している場合、IAMの画面から登録しているユーザに「AWSBackupFullAccess」のポリシーを追加で当てるだけでOKです。)
設定の基本
下記コマンドを入力し、順番に表示される4つの項目に対してそれぞれ入力してEnter押下していきます。
AWS Access Key ID | 上記手順で入手したアクセスキーを入力 |
AWS Secret Access Key | 上記手順で入手したシークレットアクセスキーを入力 |
Default region name | 対象のリージョンを入力(東京ならap-northeast-1) |
Default output format | json |
> aws configure AWS Access Key ID [None]: Axxxxxxxxxxxxxxxxxxx AWS Secret Access Key [None]: Axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Default region name [None]: ap-northeast-1 Default output format [None]: json
AWS Backupでバックアップボールトを作成
「バックアップボールト」とは、バックアップを保存するためのコンテナのことです。
バックアップの保存先に最初から作成されている”Default”を指定する場合、作成する必要はありません。
AWS Backupにアクセスし、右メニューの「バックアップボールト」から「バックアップボールトを作成」をクリック。
バックアップボールト名、暗号化キーを指定します。
バックアップボールトが作成されたことを確認します。
AWS BackupアクセスのためのIAMロールを確認
バックアップ作成するためのコマンドを実行する際、IAMロールが必要になります。
IAMロールはデフォルトで用意されているものを使用しますが、ARNをコピーするためにIAMへアクセスします。
右メニューの「ロール」をクリック。検索バーで”backup”と入力し、「AWSBackupDefaultServiceRole」をクリックします。
右上に表示されているARNをコピーします。
コマンドを実行
コマンドを実行します。
オプションの内容は上記手順で調査した内容を反映させます。
aws backup start-backup-job --backup-vault-name Default --resource-arn arn:aws:ec2:ap-northeast-1:123456789012:instance/i-01234567890123456 --iam-role-arn arn:aws:iam::123456789012:role/service-role/AWSBackupDefaultServiceRole --lifecycle DeleteAfterDays=3
オプション | 内容 | 記載例 |
–backup-vault-name | 対象にするバックアップボールト名を指定 | EC2Backup |
–resource-arn | EC2のARN(AWS リソースを一意に識別する値)を指定※ |
arn:aws:ec2:ap-northeast-1:123456789012:instance/i-01234567890123456 |
–iam-role-arn | AWSBackupにアクセスするためのIAMロールを指定 上記手順でコピーしたもの。 |
arn:aws:iam::123456789012:role/service-role/AWSBackupDefaultServiceRole |
–lifecycle | バックアップの保持日数を登録しておきたい場合、指定 (なくてもOK) |
DeleteAfterDays=3 |
※EC2のARNは下記の方法で調査可能です。
arn:aws:ec2:ap-northeast-1:[AWSアカウントの12桁]:instance/[インスタンスID]
確認
下記のような値が返ってきたら成功です。
コマンド上はすぐにレスポンスがありますが、バックアップ作成完了するまでは時間がかかります。
↓作成後の画面
なお、AWS Backup画面から確認できる内容はEC2上の画面から見れるAMIとリンクしていて、こちらから復元ポイントIDを削除するとEC2の画面からもバックアップが削除されます。
コメント