仮想通貨の取引を全部無料で自動化する! (Gekko + Google Cloud Platform + Freenom + MyDNS + Let's Encrypt) その四 Google Cloud Platformでのサーバー構築
わしが男塾塾長子熊のゾルバである!
前回の記事はこちら
今回からようやく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;
Google Cloud Platformへの登録
それではさっそくこちらから登録しましょう。
GCP の無料階層 - 無料の長期トライアル、いつまでも無料 | Google Cloud Platform
無料トライアルをクリックします。
お持ちのGoogleアカウントでログインします。
パスワードを入力します。
利用規約の同意にはいを選択し、同意して続行をクリックします。
住所、名前、電話番号、クレジットカードを入力し、無料トライアルを開始をクリックします。*3
自動的にプロジェクトが作成されるので、数分待ちましょう。
OKをクリックし、無料トライアルを開始します。
VMインスタンスの作成
画面左のメニューからCompute Engineを選択し、VMインスタンスをクリックします。
上部の準備していますのメッセージが消えるまで、少しだけ待ちましょう。
作成をクリックします。
以下の通り入力します。
- 名前: 好きな名前を入力します。取得したドメイン名と同じだとわかりやすいです。
- ゾーン: 無料枠対象のus-eastX-X, us-centralX-X, us-westX-Xから好きなものを選択します。
- マシンタイプ: 無料枠対象のmicroを選択します。
- ブートディスク: 変更をクリックします。
Ubuntu 16.04 LTSを選択します。サイズは無料枠の最大である30GBにします。最後に選択ボタンをクリックします。
HTTPトラフィックを許可する、HTTPSトラフィックを許可するにチェックを入れます。管理、ディスク、ネットワーク、SSH認証鍵をクリックします。
起動スクリプトに、以下の文字列をコピー&ペーストします。
#! /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について、詳しくは前回の記事を見て下さい。
下までスクロールし、作成をクリックします。
少し待つとVMが起動します。
ファイアウォールルールの設定
左上のメニュー(横三本線)から、VPCネットワーク、ファイアウォールルールを選択します。
デフォルトでは以下のように、0.0.0.0/0 (インターネット上のすべてのIPアドレス)からのアクセスが許可されています。
インターネット上のサーバーは常に攻撃を受けているため、できるだけ不要なIPアドレスからのアクセスを遮断します。ここでは設定を簡単にするため、自宅のIPアドレスからのみアクセスを許可します。ただし、後の記事で紹介しますが、Let's Encryptによる証明書の更新を行うため、HTTPについては0.0.0.0/0からのアクセスを許可したままとします。
まず、自宅のIPアドレスを確認しましょう。ブラウザから以下のリンクにアクセスします。
赤枠で囲った部分に自宅のIPアドレスが表示されます。
ファイアウォールルール設定画面に戻り、default-allow-httpsをクリックします。
編集をクリックします。
ソースIPの範囲に0.0.0.0/0が入っているので、☓ボタンを押して削除します。先程確認した自宅のIPアドレスの最後に"/32"をつけて、Enterを押します。(この例では111.111.111.111/32)。最後に保存をクリックします。
設定が保存されました。左上の矢印でファイアウォールルールの一覧に戻ります。
同様に、default-allow-icmp, default-allow-rdp, default-allow-sshも変更します。default-allow-internalは変更せずにおきましょう。最終的に、default-allow-httpとdefault-allow-internal以外が自宅のIPアドレスになっていればOKです。
なお、自宅のIPアドレスはルーターの再起動や、プロバイダのメンテナンス等で変更される場合があります。VMインスタンスにアクセスできないなと思ったら、ちょっと手間ですが自宅のIPアドレスの確認と、ファイアウォールルールの設定し直しを行って下さい。
以上でVMの作成までは完了です。お疲れ様でした!
少し長くなりましたので、今回の記事はここで切らせて頂きます。
____________________
以下、アフィリエイトです。もしこの記事がお役に立ちましたら、こちらから取引所口座を開設頂けると励みになります。(私のお小遣いになります)
日本では以下の3つが主要な仮想通貨取引所となります。
コインチェック
初心者でも簡単に仮想通貨が購入できます。また、ビットコイン以外の仮想通貨(オルトコイン)も12種取り扱っているのも高ポイントです。ただし、購入手数料が高いのが難点。
bitFlyer
日本で最もビットコインの取引量が多い(=売買が成立しやすい)取引所です。多額の取引をする場合におすすめ。 無難ですが、特に突出した特徴が無いのが難点と言えば難点。
私がメインで使っている取引所。手数料がマイナスなので、取引すればするほど得をします。 XEMを購入するならここ。サーバーが貧弱なのかたまに応答しなくなるのが難点。
*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