#はじめに
Qiitaでは初めて記事を書きます。あとそんなにGCP知らないです。
だから学びましょう。という記事を書こうと思っていたのですが1日目の方と、まるまる内容がかぶってしまいそうなので、MineCraftのサーバ建てることにしようとしたんですが、普通すぎてつまらないかなと思ったので、サーバのバックアップしてみることにしました。
【2015年版】AWS ユーザが Google Cloud Platform に15分で入門する!
#GCPとは。
Google Cloud Platfromの略です。
Youtubeとかで使われてるインフラを提供してくれる感じですね。
似たようなサービスでMicrosoftのAzure、AmazonのAmazonWebService(AWS)がありますね!
という話も1日目でされています。
#料金
こういうのは、Google Cloud 料金計算ツールで計算するといいです。
今回は、CloudStorageの中で最安であるNearlineを使います。大体1GB/1セントなので500GB保存しても5ドル+ネットワーク使用料ということになりますね。
とはいっても、アップロードは無料なのでそこまでかからないでしょう。
#はじめてみる
早速やってみましょう。
##バケットを作る
GCPのダッシュボードからCloud Storageを選択しバケットを作成します
名前は適当にストレージクラスはNearlineを選択します。場所は好きなところを。
##gsutilコマンドを入れる
Install gsutilを見ながら進めていきます。
ZIPとかからインストールするのはとてもじゃないですが面倒なので、コマンドで入れていきます。
$ sudo apt-get install gcc python-dev python-setuptools libffi-dev
$ sudo apt-get install python-pip
$ sudo pip install -U gsutil
インストール後、以下のコマンドを実行しOAuth認証を行います。
$ gsutil config
設定後、コマンドを実行して作成したバケットが出てくれば成功です。
$ gsutil ls
gs://backet-name/
##試しにアップロードしてみる。
試しに server.proptiesをアップロードしてみたいと思います。
$ gsutil cp server.properties gs://backet-name/
Copying file://server.properties [Content-Type=application/octet-stream]...
Uploading gs://backet-name/server.properties: 755 B/755 B
アップロードできたのか確認してみましょう。
$ gsutil ls gs://backet-name/
gs://backet-name/server.properties
しっかりアップロードされています。
##ワールドデータをバックアップする。
さっそく本題のスクリプトを書いていきましょう。
BACKUP_DATE=`date "+%Y%m%d_%H%M%S"`
COMMAND="gsutil cp -r world gs://backet-name/world_backup_${BACKUP_DATE}"
${COMMAND}
いい方法が思いつかなかったです。もっとスマートにかける気がします。
あとは適当にスクリプトをCronとかで動かせば自動的にバックアップされます。
##ライフサイクルを設定する
このまま動かし続けたら永遠にファイルはたまっていきます。料金もすごいことになってしまうので自動的に削除するようにライフサイクルを設定しましょう。
lifecycle - Get or set lifecycle configuration for a bucket
{
"rule":
[
{
"action": {"type": "Delete"},
"condition": {"age": 30}
}
]
}
サンプルのままで、十分な気がするので日付を適切に設定して適用させます。
$ gsutil lifecycle set lifecycle_config.json gs://backet-name
#まとめ
たぶん、こういうのってMineCraft以外にも応用できますし、安いので頑張ってください。
わりとダメダメな記事で申し訳ないです。