Google Cloud Platformの無料トライアルを使って、新型コロナ解析に貢献する話
はじめに
前回の記事で、AWSのインスタンス上にFolding@Homeを乗せて新型コロナの解析を試みたのですが、インスタンスの制約上あまりうまくいきませんでした。 本記事は、同様のことをGoogle Cloud Platformの無料トライアル枠でやってみたものです。 今回は、 トライアルに申し込むともらえる 12か月使える$300分のクレジット を活用していきます。
やったこと①: アカウント作成
今回はアカウントを作るところから。
- https://cloud.google.com/にアクセスし、「無料トライアル」をクリック
- Googleアカウントでログイン
- 利用規約への同意、個人情報の入力
- ここでクレジットカードの情報を求められるが、あくまで個人確認のためのもの。無料枠クレジットを超過しても、インスタンスを止められるだけで追加料金は発生しない。
やったこと②: プロジェクトの作成
今回の用途のために、プロジェクトを新しく作成。
- 画面右上の"My First Project"と書かれた部分をクリック。ポップアップした画面内の「新しいプロジェクト」をクリック
- 適当にプロジェクト名を入力して作成。
- 自動では切り替わらないので、もう一度"My First Project"をクリックし、ポップアップ画面から作ったプロジェクトを選択し、「開く」。
やったこと③: VPC環境の作成
AWSで試したとき同様、VPC環境をまず構築し、その中にインスタンスを立てる。
③-1. VPC+サブネット作成
- 「作成」を押して完了。
③-2. ファイアウォール設定
- 画面下部に、作成したVPCが表示されるので、VPC名をクリック
- 「ファイアウォール ルール」 -> 「ファイアウォールルールを追加」の順にクリック
- 以下のように入力し、「作成」。
- 自分だけアクセスできればよいので、「ソースIPの範囲」には、自分自身のIPアドレスを入力(例:
100.101.102.103/32
)
- 自分だけアクセスできればよいので、「ソースIPの範囲」には、自分自身のIPアドレスを入力(例:
上記の要領で、以下2つのポートについても設定。
- tcp: 7396 (Folding@HomeのWebコントローラ用)
- tcp: 49152~65535の範囲の好きな数字 (SSH接続用)
最終的に以下のようになる。(tcp:22はこの後の手順で削除する)
やったこと④: VPC上にVMインスタンス構築
③で作ったVPC環境上に、VMインスタンス(AWSで言うEC2)を作成。
④-1. インスタンス作成
- 画面左のメニューから、「Compute Engine」->「VMインスタンス」を選択し、「作成」をクリック
- 以下のように設定する。(スクショ省略。まだ作成はしない。)
- 記載のないものはデフォルトのまま。
- 今回はマシンとして、完全無料の
f1-micro
ではなく、CPUをまるまる1コア使えるn1-standard-1
を選んだ。記事執筆時点では、下記設定で月額$24.67なので、1年間回しても無料クレジットが枯渇しない計算になる。
項目 | 設定値 |
---|---|
リージョン | us-west1 |
ゾーン | us-west1-b |
マシン | n1-standard-1 |
CPUプラットフォーム | 自由 |
ブートディスク | Debian GNU/Linux9(stertch) 10GBの標準永続ディスク |
ファイアウォール | どちらもチェックを外す |
- 画面下部の「管理、セキュリティ、ディスク、ネットワーク、単一テナンシー」をクリック
- 「ネットワーキング」タブの「ネットワークインターフェース」で、③で作成したVPC環境を選択し「完了」。
- 「作成」をクリックすると、VMが作成され、起動する。
④-2. root権限を持ったユーザの新規作成
- VMインスタンスの一覧画面で、作成したVMインスタンスの名前部分をクリック
- 詳細画面が出るので、画面上部の「編集」をクリック
- 画面下部に、「SSH 認証鍵が0 個あります」と書かれた箇所があるので、その下の「表示して編集する」をクリック
- 以下のようなボックスが出るので、公開鍵ファイルの中身をコピペする。
- うまくいくと、ボックスの左側にユーザ名が表示される。 この名前がLinuxに新規登録されるユーザ名になる。
- 「保存」を押して完了
やったこと⑤: Linuxの設定
SSHのポート番号変更
/etc/ssh/sshd_config
を編集し、以下の1行を追加する
Port *****
- ファイル更新後、以下のコマンドを実行
$ sudo service sshd reload
やったこと⑥: Folding@Homeの導入
最低限必要なFAHClient
のみ導入。
インストール
$ wget https://download.foldingathome.org/releases/public/release/fahclient/debian-testing-64bit/v7.4/fahclient_7.4.4_amd64.deb $ sudo dpkg -i --force-depends fahclient_7.4.4_amd64.deb
- 以下のような画面がでてくるので、ユーザ名等を対話式で入力。
- 設定しなくとも動作はするので、わからなければ空白でOK。
設定
/etc/fahclient/config.xml
を開き、末尾の</config>
の前に以下2行を追記する。- Webコントローラへのアクセス権限設定。xxx.xxx.xxx.xxxのところに自分のIPアドレスを記入
<allow>127.0.0.1 xxx.xxx.xxx.xxx</allow> <web-allow>127.0.0.1 xxx.xxx.xxx.xxx</web-allow>
設定反映&サービス再起動
- 以下のコマンドでサービスを再起動。
- 補足: タスク処理中にstopしても、次startしたときはちゃんと続きから計算してくれる。
$ sudo /etc/init.d/FAHClient stop $ sudo /etc/init.d/FAHClient start
動作確認
- Webブラウザで
http://<VMインスタンスの外部IPアドレス>:7396
にアクセスする。- 以下のような画面が出たらOK。すでにタスクを取得している場合、進捗状況等表示される。
結果
- 今のところ不具合もなく、1タスク10時間程度でこなせている。