【Google Cloud Associate Engineer】 Compute Engine

Google Compute Engine (GCE)

仮想マシン(GCPにおける仮想サーバー)のプロビジョニングと管理

Compute Engineの特徴

  • 仮想マシン(VM)の作成とライフサイクルの管理
  • 複数のVMインスタンスのload balancingとauto scaling
  • Attach storage (& network storage)
  • VMインスタンスのネットワークの接続と設定の管理

マシンファミリー Compute Engine Machine Family

  • 汎用(E2, N2, N2D, N1):ベストプライス・パフォーマンス
  • メモリ最適化(M2, M1):超大容量メモリのワークロード
  • Compute最適化(C2):計算集約型ワークロード
    ゲーミングアプリで使われたり

マシンタイプ Compute Engine Machine Types

  • CPU, メモリ, ディスクサイズなどを選べる
  • e2-standard-2
    マシンタイプがe2、標準のワークロード、CPUの数が2
  • 値段がリージョンによって変わる

Image

インスタンスに必要なOSやソフトウェアを指定したもの

  • Publish Image: オープンソース、サードパーティによって提供されているもの
  • Custom Image: お客様が制作したImage

HTTP serverのセットアップコマンド

  • sudo su – ルートユーザーとしてコマンド実行
  • apt update – APTリポジトリから最新の変更を取り込む
  • apt -y install apache 2 – apache 2のインストール
  • sudo service apache2 start – apache 2 web serverを起動する
  • echo “Hello World” > /var/www/html/index.html – index.htmlに書き込み

内部・外部IPアドレス

  • 外部(パブリック)IPアドレス:インターネット上でアドレス指定が可能
  • 内部(プライベート)IPアドレス:企業内で使用される
  • 2つのリソースに同じ外部IPアドレスを持つ事ができない
    ただし、異なる2つ企業であれば、同じ内部IPアドレスを持つ事ができる
  • 全てのVMインスタンスに少なくとも1つの内部IPアドレスが割り当てられている
  • VMインスタンスに外部IPアドレスの作成を有効にできる
    ただし、インスタンスを停止すると、外部IPアドレスは失う

静的IPアドレス

  • VMインスタンスに外部IPアドレスを取得するには、静的IPアドレスを割り当てる
  • 静的IPアドレスは同じプロジェクト内の別のVMインスタンに切り替えが可能
  • VMインスタンスを停止しても静的IPアドレスは接続(アタッチ)されたままになる
    手動で切り離す必要がある
  • 静的IPは使用していないときも、請求されるので、使用しない場合は解放しないといけない。
  • 静的外部IPアドレスの予約

インスタンステンプレート

  • インスタンスの詳細を毎回指定しなくて済む
  • マシンタイプ、イメージ、ラベル、スタートアップスクリプトなどのプロパティを定義可能
  • VMインスタンスとマネージドインスタンスグループの作成に使用
  • アップデート不可(変更する場合は、コピーして修正)
  • イメージファミリーを指定できる(例 -debian-9)

カスタムイメージによる起動時間の短縮

  • VMインスタンス起動時のOSパッチやソフトウェアのインストールは、起動時間を増加させる
  • OSパッチやソフトウェアをプレインストールしたカスタムイメージの作成を使うと簡単に起動できる
    • インスタンス、永続ディスク、スナップショット、別のイメージ、クラウドストレージのファイルから制作可能
    • プロジェクト間での共有が可能
    • イメージのハード化:企業のセキリュティに合わせてカスタマイズ
  • 起動スクリプトにカスタムイメージを使用することを推奨しています。

継続利用割引 Sustained use discounts

  • 請求月の大部分でVMインスタンスを稼働させていた場合、自動的に割引が適用される
  • Kubernetes EngineやComputeエンジンで作成されたインスタンスに適用される
  • E2やA2などのマシンタイプには適用されない
  • フレックス環境のApp EngineとDatafloeで作成されたVMに適用されない

確約利用割引 Committed use discounts

  • 予測可能なリソースを必要とするユーザー向け
  • 1~3年でリソースを使用する事が確約されている場合に適用
  • マシンの種類によって最大70%OFF
  • Kubernetes EngineやComputeエンジンで作成されたインスタンスに適用される
  • フレックス環境のApp EngineとDatafloeで作成されたVMに適用されない

プリエンプティブVM Preemptible VM

  • 短時間の使用に向いている安価(最大で80%OFF)なインスタンス
  • シチュエーション:
  • 以下のような制限がある:
    • 常時VMを起動することができない
    • SLAなし。通常のVMへ移行不可。
    • 無料トライアルクレジットの対象外

