本当はAWSが好きなのですが、巷ではGCPも結構使われているようなので、
AWSと比較をするために少しGCPを触ってみました。
GCPとは
Google Cloud Platformのことで、
Googleが提供しているパブリッククラウドサービスの総称です。
AWSなどと同様にテクノロジーやインフラが各種サービスとして用意されているため、
このサービスを使用してすばやく開発を行うことができます。
GAE(Google App Engine)、GCE(Google Compute Engine)などのサービスがあります。
また、AWSと同様にリージョン、アベイラベリティーゾーンがあります。
他のクラウドと比べてコストが比較的安い、モニタリングがしやすい、
BigQueryを使った分析をしたいといった場合に適しているようです。
やったこと
参考
GCPのアカウント登録
こちらのサイトを参考にさせて頂きました。
丁寧に手順が記載されていて非常にわかりやすかったです。
GCPは無料トライアルとして、12ヶ月$300分の無料クレジットが用意されているので、
これを利用して無料で色々なサービスを使うことができます。
また、無料期間が終了してもGoogle App Engineなどは常時無料枠が用意されているので、
制限までは無料で使えるサービスもあります。
下記サイトで「無料トライアル」をクリックし、アカウントを登録します。
プロジェクトの作成
「空のプロジェクト作成」をクリックし、プロジェクト名に適当な名前を入れます。
今回は「gcp-test」としました。
作成したプロジェクトを選択すると、ダッシュボードが表示されます。
Compute Engineのインスタンス作成
メニューからCompute Engineを選択してVMインスタンスを作成します。
作成するインスタンスの設定をします。
リージョンはus-
から始まるものでないと無料になりません。
ちなみに、西海岸のほうが速度が少し速いようです。
また、インスタンスのサイズをmicro
にしないと無料になりません。
デフォルトのままだと課金されてしまうので注意してください。
ディスクのサイズは30GBまで無料です。
ファイアフォールの設定では、
HTTPとHTTPSの「トラフィックを許可する」にチェックしておきます。
ネットワーキングで外部IPを新しい静的IPアドレスに設定します。
名前は適当で大丈夫で、今回は「sample-ip」としました。
ここまで設定できたら作成ボタンを押します。
作成したインスタンスのSSHのメニューから
「ブラウザウィンドウを開く」を選択すると、
ブラウザが起動され自動的にサーバにログインしてくれます。
Compute EngineへのSSH接続
Cloud Shellから接続してみます。
先ほど作成したインスタンスのSSHメニューから「gcloudコマンドを表示」を選択して
「CLOUD SHELLで実行する」をクリックします。
Cloud Shellが起動して画面の下部に表示されます。
SSHログイン用のコマンドが入力されているのでEnterを押して、
質問に対してY
を入力してSSH鍵を生成します。
SSH鍵生成時に聞かれる質問は、何も入力しないでEnterでも大丈夫です。
今度はSSHクライアントで接続してみます。
先ほどCloud Shellで接続したときに既にSSH鍵が生成されていますが、
上の手順をやっていない場合は下記コマンドでSSH鍵を生成します。
$ ssh-keygen -t rsa -f ~/.ssh/gce-key -C {ユーザー名}
公開鍵を出力させて中身をコピーします。
��何故だかpbcopyコマンドが使えませんでした)
$ cat /home/maya_tominaga_9/.ssh/gce-key.pub
コピーした公開鍵をSSH認証鍵として登録します。
Compute Engineのメニューから「メタデータ」を選択します。
SSH認証鍵のタブを選択して「編集」のあとに「項目の追加」を選択して
コピーした内容をペーストします。
コンソールからコピーしたときに意図しない改行が入ってしまったので、それは削除しておきました。
保存ボタンを押して登録します。
SSH鍵を登録すると、コンソールからログインできるようになります。
下記コマンドを実行してログインします。
$ ssh {ユーザー名}@{サーバーの外部IPアドレス} -i ~/.ssh/gce-key
[maya_tominaga_9@sample ~]$
GCPの課金データ取得
課金が発生したときに気付けるように、課金データを取得してバケットに出力できるようにしました。
こちらを参考にしました。
まずは出力させるバケットを作成するため、
GCPのメニューから「Strage」を選択して「バケットを作成」をクリックします。
ストレージクラスはRegional
でないと無料になりません。
バケットを作成したら課金データを取得します。
GCPメニューから「お支払い」を選択して「課金データをエクスポート」から
「ファイルのエクスポート」タブをクリックします。
「設定を編集」をクリックしてバケット名とレポート接頭辞を設定します。
レポート接頭辞は適当で大丈夫です。
この設定をすると日本時間の0時頃に、バケットに課金データが作成されます。
GCPの課金アラート設定
課金データを出力だけだと気付けない可能性があるので、アラートの設定をしておきました。
下記の公式ドキュメントを参考にしました。
Set Budgets and Alerts | Google Cloud Billing API Documentation | Google Cloud Platform
GCPメニューから「お支払い」を選択し、「予算とアラート」から予算の作成をクリックします。
予算名、予算額を設定して保存ボタンを押します。
今回は1円でも課金が発生したらアラートを飛ばしたかったので、予算額を1円にしています。
まだ正常にアラートが飛ぶか確認はできていないのですが、
バケットに作成された課金データと合わせて確認していこうと思います。
GCPを使ってみた所感
AWSと同様に無料枠があるので、簡単に試せるのは良かったです。
今回AWSと異なっていたと感じた点としては、GCPはプロジェクトを作って
その中でインスタンスの作成や設定をしていくということです。
課金データをSlackに飛ばしたかったのですが、やり方がわからなかったので後日もっと調べて実現させたいです。
ちなみに、ログを監視してSlackに飛ばすのは、画面から設定して簡単にできるようでした。
公式ドキュメントはAWSと同様に詳しく書かれていましたが、日本語化されるのがAWSよりも遅いようです。
GCPでは、PythonやJava、Node.jsの他にGo、PHP、Ruby、.NETも使えるようなので、
今度使ってみたいと思います。
まだAWSと比較したGCPの良さを実感できていなく、AWSの方が色々できる感じがしていますが、
GCP特有のBigQueryや機械学習などを試してみたいと思います。