GCP GCE試験用メモ

GCP

永続ディスク

ディスクには大きく以下の3種類が存在する。

項目GB単位/月内容
バランス永続ディスク$ 0.100費用対効果に優れた信頼性の高いブロックストレージ
SSD永続ディスク$ 0.170高速かつ高信頼性のブロックストレージ
標準の永続ディスク$ 0.040効率的で高信頼性のブロックストレージ

リージョン内でこのディスクを複製にチェックを入れると、リージョンディスクになる。
バランスは標準とSSDの間ぐらいの性能。

VM Manager

GCE インスタンスで VM Managerを有効化するためのメタデータ設定を登録。
以下で登録すると、プロジェクト全体として反映される。

インスタンス単体で反映させる場合は以下のメタデータ部に入力する。

KeyValue
enable-os-inventoryTRUE
enable-guest-attributesTRUE

VM Managerを有効化すると、インベントリ情報を取得することができる。

$ gcloud compute instances os-inventory list-instances
NAME        ZONE           MACHINE_TYPE  PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP   STATUS
instance-2  us-central1-a  e2-medium                  10.128.0.2   34.69.163.22  RUNNING

$ gcloud compute instances os-inventory describe instance-2
Did you mean zone [asia-east1-a] for instance: [instance-2] (Y/n)?  n

No zone specified. Using zone [us-central1-a] for instance: [instance-2].
┌─────────────────────────────────────────────────────────────────────────┐
│                         Installed Packages (RPM)                        │
├───────────────────────────────┬────────┬────────────────────────────────┤
│              NAME             │  ARCH  │            VERSION             │
├───────────────────────────────┼────────┼────────────────────────────────┤
│ NetworkManager                │ x86_64 │ 1:1.18.8-2.el7_9               │
│ NetworkManager-libnm          │ x86_64 │ 1:1.18.8-2.el7_9               │
│ NetworkManager-team           │ x86_64 │ 1:1.18.8-2.el7_9               │
│ NetworkManager-tui            │ x86_64 │ 1:1.18.8-2.el7_9               │
│ acl                           │ x86_64 │ 2.2.51-15.el7                  │
│ acpid                         │ x86_64 │ 2.0.19-9.el7                   │
│ alsa-firmware                 │ all    │ 1.0.28-2.el7                   │
(snip)
┌─────────────────────────────────────────────────────────────┐
│               Package Updates Available (Yum)               │
├─────────────────────┬────────┬──────────────────────────────┤
│         NAME        │  ARCH  │           VERSION            │
├─────────────────────┼────────┼──────────────────────────────┤
│ glibc               │ x86_64 │ 2.17-322.el7_9               │
│ glibc-common        │ x86_64 │ 2.17-322.el7_9               │
│ google-cloud-sdk    │ x86_64 │ 326.0.0-1                    │
│ iwl105-firmware     │ all    │ 18.168.6.1-80.el7_9          │
│ iwl135-firmware     │ all    │ 18.168.6.1-80.el7_9          │
│ iwl2000-firmware    │ all    │ 18.168.6.1-80.el7_9          │
│ iwl2030-firmware    │ all    │ 18.168.6.1-80.el7_9          │
│ iwl3160-firmware    │ all    │ 25.30.13.0-80.el7_9          │
│ iwl6000g2b-firmware │ all    │ 18.168.6.1-80.el7_9          │
│ iwl7260-firmware    │ all    │ 25.30.13.0-80.el7_9          │
(snip)
Architecture: x86_64
Hostname: instance-2
KernelRelease: 3.10.0-1160.11.1.el7.x86_64
KernelVersion: '#1 SMP Fri Dec 18 16:34:56 UTC 2020'
LastUpdated: '2021-02-08T05:34:45Z'
LongName: CentOS Linux 7 (Core)
OSConfigAgentVersion: 20201229.01-g1.el7
ShortName: centos
Version: '7'

OS Patch Managementを使うと、定期的にyum updateを実行するスケジュールを組むことが可能

ゾーン間のインスタンスの移動

インスタンスを移動する方法は手動と自動の2パターンある。

手動の場合は以下を実施する。

  1. 永続ディスクのスナップショットを作成(静止点確保)
  2. 移行先ゾーンへスナップショットのコピーを作成
  3. 移行先ゾーンで新しいインスタンスを作成
  4. インスタンスへコピーしたディスクを接続

自動の場合はgcloudコマンドで実施する。

gcloud compute instances move instance-1 \
  --zone us-central1-b \
  --destination-zone us-central1-f

OSへの認証方法

GCEはデフォルトではSSHのパスワード認証が無効化されている。
そのため、初回アクセスの際には、鍵認証でのログインが必須となる。

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
PasswordAuthentication no

基本的に、鍵認証で利用する鍵はGoogleが管理してくれるので自作しなくてもよい。
自作した鍵を使うことも可能。

OS Login機能を利用するとSSHアカウントの管理をIAMに移行できる。
OS Loginを利用しない場合、標準だとメタデータのSSH鍵で認証を管理している。

Meta Data

GCEインスタンスからメタデータサーバにアクセスすることで各種メタデータが取得できる。
メタデータにアクセスするにはmetadata.google.internalに問い合わせを行う。
メタデータを取得する際にはリクエストヘッダに’Metadata-Flavor: Google’を入れる。

# wget http://metadata.google.internal/computeMetadata/v1/project/project-id --header='Metadata-Flavor: Google'
# cat project-id 
test-project-304205

メタデータを取得することで、インスタンスの外部IPアドレスを取得したりとか、いろいろなことに活用ができる。

起動スクリプトの作成

VMインスタンスを作成する際に、Startup Scriptにスクリプトを記述することで、起動スクリプトを設定することができる。

gcloudコマンドでファイルを指定し、スクリプトを設定することも可能。

$ cat test.sh
#!/bin/sh
logger hello
$ gcloud compute instances create instance-3 --metadata-from-file startup-script=test.sh

インスタンス構築後、メタデータにスクリプトの内容が含まれていることが確認できる。
以下のコマンドでスタートアップコマンドをOSから再実行することも可能

$ sudo google_metadata_script_runner startup

スクリプトはファイルとして存在するのではなく、メタデータから参照される。

シャットダウンについても同様にスクリプトを設定することが可能

gcloud compute instances create example-instance \
  --metadata shutdown-script="#!/bin/bash
> logger hello"

コメント

タイトルとURLをコピーしました