Amazon S3での高速バックアップの実装

専用サーバー上のデータの安全性に関する特定の懸念にうんざりし、最近ホスティング事業者で何が起こっているかを監視しています... 3FN、Agava、Hosting.UA、MacHost-傾向は非常に悪いです。



その結果、MacHostは最後のストローになりました。「すでにバックアップを行っている」人にならないように、サーバーのバックアップシステムをAmazon S3に切り替えました。 非常に迅速かつ透過的に判明しました。



最も単純な実装を公開します。



  1. まず、サービスが支払われることを念頭に置いて、コストを計算します

    Amazonから親切に提供された計算機を使用します。

    左側のメニューで、[ Amazon S3 ]を選択し、[ 無料のインバウンド]チェックボックスをオフにして、必要なフィールドに入力します(すべてが非常に簡単です)。 完了したら、[ 追加 ] クリックして請求し、右側のウィンドウで価格を調べます。 したがって、たとえば、100 Gbのデータを保存し、1か月あたり20 Gbをダウンロードし、1か月あたり2 Gbをダウンロードする場合、約17ドルを支払うことになります。 必要なボリュームが1桁少ない場合(そうなると思います)、料金は数ドルになります。 私はこれが予算にとってあまりストレスにならないことを提案しようと思います。 同じと思うなら、さらに進んでください。

  2. Amazon Simple Storage Services(S3)を購読する

    サービスページで、 [ Amazon S3にサインアップ ]をクリックします。

    Amazon Web Servicesにアカウントを持っていない場合は、[ 私は新しいユーザーです]を選択します 。そうでない場合は、提案されたフォームにアカウントパスワードを入力します。

    AWSに登録するには、名前、郵送先住所、パスワードを入力し、アカウントを作成します。

    次のページは、S3での登録そのものです。ここでも、郵送先住所を入力し、契約に同意して、関税と支払い方法の選択に関する情報が記載されたページに移動します。

    クレジットカードと請求先住所の詳細を入力します。 もう一度、完成したアプリケーションを見て、 「サインアップを完了する」をクリックします。

    アカウントがアクティブ化され、利用可能であることを確認する手紙がメールで届くまで、少し待つ必要があります。

  3. サービスアクセスキーを取得する

    アカウントセキュリティセクションに移動し [アクセス資格情報]-> [アクセスキー] セクションに、承認に必要なキー(アクセスキーIDとシークレットアクセスキーのペア)が表示されます。 サーバーでバックアップを設定するときに必要になります。

  4. S3を使用するためのユーティリティをインストールします

    DebianおよびUbuntuの場合、リポジトリにはapt-get install s3cmd



    があります。

  5. ユーティリティの初期設定を実行します

    将来バックアップするユーザーの下:

    s3cmd --configure





    アクセスキー、シークレットキー、暗号化のパスワード、GPGプログラムへのパスを入力します。

    HTTPSとプロキシを使用するかどうかを選択します。

    すべての設定を入力すると、コンフィギュレーターは接続のテストを提案します。 同意し、テストに合格した後、設定を構成ファイルに保存することに同意します。

    これで、s3cmdの準備が整いました。

  6. S3を準備する

    いわゆるバケットと呼ばれるストアを作成します。

    # s3cmd --acl-private --bucket-location=EU mb s3://mybucketname

    Bucket 'mybucketname' created






    --acl-private-私たちだけにアクセス

    --bucket-location = EU-バケットはヨーロッパのリポジトリに作成されます(私がサーバーを持っているモスクワから、近づいてきます)。 米国があなたにより近い場合、EUの代わりに米国を記述します。

    mybucketname-リポジトリの名前は、すべての(あなただけではない)リポジトリ間で一意である必要があります。



    私たちはチェックします:

    # s3cmd la

    Bucket 'mybucketname':






  7. 実際、バックアップ

    s3cmdにはrsyncのような動作モードがあり、最も単純なバックアップの場合には非常に便利です。

    s3cmd --acl-private --bucket-location=EU --guess-mime-type --delete-removed sync /local/backup/dir/ s3://mybucketname/backupfolder





    何が何ですか:

    最初の2つのパラメーターは上記のとおりです。

    --guess-mime-type-拡張子に基づいてコンテンツのMIMEタイプを選択します。

    --delete-removed-ローカルフォルダーから削除された場合、リポジトリ内のファイルを削除します。

    以下は、バックアップがサーバー上にあるローカルフォルダーです(ローカルバックアップを実行しますか?)。また、s3にバックアップするフォルダー(存在しない場合は自動的に作成されます)。



    必要なパラメーターを置き換えて実行し、必要な場所にすべてがダウンロードされていることを確認します。

    s3cmd ls s3://mybucketname







    UPD: S3のファイルサイズは5 Gbを超えてはなりません。 バックアップシステムがより大きなファイルを作成する場合、たとえば、アーカイブを分割して渡すなど、少し変更する必要があります。 この問題をカバーしてくれたnightfogに感謝します。



  8. 同期コマンドの起動をローカルバックアップの実稼働システムまたは単にcronに追加します(私がしたように)。

  9. 利益!





データを回復する方法は?

S3からすべてのデータを復元するには、同期コマンドでソースとターゲットを交換し、欠落しているファイルの削除を削除することを忘れないでください。

s3cmd sync s3://mybucketname/backupfolder /local/backup/dir/





反対方向の同期があり、出来上がり、すべてのデータは再びローカルディスクにあります。



または、1つのファイルを復元するには、getコマンドを使用します。

s3cmd get s3://mybucketname/backupfolder/backup.tar.gz /local/backup/dir/







UPD2:システム管理に移されたカルマに感謝します。



All Articles