Compute Engineの課金

  • 秒単位で課金(最低1分〜)
  • インスタンスが停止している場合、請求されない
    ただし、ストレージがついている場合は課金対象
  • 常に予算アラートを作成し、予算エクスポートの活用を推奨している
  • ワークロードに適したマシンタイプとイメージの選択をする

Live MigrationとAvailability Policy

  • ライブマイグレーション:ワークロードの中断、VM の再起動、VM のプロパティの変更を行わずにメンテナンスを実行
    • 実行中のインスタンスが同じゾーンの別のホストに移行される
    • VMの属性やプロパティは変更しないローカルSSDを搭載したインスタンで使用可能
    • GPUとプリエンプティブルインスタンスは対象外
    • Confidential VMsは必要に応じて再起動
  • 可用性ポリシーホストイベントが発生した場合の VM の動作を構成
    • ホストのメンテナンスについて:
      デフォルトではVMインスタンスを他のハードウェアに移行して、停止する
    • 自動再起動:
      ユーザーが関与しない理由(メンテナンスイベント、ハードウェア障害など)でVMインスタンスが終了した場合、再起動します。

GPUs

  • 仮想マシンにGPUを追加することで、AI/MLなどの演算負荷やグラフィックスの負荷が高いワークロードを高速化
    • 高パフォーマンス、高コスト
    • GPUライブラリがインストールされたイメージを使用すること。
    • 互換性のあるCPU
    • shared-coreやメモリ最適化されたマシンタイプではサポートされていない
  • GPUsの可用性ポリシーの自動再起動のオンを推奨している

Virtual Machine のポイント

  • VMはプロジェクトに紐づいている
  • マシンタイプはリージョンによって異なる
  • インスタンスのマシンタイプの変更(vCPU数やメモリの調整)は停止中のみ可能
    実行中のインスタンスのマシンタイプは変更できない
  • VMはさまざまなプロパティでフィルタリング可能
    • 名前、ゾーン、マシンタイプ、内部/外部IP、ネットワーク、ラベルなど
  • インスタンスは特定のゾーンで実行
    • イメージはグローバルで、必要に応じて他のプロジェクトへのアクセスも可能
    • インスタンステンプレートもゾーンリソースを使わない限りグローバル
  • 自動監視(Automatic Basic Monitoring)が有効
    • デフォルトmetrixはCPU使用率、ネットワークバイト数(in/out)、ディスクスループット/IOPS
    • メモリとディスクの使用量についてはCloud Monitoringエージェントが必要
  • コスト、規制、可用性のニーズ、レイテンシをもとにゾーンとリージョンを選択できる。
    複数のゾーンやリージョンにインスタンスを分散し高可用性を実現
  • 環境、チーム、ビジネスユニットなどを示すラベルの使用

Compute Engineの具体的なシナリオ

  • VMインスタンスを作成する上での設定する必要があるものは何ですか?
    1. プロジェクト
    2. 請求先口座
    3. Compute Engine APIを有効化
  • コンプライアンスやライセンス、管理のニーズに対応した専用ハードウェアは?
  • 1000台のVMがありOSのパッチマネジメント、イベントリー管理、コンフィギュレーション管理を自動化するためには?
  • VMインスタンスにログインして、ソフトウェアをインストールする場合の推奨方法は?
  • VMをインターネットに公開しない方法
    • 外部IPアドレスを割り当てない
  • VMへのHTTPトラフィックを許可したい場合は?

まとめ

Image

  • VMインスタンス上でどのようなOSとソフトウェアを使用するかを指定
  • カスタム hardende Images を作成することにより、起動時間を短縮し、セキュリティを向上させることができます。
  • 他のプロジェクトと共有することができる

Machine Types

  • 特定のワークロードに対して、コンピュート(CPU、GPU)、メモリ、ディスク(ストレージ)、ネットワークの最適な組み合わせ
  • 独自のカスタムマシンタイプを作成する事ができる

静的IPアドレス

  • VMインスタンス用の固定のIPアドレス

インスタンステンプレート

  • VMインスタンスの作成を簡素化させる事前設定のテンプレート

継続利用割 Sustained use discount

  • 請求月の大部分でVMインスタンスを稼働させるときに自動的に適用される割引

確約利用割 Committed use discount

  • 1〜3年間の利用が確約された予測可能なリソース

プリエンプティブVM

  • タイムクリティカルでないフォールトレラントなワークロードのための短時間で安価なインスタンス

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です