Google Cloud Certified - Professional Cloud Architect を取得するために（３／６）

#概要
Google Cloudの認定資格の一つであるProfessional Cloud Architectを取得するまでの軌跡をリアルタイムで記事として記録していく。

#試験受験日
2019年2月5日（火）

#過去の記事
[第１回](https://qiita.com/shuichiro/items/a87f021f05fb8d558756)
[第２回](https://qiita.com/shuichiro/items/97e11704c46b10831cca)

#やったこと
##書籍によるトレーニング
65%ほど読み終わり。次章からアカウント・運用周りのサービスの話なのでテクニカルなサービスについては一通り理解できたと思う。理解度の確認は例によって下にまとめることで確認していく。
前回はテーブルでまとめたら非常に読み辛くなってしまったので、今回は見出しのセクションでまとめていく。

##公式ドキュメントによるトレーニング
未実施
##公式模擬試験の受験
未実施

#GCPの理解度確認
トレーニングの理解度を確認するためにGCPにどのようなサービスがあるのかまとめていく。
サービスの一覧は[公式ドキュメント](https://cloud.google.com/docs/)のトップよりサービス的なもののみ抜き出した。一覧は2019年1月4日現在のもの。

##サービス
###コンピューティング
####App Engine  
#####サービス概要
 インターネット公開するWebサービスを作成するプラットフォーム、Java,PHP,Python,Goで書いたサービスが稼働する。プラットフォームはGCPによりフルマネージドされるため開発者が運用を意識するコストが極端に減る。 
#####特記事項 
StandardモードとFlexibleモードがありStandardモードの方が制約が多いが、高速に動作する。  
####Compute Engine
#####サービス概要
仮想マシン。ある程度決められたリソースの組み合わせの中から必要なスペックを選択して作成される仮想マシン。リソースを自由に設定できるが高額になるプランもある。ディスクは永続とローカルがあり、永続は仮想マシン停止後もデータが残りづづける。ローカルは停止されたとき削除される。永続ディスクはSSDかHDDが選択可能で、ローカルディスクはSSDのみ使用可能である。  
#####特記事項 
メンテナンス時に停止不要なライブマイグレーション機能がある。永続ディスクはスナップショット取得可能である。
####Kubernetes Engine  
#####サービス概要
Kubernetesクラスタの実行プラットフォーム、GCPによりフルマネージドされるのでKubernetesクラスタを作成しておけば自動でノードの復旧を行ってくれる。  
#####特記事項
下記のオペレーション系サービスとの連携も可能である。 

####Cloud Functions 
#####サービス概要
(未トレーニング) 

###ストレージ
####Cloud Storage
#####サービス概要
ファイルを格納できるオンラインストレージ、バケットを作成しデータを格納できる。クラスを選択できマルチリージョン単一リージョンの選択が出来る。アクセス頻度によりNealine、Coldlineを選択出来る。バージョニングも可能である。
#####特記事項
アクセス制御はリスト（ACL）にて行うこともできる。
####Cloud Spanner
#####サービス概要
マルチリージョンでスケール出来、かつ整合性がとれたデータを読出し・格納ができるデータベースである。ただしSQLは使用できず提供されるAPIによってのみデータの読出し・格納が出来る。自動採番機能はない。
#####特記事項
データが偏らないように物理レイアウトを意識した設計が必要である。
####Cloud SQL
仮想RDBMS、MySQLやPostgreSQL等を動かせるサービス。フェールオーバーやレプリケーション等複雑になりがちなRDBの設定を行ってくれる。自動バックアップの設定も可能である。
#####サービス概要
接続エンドポイントがグローバルIPになるので、適切な接続管理が必要になる。
####Cloud Bigtable
#####サービス概要
仮想NoSQLデータベース、GCPによりフルマネージドされ自動的にスケールされる。アクセス数によらない高いスループットが期待できる。ディスクにはSSDとHDDが選択可能である。
####Cloud Datastore
#####サービス概要
仮想NoSQLデータベース、付加に応じて自動的にスケールされて処理速度が変化しないのが特徴である。PythonやJavaのオブジェクトをそのまま格納することが出来る。
#####特記事項
SQLライクなクエリが実行できるがJOINが使えない、サブクエリが使えない、複数の不等号を使った検索処理が行えないといった制約がある。
####Cloud Firestore ベータ版
#####サービス概要
(未トレーニング)
####Cloud Memorystore ベータ版
#####サービス概要
(未トレーニング)
####Storage Transfer Service
#####サービス概要
(未トレーニング)
####Transfer Appliance
#####サービス概要
(未トレーニング)
###ネットワーキング


####Cloud DNS
#####サービス概要
DNS、独自ドメインの名前解決を行えるようになる。一般的なDNSで利用されるレコードが使用可能である。 
####Cloud Interconnect
#####サービス概要
オンプレミス環境とGCPを直接専用線で接続するサービスであり、大容量かつ高速な通信を行いたい場合に使用する。
####CDN Interconnect 
#####サービス概要
(未トレーニング)
####Cloud Load Balancing
#####サービス概要
仮想ロードバランサー、HTTP(S)通信を複数の仮想マシンへロードバランスしてくれる。HTTPだけでなくSSLやTCP通信もロードバランスが出来るが、使用できるポートは限られている。
####ダイレクト ピアリング
#####サービス概要 
(未トレーニング)
####Cloud Content Delivery Network
#####サービス概要
Googleのエッジポイントへコンテンツをキャッシュしてくれるサービスである。キャッシュされるコンテンツの元をCloud Load Balancingを指定するとキャッシュが行われるようになる。
####Cloud Memorystore ベータ版
#####サービス概要
(未トレーニング)
####バーチャル プライベート ネットワーク（VPN） 
IPSec VPNを使用しインターネットを経由しGCPと接続するサービスであり、通信量があまり多くない場合に使用する。
####Virtual Private Cloud（VPC）
#####サービス概要
仮想ネットワーク、このネットワークにCompute Engineの仮想マシンを繋ぐことになる。VPCはリージョンをまたいで作成出来、VPCの中にサブネットワークを構築することが出来る。これによりリージョンをまたいでもプライベートネットワークで通信ができる。通信制御はファイヤーウォールで送信元・送信先と通信ポートの設定し行う。送信元・送信先はアドレスではなくタグで行われるので仮想マシン等はタグ付けが必要になる。VPC同士の接続も可能である。
#####特記事項
ポート25、465、587の送信は禁止されている。
###ビッグデータ


####BigQuery
#####サービス概要
DWS、データの保存とクエリエンジンによる検索が可能である。リソースが実質的に無限大である。データセットの中にテーブルを作り、テーブルにデータを格納する。ビュー機能もありクエリによって論理的にテーブルの作成が可能である。実行結果が返ってくるまで待つインタラクティブクエリと実行結果がいつになるか解らないバッチクエリの二種類があり、必要に応じて使い分ける必要がある。
#####特記事項
 課金体系が検索をした量によるので注意が必要である。
####Cloud Composer
#####サービス概要
(未トレーニング)
####Cloud Dataflow 
データ処理サービス、Cloud Pub/Subやストレージサービスを入力ソースとしデータの加工を行いBigQuery等に出力することが出来る。実行時にのみCompute Engineが作成され処理を行い、処理が終わると削除される。作成されるCompute Engineは最小と最大のノード数が指定でき不可に応じて自動的にスケーリングされる。Cloud Dataflowの定義はJavaかPythonを用いて作成する。 GCPが用意したテンプレートを使うことで、Pub/Sub to BigQuery等を容易に行うことも出来る。 
####Cloud Dataproc
#####サービス概要
Apache Hadoop/Spark仮想クラスタ、GCPによりフルマネージドで提供され環境構築や運用保守の工数が大幅に削減できる。クラスタに対し「Hive」等でDWHを構築できるようになる。スケーリングは容易に行えるが、負荷に応じた自動スケーリングには対応していないので注意が必要である。
#####特記事項
並列処理にGPUを利用することも可能である。
Cloud Storageの中身を直接ジョブで扱うことができるコネクタも用意されている。
BigQueryの読み書きするコネクタも用意されている。


####Cloud Datalab 
#####サービス概要
Jupyter Notebook仮想環境、インタラクティブにデータの可視化・機械学習による分析が行える環境を簡単に構築できる。上記ストレージサービスや下記機械学習サービスと連携できるライブラリが充実している。作成したコード（Python・SQL）はCloud Source RepositoriesにPushして保存しておくことが可能である。
#####特記事項
Pythonライブラリが必要になった場合はpipを使用してインストールすることが可能である。
Auto Shutdown機能によりインスタンス停止を忘れた場合でも自動的にインスタンス停止をしてくれる。

####Cloud Pub/Sub
#####サービス概要
メッセージングサービス、メッセージを中継してくれる。送信するパブリッシャー、受診するサブスクライバーに分かれPub/Subを経由してメッセージをやり取りすることでお互いの状態を確認することなくメッセージのやり取りができるようになる。メッセージの順序制御は行われないので、サブスクライバー側で考慮する必要がある。
#####特記事項
 ストリーミングデータの入り口となりうるサービスである。

###機械学習
####Cloud TPU ベータ版
#####サービス概要
(未トレーニング)

####Cloud Machine Learning Engine
#####サービス概要
機械学習モデルの開発・実行環境、TensorFlowの学習・実行環境を提供してれる。学習をするための学習用リソースと学習させたモデルを実行する予測用リソースに大きく分けられる。流れとして以下の流れになる。
1. 学習用リソースとデータで学習させたモデルを作成する
2. 予測用リソースで学習させたモデルを使用して未知のデータの分析をする（学習用モデルをサービス化する）
####Cloud Vision API
#####サービス概要
Googleが学習させた学習済モデルを使用できるAPI、画像データを解析して情報を抽出してくれる。検出した情報と画像の位置を教えてくれる。

#####特記事項
画像データから検出してくれるのは以下の通り。
1. 写真に含まれる文字列
2. 映っているものが何か
3. 顔や物の境界
4. 顔とその表情（感情）
5. 総合的な色の割合
6. よく知られているランドマーク
7. 商品や企業ロゴ
8. 不適切なコンテンツ
9. 画像に含まれるもの（上記2）の類似画像のURL


####Cloud Speech-to-Text API
#####サービス概要
Googleが学習させた学習済モデルを使用できるAPI、音声データをテキストデータに変換してくれる。110以上の言語に対応している。専門用語等の特定の単語をヒントとして登録することが出来る。

#####特記事項
ストリーミングによる解析も可能である。
1分以上の音声の場合、非同期での解析を使用することになる。

####Cloud Text-to-Speech APIベータ版
#####サービス概要
(未トレーニング)

####Dialogflow Enterprise Edition
#####サービス概要
(未トレーニング)
####Cloud Natural Language API
#####サービス概要
Googleが学習させた学習済モデルを使用できるAPI、テキストデータの構造と意味を解析してくれる。テキストから名詞や固有名詞を抽出したり、内容がネガティブなものかポジティブなものかを分析してくれる。
テキストはHTTPSでAPIを叩いて渡したり、Cloud Storage経由で渡すこもの可能である。

####Cloud Talent Solution
#####サービス概要
(未トレーニング)
####Cloud Translation API
#####サービス概要
Googleが学習させた学習済モデルを使用できるAPI、テキストデータを翻訳してくれる。110以上の言語に対応し、翻訳元の言語が解らない場合も自動て判定してくれる。翻訳元と翻訳先の言語の種類にもよるがニューラル機械翻訳が可能な組み合わせの場合、フレーズベース機械翻訳よりも自然な形で翻訳してくれる。

####Cloud Video Intelligence API
#####サービス概要
Googleが学習させた学習済モデルを使用できるAPI、Cloud Vision APIの動画版である。動画データより映っているものや不適切なコンテンツを検出してくれる。

####Cloud Prediction API
#####サービス概要
(未トレーニング)

####Cloud AutoMLベータ版
#####サービス概要
(未トレーニング)

###モノのインターネット（IoT）


####Cloud IoT Core
#####サービス概要
(未トレーニング)
###ID とセキュリティ
####Cloud Identity and Access Management
#####サービス概要
(未トレーニング)

####Cloud Identity-Aware Proxy
#####サービス概要
(未トレーニング)

####Cloud Key Management Service
#####サービス概要
(未トレーニング)

####Cloud Data Loss Prevention API
#####サービス概要
(未トレーニング)

####Cloud Armor
#####サービス概要
(未トレーニング)

####Cloud Security Command Center
#####サービス概要
(未トレーニング)

####Cloud Security Scanner
#####サービス概要
(未トレーニング)

###オペレーション


####Stackdriver Logging
#####サービス概要
(未トレーニング)

####Stackdriver Monitoring
#####サービス概要
(未トレーニング)

####Stackdriver Error Reporting
#####サービス概要
(未トレーニング)

####Stackdriver Trace
#####サービス概要
(未トレーニング)

####Stackdriver デバッガ
#####サービス概要
(未トレーニング)

####Stackdriver Profiler Beta
#####サービス概要
(未トレーニング)

####Cloud Security Scanner
#####サービス概要
(未トレーニング)

###デベロッパー ツール


####Cloud SDK
#####サービス概要
(未トレーニング)

####Container Registry
#####サービス概要
GCP上で動くDockerコンテナリポジトリ、Dockerイメージをインターネットに公開することなくKubernetes Engineから利用することが可能になる。

####Cloud Build
#####サービス概要
(未トレーニング)

####Cloud Source Repositories
#####サービス概要
GCP上で動くソースリポジトリ、サービスの中で使用されたコードを保存・管理ができる。

####Cloud Tools for IntelliJ
#####サービス概要
(未トレーニング) 

####Cloud Tools for PowerShell
#####サービス概要
(未トレーニング)

####Cloud Tools for Visual Studio
#####サービス概要
(未トレーニング)
####Cloud Tools for Eclipse
#####サービス概要
(未トレーニング)
####Cloud API
#####サービス概要
(未トレーニング) 
####Cloud Shell
#####サービス概要
(未トレーニング)
####Cloud Tools for Android Studio
#####サービス概要
(未トレーニング) 
###データ移行


####Transfer Appliance
#####サービス概要
(未トレーニング)

####Storage Transfer Service
#####サービス概要
(未トレーニング)

####Google BigQuery Data Transfer Service 
#####サービス概要
(未トレーニング)
###Resource Manager


####Deployment Manager
#####サービス概要
(未トレーニング)

####Cloud Marketplace
#####サービス概要
(未トレーニング)

####Resource Manager
#####サービス概要
(未トレーニング)

####Cloud Billing
#####サービス概要
(未トレーニング)


#感想
書籍に記載に会った部分をまとめてみたが、だいぶ抜けがあるのがわかった。書籍を読むのは続けつつ、公式ドキュメントを読んで理解を深めようと思う。データ移行やツールは名前的になんとなく理解できるものも多いので一通り読めば理解できると思われる。Memorystore等の最近リリースされたサービスは使ってみないと解らない気がするので早めに読んでみたい。

#次回記事投稿予定
2019年1月19日（土）