こんにちは!技術広報グループのなりなりです。 業務では、Unityでクライアント側のゲーム開発に関わっています。

今回、社内エンジニア向けに行われたGCP(Google Cloud Platform)の講習へ参加いたしました。

image1

GCP(Google Cloud Platform)とは

GCPとは、Googleクラウド上で利用できる複数のサービス群の総称です。 VMインスタンスの作成ができるCompute Engineやビックデータを高速解析できるBigQueryなど様々なサービスがあります。

公式の概要ドキュメント

今回のイベントの流れ

今回は、岡山事業所、福岡事業所での、GCPハンズオン講習を行いました。また、福岡事業所では実際に運用している各種の社内システムをGCPに移行することを考えた場合にどうするのがよいかという、構成提案と検討の会も行われました。 それぞれの内容についてレポートします。

ハンズオンの目的

KLabでは、すでにGCPをデータ分析などで活用しているのですが、より広く多様な用途に活用できないか、これまで触れたことのなかったアプリ側のエンジニアが学習することで、より幅広い活用ができないかと考え、 GoogleのGCP担当エンジニアの方に講義をしていただきました。

ハンズオン内容

GCPの講義ですが内容は以下のものでした

  • GCPについての説明
  • GCP環境準備ハンズオン
  • GCE(Google Compute Engine)ハンズオン
  • GAE(Google App Engine)ハンズオン
  • GKE(Google Kubernetes Engine)ハンズオン
image4 image2

およそ5時間かけて講義を行いました。 まず座学で説明をおこない、GCPの主要なサービスと その特徴について説明いただきました。

その後、GCPを利用するための準備を行っていただき GoogleConsoleの使い方やインスタンスの立て方などをハンズオンしました。

image3

そして各種ハンズオンを行っていき説明->実作業を繰り返しながら講義を進めました。 基本的に手順通り作業をこなしていき、いくつか演習を行い 次のハンズオンに移るという流れで進みました。

途中休憩をはさみ 最後にGKEのハンズオンを行いました。

image5image7

資料の方はお見せできませんがハンズオン資料は、とても見やすく作られており 講義中、大きく詰まることもなく進行する事ができました。

ハンズオン後は、懇親会を行い GCPに限らない様々な話をGoogle様と行うことができました。

各講義の内容を簡単に振り返ってみます。

GCE(Google Compute Engine)ハンズオン

公式の紹介サイト

ハンズオンで体験した内容

  • VMインスタンスの立ち上げ
  • VMインスタンスへのアクセス方法
  • Google Cloud Shellについて

GCEは仮想マシンの提供サービスでVMインスタンスの作成や管理ができます。

ハンズオンで触った感想としてはVMインスタンスの立ち上げが速く30秒ほどで1インスタンス立ち上げることができ、インスタンス作成の速さやマシン構成の選択肢の豊富さを知ることができました。また、VMへのアクセスは専用のWebコンソールGoogle Cloud Shellを利用してアクセスしました。

GAE(Google App Engine)ハンズオン

公式の紹介サイト

ハンズオンで体験した内容

  • 設定ファイルに利用言語やアプリ情報など設定
  • 実際に一部機能をコーディング
  • デプロイの仕方
  • 過去バージョンの管理
  • スケール変更の体験

GAEはGoogleインフラ上でアプリの作成や実行を行うサービスです。

YAMLファイルに作成したいアプリ情報とRequest Handlerなどの設定を行うだけ必要な環境が自動生成されコーディングするだけでアプリ実行する事ができる様になっています。

ハンズオンで触った感想としては、言語に合わせて事前にライブラリやフレームワークなどを用意せず、いくつかの設定ファイルを記載するだけで言語に合わせた環境が用意ができたのでかなり便利に感じました。

GAEがサポートしてる言語でのみ利用できる形になりますが主要な言語は、ほとんどサポートされており、自由度は維持しつつ事前準備などを省略できアプリ制作が迅速行えそうでした。

また、コード修正やコマンド実行などブラウザ内で完結しておりソフトを事前に入れたりせず環境構築がほぼ不要で利用できるのはとても良いと感じました。

GKE(Google Kubernetes Engine)ハンズオン

公式の紹介サイト

ハンズオンで体験した内容

  • Dockerビルド
  • GKEへDockerをコミット
  • Podsの設定と作成
  • Nodeの設定と作成
  • 自己修復機能の体験
  • オートスケールの方法
  • デプロイ手法の紹介と実践
    • Blue-Greenデプロイ
    • カナリアデプロイ

GKEはDockerのコンテナ機能を管理するサービスです。

今回のハンズオンのメインであるため少し詳しく説明したいと思います。

Dockerを利用して大きなサービスを作るとコンテナは多くなっていきアップグレードやコンテナ単位の障害や複数コンテナにデプロイする場合どうするかなど多くの課題発生するのですがGKEではそうした課題が解消できます。

GKEではコンテナの集まりをPodと呼び、更にPodを管理するNodeがあります。

サービスの一部が障害になった場合、Nodeが自動で障害起こしているPodを再起動する形になっており、またPod単位でコンテナにまとめてDeployできるになっています。スケールアウトする際はPodの複製数の上限下限を予め決めてアクセス負荷に合わせてスケーリングを行ってくれます。

ハンズオンで触った感想としては、複数のコンテナをまとめて管理した上で障害等あった場合は、自動で復旧ができるので可用性があり、活用しやすいと感じました。

DockerファイルをGKE上で管理するためDockerとGKEの両方学習コストが必要ですがGKE側は少ない作業でシステムを構築して管理できるため、大きなデメリットにならないことがわかりました。

GCP移行検討提案会

翌日は、実際に当社のサービスの一部をGCPに入れたらどのような構成になるかGoogleのGCP担当エンジニアの方にご提案いただきました。

image6

ハンズオンに参加したエンジニアと本社のエンジニアを交えながら懸念等がないか深いところまで掘り下げて話し合うことができました。

終わりに

当社では積極的にクラウドの活用を進めていますが、今回、GCPハンズオンを通じて実際にどういったサービスが使えるのか活用するにはどうしたらいいのかを、さらに多くのエンジニアが学ぶことができました。

同時に当社の既存サービスをGCPに乗せるにはどういった構成ができるのか提案を行ってもらい、実際に業務利用する場合は、どうしていくべきなのか等の検討を進めていくことができました。

今後も技術広報グループではこうした取り組みについて積極的にレポートしていこうと思っております。