手作業の変更が月6件入る前提で計算しました。点検を毎日やれば、1件あたり0.50日でずれが直ります。
月1回にすると14.67日です。平均して2.96件が、常にずれたまま動いている状態になります。
手作業の変更は入る前提です。点検の間隔が、ずれを抱える時間をそのまま決めます。
IaCで避けられないのが、手作業で入った変更です。どれだけ抱えるのかを実際に計算しました。
180日ぶんを見ます。1か月あたり6件の手作業の変更が入り、点検で見つかった時点で直るものとしました。
見つかるまでのあいだ、コードと実際の環境がずれたまま動きます。種を変えて40回まわして平均を取りました。
180日ぶん。1か月あたり 6件の手作業の変更が入るものとした 点検で見つかった時点で直る。それまではずれたまま動き続ける 点検の間隔 期間中の変更 ずれていた延べ日数 1件あたり 常にずれている件数 1日 36.3件 18.2日 0.50日 0.10件 7日 36.3件 127.1日 3.50日 0.71件 30日 36.3件 532.7日 14.67日 2.96件 90日 36.3件 1638.2日 45.10日 9.10件
毎日点検すれば、1件あたり0.50日で直ります。間隔の半分になるのは、変更が均等に入るためです。
月1回にすると14.67日です。2週間ぶん、ずれたまま動いていることになります。
右端の列が実感に近い数字です。平均して何件がずれたまま動いているかを表します。
月1回の点検なら2.96件です。いつ環境を見ても、3件前後はコードと違う状態にあります。
3か月に1回まで延ばすと9.10件です。この状態でコードから作り直すと、9件ぶんの設定が失われます。
出典も突き合わせの必要性を基盤への変更を正確に提案するため、まず状態ファイルで追跡している資源と実際の基盤との突き合わせを試みると説明しています。
点検の間隔が、ずれを抱える時間をそのまま決める。
In order to propose accurate changes to your infrastructure, Terraform first attempts to reconcile the resources tracked in your state file with your actual infrastructure.原文HashiCorp Developer「Manage resource drift」(Terraform チュートリアル) この内容の有効期限2027-02-18
ずれには2通りの直し方があります。どちらを選ぶかを毎回考えていると、点検が止まります。
IaCの点検は、見つけるところまでで終わりません。見つけたあとに何をするかが決まっていないと止まります。
1番目を既定にすると、障害対応で入れた設定まで消えます。手作業には理由があった場合があります。
2番目を既定にすると、コードが実態の写しになります。誰かが勝手に変えた設定も、正として残ります。
だから、当てる前に中身を見る手順が要ります。出典もこの働きを述べています。
その言い方はこれにより、状態ファイルへの更新を確認できるようになるというものです。自動で上書きしない形です。
確認に人が要るなら、点検を毎日にしても回りません。抱えてよい件数から間隔を選びます。
常にずれている件数を1件以下に抑えたいなら、この計測では週1回の0.71件が目安になります。
似た構造は同期パイプラインの記事でも測っています。反映の遅れが、そのまま結果に出ます。
This allows you to review any updates to your state file.原文HashiCorp Developer「Manage resource drift」(Terraform チュートリアル) この内容の有効期限2027-02-18
コードは望む姿、状態は前回の記録です。実際の環境は3つ目で、どれもずれます。
IaCでは3つのものが登場します。コード・状態の記録・実際の環境です。
コードと状態のずれは、まだ当てていない変更です。これは意図した状態なので問題ありません。
状態と実際の環境のずれが、前の節で測ったものです。手作業で入った変更がここに現れます。
状態の記録が実際とずれていると、存在するものを「消えた」と判断することがあります。
出典もその例をインスタンスを破棄したものとみなし、状態ファイルから取り除こうとすると書いています。設定の書き間違いでも起きます。
だから、当てる前に中身を見ます。消す提案が出ていないかを毎回確かめます。
点検の間隔を決めることが、抱える件数を決めること。
手作業の変更は時間に対して一様に入るという置き方です。実際には障害のあとに集中するので、平均より偏ります。点検で必ず見つかるという前提も置いています。見つからない種類の変更があれば、抱える件数はここより増えます。ここで見せているのは、点検の間隔がそのまま抱える量を決めるという関係です。
Terraform assumes that you destroyed the instance and wants to remove it from your state file.原文HashiCorp Developer「Manage resource drift」(Terraform チュートリアル) この内容の有効期限2027-02-18
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る