資源240個の構成で、1つを変えたときの対象は中央値8個でした。
ところが99%点では228個、全体の95.0%です。書いた1行からは、この差が見えません。
まとまった部品を1つ書くと、その中身が展開されます。書いた量からは数が読めません。
AWS CDKの位置づけは、公式の1文にあります。AWS CDKは、雲の基盤をコードで定め、CloudFormationを通じて用意するための、公開された開発の枠組みであるという記述です。
「コードで定める」ので、まとまりを1つ書けば中身がついてきます。どれだけ増えるかを数えました。
書いた行数 20行。1行が何個の資源になるかで比べる 書き方 作られる資源 1行あたり 定義の行数(1資源10行として) 生の資源を1つずつ書く 20個 1.0個 200行 低い水準の部品を使う 60個 3.0個 600行 高い水準の部品を使う 240個 12.0個 2400行
高い水準の部品を使うと、20行が240個の資源になります。1行あたり12.0個です。
公式の例もこの規模です。このクラスは500行を超えるCloudFormationのひな型を作り出すと記載されており、50を超える資源ができると続いています。
4番目は実務で効きます。20行に見えるものが、240個ぶんの請求になり得ます。
だから確かめる先は書いた行ではありません。展開された結果のほうです。
The AWS Cloud Development Kit (AWS CDK) is an open-source software development framework for defining cloud infrastructure in code and provisioning it through AWS CloudFormation.原文AWS ドキュメント「What is the AWS CDK?」 この内容の有効期限2027-02-18
ほとんどの変更は小さく収まります。ごく一部だけが、構成のほぼ全体に及びます。
AWS CDKでは、書いた記述が展開されます。公式の例ではこのクラスは500行を超えるCloudFormationのひな型を作り出すと記されています。
展開された資源のあいだには依存があります。1つ変えると、それに依存する側も対象になります。
資源240個の構成を作り、240通りすべてを試しました。
作られた資源 240個。1つを変えたとき、作り直しの対象になる資源を数える やり方 対象の資源 全体に対する割合 中央値 8個 3.3% 平均 55個 22.9% 99%点 228個 95.0% 最大 240個 100.0%
中央値は8個です。半分の変更は、この規模で収まります。
99%点は228個で、全体の95.0%です。中央値の28倍になります。
大きく及ぶのは、多くの資源が土台にしているものです。網の設定や、権限の役がこれにあたります。
書いた行の見た目では区別できません。1行の変更が8個にも228個にもなります。
同じ形の分布は、依存をたどる場面で繰り返し出ます。作り直しの範囲を測った例はViteの記事にあり、中央値3個・99%点282個でした。
半分は8個で収まる。残りの一部が全体に及ぶ。
This class produces an AWS CloudFormation template of more than 500 lines.原文AWS ドキュメント「What is the AWS CDK?」 この内容の有効期限2027-02-18
何個に及ぶかは、流す前に出せます。出さずに流すと、228個のほうを引くことがあります。
AWS CDKが配布を任せている仕組みには、巻き戻しがあります。公式はCloudFormationを使えば、基盤の配布を予測可能かつ繰り返し可能に行え、誤りがあれば巻き戻せると述べています。
巻き戻せることと、何が起きるか分かっていることは別です。前者は仕組みが持ち、後者は差分を見て得ます。
3番目が要注意です。巻き戻しは資源を戻しますが、中に入っていたものまでは戻しません。
だから差分の中に「置き換え」が含まれていたら、そこだけは別に扱うことになります。
前の計測でいえば、228個に及ぶ変更を1回で流さないのが安全です。分けられるなら分けます。
分けて流したときの効き目はArgoCDの記事で数えていて、一斉なら失敗が2880件、1台ずつなら288件でした。
1行あたり何個の資源になるかは置いた値で、実際には部品によって大きく違います。公式の例では20行前後のクラスが50を超える資源になるとされており、この計測の12.0個はそれより大きい前提です。資源のつながりも式で作ったもので、実際の依存はもっと偏ります。ここで見せているのは、書いた量と作られる量が一致しないこと、変更の波及が中央値と上位で桁違いになることの2つです。どちらも差分を出せば確かめられます。
With AWS CloudFormation, you can perform infrastructure deployments predictably and repeatedly, with rollback on error.原文AWS ドキュメント「What is the AWS CDK?」 この内容の有効期限2027-02-18
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る