GCP(Google Certificate Accosiate/Professional Cloud Architecture)学習メモ

GCP アソシエート合格のための勉強のメモ書きです。


リージョンの呼び方の違い

項目 GCP AWS(参考)
リージョンの呼び名 Region Region
リージョン例 us-central1, asia-northeast1, europe-west1 us-east-1, ap-northeast-1, eu-west-1
AZの呼び名 Zone Availability Zone (AZ)
AZの例 us-central1-a, asia-northeast1-a, europe-west1-b us-east-1a, ap-northeast-1a, eu-west-1a

Google App Engine(GAE)とは

サーバレスサービス。サーバ側のプログラムを実行してWebサーバとして公開が可能。

・スタンダード・・・GCP提供の仮想環境で実行
・フレキシブル環境・・GCE(Google Compute Engine)上のコンテナで実行

GAEは不可に対応して自動でスケールする。Cloud SDKが必須。

・アイドルインスタンス数の制御が可能。

min_idle_instances で最小のアイドルインスタンス数の設定が可能。

max_idle_instances で最大のアイドルインスタンス数の設定が可能。

https://cloud.google.com/appengine/docs/standard/reference/app-yaml?hl=ja&tab=python

・一つのプロジェクトで複数のAppEngineを動作させることはできない。別のプロジェクトで動作させるか、あるいは別のサービスとしてデプロイする。

・トラフィック分割機能:同じサービスの複数のバージョンにトラフィックを振り分けることが可能。現行バージョンで不具合が発生した場合など、前のバージョンへ100%トラフィックを振り分ける。コンソールの App Engine 部分で設定する。

・セッションは何らかのデータベース (Firestore、Memorystore など) に保存する必要あり。そうしないと不整合が発生する。

マネージドインスタンスグループ (MIG)におけるオートヒーリングとオートスケーリングの違い

マネージドインスタンスグループ とは同じVMで"ステートレス(データ、セッションなどを持たない)" をまとめたグループとのこと。Managed Instance Group(MIG)とも呼ぶ。
・オートスケーリング・・・ (autoscaling: 自動でインスタンスを増減)
・オートヒーリング ・・・(autohealing: 障害を起こしたインスタンスを削除、自動再作成)

ストレージ関連

ストレージ関連まとめ

静的IPアドレスの固定方法

静的IPを固定するには次の2通りがあります。

(1)新しい静的内部 IP アドレスを予約して、VM の作成時にアドレスを割り当てる方法。
(2)すでに割り当て済みのIPアドレス(エフェメラル内部 IP アドレス)を静的内部 IP アドレスに昇格。
「静的アドレスのみを選択できます」と表示され、昇格できない場合があります。それは選択方法が異なります。この場合、チェックボックスのチェックは不要で右側にスクロールして、バーガーメニューから「静的IPアドレスに昇格」を選択します。

マネージメントインスタンスグループ

同じ GCE インスタンスのコレクションを 1 つの単位として管理。

auto ヒーリング機能を利用するにはマネージドインスタンスグループを利用する。

Deplopment Manager

GCP上のリソースのデプロイやセットアップをテンプレートを使って定義するサービス。動的なVMのプロビジョニング。

クーバネティス(Kubernetes)

・Pod のオートヒーリング

・オートスケーリング

・バージョン管理によるデプロイメント

・Proxy によるトラフィックのPod分散

・Podのスケジューリング

・DaemonSet により Pod のコピーが実行可能。

"kubectl config view" で設定の確認が可能。
"kubectl config current-context" で現在のコンテキストを表示
"kubectl config get-contexts" でコンテキストの一覧を表示
"kubectl config use-context" で他のコンテキストへ切り替え
"kubectl config set-context" でコンテキスト設定

ポートオープンの比較表

Feature ClusterIP NodePort LoadBalancer
Accessibility Accessible only within the cluster Accessible within the cluster and from external IPs via node's IP and port Accessible from external IPs via a cloud provider's load balancer
Use Case Internal services Testing, Development Production services, High availability
External Traffic No Yes Yes
Configuration Complexity Low Medium High
Cost Low Medium High

データベース

GCPデータベースまとめ

サービスアカウントとは

サービスアカウントまとめ

予算

予算アラートで料金のモニタリングが可能。

https://cloud.google.com/billing/docs/how-to/budgets?hl=ja#budget-scop

Windows インスタンスへの接続

GCPコンソールでWindowsユーザ名、パスワードをセットする。インスタンスで3389のFirewall ルールが存在することを確認する。

"gcloud compute ssh" で初回時にキーが自動で作成される。

署名付き URL

署名付きURLはそのURLを知っている特定のユーザのみに制限付きでストレージにアクセスさせることが可能。これによりアカウントを持っていないユーザでもストレージにアクセスすることが可能。

アプリのデプロイ

アプリはプロジェクトを指定してデプロイが可能。複数アプリへデプロイが可能。

gcloud app deploy AppName.yaml ­project=PROJECT

Cloud Run

Google Cloud Run とはコンテナ化されたアプリケーションをスケーラブルかつ自動的に実行できるプラットフォームのこと。サーバレス。

