【トップゲート主催】ゲーム業界様向けGCP活用のポイント 〜Google App Engine編〜

GCP

投稿日:2020/08/03 | 最終更新日:2020/09/10

トップゲートはGoogle Cloudのプレミアパートナーとして、Google Cloudに関する様々なセミナーを開催しています。

この記事では、ゲーム業界様向けにGCPの使い方を解説した「GGG Study」の内容についてご紹介します。

GGG Studyは全6回に分けてGCPの各スキルを習得していただくための勉強会です。第1回では、Google App Engineについて解説していきます。

GCPの3つの特徴

3つの特徴
まずはGCPについて簡単に特徴をご紹介します。

セキュリティ

GCPでは高い水準のセキュリティ品質を保つために、各レイヤーにおいて様々な対策が行われています。

ハードウェア

GCPでは非常に高い品質の基準を設けており、インフラとして利用するほとんどのハードウェアを、自社で製造しています。

監視チーム

700人以上のセキュリティスタッフが365日24時間、常時監視を行っています。

第三者認証

第三者認証
ISO27001/27002/27003やSOC1/2/3といった国際的なセキュリティ認証を取得しています。また、FISCやGDPRへの対応も可能です。

セキュリティ支援機能

セキュリティ支援機能
GCPでは、各レイヤーにおいてユーザーが利用できるセキュリティ機能をサービスとして提供しています。アプリケーションやネットワークのセキュリティはもちろん、認証認可の仕組みや、Cloud Armorと呼ばれるオールインワンのセキュリティソリューションなど、複数のサービスを組み合わせて利用環境を安全に保つことが可能です。

ネットワーク&インフラ

ネットワークインフラ
GCPネットワークの特徴として、ネットワークインフラとして自社で海底ケーブルを敷設しており、Google独自のネットワーク網を利用可能であることがあげられます。日本には東京と大阪の2リージョンを展開しており、リージョン単位での高可用性設計を構築することができます。

ビッグデータ&機械学習

ビッグデータ_機械学習
また、GCPの数あるサービスの中でも最もよく利用されているサービスの1つがBigQueryというデータ分析のサービスです。フルマネージドのサービスであり、非常に簡単にビッグデータの分析を実行することができます。また、自社の膨大なデータから学習した人工知能のAPIサービスを提供している点も大きな特徴の1つです。

Google App Engine(GAE)の概要

ここからはGAEの特徴と、その利用方法についてご紹介します。

GAE_責任範囲
Google App Engine(GAE)とは、フルマネージド型のサーバーレスアプリケーションプラットフォームです。インフラ部分はGCPが管理するため、開発者は開発に集中することができます。

オートスケール
また、GAEではアプリケーションの負荷に応じてオートスケールによりインスタンスが拡張されるため、需要予測をする必要はありません。スケールアウトの速度は非常に高速であるため、中長期的なユーザー数の変化だけでなく、日中の細かな負荷の変化にも対応可能です。従量課金制であり、利用した分だけ支払う形態となっています。

アプリケーション開発を支える機能

