子熊のゾルバ@cryptocurrency

仮想通貨の役立つ情報をお届けします。

仮想通貨の取引を全部無料で自動化する! (Gekko + Google Cloud Platform + Freenom + MyDNS + Let's Encrypt) その四 Google Cloud Platformでのサーバー構築

わしが男塾塾長子熊のゾルバである!
f:id:zorbathelittlebear:20170921233100p:plain


 

前回の記事はこちら

仮想通貨の取引を全部無料で自動化する! (Gekko + Google Cloud Platform + Freenom + MyDNS + Let's Encrypt) その一 自動取引の概要説明 - 子熊のゾルバ@cryptocurrency

仮想通貨の取引を全部無料で自動化する! (Gekko + Google Cloud Platform + Freenom + MyDNS + Let's Encrypt) その二 Freenomでのドメインの取得 - 子熊のゾルバ@cryptocurrency

仮想通貨の取引を全部無料で自動化する! (Gekko + Google Cloud Platform + Freenom + MyDNS + Let's Encrypt) その三 MyDNSでのダイナミックDNS設定 - 子熊のゾルバ@cryptocurrency
 

今回からようやくGoogle Cloud Platformでのサーバー構築に入っていきます。

Google Cloud Platformの無料利用について

Google Cloud Platformでは2017年3月から無料枠を拡張し、以下の条件に当てはまるサーバー構築のみ永年無料としています。*1

  • f1-micro インスタンス1台 (米国リージョンのみ)
  • 30 GB の HDD、5 GB のスナップショット
  • 1GB の北米から全リージョン宛て下りネットワーク (1 か月あたり、中国およびオーストラリアを除く)

f1-microというのはCPUやメモリのサイズが小さいVM(仮想マシン)インスタンスの事ですが、Gekkoを動かすには問題ないスペックです。HDDも30GBあれば大丈夫でしょう。

ただし、Googleが無料枠について今後規約改定を行う可能性があります。

Always Free には有効期限はありますか?

サービスには有効期限はありませんが、Google はサービスを変更する権利を有します。これには使用限度の変更や削除が含まれ、30 日前に通知します。

よくある質問  |  無料試用  |  Google Cloud Platform

勝手に課金される事は無いようですが注意しましょう。

なお、Free Trial期間はGoogle Cloud Platformでの仮想通貨マイニングは禁止となっています。マイニングに使おうと考えていた方はご注意下さい。

2. Limitations.   During the Free Trial:

2.2 Customer may not use the Services to engage in mining cryptocurrency;

Supplemental Terms and Conditions For Google Cloud Platform Free Trial  |  Google Cloud Platform Terms  |  Google Cloud Platform

*2


Google Cloud Platformへの登録

それではさっそくこちらから登録しましょう。

GCP の無料階層 - 無料の長期トライアル、いつまでも無料  |  Google Cloud Platform


無料トライアルをクリックします。

f:id:zorbathelittlebear:20170924202848p:plain

 
お持ちのGoogleアカウントでログインします。

f:id:zorbathelittlebear:20170924202940p:plain
 

パスワードを入力します。

f:id:zorbathelittlebear:20170924203015p:plain


利用規約の同意にはいを選択し、同意して続行をクリックします。

f:id:zorbathelittlebear:20170924203655p:plain


住所、名前、電話番号、クレジットカードを入力し、無料トライアルを開始をクリックします。*3

f:id:zorbathelittlebear:20170924203836p:plain


自動的にプロジェクトが作成されるので、数分待ちましょう。

f:id:zorbathelittlebear:20170924203941p:plain


OKをクリックし、無料トライアルを開始します。

f:id:zorbathelittlebear:20170924204057p:plain
 

VMインスタンスの作成

画面左のメニューからCompute Engineを選択し、VMインスタンスをクリックします。

f:id:zorbathelittlebear:20170924204250p:plain


上部の準備していますのメッセージが消えるまで、少しだけ待ちましょう。

f:id:zorbathelittlebear:20170924204354p:plain


作成をクリックします。

f:id:zorbathelittlebear:20170924204418p:plain
 

以下の通り入力します。

  • 名前: 好きな名前を入力します。取得したドメイン名と同じだとわかりやすいです。
  • ゾーン: 無料枠対象のus-eastX-X, us-centralX-X, us-westX-Xから好きなものを選択します。
  • マシンタイプ: 無料枠対象のmicroを選択します。
  • ブートディスク: 変更をクリックします。

f:id:zorbathelittlebear:20170924205310p:plain


Ubuntu 16.04 LTSを選択します。サイズは無料枠の最大である30GBにします。最後に選択ボタンをクリックします。

f:id:zorbathelittlebear:20170924205516p:plain


HTTPトラフィックを許可する、HTTPSトラフィックを許可するにチェックを入れます。管理、ディスク、ネットワーク、SSH認証鍵をクリックします。

f:id:zorbathelittlebear:20170924205800p:plain


起動スクリプトに、以下の文字列をコピー&ペーストします。

#! /bin/bash
curl -v --user USERNAME:PASSWORD https://ipv4.mydns.jp/login.html > /var/log/mydns.log 2>&1

上記のUSERNAME、PASSWORDは、MyDNSからメールで届いたMasterID、Passwordと置き換えて下さい。MyDNSについて、詳しくは前回の記事を見て下さい。

f:id:zorbathelittlebear:20170924210728p:plain


下までスクロールし、作成をクリックします。

f:id:zorbathelittlebear:20170924210918p:plain

 
少し待つとVMが起動します。

f:id:zorbathelittlebear:20170924233417p:plain

ファイアウォールルールの設定

左上のメニュー(横三本線)から、VPCネットワーク、ファイアウォールルールを選択します。

f:id:zorbathelittlebear:20170926010201p:plain


デフォルトでは以下のように、0.0.0.0/0 (インターネット上のすべてのIPアドレス)からのアクセスが許可されています。

f:id:zorbathelittlebear:20170926215630p:plain


インターネット上のサーバーは常に攻撃を受けているため、できるだけ不要なIPアドレスからのアクセスを遮断します。ここでは設定を簡単にするため、自宅のIPアドレスからのみアクセスを許可します。ただし、後の記事で紹介しますが、Let's Encryptによる証明書の更新を行うため、HTTPについては0.0.0.0/0からのアクセスを許可したままとします。

*4

*5


まず、自宅のIPアドレスを確認しましょう。ブラウザから以下のリンクにアクセスします。

www.cman.jp


赤枠で囲った部分に自宅のIPアドレスが表示されます。

f:id:zorbathelittlebear:20170926223800p:plain


ファイアウォールルール設定画面に戻り、default-allow-httpsをクリックします。

f:id:zorbathelittlebear:20170926224038p:plain


編集をクリックします。

f:id:zorbathelittlebear:20170926224148p:plain


ソースIPの範囲に0.0.0.0/0が入っているので、☓ボタンを押して削除します。先程確認した自宅のIPアドレスの最後に"/32"をつけて、Enterを押します。(この例では111.111.111.111/32)。最後に保存をクリックします。

f:id:zorbathelittlebear:20170926225136p:plain


設定が保存されました。左上の矢印でファイアウォールルールの一覧に戻ります。

f:id:zorbathelittlebear:20170926225333p:plain


同様に、default-allow-icmp, default-allow-rdp, default-allow-sshも変更します。default-allow-internalは変更せずにおきましょう。最終的に、default-allow-httpとdefault-allow-internal以外が自宅のIPアドレスになっていればOKです。

f:id:zorbathelittlebear:20170926225948p:plain

なお、自宅のIPアドレスルーターの再起動や、プロバイダのメンテナンス等で変更される場合があります。VMインスタンスにアクセスできないなと思ったら、ちょっと手間ですが自宅のIPアドレスの確認と、ファイアウォールルールの設定し直しを行って下さい。

以上でVMの作成までは完了です。お疲れ様でした!
少し長くなりましたので、今回の記事はここで切らせて頂きます。


____________________

以下、アフィリエイトです。もしこの記事がお役に立ちましたら、こちらから取引所口座を開設頂けると励みになります。(私のお小遣いになります)

日本では以下の3つが主要な仮想通貨取引所となります。

 

インチェック

初心者でも簡単に仮想通貨が購入できます。また、ビットコイン以外の仮想通貨(オルトコイン)も12種取り扱っているのも高ポイントです。ただし、購入手数料が高いのが難点。  

ビットコイン取引高日本一の仮想通貨取引所 coincheck bitcoin
 

bitFlyer

日本で最もビットコインの取引量が多い(=売買が成立しやすい)取引所です。多額の取引をする場合におすすめ。 無難ですが、特に突出した特徴が無いのが難点と言えば難点。

bitFlyer ビットコインを始めるなら安心・安全な取引所で


Zaif

私がメインで使っている取引所。手数料がマイナスなので、取引すればするほど得をします。 XEMを購入するならここ。サーバーが貧弱なのかたまに応答しなくなるのが難点。 


 

*1:AWSにも無料枠がありますが、最初の一年だけです。

*2:ファイアウォール設定で中国やオーストラリアからのアクセスをブロックしないと、もしかすると1円程度の課金が発生してしまう可能性があります。セキュリティ上の理由もあるため、不要なアクセスは遮断しましょう。 GCEのf1-microインスタンスを真にタダで使う方法 - Qiita

*3:この例では適当な情報を入力していますが、正しい情報を入力しましょう

*4:後述しますが、HTTPへのアクセスも、nginxの設定で極力不要なアクセスを遮断します。 IP addresses LE is validating from to build firewall rule - Help - Let's Encrypt Community Support

*5:実際には日本以外のIPアドレスからのアクセスを遮断すれば攻撃の9割以上が防止できます。ある程度Linuxの経験がある方は、GCPファイアウォールではなく、geoipでアクセス制限を行ったほうが便利です。(自宅のIPアドレスが変わったりしますし、外出先からもアクセスできるので) Limit your SSH logins using GeoIP » Axllent.org nginx で ngx_http_geoip_module を利用して国別アクセス制御を行う ただ、設定がやや煩雑なのと、SSH接続ができなくなるとシリアルコンソール接続して復旧しなくてはいけなくなったりするので、ここでの解説は割愛します。 シリアル コンソールとのやり取り  |  Compute Engine ドキュメント  |  Google Cloud Platform