Help us understand the problem. What is going on with this article?

2019/11/12 Cloud OnBoard Google Cloud Platform Fundamentals: Core Infrastructureに行ってきたメモ

概要

https://inthecloud.withgoogle.com/onboard-global/core-jp-register.html?utm_source=google&utm_medium=email&utm_campaign=FY19-Q4-JAPAN-onboard-physicalevent-er-gcp_field_tkyjp_OnBoardCoreIn_1112_EM&utm_content=share-event

私のGCP知識について

ウェブサービスに関わるGCPサービスは、商用利用しており基礎的な部分は理解しているつもりで参加しました。

モジュール 1: GCPの紹介

GCPの目指すところ

  • アプリ開発に注力できること
    • まだ仮想マシンを利用するケースが多く管理のコストが高い
    • インフラ部分の管理をGCPが行う、完全なサーバレスを目指している
  • エンドユーザが求めるサービスに応じてアプリ開発をする
    • データ分析など

GCPのサービスは最寄りのエッジ接続拠点からアクセスし、その先はgoogleのセキュアなネットワークでGCPを利用できる

マルチリージョン > リージョン > ゾーン
複数ゾーンで構築すれば障害に強い
- 東京リージョン 3ゾーン
- 大阪リージョン 3ゾーン

Googleが開発したOSS

Kubernetes
Tensor Flow
など
OSSを取り入れてGCPサービスを開発(GKEなど)しているため、ベンダーロックインせずに使える

GCPのリソース階層

  • Identity and Access Management(IAM)
  • Cloud Identity

組織ノードはgoogleのsalesに依頼する
- gsuiteを利用する
- cloud identityを利用する
※いずれも自社ドメインが必要

ユーザごとにアクセスポリシーの設定ができる
必要最小限のポリシーを下の階層で設定してあげるのがポイント

サービスアカウント

サーバなどリソースに割り当てられる権限

モジュール 2: VM とストレージ

GCPはVPCをグローバルに構築可能(AWSはリージョンごと、VPCピアリングが必要)

VM

スケールアップとスケールアウト

スケールアウトが主流
自動スケーリングで復元性とスケーラビリティに優れたアプリケーションに対応
LoadBalancerで受けたリクエストを複数リージョンにまたがったVPC内のリソースに対して負荷分散できる

ストレージ

Cloud Storage

マルチリージョン
例えばアプリケーションと同じリージョンに配置したいとき、
ユーザが任意にリージョンを選べないのでどのリージョンが使われているかわからないので不便
→dual regionが最近選べるようになった!

Cloud Bigtable

→最古のGCPのデータベースサービス
 ペタバイト級のデータの格納でいる
 単位時間あたりの書き込みが多いものにおすすめ

Cloud Datastore

水平スケーリングが可能な NoSQL DB
オブジェクト構造をそのままDBに保存

Cloud SQL

サポート対象は下記
- MySQL
- PostgreSQL
- Sql Server(β版)
インスタンスを立ててデータを突っ込むだけで、スケーリングはGCP側行う
水平スケーリングは苦手なので、インスタンスを大きくする垂直スケーリングが良いが、リードレプリカを複数立てることで読み出しの速度向上は期待できる

・cloud spanner
水平スケーリングが得意。
RDBMSでペタバイト級のデータを扱える

(すでにCloud SQLは現在利用していて、比較としてのCloud Spannerはいい事ずくめな気がしたけど、料金が高いのかな・・・?)

モジュール 3: コンテナとアプリケーション開発、デプロイとモニタリング

  • 2000年代中盤からGoogleではコンテナを使い始めていて、Gmailなど主要なサービスのほとんどで使われている
  • Googleでは20億個のコンテナを毎週デプロイしている − Googleの社内で利用されているBorg(社内コンテナオーケストレーションシステム)にインスパイアされて作られたOSS
  • azureにもawsでもKubernetesを利用できるので、クラウド環境を選ばない

