views4GCPのストレージサービスについてまとめてみた。Exp:190284普段はGCP専門のエンジニアをやっています。最近は個人的な活動としてGOとswiftでアプリ作ってます。EngineのGO言語正式サポートが決定しました。今回はGO言語の正式サポートを記念して、GAE/GOをシリーズで取り上げたいと思います(※1)。World」を出力するまでの手順について説明します。World」を出力するだけでなく実際にアプリをデプロイするまでの手順についても説明します。本手順は大体10-15分くらいで完了できる内容になっておりますので、ぜひトライしてみてください。本記事はGAE/GOに焦点を当てた内容になります。GO言語自体の特徴についてはあまり触れません。GAEの基礎を学びたい場合は以下のURLを参考にしてください(ただし、英訳となります)。https://cloud.google.com/appengine/docs/whatisgoogleappengineGO言語とは?GO言語は2011年11月に発表されたオープンソースのプログラミング言語で、特徴として「インタプリタ言語の高生産性」と「コンパイラ言語の実行速度」の両方を兼ね備えています。GO言語はまさに他言語の「いいとこ取り」によってつくられた言語といえます。GO言語のはじまりは、Googleのエンジニアがメイン業務の合間で開発をはじめたのがキッカケでしたが、今や世界中で注目される言語になったと言っても過言ではありません。いうプラットフォーム上で、GO言語は他の言語と較べて何が優れているのでしょうか。強みはスピンアップ(※2)の早さではないでしょうか。サポートしている4つの言語でスピンアップ速度を計測したところ、以下の結果が得られました(※3)。up)とは、ユーザのリクエストによって発生するGAEインスタンスの起動処理のことです。down)といいます。world」をレスポンスとして返すまでの時間を計測しました。体感的には大きな違いはないと思いますが、GO言語のスピンアップはPythonやPHPよりも優れていることがわかると思います。IDEA」を利用しているユーザが多いように思います。IDEAのご利用をお勧めします。IDEAでGOの開発環境を構築するための記事はQiitaに多く投稿されておりますので、ぜひそちらを参考にしてください(※4)。個人的には以下の記事がオススメです。http://qiita.com/kaiinui/items/433eb86c022ffcad0beaそこの『あなた』!無料で早速はじめてみましょう!GAE/GOに限った話ではありませんが、技術を理解するには手を動かすのが一番です!ということで実際にGAE/GOに触れてみましょう!!手順は以下(1)~(3)の流れとなります。最終的なゴールはアプリケーションのデプロイとなります。SDKのインストールSDKのインストール方法について説明します。Worldサンプルプログラムを開発サーバを動作させるための手順について説明します。(3)作成したGAE/GOアプリをデプロイするアプリのデプロイ方法について説明します。デプロイするために必要な事前準備(後述)についても詳しく説明します。SDKのインストールをおこないます。以下(1)~(5)の手順に従ってSDKのインストールをおこなってください。AppEngineのパッケージもまとめてインストールできましたが、現在はできなくなっているようです(2015/08/27日現在)。SDKを介して配布されない(直訳)」という警告メッセージが表示されました。SDKのダウンロード以下のリンクからSDKのダウンロードをおこないます(※5)。ユーザはLinux/Mac/WindowsそれぞれのOSに適したSDKをダウンロードすることができます。DLファイルの解凍&展開ダウンロードが完了したらzipファイルを解凍し任意のフォルダに移動します。SDKフォルダのパスを環境変数に追加$HOME/.bashrcまたは$HOME/.profileに以下の行を追加します(※6)。PATH=/path/to/go_appengine:$PATH※6「/path/to/」は任意のフォルダとなります。以下のコマンドからPCにインストールされているPythonのバージョンが2.7系であるかを確認してください。2.7系ではない場合はインストールを必ずおこなってください(※7)。SDKを利用する場合はPython2.7が必須となります。以下のコマンドを実行しgoappコマンドが利用可能であることを確認してください。コマンドを実行しバージョン番号が表示されれば動作確認は完了となります。world」を出力させるまでの手順を説明します。Mac特有の部分はほとんどありませんので、Linux環境全般では問題無いと思います。Windowsは適宜読み替えて頂ければと思います。アプリケーションディレクトリの作成アプリケーションディレクトリを作成します。プログラムファイルやAppEngineの設定等はこのディレクトリ配下に置かれます。以下のコマンドからディレクトリを作成してください。作成したディレクトリに移動し以下のプログラムを作成します。ファイル名は「hello.go」とします。app.yamlの作成app.yamlはGAEの設定ファイルとなります。以下の内容をそのままコピーしてファイルを作成してください。「application」で指定するIDはホスティング先のプロジェクトID(後述)となりますが、ローカル環境で動作させる上では適当な文字列で問題ありません(※8)。World」を出力するだけのプログラムでは問題ありませんが、データストア(GAE標準のデータベース)をローカル環境で利用する場合は注意が必要です。データストアのレコード(エンティティ)を識別するためのキーには、構成として「application」のID(=ProjectID)が含まれているため、例えばapplication「a」でデータストアのエンティティを作成した後、app.yamlのapplicationを「b」に変更すると、「a」で作成したエンティティに参照できなくなります。データストアについての詳細についてはGAE/GOの第2弾記事で取り上げる予定です。_go_appここまでの手順で以下のフォルダ構成になっていることを確認してください。開発サーバの起動ローカル環境でアプリケーションを動作させるためにはgoappのサブコマンドであるserveコマンドを利用します。SDKのインストールが完了していれば以下のコマンドが利用できると思いますので、以下のコマンドを実行してください。firstgo(※9)※9「firstgo」は本章(1)で作成したアプリケーションディレクトリとなります。[-port]オプションでポート番号の指定が可能です。オプションを指定しない場合はデフォルトで8080ポートが割り当てられます。ブラウザで確認ブラウザで以下のURLにアクセスしてください。world!」の文字列が表示されていることが確認できればOKです。http://localhost:8080/hello作成したGAE/GOアプリをデプロイ(サーバにアップして公開)する本章ではGAE/GOアプリケーションのデプロイ方法について説明します。Platform)の一つとなります。GAEに限らず、GCPのクラウドサービス(※10)を利用する場合は、最初に「プロジェクト」の作成が必須となります。事前準備として「プロジェクト」の作成手順について説明し、その後に実際にアプリケーションをデプロイするための手順について説明します。Engine)等、Googleはさまざまなクラウドサービスを提供しています。前述した通り、GAEを利用するためには、事前にGCPプロジェクトを作成しておく必要があります。以下の手順に従ってGCPプロジェクトを作成してください(※11)。GCPプロジェクトが作成済みの場合は次のステップに進んでください。Consoleへのアクセス以下のURLにアクセスしてください。アクセスするにはGoogleアカウントが必要となります。Googleアカウントを持っていない場合は最初にアカウントの作成が必要です。Condoleのトップ画面に遷移します。Worldアプリのデプロイ」をクリックしてください。プロジェクトの作成プロジェクト作成用のモーダルが表示されるので以下2つの項目を入力し「作成ボタン」を押下してください。例として「my-first-go-project」というプロジェクトを作成します。プロジェクト名プロジェクト名は任意の文字列となります。プロジェクトIDtwitterIDのように全世界でユニークなIDを入力します。利用されているIDを入力した場合は赤文字で警告エラーが表示されます。プロジェクトの作成が完了するとプロジェクトのコンソール画面に自動遷移します。これでデプロイのための事前準備は完了となります。app.yamlの編集デプロイ先の指定はapp.yamlでおこないます。「事前準備」で作成したプロジェクトIDを「application」に指定してください。例として「事前準備」で作成したプロジェクトIDを指定します。デプロイコマンドの実行app.yamlの編集が完了したら以下のコマンドを実行します。ブラウザで確認ブラウザで以下のURLにアクセスしてください。world!」の文字列が表示されていることが確認できればデプロイは成功です。http://my-first-go-project.appspot.com/helloこれで世界中から上記URLでアクセス出来るあなただけのサーバが起動しました。1日数十万アクセスが無い限り課金されてしまうことはありませんので、安心してください。不安でしたら、課金停止かサービス停止をしておきましょう。World」を出力するための手順についての説明は以上で終了となります。GO言語そのものよりも、GCP(GAE)のはじめ方がわからずに中々手が出なかった方も多いのではないでしょうか。今回説明させていただいた通りGCPはとても簡単にはじめることができるプラットフォームになっています。今回の記事がGAE/GOだけでなく、GCPのさまざまなサービスに触れるキッカケになればとても嬉しいです。最初に書いた通りapps-gcpではGAE/GOをシリーズとして連載していきます。次回の第2弾記事は「データストア」に関する記事となります。