Amazon EBS スナップショットデータを Amazon S3 にコピーし、S3 でカスタムデータ用の EBS ボリュームを作成する方法を教えてください。

所要時間2分
0

Amazon Elastic Block Store (Amazon EBS) のスナップショットを Amazon Simple Storage Service (Amazon S3) バケットにコピーしたいのですが。また、S3 バケットに保存されているデータから Amazon EBS ボリュームを作成したいと考えています。

簡単な説明

EBS スナップショットを作成すると、AWS が管理する Amazon S3 バケットに自動的に保存されます。スナップショットは同じ AWS リージョン内でコピーすることも、あるリージョンから別のリージョンにコピーすることもできます。ただし、管理している S3 バケットにスナップショットをコピーすることはできません。

あまりアクセスしないスナップショットを保存するには、Amazon EBS Snapshots Archiveの使用を検討してください。ただし、それでも Amazon S3 を使用してスナップショットを保存したい場合は、次の回避策を使用できます。

解決策

**注:**AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーを受け取った場合は、最新の AWS CLI バージョンを使用していることを確認してください

スナップショットの内容を S3 バケットにコピーするには、スナップショットからボリュームを作成します。ボリュームを Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスにマウントします。次に、AWS CLI または S3 APIs を使用してデータを S3 バケットにコピーします。

EBS スナップショットの内容を Amazon S3 バケットにコピーするには、以下の手順に従います。

1.    スナップショットから EBS ボリュームを作成します

2.   作成したボリュームと同じアベイラビリティーゾーンで EC2 Linux インスタンスを起動します。

3.    ボリュームをインスタンスにアタッチします

4.    Linux インスタンスに接続します

5.    Linux インスタンスに AWS CLI をインストールします

6.    Amazon EC2 インスタンスに Amazon S3 バケットへのアクセス権を付与します

7.    次のコマンドを実行して、ボリュームをインスタンスにマウントします。

$ sudo mount /dev/xvdf /mnt

**注:**デバイス (前の例では /dev/xvdf) が別のデバイス名でインスタンスにアタッチされている可能性があります。lsblk コマンドを使用して、使用可能なディスクデバイスとそのマウントポイントを表示し、正しいデバイス名を確認します。

8.    pv パッケージをインストールして tar アーカイブの作成中の進行状況を監視します。

Amazon Linux および Red Hat Enterprise Linux (RHEL) ディストリビューション

$ sudo yum install pv

注:Amazon Linux および RHEL ディストリビューションに pv パッケージをインストールする前に、エンタープライズ Linux 用の追加パッケージ (EPEL) リポジトリを有効にする必要があります。「CentOS、RHEL、または Amazon Linux を実行している Amazon EC2 インスタンスの EPEL リポジトリを有効にする方法を教えてください。」を参照してください。

Ubuntu および Debian ベースのディストリビューション

$ sudo apt install pv

9.    次のコマンドを実行して、EBS ボリュームデータを S3 バケットにコピーします。

$ tar c /mnt | pv -s $(($(du -sk /mnt | awk '{print $1}') \\\* 1024)) | gzip | aws s3 cp - "s3://my-bucket/backup1.tar.gz"

注: my-bucket を S3 バケットの名前に置き換え、backup1 をファイルの名前に置き換えます。

上記のコマンドは、/mnt ディレクトリから圧縮ファイルを作成し、そのファイルを my-bucket という名前の S3 バケットにアップロードします。

10.   Amazon S3 コンソールを使用して、圧縮ファイルが S3 バケットにアップロードされていることを確認します。

11.    次のコマンドを実行してボリュームをアンマウントします。

$ sudo umount /mnt

12.  EBS ボリュームを Linux インスタンスからデタッチします

13.  ボリュームを削除しインスタンスを終了します

関連情報

Amazon EBS スナップショットをコピーする

Amazon EC2 インスタンスに Amazon S3 バケットへのアクセス権を付与する方法を教えてください。

AWS公式
AWS公式更新しました 10ヶ月前