VPSで動かしてるdockerのmysqldumpをAmazonS3にアップロードする
特殊なケースかもしれないし、こんなことやってるのはアホらしいかもしれないけどメモ的に記録しておきます。VPSで動かしてるubuntuサーバー上のmysql dockerコンテナのバックアップをs3にアップロードします。そもそもAWS使っておけばバックアップはホント楽なのに…といってもしょうがないのでやりました。
導入にはpythonとpipが必要になります。pythonはもう入っていたのでpipのインストールからやりました。pipは
からインストールが可能です。そして本題のaws cliのインストールですが
でインストールします。インストールが終わったらaws cliの設定を開始します。その際にIAMのアクセスキーIDとシークレットアクセスキーが必要になります。取得方法はこちらにあります(というかpipの導入などもここにありますが…)
引用しておくと
1.IAM コンソールを開きます。
2.コンソールのナビゲーションペインで、[Users] を選択します。
3.IAM のユーザー名 (チェックボックスではありません) を選択します。
4.[Security credentials] タブを選択し、次に [Create access key] を選択します。
5.新しいアクセスキーを表示するには、[Show] を選択します。認証情報は以下のようになります。アクセスキー ID: AKIAIOSFODNN7EXAMPLE
シークレットアクセスキー: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
6.キーペアをダウンロードするには、[Download .csv file] を選択します。このキーは安全な場所に保存してください。
これはそのまんまなので特に迷うことはないはずです。もちろんここのアクセスキーなどはダミーです…
それで設定は以下のコマンドの実行です
実行すると上記アクセスキーIDとシークレットアクセスキーが聞かれますのでコピペ、あとはリージョンとoutput formatが聞かれますので、東京リージョンであれば「ap-northeast-1」、output formatはよくわかりませんがjsonでいいでしょう。
dockerコンテナのmysqlのダンプの取得方法はこちらです。
日本語のところは適宜自分の環境に置き換えてください。最後のディレクトリ・ファイル名指定はなんでも構いません。バックアップファイルに日付を指定していますが、cronで定期実行する際はエスケープしないとちゃんと動かないので%をエスケープしております。
ここからあとはS3にアップロードするだけです
上記コマンドでアップロード可能なのであとは手動でやるなりcronでやるなりすればOKです。
私たちはyyUXというUXレビューサイトを運営しています。あらゆるサービスのUX改善を目指しています。一度のぞいてみて下さい。よろしくお願いします。