awsLink
範囲が広いので独立
一度に全部はできないけど少しずつ知見を集めておく
Tag についてLink
-
タグ付けできるリソースは適切なName、その他グルーピングで使用できるタグを指定する
- マネジメントコンソールのリソースタグで使用できる
- terraform で data source を使用する際のフィルタに使用できる
-
タグ付けルールをつくるといいかもしれない
-
key
- できる限り一単語、先頭のみ大文字(アッパーキャメルケース)
- Nameはタグ付け可能なリソースすべてにつけること
- その他のタグは2つ以上のリソースが存在する場合に、2つ以上のグループ化のためにつけること
-
value
- できる限り一単語、全て小文字(ローワーケース、単語の間は半角スペース1つ)
- 慣れればリソースIDでサービスは判断できるのでサービス名をNameに含めるのはやめる?
-
-
タグ付けしないルールも用意しておくといいかも
- Author は管理には向いているかもしれないが、自動化ツールで再作成都度値が変わると面倒かも
- Date も同様
タグ管理表Link
No | key | value(ex) |
---|---|---|
1 | Name | resource name |
2 | Project | project name |
3 | Env(ironment) | prod, stg, dev, test |
4 | Service | my service domain |
5 | Tier | public, private, db, cache |
- Name はなるべくリソース固有の値になるようにつけたい
- Project は1アカウント1プロジェクトの場合にはなくてもいいが、自動化するならあったほうがよい
-
Environment は長いので短くしてもよい。環境はプロジェクトに必要なだけつける
- State: Environments - Terraform by HashiCorp
- terraform の以前のバージョンでは environment がステートの状態を表す変数として定義されており、IDEなどのコードヘルパーが反応してしまうことがある
- stateのプロパティとして参照すると、存在していない場合に"default" になってしまう(本来は空が望ましい)
- 存在していれば(output environment とすれば)その値を取得できる
- terraform側の仕様だけど若干使いにくいので、短い Env または Staging などを使用するといいかもしれない(とはいえ結局どれもよくないのでは。。。)
-
Service はweb,dbのような大枠や、rds,ecsのようなSaaSサービス名、ではなく、プロジェクト内の固有のサービスで分割するとよい。認証、チャット、機能といったサービスドメイン名が望ましい
- Tier は主にsubnetのグルーピング用