何もない状態からkubeを利用するには数日かかってしまうだろう
GKEを利用することで管理はGCPにまかせ、Kubernetesの機能のみを利用できる

Kubernetesクラスタ作成について

ゾーン 一つのゾーンで
リージョン 1つのゾーンにつくられ、そのレプリカが他のゾーンにつくられる
クラスタを作ったらほとんどコマンドラインを使うことになるだろう
クラスタを操作するためのクレデンシャルをコマンドラインで取得
kubectl
kubenetesを操作するためのコマンド

デプロイ

kubectl run hogehoge --image=gcr.io/sample/hogeapp --port 8080

デプロイされてるか確認

kubectl get depoloyment

外部IP付与

kubectl expose deployment hogehoge type loadbalancer (あってるかわからないけど雰囲気で)

・・・kubernetesのメニューからつくるとき、GCRでイメージ指定できるかな???

GCRとか地味に出てきてて、所見で理解できるかは・・・
CIでやるにはどうしたらいいかな?

AppEngine

操作は基本的にコマンドラインで行う

SE

AppEngineはコンテナベースのインスタンスが起動されるが、Dockerコンテナではない
Borgが使われている
起動早い、安い
サンドボックス制約あり

FE

GCE、dockerで動いている
サポート外の言語もカスタムランタイムとして利用できる
柔軟だけど起動遅め、スケールも遅め
サンドボックス制約なし

フロント、バックともに内製ならCloudEndpoint
外部のユーザがフロントの場合Apigee Edgeがよい

その他サービス
Cloud Source Repositories

BitBucketともミラーリングできる
CLoudBuildと連携するとすべてGCPで完結しそう(料金面はおいといて・・・

Deployment Manager

インフラの定義をyaml表現
yamlテンプレートによって、環境一式を自動作成できる
→機械的に環境構築をすることで工数削減、人為的ミス防止にもつながる

モジュール 4: ビッグデータと機械学習

導入事例

Spotifyがおすすめプレイリストを作成するためにBigQueryを利用
オンプレのHadoopからBigQueryへ移行
実績値として処理時間が数時間から数分へ

Machine Learning API

機械学習の知識がなくても学習済みのモデル?を提供しているAPI

私みたいな何も知らないエンジニアがそれっぽいものを作るには手っ取り早くてよさげ

Cloud Vision API

GCPのブラウザコンソール上で試せる
AIと機械学習プロダクト
画像解析

Cloud Speech API

音声データから文字起こし

Cloud Natural Language API

GCPのブラウザコンソール上で試せる

Quiklabs

https://www.qwiklabs.com/quiklabs
もともとはawsの演習環境を提供していたサービス会社でGoogleが買収
いまはGCPの演習環境を提供
Quiklabs内でGCPの一時アカウントが発行されるのでそれを利用する

感想

会場での配布資料(PDF)は非常にボリュームがあり、それをベースに講義は進行しました。
正直メモを取る部分がないくらいで、あとから見返しても理解しやすいものだと思います(登壇者の方がポロっと言ったことを書き留めるくらい)。
デモの時間が少しあり、実際の動きを見ることができるので、GCP全く知らない人のとっかかりの選択肢としてはいいのではないかと思いました。会場で配布されたURL(キャンペーコード経由)でQuiklabsを開けば、自宅でもハンズオンができるようなので、復習できる環境は用意されています。
セミナーの最初にアナウンスされていたとおり、これからGCPを導入する人や、本格的な勉強のきっかけにしたい人向けのセミナーなので、ある程度商用利用で運用している人にとっては物足りないかもしれないです。
例えばAppEngineのSE、FEの違い、ストレージでも複数サービスがあって目的別の使い分けなど、自分の中で曖昧だったものが整理された点は、参加してよかったなと思います。
あまり期待していなかった機械学習のセクションでしたが、学習済みモデルが容易されているAPIがあるとのことだったので、機械学習についての知識がなくても、アイデアしだいではこれらを利用し良い感じのサービスができそうな気がしました。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away