「チープなEC2インスタンスで ownCloud 立てて S3 接続すれば、Dropbox とかより安く運用できるのでは?😆」 *1 と思ったので試した。
試してみたかったこと / わかったこと
- docker-compose で ownCloud を立てることで気軽に再構築できるようにする
- S3 の view として使えるか?
- 使えなくはないが、External Storage 設定だと S3 の転送が遅すぎる
- goofys で local mount すれば速いらしいが、これはまだ試していない
- 既にデータが存在する bucket に接続しても問題なく動作するのか?
- 問題なし
- List API 叩いているっぽい
手順
- EC2 Instance 作成
- セキュリティグループの 80/443 を開ける
- DNS設定追加
- example.minato128.com を作った example.ap-northeast-1.compute.amazonaws.com に向ける
- Install docker/docker-compose
- docker-compose.yml をコピー
- docker-compose.yml の書き換え
- HTTPS-PORTALのコンテナの設定を追加
- https://github.com/SteveLTN/https-portal
- Let's Encrypt から自動的に証明書を発行して反映してくれる
- https://qiita.com/c18t/items/c693d5bcda2e9b82e39b
- Nginx のデフォルトのCLIENT_MAX_BODY_SIZEが少ないので追加
- https://github.com/SteveLTN/https-portal
- HTTPS-PORTALのコンテナの設定を追加
- docker-compose up -d
- example.minato128.com から初回ログイン
- 管理画面から S3 接続設定
yaml の追加部分抜粋
volumes: files: driver: local mysql: driver: local backup: driver: local redis: driver: local # ここを追加 org-minato-ssl-certs: services: # ここを追加 https-portal: image: steveltn/https-portal:1 container_name: proxy-https-portal ports: - '80:80' - '443:443' links: - owncloud environment: DOMAINS: 'example.minato128.com -> http://dockerhost:8080/' CLIENT_MAX_BODY_SIZE: 0 STAGE: 'production' volumes: - org-minato-ssl-certs:/var/lib/https-portal