ファイル共有と簡単なインターフェースが欲しくて作りました。
Cloud Launcherにあるやんけ、とかいうツッコミはご遠慮ください。
自前Dropboxです。
サーバーの用意
まずはサーバーの用意から。
今回はOwncloudをdockerで動かします。
インスタンス作成
まあ普通に作って下さい。
gcloud compute instances create "owncloud" \
--zone "asia-east1-a" \
--machine-type "f1-micro" \
--network "default" \
--maintenance-policy "MIGRATE" \
--scopes default="https://www.googleapis.com/auth/cloud-platform" \
--tags "http-server" \
--image "/debian-cloud/debian-8-jessie-v20160511" \
--boot-disk-size "10" \
--boot-disk-type "pd-ssd" \
--boot-disk-device-name "owncloud"
お金のかからない設定と言いつつもSSD使ってますが、10GB程度だと月で2ドルくらいしか変わらない割に体感速度はSSDの方がけっこういいのでSSDにしてます。
ケチりたかったらpd-standardにすると節約できます。
あと、レイテンシのコトも考えてゾーンもasia-east1-aにしてます。
us-centralにすればもうちょい安いでしょう。
作ったらdockerやらcomposeやら入れます。
startup-scriptにコンテナ起動させるスクリプトを入れとくといいです。
docker composeで動かしたんでこんな感じのファイル書きました。
version: '2'
services:
owncloud:
image: "owncloud:9.0"
volumes:
- /data/owncloud/www:/var/www/html
- /data/owncloud/apps:/var/www/html/apps
- /data/owncloud/config:/var/www/html/config
- /data/owncloud/data:/var/www/html/data
- /etc/localtime:/etc/localtime
ports:
- "80:80"
- "443:443"
Cloud Storageの設定
外部ストレージとして使うので設定が必要です。
バケット作りましょう。
バケット作ったら、GCSの設定をしてあげます。
設定
→相互運用
のタブで新しいキーを作成してください。
アクセスキーとシークレットを使います。
なんか日本語訳でシークレットが「非公開」ってなってるのがなんか笑えますね。
owncloudの設定
外部ストレージの有効化
公式Dockerイメージ使ってるとsudo
使えないので普通にexec
でコマンド一発ができません。
しょうがないから動いてるコンテナに入ってコマンド実行しました。
docker exec -it owncloud_owncloud_1 bash
apt-get update && apt-get install sudo -y
sudo -u www-data php occ app:enable files_external
これでOK。
sudo
入った状態がイヤだったらコンテナ再起動してください。
外部ストレージは有効になったままです。
GCS追加
owncloudの管理画面に外部ストレージって追加されてるはずです。
外部ストレージにAmazon S3
を選びます。
バケット名はバケット名入れて下さい。
ホスト名にstorage.googleapis.com
を入れます。
ポート、リージョン、SSLを有効、パス形式を有効は空のままでOK。
最後アクセスキーとシークレットはさっきのGCSの設定画面で発行したやつを入れます。
まとめ
料金は今回はインスタンスのマシンタイプをg1-microにしたので、月ずっと動かしてても5〜6ドルくらいです。
まあ安いですね。
あとはGCSのストレージ料金。
自分はケチってバケットタイプをDRAにしてます。
ちなみにマイクロインスタンスだと正直遅いです。