GAEでは下記のような機能を備えており、アプリケーションを開発、運用していく上で重要な要素をサービスとして実装可能です。

  • 多数の開発言語をサポート(Java, Python, PHP, Go, Node.js, Ruby, C#等)
  • Blue/Greenデプロイが簡単に実現可能
  • モニタリング、ロギング、デバッグが容易に可能
  • 強力なアプリケーション診断機能
  • マネージドのSSL/TLS証明書も追加費用なしで利用可能

2種類の実行環境

GAEでは、2種類の環境からアプリケーションの環境を選択することができます。スタンダード環境(GAE SE)では、アプリケーションはGoogleが管理するコンテナインスタンスの上で動作します。そのため、非常に安全性、信頼性の高い基盤上でアプリケーションを稼働させることが可能です。

一方フレキシブル環境(GAE FE)ではアプリケーションはGoogle Compute Engine上のDockerコンテナで動作します。利用出来る言語ランタイムやリソースなどの自由度が高く、より柔軟に環境を設定することが可能です。

Google App Engine(GAE)における開発の流れ

GAEでアプリケーションを開発する手順をご紹介していきます。

1. プロジェクトの作成

プロジェクトの作成
まずはプロジェクトを作成します。プロジェクトとはGCP内でリソースの管理に使用する単位のことで、全てのリソースはプロジェクトと紐付けられ、プロジェクト単位でユーザー管理や課金が行われます。そのため、GAEでアプリケーションを作成する前に、そのリソースを紐付けるプロジェクトを作成する必要があります。

プロジェクト選択画面で「新しいプロジェクト」から作成することができます。

2. Google App Engine(GAE)の初回設定

初回設定
GAEを初めて利用する場合には初期設定画面が表示されます。コンソールから「Google App Engine」をクリックすると、ウェルカムページが表示されます。「アプリケーションを作成」をクリックし、リージョンを選択します。また、ここで設定する言語は実行環境の設定ではなくチュートリアル表示用の設定です。

3. プログラムを書く

Cloud_Shell_有効化
では実際にコードを記述していきます。ここではまずクラウドベースのインタラクティブシェル環境であるCloud Shellを利用して記述する方法をご紹介します。Cloud Shellでエディタを起動し、YAMLファイルとプログラムの本体を記述します。

yamlファイル
YAMLファイルではアプリケーション自体の設定を指定します。ランタイムの定義や、インスタンスクラスの種類、環境変数、スケーリングタイプなどをYAML形式で記述して構成することができます。

4. デプロイ

Cloud_Shell_デプロイ
コードが記述できたら環境をデプロイします。Cloud Shellのコンソールから下記コマンドを実行することでデプロイすることができます。
gcloud app deploy
gcloudはGCPを制御するためのCLIツールであるgcloud CLIにおけるコマンドです。

以上の4ステップでアプリケーションをデプロイすることができます。面倒なインフラの構築は必要なく、開発者はインフラを意識せずにアプリケーションの開発を開始することができるようになります。

ローカル環境からのデプロイ手順

上記の手順ではGCPのCloud Shellを利用してアプリケーションをデプロイするまでの手順をご紹介しました。GAEではCloud Shellだけでなく、使い慣れたローカル環境を活用してアプリケーション開発を実施することも可能です。

1. Cloud SDKの導入

GCPではローカル開発環境用のSDKを提供しています。Macの場合はターミナルから、Windowsの場合は専用のインストーラからSDKをインストールします。バージョンを確認し、最新のリリースに更新しておきます。

2. SDKの初期化

ターミナル(コマンドプロンプト)から以下のコマンドを実行して初期化を行います。
gcloud init

許可設定
ブラウザが開き、Googleアカウントに対するアクセス権限の許可設定を求められます。許可を行い、初期設定は完了です。

3. プログラムを書く

ローカルの開発環境でコードを記述します。任意のエディターを利用して開発することが可能です。

4. デプロイ

ローカル環境_デプロイ
最後にターミナル(コマンドプロンプト)で下記コマンドを入力し、アプリケーションのデプロイは完了です。
gcloud app deploy

Google App Engine(GAE)におけるバージョン管理

バージョン管理
GAEではデプロイのバージョン管理を自動的に行なっており、バージョンごとにトラフィックの割合を設定することが可能です。コンソール上で簡単に設定することができ、Blue/Greenデプロイを容易に実装することが可能です。

トラフィックを分割
コンソールから「バージョン」をクリックし、「トラフィックを分割」を選択します。どのバージョンにどの程度のトラフィックを割り振るかを指定するだけでデプロイ手法を柔軟に変更することができるため、アプリケーションのリリース時に大きなトラブルを回避することが可能です。

Google App Engine(GAE)の料金体系

最後に、GAEの料金体系についてご紹介します。

無料枠

GAEには無料枠が設定されており、小規模の環境であれば無料で使い始めることが可能です。Fインスタンスでは1日あたり28インスタンス時間、Bインスタンスにおいては1日あたり9インスタンス時間分が無料で使うことができます。例えばF1インスタンスクラスを2つ利用する場合、1日14時間までは無料で利用することができます。

モデルケース

東京リージョンでの各インスタンスにおける価格は下記表に一例を記載しています。

インスタンス
クラス
1インスタンスの
1時間当たりの費用
メモリ CPU
B1 $0.07 256 MB 600 MHz
B2 $0.13 512 MB 1.2 GHz
B4 $0.26 1024 MB 2.4 GHz
B4_1G $0.39 2048 MB 2.4 GHz
B8 $0.52 2408 MB 4.8 GHz
F1 $0.07 256 MB 600 MHz
F2 $0.13 512 MB 1.2 GHz
F4 $0.26 1024 MB 2.4 GHz
F4_1G $0.39 2048 MB 2.4 GHz

モデルケースとして、インスタンスクラス「F1」を使用している場合に、0:00 ~ 12:00はインスタンス数が平均1、12:00 ~ 24:00はインスタンス数が平均2だったケースを考慮してみます。

利用料金
= {1 インスタンス × 12 時間 + 2 インスタンス × 12 時間} × $ 0.07 – 無料枠
= {12 + 24} × $ 0.07 – 28 × $ 0.07
= $ 0.56 / 日

つまり、上記モデルケースにおいては月額$ 16.8で利用することが可能です。

まとめ

この記事では、Google App Engineにおける特徴と、その利用法についてご紹介しました。GAEはアプリケーション開発を迅速に開始し、運用負荷を軽減することのできるプラットフォームです。 小さな環境から、非常に大規模な環境まで拡張することのできるサービスとして本番環境での実績もありますので、ぜひ活用を検討してみてください。



弊社トップゲートでは、 GCP 、または G Suite 導入をご検討をされているお客様へ「Google Meet で無料個別相談会」を実施いたします。導入前に懸念点を解決したい方、そもそも導入した方がいいのかをお聞きしたい方はお気軽にお申し込みください!

お申込みはこちら

また、GCPを活用したトレーニングも開催しておりますので、ご興味ございましたらお気軽にお問い合わせください!

GCPトレーニングのご相談はこちら

メール登録者数3万件!TOPGATE MAGAZINE大好評配信中!
GCP、G Suite、TOPGATEの最新情報満載!

メルマガ登録はこちら

ゲーム業界様向けGCP活用のポイントの他の記事

ゲーム業界様向けにGCPの使い方を解説した「GGG Study」は、全6回に分けてGCPの各スキルを習得していただくための勉強会です。全6回の内容とスケジュールを公開しますので、ぜひお楽しみにしてください。

第2回目
【トップゲート主催】ゲーム業界様向けGCP活用のポイント〜GCP for Gaming編〜

第3回目
【トップゲート主催】ゲーム業界様向けGCP活用のポイント〜Google Kubernetes Engine編〜

第4回目
【トップゲート主催】ゲーム業界様向けGCP活用のポイント〜BigQuery編〜

第5回目
【トップゲート主催】ゲーム業界様向けGCP活用のポイント〜Cloud Run編〜

第6回目
【トップゲート主催】ゲーム業界様向けGCP活用のポイント〜Firebase / Firestore編〜
8月8日(土)AM7:00公開

記事を探す

GCP のメリットを最大限に活用しよう!

GCP・G Suite のご相談・
お見積り依頼はお気軽に
TEL.03-5840-8815
お問合せフォーム TEL.03-5840-8815