GCP概要
- Google Cloud Platform(GCP) は、Google 製の PaaSであるGoogle App Engine を中心に、EC2 相当の Google Compute Engine、NoSQL である Cloud Datastore、ビッグデータ解析ツールの BigQuery など、様々なサービスをひとまとめにした環境
- 利用するにはアカウント作成が必要
- プロジェクト単位で課金やユーザー管理を行う
- コンソールでプロジェクトの管理をする
- IAM は Identity Access Management
- プロジェクトにアクセスできるユーザーの定義と、ロールの設定を行うことができる
- ロールはデフォルトで用意されているもののみが利用可能でありカスタマイズ不可
- Repositoriesは無料で利用できるGCP内で利用可能なプライベートGitレポジトリ
- Google Cloud Shellは無料で利用できるGoogle Cloud SDK や Google App Engine SDK がビルトインで用意された Linux 環境
- 無料トライアルあり
- 有料アカウントに手動でアップグレードしない限り、課金されることはない
- 課金を有効にしても制限設定可能
- GoogleCloudPlatform料金上限設定 - うさがにっき
- ・月単位アラートのみ
- ・日単位上限設定
Google Compute Engine(GCE)概要
- AWS の EC2 に相当するサービス
- 特徴はGoogle が実際に運用環境で使用している強力なインフラの上で動く点
- 高いネットワーク性能が期待でき物理的にセキュアな環境に置かれる
- 長く稼働するインスタンスには自動的に値引きを適用する、ストレージや CPU の性能が高いため、他社に比べ性能あたりの単価は割安となる
- ブラウザから操作できるコンソールがシンプルでわかりやすく、インスタンスの立ち上げや削除といった操作は非常に直感的に行える。
- Google Cloud SDKを使えば、コンソールと同様の操作をコマンドラインからも実行可能
- SSHでログインするにはCloud SDK の機能である ”gcloud compute ssh” が便利
- Cloud SDK のサイトからCloud SDKをローカルPCにインストールする必要あり
- gcloud compute ssh コマンドを使うとインスタンス名で ssh アクセスすることができ、IP アドレスを調べることなくログイン可能
Google App Engine(GAE)概要
- Google が提供するPaaS
- 2008年4月にサービス開始した古株のPaaS
- 現在はPythonだけでなくJava, PHP, Go をサポート
- セールスポイントは自分のアプリケーションを Google のインフラストラクチャー上で動かすことができる点
- トラフィック増大と共に勝手にスケールする
- Web アプリケーション運用する場合、第一選択肢に入れるべき
Cloud Datastore概要
- MongoDB や RethinkDB のようなドキュメント志向NoSQL データベース
- アトミックなトランザクションをサポートしドキュメント数のスケールや高可用性を備える
- データは暗号化され保存されるため、運用側のグーグルも、内容がわからないセキュア設計
- 公式ドキュメントは以下
- Entityは保存されるドキュメントのこと。リレーショナルデータベースの行に相当。
- KindとはObject に付与するカテゴリー。リレーショナルデータベースの Table に相当
- Google App Engine と Cloud Datastore を使えば、簡単にデータベースを利用したアプリケーションを開発可能
Google Container Engine (GKE)概要
- Google が開発したオープンソースKubernetes をベースとしたコンテナ環境
- GUIで管理可能
- Kubernetes は1つ以上のコンテナから構成されるクラスターの自動的な管理やスケールを行うオーケストレーションツール
- 類似システムはMarathon やDocker Swarm
- サービス構成や各役割を持ったクラスターを定義し自動的に管理することでマイクロサービス環境を実現
- コンテナとしてDocker利用
- サービスがどのようなコンテナで構成されるか定義すれば、コンテナの立ち上げ、モニタリング、ロードバランシング、サービス自己修復などが可能
- Podは最小管理単位。
- 1つ以上のコンテナを含む。
- 例)nginx が動作する Pod。単一の役割を担う。
- ReplicaSet は複数の Pod を組み合わせてアプリケーション機能を実現したもの
- Deployment はReplicaSet を管理する。
- サービス無停止でアプリケーションのアップデートを実現。
- ServiceはDeployment に外部からアクセス可能な IP アドレスを付与しアクセス可能にしたもの
- ロードバランサーやポート指定可能
- クラスタはServiceが複数動く環境
- 1つの Master と複数の Node から構成
- Node はコンテナを動かすサーバー
- Master はNode を管理しスケジューリングやオートスケールをする
- Kubernetes詳細は以下URL参照
- 概念は以下(?)
- Kubernetes > クラスタ > Service > Deployment > ReplicaSet > Pod
- Container Registry はGCP のサービスとして提供するプライベートDocker registry
- プロジェクト外からはアクセス不可
- Jenkins や CircleCI, drone.io といったCI サービスとの統合をサポート
- CI サーバーでビルドが通ったら自動的にコンテナイメージをデプロイする継続的デリバリーに使用可能
Cloud Shell概要
- どんな PC でもブラウザさえあれば GCP の操作や開発を可能にする。ローカルに開発環境の立ち上げ不要。
- 実体は f1.microタイプ の Google Compute Engine インスタンス
- デフォルトで必要なツールがプリインストール済み(エディタ、言語ランタイム、バージョン管理システム、Google Cloud SDK、 Google App Engine SDK等)。詳細は以下URL参照。
- Cloud Shell のセッションを閉じるまで、もしくは1時間以上何もしなかった場合に terminate される。terminateされてもホームディレクトリのデータは残る。
- ホームディレクトリにツールや、シェル、エディタなどの設定ファイルを置いておけば、ブラウザでCloud Shell を起動するだけで、いつもと変わらない開発環境が利用可能。
- gcloud コマンドの設定不要で使用可能。立ち上げ時に現在のプロジェクトで gcloud コマンドが利用できるよう設定されておりCompute Engine インスタンスの立ち上げも即座に行える
- gcloud コマンドを使う時はローカルからではなく Cloud Shell からと決めておくのも良い。
- Web Preview は Cloud Shell のインスタンスのポートにブラウザから接続する機能
- Cloud Shell起動ユーザーにのみブラウザ経由でポート(デフォルト8080番)を解放
- Code Editor は ブラウザ上で動作するOrionをベースにしたエディタ
- Cloud Shell 上のファイル編集、ローカルのファイルをアップロードし編集が可能
Bigtable概要
- Bigtable はデータサイズが巨大になっても高スループットで動作可能なスケーラビリティをデータベース
- NoSQLに分類される
- NoSQLはスケーラブルな実装を持つ、スキーマレスな非リレーショナルDB
- スケーラブルでありリレーショナルDBのパフォーマンス上限問題を解消する技術(大量データ利用を前提)
- Google File System(GFS)とMapReduceによる分散処理がベース
- HBaseはBigtableを元にしたOSS NoSQLデータベース
- HBaseはHadoopによる分散処理がベース
- HadoopはGoogle File System(GFS)とMapReduceを元にしたOSS
- 関係性をまとめると以下
Google技術 | Google技術を元にしたOSS |
---|---|
Bigtable | HBase |
Google File System | Hadoop File System |
MapReduce | Hadoop |
Chubby | Zookeeper |
- 以下参照
- 【GCP入門編・第11回】 Google Cloud Dataproc を使ってデータを解析しよう! | 株式会社トップゲート
- オンプレで Googleライクな技術を使いたい場合に上記ソフトを利用可能
- HBaseは詳細は以下参照 。スキーマレス実装イメージ。カラムキー利用で1行に任意の数のカラムデータを格納可能。
- NoSQL「HBase」はIoTにも最適--柔軟なスキーマでデータ構造の変更に対応 - ZDNet Japan
- Bigtable利用シーンは金融データ or IoT等
- 大量のデータを高速に追加し続ける用途に最適化されたシステム
- 1TB以下のデータには不向き、1データは10MB以下にする必要あり
- 用途・制限詳細は以下参照
- Overview of Cloud Bigtable | Cloud Bigtable Documentation | Google Cloud
- 機能詳細は以下参照
- Cloud Bigtable Documentation | Cloud Bigtable | Google Cloud
- Cloud DatastoreはBigtableをベースにした不足機能を保管したもの。詳細は以下参照。
- GCPのストレージサービスについてまとめてみた。 | apps-gcp.com
Google Cloud Dataproc概要
Bigquery概要
- Bigtable、Cloud Datastoreと別物。混乱してきた。。。。。
- google cloud platform - What's the difference between BigQuery and BigTable? - Stack Overflow
- データアナリティクスの新たな一歩とそれを支えるインフラ
- Google BigQuery vs. Google Cloud Bigtable vs. Google Cloud Datastore Comparison
- 使い分けは以下を頼りに判断する
- Bigtableはデータ更新可能、Bigqueryは不可。Bigqueryは読んで字の如くDBMS(データ管理)というよりはクエリ専門ソフトウェア(解析)???
- データをインポートするだけで検索できる使いやすいサービス。(環境構築不要)
- データのインポート元としてGoogle Cloud Storage 、ファイルのアップロード、Google ドライブをサポート
- SQLでクエリ可能
Cloud Datalab概要
- データ解析可視化ツール
- Python Jupiter Note Bookを元に作成
- BigQueryなどのデータ解析結果を可視化可能
- DockerイメージをローカルPCで、またはGCE上で利用可能
Cloud Functions概要
- 単純な関数をクラウド上で実行する(サーバーレスアーキテクチャ)
- 背景
- 従来はRuby on railsやDjangoなどのモノリシックなMVCフレームワークでのWebアプリ開発が主流
- 単機能APIサーバを連携させサービスを実現するマイクロサービスアーキテクチャが誕生
- フロントエンドはHTML + JavaScript、Webアプリケーションサーバはビジネスロジック実行のみでOK。であれば単機能API実行基盤をクラウドで用意し、サーバ不要でいいのでは?との考え方が誕生
- Javascript関数の実行基盤
- JavaScriptランタイムはNode.js
- イベントベースで実行される
- Google Cloud Storage もしくは Google Cloud Pub/Sub からのイベント呼び出し、または HTTP リクエスト経由での実行も可能
- Google Cloud Storageにあるデータ連携可能
- 自動スケール
Google Stackdriver概要
www.topgate.co.jp
www.topgate.co.jp
www.topgate.co.jp
- Zabbixみたいな監視ツール。環境構築不要で利用できるのがセールスポイント
- GCPサービスであれば無設定でも基本監視可能。詳細監視する場合、Agentをインストールして可能
- ネットワークやサーバーなどのインフラ、アプリケーションなど様々なレイヤーの監視を一括で提供
- AWS監視も可能(GCPとAWS監視ツールとして開発されたものをGoogleが買収)
- AWS・GCP混在環境の一括監視が可能
- 主な機能はMonitoring 、 Logging 、 Error Reporting 、 Debugger 、 Trace
- Monitoring
- 収集したリソース情報のDashboard表示
- アラート設定・通知
- アラートはSMS 、 Slack 、 HipChat などのコミュニケーションツールへの通知も可能
- 監視(Webアクセス・アプリケーションレベル)
- 監視可能なアプリ情報は以下
- サードパーティ製アプリケーションのモニタリング | Stackdriver Monitoring | Google Cloud
- Logging
- リソースの出力するログをダッシュボードで閲覧可能
- テラバイト/秒のログを管理でき大規模で利用可能
- Monitoringと連携しログ監視設定可能
- BigQueryと組み合わせ高速解析可能
- Error Reporting
- Debugger
- Trace
- アプリケーションのパフォーマンス解析・監視サービス(New relic的なもの)
- SDKがありアプリケーションに組み込み詳細な監視可能
- GAEは設定不要で利用可能