grasys blog

GCEインスタンスの名前を変更する

こんにちはtsunodaです。

まだbetaですが、GCEインスタンスの名前が変更できるようになりましたね。

tagは?disk nameはどうなんの?とか気になったので、どこまで変更してくれるのかやってみました。

検証環境

Platform:Google Cloud (GCP)
OS:CentOS7
Region:asia-northeast1
GCE:
n1-standard-2
attach-disk付き (boot-disk名=tsunoda-test001、attach-disk名=tsunoda-test001-data)
静的IP付与
HashiCorp consul導入

インスタンス名は、tsunoda-test001 から tsunoda-alpha001 への変更を試します。

インスタンス名変更後、以下がどうなるか確認しました。

tag
boot-disk
attach-disk
静的IP
HashiCorp consulのconsulメンバー登録名

インスタンス名変更

# gcloud compute instances list | grep tsunoda | awk '{print $1}'

tsunoda-test001

変更するにはインスタンスの停止が必要なので、停止。

$ shutdown -h now

インスタンス名変更 (tsunoda-test001 → tsunoda-alpha001へ変更)

gcloud beta compute instances set-name tsunoda-test001 \
--new-name=tsunoda-alpha001
# gcloud compute instances list | grep tsunoda | awk '{print $1}'

tsunoda-alpha001

変更されました。

起動

gcloud compute instances start tsunoda-alpha001 --zone asia-northeast1-a

tagはどうなった?

Before

# curl -s -H "Metadata-Flavor:Google" http://metadata/computeMetadata/v1/instance/tags

["tsunoda-test"]

After

# curl -s -H "Metadata-Flavor:Google" http://metadata/computeMetadata/v1/instance/tags

["tsunoda-test"]

tagは変わらず。新名称での追加も無し。必要であればtagを更新しなければです。

名称変更時にtagも自動で追加してくれると良いかもしれないですね。

ちなみにその他の名称系メタデータ(hostnameやname)は変更されていました。

disk nameはどうなった?

Before

# gcloud compute disks list | grep tsunoda | awk '{print $1}'
tsunoda-test001
tsunoda-test001-data

After

# gcloud compute disks list | grep tsunoda | awk '{print $1}'
tsunoda-test001
tsunoda-test001-data

ディスク名も変更はされませんでした。

インスタンス名に合わせてこちらが指定しただけなので意図通り。

静的IPの紐付けは?

Before

# gcloud compute addresses list | grep tsunoda
tsunoda-test001                         xx.xxx.xxx.xx    EXTERNAL   

After

# gcloud compute addresses list | grep tsunoda
tsunoda-test001                         xx.xxx.xxx.xx    EXTERNAL   

これも変わらず。

コンソールで確認すると、使用リソース名も変更前のままでした。

IPの変更はもちろんなく、引き続き同じ静的IPが付与されてました。

インスタンス名が変わっているのにIPの紐付けは以前のインスタンス名のままなので正直気持ち悪い。。

HashiCorp consulの登録名はどうなった?

弊社でもよく使用しているHashiCorp社のconsul

今回はこちらも試しました。

server:tsunoda-web

client:tsunoda-test001 (変更後はtsunoda-alpha001)

Before

# consul members
Node             Address           Status  Type  
tsunoda-web      10.146.0.5:8301   alive   server 
tsunoda-test001  10.146.0.89:8301  alive   client 

After (server側)

# consul members
Node              Address           Status  Type 
tsunoda-web       10.146.0.5:8301   alive   server 
tsunoda-alpha001  10.146.0.89:8301  alive   client
tsunoda-test001   10.146.0.89:8301  failed  client

server側では変更後のインスタンス名(tsunoda-alpha001)が追加され、変更前のインスタンス名(tsunoda-test001)がfailedとなっていました。

After (client側)

# consul members
Node              Address           Status  Type    
tsunoda-web       10.146.0.5:8301   alive   server 
tsunoda-alpha001  10.146.0.89:8301  alive   client

client側は変更後にインスタンス起動しているのでfailedは無くスッキリしていました。

hostnameが変わるのでこちらも意図通り。

まとめ

ドキュメントに大体記載はあり、まぁそうですよねという感じではありますが、本当にインスタンス名のみ変更されますね。

disk名や静的IPなど、そのインスタンスに付随しているものは以前の名称のまま。

これは管理する上でズレが生じちょっとかゆいなぁと思いました。どれがどれだっけ?とかなりそう。

他にはマネージドインスタンスグループ内のインスタンス名は変更できなかったりもします。

ちなみにterraformで作成したインスタンスの名前を変更し、作成に使ったtfファイルで設定の更新や削除をしようとすると、インスタンス名が変更されているので対象ではなくなります。。

現状は新しい名前でインスタンスを再作成した方が管理しやすそうな雰囲気です。

インスタンス名変更に伴い、付随するものも統一して変更できるような機能があるともっと幸せになりそうです。


採用情報
お問い合わせ