スマホのバックアップを、無料で利用できるクラウドサービスがありますが、保存容量が少なかったり、怪しいサイトでないか不安ですよね。
今回の記事では、Google Cloud Platform(GCP)を使って、最大30GBの無料バックアップサーバーを構築する方法を、紹介します。
自分専用サーバーなので、安心して利用できます。
こんにちは!初子です。
この記事では、ときどき、わたしが、優しく解説しますので、初心者にもわかりやすくしています。
よろしくお願いします。
無料バックアップサーバー構築の概要
Google Cloud Platform(GCP)と、Syncthingというオープンソース(OSS)ソフトウェアを利用して、自分専用のバックアップサーバーを構築します。
GCPは、米国企業であるGoogle社が提供するサービスで、一定の利用範囲においては、無料で利用できる無料枠というものがあります。
Syncthingは、無料で利用できるOSSソフトウェアです。
主な解説内容は、下記となります。
- GCPを使った無料サーバーの構築
- GCPサーバーへSyncthingをインストール・設定する
- スマートフォンへSyncthingをインストール・設定する
なお、Debian系のLinuxサーバーである、Debian,Ubuntuを利用している方を前提にしています。
GCPを使った無料サーバーの構築
まず、GCPを使って、無料の仮想サーバーを構築しましょう。
構築手順は、下記を参考にしてください。
ディスク容量を拡張する
GCPは、30GBまでのHDDが永久無料枠です。前述の手順では、OS領域+データ領域として10GBを利用しているため、残り20GBまで、無料枠となります。
容量を拡張する方法は、2つあります。
- 既存の容量(10GB)を、30GBに拡張する
- 既存の容量(10GB)と別に、専用のデータ格納領域として20GBを追加する
前者の方が、ギリギリまでデータ容量を使う事ができますが、OS領域として最低5GB程度必要となるため、実質的にデータ格納領域として利用できるのは25GBとなります。
OS領域とデータ領域を、一緒にしてしまう場合(前者の30GBにする場合)は、万が一、データ領域が溢れてしまい100%の使用率になると、OSが起動・動作する為に必要な最低限の空き容量まで奪ってしまうため、最悪、リモート接続やOSが再起動できなくなります。もちろん、不要なファイルを削除して再起動する様に修復はできますが、初心者の方は難しい作業になるため、後者の専用のデータ格納領域を追加する方法が良いでしょう。
GCPサーバーへSyncthingをインストール・設定する
Syncthingは、Windows、Linux、macOSなどの他、Android上でも動作します。
Syncthingユーザーの追加
Syncthingが動作する実行ユーザーを追加します。
$ sudo useradd syncthing --create-home -G sudo
$ sudo passwd syncthing
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
任意のパスワードを設定してください。
Syncthingのインストール
Syncthingをインストールします。
$ curl -s https://syncthing.net/release-key.txt | sudo apt-key add -
$ echo "deb https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list
$ sudo apt-get update
$ sudo apt-get install -y syncthing
apt-get update で、下記の様なエラーが発生する場合には、
E: The method driver /usr/lib/apt/methods/https could not be found.
N: Is the package apt-transport-https installed?
apt-transport-httpsというソフトウェアが不足していますので、まず、下記のコマンドを実行したあと、再度、apt-get updateコマンドからやりなおしてください。
sudo apt-get install apt-transport-https
Syncthingの初期設定
syncthingを仮実行します。
syncthingユーザに切り替えて、syncthingを実行します。
$ su - syncthing
Password:
$ syncthing &
[monitor] 01:48:11 INFO: Default folder created and/or linked to new config
:
[7XZ7Q] 01:48:12 INFO: Access the GUI via the following URL: http://127.0.0.1:8384/
[7XZ7Q] 01:48:12 INFO: My name is "backup"
[7XZ7Q] 01:48:12 INFO: Completed initial scan of sendreceive folder "Default Folder" (default)
エラーが発生しない事を確認します。
suコマンドは、コマンドを実行するログインユーザを切り替えるコマンドです。
スイッチユーザ(Switch User)という意味になります。
パスワードが効かれますので、先ほどsyncthingユーザを作成した際に設定したパスワードを入力しましょう。
ログインユーザの切り替えに成功した以降は、exitコマンドを入力するまで、切り替えたログインユーザでコマンドが実行されます。
この仮実行(初期起動)により、syncthingの設定ファイルが自動的に作成されます。
管理画面のアクセスポート番号を設定します。
そのままの設定の場合、サーバー内でしかアクセスが出来ないため、外部からアクセスできるように設定します。
syncthingユーザのままで、下記を実行してください。
$ cp ~/.config/syncthing/config.xml ~/.config/syncthing/config.xml_org
$ sed -i 's/127.0.0.1:8384/0.0.0.0:8384/g' ~/.config/syncthing/config.xml
自動起動するように設定します。
$ exit
$ sudo systemctl enable [email protected]
$ sudu shutdown -r now
ファイアウォールの設定する
ファイアウォールルールを作成します。
GCPコンソールのハンバーガーメニューの「ネットワーキング」カテゴリーから、[VPCネットワーク]-[ファイアウォールルール]を選択してください。
[ファイアウォールルール]メニューから、[ファイアウォールルールを作成]を選んでください。
Syncthingの管理者画面への接続するアクセス許可設定を行います。
名前は、[backupserver-allow-syncthingadmin]を設定してください。
ターゲットは、[syncthing]を設定してください。
ソースIPの制限は、[0.0.0.0/0]もしくは、ご自宅のIPアドレスを設定してください。
プロトコルとポートは、tcp:8384を設定してください。
[作成]ボタンをクリックして、ファイアウォールルールを作成してください。
仮想サーバーに、ファイアウォールルールを紐づけます。
GCPコンソールのハンバーガーメニューの「コンピューティング」カテゴリーから、[Compute Engine]-[VMインスタンス]を選択してください。
VMの一覧から、Syncthingをインストールする仮想サーバーを選択します。
「VMインスタンスの詳細」画面から、「編集」を選択します。
「ネットワークタグ」に、syncthingを設定してください。
「保存」をクリックしてください。
子
ここで設定した、[syncthing]のタグは、ファイアウォールルールで作成した、ターゲットと同じ値を設定する事で、ファイアウォールルールを、GCPサーバーへ紐づけることができます。
Syncthingの初期設定
管理者画面に、ブラウザでアクセスしてみましょう。
http://<サーバーのIPアドレス、または、ドメイン名>:8384/
初めて接続すると、パスワードを聞かれることなく、下記の警告画面が表示されます。
[設定]をクリックして、管理者画面へ接続するアカウント情報を設定してください。
[GUI]タブを選択します。
[GUI認証ユーザー名]に、任意のユーザー名を設定してください。ここでは、adminとしています。
[GUI認証パスワード]に、任意のパスワードを設定してください。
[GUIにHTTPSを使用する]は、設定してもしなくてもかまいません。
子
httpsとは、接続しているサーバが正しい事の証明や、通信経路を暗号化する事で、セキュリティを強化する事ができます。
独自ドメイン名の取得や、syncthingsの設定フォルダにある、https-cert.pem and https-key.pemを設定する必要があるので、初心者には少し難しい設定が必要です。
セキュリティの心配がある場合には、使用するポート番号(8384)を、独自の番号に変更したり、設定完了後に、フイアウォールの設定を無効化した方が簡単ですね。
スマホアプリをインストール
GooglePlayサイトに、公式Androidアプリが公開されていますので、Androidスマートフォンへ、そのままインストールするだけで簡単にインストールできます。
残念ながらiPhone版は、公開されていません。
GooglePlayからアプリをインストールします。
GooglePlayから、Syncthingを選択して、インストールしてください。
初期設定を開始します。
インストールが完了したら、アプリを起動してください。
初期起動画面で、[続行]を選択してください。
バックアップする為に、記憶領域のアクセス許可を設定します。
[アクセス許可を付与する]を選択してください。
その後、[続行]を選択してください。
子
初期セットアップ時に、[バッテリー最適化]と[バックグラウンド実行]の確認ポップアップが表示されます。
どちらとも、後で設定できますが、このタイミングで設定することをおすすめします。
自動バックアップ設定
バックアップ元(スマートフォン側)と、バックアップ先(GCPサーバー側)のSyncthingアプリのインストールが完了したので、これから、設定を行っていきます。
今回の設定は、スマートフォン側からGCPサーバー側への一方向の同期を説明しますが、Syncthingは、双方向の同期をおこなうことができます。
バックアップ元(スマートフォン側)からバックアップ先(GCPサーバー側)へ認識させる設定
バックアップ先(GCPサーバー)の識別情報を表示します。
Webブラウザで、GCPサーバーの右にあるメニューから、[IDの表示]を選択してください。
そうすると、下記のID番号と、それを示すQRコードが表示されます。
バックアップ元(スマートフォン側)からバックアップ先(GCPサーバー)を検出します。
スマートフォンアプリで、[デバイス]を選択してください。
右上のプラス記号[+]を選択してください。
デバイスIDの右にある[QRコードイメージ]部分を選択してください。
QRコード認識アプリが起動されますので、先ほどのGCPサーバー側の(Webブラウザに表示されている)IDのQRコードを読み取ります。※QRコード認識アプリがインストールされていない場合には、インストールが施されます。
名前には、認識のバックアップサーバー名を入力してください。
右上のチェック☑ボタンをおして設定を保存します。
デバイスが検出されるまで待ちます。
GCPサーバー側に、デバイス(スマートフォン側)が検出されるまでしばらく待ちます。
検出されると、Webブラウザに、下記の画面が表示されます。
表示されない場合には、スマートフォンアプリのメニューから再起動すると検出しやすくなります。
[+デバイスを追加]を、選んでください。
デバイス接続を許可します。
デバイスを追加する画面が表示されます。
デバイス名を、任意なわかりやすい名前に設定して、[保存]を選択してください。
デバイス接続が完了するまで待ちます。
デバイスが接続されると、[接続デバイス]欄に、接続デバイスのIPアドレスが表示されます。
これで、バックアップ元(スマートフォン側)が、バックアップ先(GCPサーバー側)に検出されたことになります。
バックアップフォルダーの設定
スマートフォンで撮影した、カメラ画像を、バックアップ対象にする設定をおこないましょう。
バックアップ元のフォルダーを設定します。
スマートフォンアプリで、[フォルダー]を選択してください。
右上のプラス記号[+]を選択してください。
名前には、任意のフォルダー名を入力してください。上記の場合、cameraにしています。
フォルダー名を選択してください。スマートフォンの写真保存先フォルダーを指定しましょう。
右上のチェック☑ボタンをおして設定を保存します。
バックアップ元のフォルダーが検出されるまで待ちます。
バックアップ元のフォルダーがバックアップ先(GCPサーバー側)に検出されるまでしばらく待ちます。
検出されると、Webブラウザに、下記の画面が表示されます。
表示されない場合には、スマートフォンアプリのメニューから再起動すると検出しやすくなります。
[追加]を、選んでください。
バックアップ元のフォルダーを許可します。
フォルダーを追加する画面が表示されます。
フォルダーパスを設定して、[保存]を選択してください。ここでは、/home/syncthing/cameraとしています。
バックアップ元のフォルダーの同期が開始するまで待ちます。
バックアップが開始すると、[フォルダー]欄に、「同期中」が表示されます。
まとめ
Syncthingは、Linuxやスマホ以外にも、WindowsやmacOSなども対応しています。
インターネット上に、サーバーを要しなくても、windowsやmacOSへバックアップすることや、双方向でファイルを共有できる便利なソフトウェアです。
今回は、GCPサーバー上に構築しましたが、無料枠を超過するような方は、自宅の大容量NASへバックアップするなどもできますので、非常に経済的と思います。
コメント