DSOC Infrastructure Group の 大澤 です。
先週開催された、Google Cloud Next 2019 に参加してきました。
参加者はCTOの藤倉とR&D島、大澤の3名です。旅行記やイベントそのものについては島の記事を読んでいただくとして、今回は Next 中に発表があった内容や気にあるセッションの感想などをつらねていきたいと思います。
かなり長くなってしまったので前編、後編に分けました。 *1
会場のモスコーニセンターです。電柱が邪魔をして上手く撮れなかった。。。
Day 1 Opening Keynote
Day 1のオープンニングキーノートで発表された、Anthos が目玉だったと思います。昨年発表された、 Cloud Services Platform が正式サービスとしてされたローンチしたもので、オンプレミス・クラウドを意識することなく、 Kubernetes クラスタを一元管理できるようになります。VMWare から GCP への移行のデモがあり、ハイブリッドクラウド(オンプレミスとクラウド)の文脈かと思いきや、デモ中に AWS のエンドポイントもこっそり出てきていることから、マルチクラウド( Google と Google 以外のクラウド)の利用もできるようです。ハイブリッドクラウド、マルチクラウドの利用を先駆けて促進していこうとする意思を感じました。
次に気になったのは、OSS ベンダとの提携です。
Elastic, MongoDB, Redis など大手の OSS ベンダが提供するマネージド版を GCP のマネジメントコンソールと統合され、リソース操作はもちろんのこと、請求やサポートも統合されるとのことです。デモ画面では Redis Enterprise が GCP のマネジメントコンソールに出てきていました。
Redis CEO が Keynote にでてきた他、その他 OSS ベンダの CEO も動画で出てきたあたり、Google と OSS の関係性を強くアピールしていましたね。Google では Google で採用していない他の OSS に対してもバグや脆弱性の発見、修正に対する報奨金を提供していることから、昔から OSS と向き合っていてお互いに良い関係を築いていっていることはとても素晴らしいと思いました。
Where Should I Run My Code? Choosing From 5+ Compute Options
一番最初に聞いたセッションです。
GCP が提供している Compute / Container / Serverless サービスの説明とソースコードをどのサービスで動かすのが良いのかについての解説セッションでした。
昨年の Next で同じタイトルのセッションがあるのですが、今年は Cloud Run が追加されていました(Day 1 の Keynote には出てこなかったのでこのタイミングなのは少々違和感ありますが・・・)。
以下、簡単なメモ書きです。
- Cloud Functions
- Serverless(フルーマネージドで、サーバやスケールのことを考えなくても良い)
- イベントドリブン型で、 Cloud Pub/Sub, GCS, HTTP リクエストから発火して動作することができる
- コードを書いて Deploy するだけですぐ動かすことができる反面、ランタイムが決まってしまっている
- 動かした秒数分だけの課金なので、常時稼働する必要がなく安くおさえることができる
- Google App Engine
- Cloud Functions 同様コードに重きを置いているが、Web アプリケーションに強い機能をもっている(バージョニング、トラフィック分離など)
- 2nd Generation Runtimes
- Go 1.12 が Beta、 Ruby 2.5 が Alpha でリリースされた
- GCP API を直接呼び出せる
- 新規でつくるならこちらがオススメ
- ステートレスな Web アプリケーションに向いている
- 実行タイムアウトがあるため、長時間実行する処理は向かない
- Cloud Run
- Knative をベースにした Serverless サービス(Serverless とコンテナの中間に近い感じ)
- Cloud Functions と異なり、シングルスレッドではなく、Concurrency で動作するため、一つのインスタンスで複数の HTTP リクエストを受け付けることができる
- コンテナイメージを使うため、 Google App Engine と異なり、ランタイムに縛られることがなく、好きな言語で動かすことができる
- Cloud Run on GKE
- GKE 上で動作する Cloud Run
- GPU を利用したり、CPU や特殊なアクセラレータが必要なケースはこちら
- Kubernetes Engine
- Kubernetes のマネージドサービス
- Kubernetes のバージョンアップや自動スケーリングなどを容易にできる
- Compute Engine
- 12TB の RAM を搭載した VM マシンを先日発表
- 起動が早い(20秒で起動できる)
- Disk のスナップショットをとるときに 2,3 ミリ秒のロックがかかる程度
- 取得したスナップショットを他のリージョンにコピーするのも簡単にできる
- 特定のカーネル、OS のバージョン、特定のライセンス要件が必要である場合など、既存のシステムから移行してくるケースにフィットする
Plaid's Journey to Global Large-Scale Real-Time Analytics With Google BigQuery
株式会社プレイド の KARTE における BigQuery 事例セッションです。
KARTE はリアルタイム分析 SaaS で、1秒以内にデータを処理する特徴があります。処理量が 秒間 65,000 件、30億件/日、月に 60 PB以上のデータが BigQuery に格納されているとのこと。かなりのヘビーユーザですね。
3つのフェーズを経て、今は Dataflow を利用した BigQuery へのデータインポート・エクスポート機能や、Spanner, BigTable, Redis も活用しているとのことです。
How We Broke the World Record for Computing Digits of Pi (31.4 trillion!)
円周率を31兆桁まで計算して世界記録を更新したことで話題になりましたね。
クラウド(GCP)で計算することのメリットとして、GCE だとライブマイグレーションがあること、バックアップがディスクのスナップショットを取るだけで済むため容易であること、物理的制約がない(プロジェクト中に東京からシアトルに移動になったけど、リモートから操作ができる)が主に上げられていました。
メインコンピュートノードのマシンタイプが n1-megamem-96
(CPU 96コア、メモリ 1.4TB) を 24台 、ストレージノードが n1-standard-16
(CPU 16コア、メモリ 60GB) 1台の合計 25台のクラスタ構成となっており、メインコンピュートノードは Windows Server 2016 とのことですが、計算プログラム(y-cruncher) が Windows に最適化されているという理由からだそうです。121日間稼働して費用はなんと 約 $ 200,000 かかったそうです。
Day2 Product Innovation Keynote
二日目のキーノートでは多くのサービスの発表がありテンションアゲアゲ↑↑ でした(古い)。
Cloud SQL for SQL Server, Managed Service for Microsoft Active Directory
Cloud SQL の SQL Server サポートと Active Directory のマネージドサービスの発表は、Windows ユーザにとっては嬉しいですね。ともに今年後半に一般利用可能になるとのことです。
Cloud Data Fusion
GUI でパイプラインをつくることができるサービスが新発表されました。プログラミング経験がない人でも GUI で ETL のパイプラインを簡単につくることができそうです。
BigQuery BI Engine
データをインメモリで処理することで、通常の BigQuery より高速にクエリ実行することができます。データポータルを組み合わせることで、ダッシュボードの表示が爆速になります。
Connected Sheets
Googleスプレッドシートから SQL クエリなしで BigQuery からデータを取得できるすごいサービスです。取得した後は、スプレッドシート上で計算できるので、KPI やダッシュボードをスプレッドシートでやっているところはかなり重宝しますね。まだアルファなので早くベータで使えるようになってほしいです。
AutoML Table
BigQuery にあるテーブル形式のデータを GUI 上だけで機械学習ができるとのことです。私のような機械学習がまったく分からない人でも、簡単に使えるサービスってどんどん増えてますね〜。
Document Understanding AI
契約書や請求書など文書化されたものを機械学習を用いて自動的に分類、抽出ができるようになります。
https://cloud.google.com/solutions/document-understanding/cloud.google.com
Cloud Search
AWSのサービスと混在してしまいますが、別サービスです。Gmail や Google ドライブ、Slack, Workplace などを連携して包括的に検索ができるサービスです。色んなところに散らばったドキュメントを一発で検索できるのですごく便利ですね。アダプタは自分で実装することができるので、マイナーなプロダクトでも連携することができます。
Day 1の反動なのか、Day 2 で一挙に新サービスが発表されてお腹いっぱいです。これ以外にも多くのアップデートが発表されているので、キャッチアップするだけでヘトヘトになりますね。。。
Windows Server Containers in Google Kubernetes Engine
前半は GCP カスタマーの Baker Hughes GE の事例紹介で、レガシーWindows(Windows 95、レガシー DLL、古いコンパイル済実行ファイル)、Excel ベースの解析、ライセンス制約で Linux に移行できないと、かなり辛い状況に置かれていた模様。 モダナイゼーションをしているなかで、心待ちにしていた Windows コンテナの登場にジョンレノンの「I Have a Dream」や「Imagine」の「You may say I'm a dreamer.」をかけたジョークが出てきて会場から笑いが。
後半は Windowsコンテナや、Windows Container on GKE の紹介でした。
Windows Host OSには2種類あって、Long-Term Servicing Channel と Semi-Annual Channel がある。Semi-Annual Channel は年2回の機能アップデートがあるのでこちらを推奨しているとのこと。GCPのOSイメージを見てみると、「Windows Server version 1809 Datacenter Core for Containers」が最新になっています。
次にコンテナベースOSイメージですが、Windows Server Core か Nano Server のどちらが良いかで、Nano はかなり軽量ですが、既存のアプリからの互換性を考慮すると Core の方が良さそうです。ホストOSとベースコンテナOSでバージョンをメジャー、マイナー、ビルドナンバーまで一致させる必要があるので注意が必要です。
気になるWindowsライセンスですが、GCP でWindowsサーバを使う場合はすでにホストVMにライセンスが付与されており、コンテナに対してライセンスを気にする必要はないとのことです。
Windows Server Container orchestration with Kubernets and GKE
Kubernetes v1.14 から Stable で Windows コンテナをサポートされました。ただし、マスターコントロールプレーンは Linux で動かす必要があります。Windows Node は Windows Server 2019 で動かす必要があります。Service, DaemonSet, Job, StatefulSet, ConfigMap, Secrets など Linux 版と同じ機能が使えますが、Windows の OS 特有の問題のため使えない機能もあります。日々アップデートされ続けているため、ドキュメントが信用ならない場合、testing dashboard が用意されています。 GKE はマスターコントロールプレーンを管理する必要がなく、同じクラスタで Windows と Linux コンテナを混在させることができます。
デモは Web アプリ部が Linux コンテナで ASP.NET Core で実装されており, DB部が Windows コンテナで SQL Server を StatefulSet でステートフルに動かしていました。kubectl で Windows コンテナに PowerShell でリモート実行できるのは面白いですね。
前編での紹介は以上です。後編でも興味深かったセッションを取り上げていきます!
*1:けっして執筆期限に間に合わなかったとかそういうわけではないですよ。ええ。