・トラフィックに応じて自動的にスケールアップまたはスケールダウン。リクエストがない限り料金が発生しないようだ。
・Docker コンテナを使用してアプリケーションをパッケージ化し、それをデプロイ。
・使用したリクエスト数とその処理時間に基づいて課金。

プロジェクトメタデータ

GCPのプロジェクトに関連する情報や設定を管理するためのデータです。特定のプロジェクトに関連する設定情報が含まれる。
GCPのさまざまなリソースやサービスを効率的に管理および操作する。

例:

・OS Login を有効にします。
キー: enable-oslogin
値: TRUE

・ 要素認証プロセスを有効にします。
キー: enable-oslogin-2fa
値: TRUE

ロードバランサ

(1)URL マップ機能

GCPのロードバランサの同一のIPアドレスに送信されたURLに基づきバックエンドに通信を振り分ける機能。

例:
https://example.com/video をサーバAへ。
https://example.com/audio をサーバBへ。

gsutil と gcloudの違い

gsutil・・・ Google Cloud Storage (GCS) の管理に特化したコマンドラインツール。

gcloud・・・GCP全体のリソースを管理するための統合コマンドラインツール。

CLI

Cli でプロジェクトを切り替える場合、プロジェクトごとにconfig ファイルを作成する。使用したいプロジェクトでその config を activateする。

用語

プリエンプティブル VM インスタンス・・・標準 VM の料金よりもはるかに低価格ですが、他のVMの余剰を利用するため、停止する可能性はある。

Google Cloud Deployment Manager・・・ Cloud リソースの作成と管理を自動化するインフラストラクチャ デプロイ サービス。テンプレート ファイルと構成ファイルを作成。これらによりCloud Storage、Compute Engine、Cloud SQL などのさまざまな Google Cloud サービスを連携させるように構成されたデプロイを作成。

Cloud SDK・・・ gcloud、gsutil(Google Cloud Storage の管理ツール)、bq(Python をベースにした BigQuery 用のコマンドライン ツール) コマンドライン ツール、クライアント ライブラリ、ローカル エミュレータなどを含むツールセット。

Google Cloud Data Catalog (データカタログ)・・・GCP上のすべてのデータ資産を発見、理解、管理。データリカバリと管理サービス。BigQuery , Pub/Sub , CloudStorageなどと連携が可能。

Google Cloud Datastore Emulator・・・ローカルでデータベースのテストが可能。

Blobstore・・・キー・バリュー型のデータストアサービス。ファイルのアップロード、ダウンロードを簡単に実現。
Blobstore API により大きいデータ オブジェクト(blob)をアプリケーションで扱うことが可能。
ビデオファイルや画像ファイルなどの大きなファイルの取り扱いが便利。

Google Cloud Dedicated Interconnect ・・・ オンプレミス(データセンターやオフィスなど)とGCPを専用の物理接続を通じて直接接続するサービスです。より高帯域幅、低レイテンシー、および高信頼性の接続を実現。Google Cloud VPN で安定しない場合などこちらのサービスを利用する。

Cloud Shell ・・・ブラウザからアクセス可能な開発あるいは運用環境。gcloud、 kubectl ツールがプリロードされている。

Cloud Datalab・・・データサイエンスおよび機械学習のための開発環境。BigQuery、Cloud Storage、Cloud SQLなどのデータソースと連携が可能。

Cloud Dataprep・・・データの変換、クリーニング、整形、欠損値処理、重複の削除、フォーマットの変換など、データクリーニング。

プライベート Google アクセス サブネット(Private Google Access Subnet)・・・GCP上の仮想プライベートクラウド (VPC) 内にあるサブネットから、インターネットに直接アクセスすることなく、Google の API やサービスにアクセスできる機能のこと。

Transfer Appliance Rehydrator (ハイドレータ)・・・大容量データを物理的に転送するための専用デバイスです。物理的にファイルを運ぶのでネットワーク転送の費用が削減できます。データをオンプレミス環境から Google Cloud に移行するために使用されます。暗号化されて運ばれます。

Google Cloud Endpoint ・・・API管理システム。APIを作成、展開、保護、監視、管理、モニター、分析、割り当てを設定。

時間パーティション分割テーブル(time-partitioned table)・・・データベースやデータウェアハウスにおいて、データを時間に基づいて分割するテーブルのこと。

リージョンSSD・・・特定のリージョン内で複数のゾーンにわたってデータを自動的に複製される。これにより、単一のゾーン障害にも耐えられる。

フェデレーションデータソース機能(Federated Data Source)・・・他のデータベースに対して統一的なアクセスを提供する機能。

パーティション分割テーブル・・・大きなテーブルを小さなパーティションに分割すること。これによりクエリのパフォーマンスを高めたり、クエリによって読み取られるバイト数を減らしコストを削減する。

「Runbook」(ランブック)・・・GCPのMigrate for Compute Engine(旧称:Velostrata)とは、オンプレミスや他のクラウド環境からGoogle Cloud Platform(GCP)への仮想マシン(VM)の移行を支援するツール。その計画や手順をまとめたものを「Runbook」(ランブック)と呼ぶ。












[戻る]