もくじ
- Google Compute Engine (GCE)
- Compute Engineの特徴
- マシンファミリー Compute Engine Machine Family
- マシンタイプ Compute Engine Machine Types
- Image
- HTTP serverのセットアップコマンド
- 内部・外部IPアドレス
- 静的IPアドレス
- インスタンステンプレート
- カスタムイメージによる起動時間の短縮
- 継続利用割引 Sustained use discounts
- 確約利用割引 Committed use discounts
- プリエンプティブVM Preemptible VM
- Compute Engineの課金
- Live MigrationとAvailability Policy
- GPUs
- Virtual Machine のポイント
- 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
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インスタンスを作成する上での設定する必要があるものは何ですか?
- プロジェクト
- 請求先口座
- Compute Engine APIを有効化
- コンプライアンスやライセンス、管理のニーズに対応した専用ハードウェアは?
- 単一テナントノード(Sole-tenant nodes)
- 1000台のVMがありOSのパッチマネジメント、イベントリー管理、コンフィギュレーション管理を自動化するためには?
- VM Managerを使う
- VMインスタンスにログインして、ソフトウェアをインストールする場合の推奨方法は?
- SSHでログインする
- 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
- タイムクリティカルでないフォールトレラントなワークロードのための短時間で安価なインスタンス