2021/05/24

Amazon S3でバックアップを取ろう!S3を使う利点とファイルをバックアップする方法

 
  

S3を使う利点


AWSでは様々なサービスやデータのバックアップにS3(Simple Storage Solution)の利用を推奨しています。本稿ではまずS3を使うことの利点を説明し、AWSのバックアップ活用方法についてご紹介します。

データの耐久性

S3の大きな特徴の一つとして高い耐久性がまず挙げられます。そのデータ耐久性は99.999999999%(イレブンナイン)となっています。これは1,000億個のデータを保存しても1個しかデータを失わない位の非常に小さな確率を表します。

基本的にはS3にアップロードされたすべてのデータは1つのAWSリージョン内に3つ以上のデバイスに分けたコピーが保存されます。更に設定を変更することで、別のAWSリージョンへバックアップを作成して耐久性を高めることも可能となっています。

高い柔軟性

S3にはAWSユーザーごとに決められた容量制限がなく、バックアップのための容量リソースは新しくデータを入れるごとに用意されています。

これによりオンプレミスではテープやHDDなど必要以上の容量をあらかじめ用意していたことが不要となるため、必要に応じた拡張が実現し運用の柔軟性、機敏性が確保できます。

コスト効率性

S3は利用している容量に対して料金が発生する点でも使いやすいバックアップストレージとなっています。

AWSにはバックアップ用のストレージとしてS3の他にS3 GlacierやS3 Glacier Deep Archiveが用意されています。S3との違いは、長所としてデータ保存容量に対する料金が安いことであり、その代わりアクセス速度が遅くなります。

S3とGlacierやGlacier Deep Archiveをデータのアクセス頻度に応じて使い分けることにより、コストとアクセスの両面において効率的にバックアップを保存できます。

高い可用性

S3の可用性も注目すべき点です。データベースのように決まった形式のデータのみの保存ではなく、全てのデータ型が生成場所や種類に関係なくバックアップ対象となっています。一つのオブジェクトの最大ファイルサイズも5TBまでと非常に大きなものとなっています。

セキュリティ

企業でのバックアップストレージとして使用に耐えられるように高いセキュリティ性も備えています。

AWSセキュリティサービスではデータの暗号化から監査、異常なアクセスの検出などにより厳しいセキュリティ体制を実現するだけでなく、ユーザーが指定したルールに対してアクセス権を管理することで利便性と両立しています。

ユーザビリティ

S3はシンプルなウェブサービスインターフェイスとなっているため、データベースを扱ったことのないユーザーでも扱いやすくなっています。

管理者はもとより、バックアップを共有する際にも共有先のユーザーがデータにアクセスするための学習コストは低くすぐに扱えるデザインとなっています。

ファイルのバックアップ


S3ではウェブブラウザを使ってファイルをバックアップできます。ここでは、S3を使った基本的なファイルのバックアップ方法とダウンロード方法について解説しますので、参考にしてください。

バックアップ方法

まず、AWSコンソールからS3コンソールへ検索窓等からアクセスします。S3コンソールへ入ると最初に表示されるのがバケットのリストになります。バケットはファイルを保存するためのコンテナの役割を持ちます。

初めてアクセスする場合やバケットがない場合は「バケットを作成する」から新規に作成します。このときバケットの名前はグローバルで一意でなくてはならない点にご注意ください。

次にアクセス許可の設定になりますが、設定次第では世界中の誰でもアクセスできる状態となってしまうので十分ご注意ください。デフォルトではプライベートなバケットとして設定されます。

バケットの名前をクリックするとバケットの中身にアクセスできます。ここで「アップロード」を選択してファイル選択画面を開きます。

バックアップしたいファイルをドラッグアンドドロップして保存する旨の選択を続けるとアップロードが開始されます。これで基本的なファイルのバックアップは完了です。

ダウンロード方法

バケットの中身にアクセスした状態で、先ほどアップロードしたファイルを選択して「ダウンロード」を押すとブラウザを介してファイルがダウンロードされます。

なお、複数のファイルを選択した場合はダウンロードできないため、1つずつ選択してファイルをダウンロードしましょう。

S3にバックアップしたファイルのバックアップ


イレブンナインの高い耐久性を持つS3ですが、S3にもバックアップを施すことして更に耐久性を高めることができます。

サービスの一例としてはAmazon S3 クロスリージョンレプリケーション(CRR)を利用して、バックアップしたファイルを他のAWSリージョンにレプリケーションすることができます。

何の役に立つのか?

元よりイレブンナインの耐久性をもつS3を更にレプリケーションすることのメリットについて疑問を感じるところですが、大きなメリットが1つ挙げられます。

それは災害に対する備えです。1つのリージョンにしかバックアップを取っていなかった場合を想定すると、例えば震災によりAWSのサービスを運用している物理的なリソースが破壊されてしまった場合、バックアップデータを全て失うこととなります。

また、1つのリージョンを全て巻き込むレベルの大規模な停電が発生した場合も、その間データへのアクセスができない状況となります。これらの例のように耐久性が高くとも物理的な対策としてリージョンを分けたバックアップやリソースの配置を推奨されています。

CRRを利用して他のAWSリージョンへバックアップ

CRRを利用することによりS3内のオブジェクトを他のAWSリージョンへレプリケーションすることができます。これによりレイテンシー短縮や災害対策の恩恵が得られます。

CRRでは様々なAWSリージョンのバケット間で自動的にデータをレプリケートしてくれます。また、CRRによって地理的に保存先を分散させることでレイテンシーの地理的な差を小さくすることができ、通信距離を一定以下に制限するコンプライアンスにも対応可能となります。

これにより地理的格差を小さくしたサービス運用を実現することになります。

SRRを利用して同一のAWSリージョンへバックアップ

Amazon S3 SRR(Same Region Replication)では同一のAWSリージョンに自動的にレプリケーションする機能です。

SRRの利用により異なるバケット内へコピーされることから、例えばテスト環境と開発環境でリージョン内の異なるサービス運用をアクセスするバケットを分けて行うなどの利用ができます。

他のユースケースとしては、複数のバケットにログを保存することや、複数のAWSアカウントをまたいでログを残している場合に、一つのバケットへレプリケートして集約する際にもSRRを利用します。

またコンプライアンス上、国外へのデータ持ち出しが規制されている場合もSRRならば同一リージョン内へのコピーとなるためバックアップ方法としてSRRが利用されるケースがあります。

S3へファイルをバックアップ、バケットもバックアップしておこう


S3はシンプルなブラウザシステムで構成されているためユーザビリティは非常に高く使いやすいバックアップシステムとなっています。

S3自身は99.999999999%の高い耐久性を持つこともバックアップの保存先として優秀であることの要因の一つですが、さらに海外リージョンへのバックアップも設定次第でできる点も特筆するべき機能です。

これにより、災害による物理的なリソースの破損に対する備えができ、機会損失を抑えることが実現できます。