こんにちは。エディター見習いのうららです。IoTに興味があり、鋭意勉強中です。
最近、「GCP」という言葉を社内でよく聞くようになりました。なんでも、Googleが提供している、世界中のWebサービスで使われているものらしいのですが……。さっぱりわからないので調べてみます!
目次
そもそもGCPってなに?
GCPは、Google Cloud Platformの略称。Googleの土台となっているシステム(インフラ)を使えるサービスの総称で、いろーんなことができます。エンジニア風に言うと、「ビルドやテスト、デプロイを、Googleのインフラでおこなえる」サービスのセットとなります。
このインフラは、Googleの検索だったり、60億時間分のYouTubeだったり、4億2500万人分のGmailを支えている巨大なもの。だからこそ、安定性やスケールアップには優れているんです。(参照)
具体的にどういうことができるの?
- コンピュート(コンピューターによる処理)
- ストレージとデータベース(データの保存)
- ネットワーキング(クラウドの提供)
- ビッグデータ(ビックデータの分析)
- 機械学習(プラットフォームや開発環境の提供)
- 運用ツール(モニタリング・ログ・レポートなど)
- デベロッパーツール
- ユーザー管理とセキュリティ
……ひとつひとつじっくりと見ればなんとなくわかる気もしますが、カタカナが多くて見にくいですね。ざっくりとまとめると、インターネットを通した処理に強そうな感じです。(特にリアルタイム)
この中でも「機械学習」はなかなか話題になっているようです。「Cloud Machine Learning」というサービス名称らしく、TensorFlowがベースとなっています。トレーニング済みのモデルを提供しているとのこと。(参照)(機械学習については以前にもLIGブログで記事にしましたのでこちらもどうぞ)
また、機械学習の結果を銀河に表示できるサービスも登場しているようです。(記事はこちら)
The Explorer demo for our Cloud Vision API is now available for everyone. Start exploring: https://t.co/nb4ITchk7g pic.twitter.com/ZnFHVHSLIE
— GoogleCloudPlatform (@googlecloud) 2016年5月24日
どうすれば使えるの?
https://cloud.google.com/pricing/
登録をすればすぐに使えますが、使いたいサービスによっては無料のものもあれば、有料のものもあります。ただ、固定料金ではなく、分単位で課金されるため余分な出費は抑えられるように見受けられます。
https://cloud.google.com/docs/#header
対応している言語はNode.js、Python、Ruby、Go、PHP、Javaの6種類。Node.jsとRubyは、2016年3月下旬に追加されたばかりなのだそう。
どこで使われているの?
想像がつかなかったので、実際に使われているサービスを調べてみました。
人気SNSアプリ「Snapchat」のインフラ
アメリカで爆発的な人気が出て、ここ数年は日本の女子大生にも人気な「Snapchat」に使われています。ユーザー数は1日1億人、約80億本のビデオを見られるようにするためにGCPが使われているのだとか。2014時点ですがエンジニアは25名、そのうちインフラ担当はごくわずかで回っているようです。
Snapchat が説く GCP でのセキュリティ ベスト プラクティス
http://googlecloudplatform-japan.blogspot.jp/2016/03/snapchat-gcp.html
Snapchatを支える技術:768台のRedisをGoogleクラウドで構築 #gcpja
http://qiita.com/kazunori279/items/e86636bb5908295c8c0f
New Yorkでのタクシー配送(需要の予測)
過去のタクシー配車データ、天候データを元に、#BigQuery、#TensorFlow を使って、特定の日のタクシーの需要を予測する機械学習モデルを解説! https://t.co/T0Puyw2xnQ #gcpja pic.twitter.com/qPKA4d4wWH
— GCP JP (@googlecloud_jp) 2016年6月7日
ニューヨーク市のタクシーの利用データをGCPの機械学習で学習させ、タクシーの需要を予測するという事例がありました。
ひとたびモデルを訓練してしまえば、新しい予測子データを対象にモデルを実行するのはごく簡単なことです。たとえば、今後 3 日間の天気予報データがあるとします。ニューラル ネットワークに予測子変数(曜日、最低・最高気温、降水量)を渡せば、今後 3 日間のタクシーの需要予測が返されます。(参照)
日本ならバスや電車にも使えそうですね。機械学習すごすぎる……!
他にも、海外で人気のアプリなら「Spotify」のインフラもGCPが使われているとのこと(参照)。
商品の在庫管理
スポーツ用品販売の @SportsAuthority は Google Cloud Platform で毎秒 2,000 トランザクションを処理し商品在庫情報を顧客に提供!https://t.co/oNy8G3k2i6 #gcpja pic.twitter.com/o1HITD1eRh
— GCP JP (@googlecloud_jp) 2016年2月29日
スポーツ用品を販売する「Sports Authority」は、オンラインショップから地元の店舗に欲しい商品の在庫があるかを確認できます。全米とプエルトリコで460以上の店舗、50万点近くの商品へ24時間アクセスできるバックにGCPが使われているのだとか。
Sports Authority の導入事例 : Google Cloud Platform で毎秒 2,000 トランザクションを処理し、商品在庫情報を顧客に提供
http://googlecloudplatform-japan.blogspot.jp/2016/02/sports-authority-google-cloud-platform.html
要するにメリットは?
これまでの情報をまとめると、Googleがアプリケーションやデータベース、ストレージの管理をしてくれるので、
- システム管理の心配がいらない
- 素早く開発やデプロイ、 イテレータができる
- スケールアップ&ダウンが簡単にできる
- 定額ではなく、使った分しか支払わなくていい
- サポートポートも充実、というかリソースがたくさんあるので詰みにくい(はず)
といったことがメリットとしてあげられます!
ということでさくっと使ってみた -Google Vision API-
チュートリアルにあったGoogle App Engineの体験をしてみようと思います。Google App Engineは、開発したWebアプリをGoogleのインフラで実行・管理できるサービスです。
GCPとNode.jsで「Hello world!」します。
1. まずは登録
GCPにアカウントを登録します。
2. 「App Engineを試す」を選択
無事に登録できると、このようなコンソール画面に飛びます。Hello world!アプリを作成してデプロイするという「App Engineを試す」を選択。使える言語が一覧で表示されるので、Node.jsを選んでみました。
3. チュートリアルに沿ってnpm
「App Engineを試す」を選択すると、このような英語の説明がずらっと出てくるのですが、番号が振られているところのコードを打ち込んでいくだけで大丈夫です。Hello world!のアプリをインストールして、ローカルで走らせる流れとなっています。
App listening on port 8080
こちらが表示されたらhttp://localhost:8080
にアクセスします。
Hello world!と表示されていたらOK! 簡単ですね!
余談(略語と関連サイト)
ちなみにGoogle App Engineは「GAE」と略されるときもあります。略語だらけでわからなくなりそうなので、下にまとめておきます。
GCP | Google Cloud Platform |
---|---|
GAE | Google App Engine(衰退)(PaaS) |
GCE | Google Compute Engine(IaaS) |
GKE | Google Container Engine |
また、いろいろな関連リンクがあったのでこちらも以下にまとめておきます。
メディア
コミュニティ
SNSアカウント
おわりに&づや会やります!
調べてみてわかったのは、「GCPの守備範囲広すぎ」ということです……。そりゃあ、いろんなサービスに活用されますよね、というくらい最強の雰囲気がありました。
さて、そんなGCPをテーマにしたLIG主催イベントを6月16日(木)に開催します! 19:00より株式会社LIGと長野のGEEKLAB.NAGANOで同時開催するので、アクセス可能な方はぜひ参加してみてください!
http://lig.connpass.com/event/32375/
それでは!
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。