このページの本文へ

FIXER cloud.config Tech Blog

誤ってAzureのリソースを消さないための設定2つ

2020年06月26日 11時00分更新

文● 関 拓也/FIXER

  • この記事をはてなブックマークに追加
  • 本文印刷

 本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「そのリソース本当に消しても大丈夫? #Azureリレー」を再編集したものです。

 Azureポータル画面やaz cliでリソースを削除する時に、間違ったリソースを消してしまわないかドキドキしたことはありませんか?

 Terraformでapplyする時に、意図しないリソースが削除されてしまって悲しい思いをしてしまったことはありませんか?

 ありますよね?

 僕は偶によくあります。

 今回は、そんなちょっぴり悲しい目に遭わないためにやっておいた方が良い設定を2つご紹介します。

リソースのロック

 まず1つめは、Azureリソースのロックです。

 Azureのリソースには予期しないリソースの削除を防ぐ仕組みとしてリソースのロック機能が用意されています。

 CanNotDeleteロックをリソースあるいはリソースグループに適用することで、そのリソースまたはリソースグループを削除不可とすることができます。これにより意図せずリソースが削除されることを防ぐことができます。

 コンピューティングリソースやデータストアなど削除された場合にサービスの継続性に影響が出るリソースには必ず設定しておくことをお勧めします。

 参考)
 変更されないようにリソースをロックする | Microsoft Docs
 Azure Resource Manager: azurerm_management_lock – Terraform by HashiCorp

prevent_destroy

 2つめは、Terraform lifecycleのprevent_destroy設定です。

 Terraformでapplyする際、リソースの変更内容によってはリソースの再作成が必要となる場合がありますよね?

 planの出力結果を見れば、どのリソースが追加・変更・削除されるのかを確認できるので、ちゃんと出力結果を見ていれば誤ってリソースを削除してしまうことはありません。

 しかし、ふと少し気を抜いた瞬間にソースの再作成が実行されてしまい悲しみに包まれる、そんな経験をしたことはありませんか?

 Terraformには予期しないリソースの削除を防ぐ仕組みとして、prevent_destroy設定が用意されています。

 prevent_destroy設定を有効化することで、そのリソースに対するdestroy処理を不可とすることができます。これにより意図せずリソースが削除されることを防ぐことができます。

 サービスの継続性に影響が出るリソースや再作成に時間を要するリソースに設定しておくことをお勧めします。

 参考)
 Resources – Configuration Language – Terraform by HashiCorp

おわりに

 リソースを間違って削除しないように注意を払って作業をしていても、意図しないタイミングで削除してしまうことがあるかもしれません。

 そんな時には、削除を防ぐこの2つの設定達を思い出してあげてください。

  関 拓也/FIXER

 名古屋事業所所属のアプリエンジニア
 最近は、terraformやk8sとよく戯れています

[転載元]
 そのリソース本当に消しても大丈夫? #Azureリレー

カテゴリートップへ