2016年春天, AWS 推出一個小頻道叫做 AWS Answers , 它是 AWS 架構師撰寫的說明文件和解決方案的地方。您可以在這裡找到各種主題的常見問題解答,像是:如何防範DDOS、如何架一個直播平台等等. 是一個值得挖寶的好所在。
什麼是 AWS Tag
AWS 允許客戶對AWS的資源 (例如:EC2) 標記標籤, 你可以標記像是測試機、正式機, 或者研發部門、業務部門這樣的metadata, 當然你可以同時標記多種維度的標籤.
最後你會在你的Detail 帳單.CSV裡看到你標記的標籤, 只要用Excel 的自動篩選功能就可以用各種維度來分析你的成本.
當然,這不只是分析成本才可以使用, 在維運的角度也可以用得上. 例如找出所有的EC2測試機、或者找出任何沒有標籤的EC2機器.
Best Practice 最佳做法
- Tag 命名習慣要規範,例如大小寫.
- Tag 的設計考量到以下幾個維度: 權限控制、成本追蹤、自動化、組織
- 多一點Tag 比少一點Tag好
- 雖然Tag 很容易修改, 但是要仔細考慮變更後的影響, 例如權限控制、帳單報表可能要做對應的改變
Tag 分類
以下是分類參考
技術類
- Name (e.g. web01 , mysql01 ,redis01 ..)
- Application ID
- Application Role (e.g. web server, message broker, database)
- Cluster - 例如你有一個 Redis Cluster.
- Environment - 開發機、測試機、production ..
- Version - 版號
自動化類
- Date/Time – 某台機器應該在特定時間開機/關機/刪除
- Opt in/Opt out - 標記某些資源你想要自動化(或是不想自動化)
- Security – 標記那些特別需要審查安全性的資源, 例如你有個跳板機EC2, 你會想注意 Security Group 是否設定正常.
商業類
- Owner – 誰負責這個?
- Cost Center/Business Unit
- Customer – 標記特定客戶, 例如這台機器服務「五x嵐」、那台機器負責「清x福全」
- Project - 標記專案名稱
安全類
- Confidentiality – 機密等級
- Compliance – 這台機器得遵守特定的ISO規範之類
一般標記策略
Tags for AWS Console Organization
你可以在AWS Console 搜尋、過濾這些標籤, 找出你想要進一步處理的機器
Tags for Cost Allocation
前面有提到, 你使用這些標籤之後, 在 Detail 帳單裡可以看到這些標籤, 進而從各種維度來分析你的帳單.
Tags for Automation
比方說你使用日期時間當做 EBS snapshot的 tag, 之後你就可以依照Tag ,寫個小程式把太舊的 snapshot 給刪掉.
Tags for Access Control
假設你的EC2 有一組Tag是 (開發/測試/正式機) 的設計, 你可以寫點小程式,依照這些Tag, 給予不同的 IAM 權限(測試機權限大一些, 而正式機的權限要縮到最小)
Tagging Governance
如果玩的比較深入一些, 你可以用更嚴格的主動方式來管理, 例如自動定期掃描AWS 環境, 刪除掉那些沒有 Tag 的機器.
但是, 還是要看大家使用AWS 有沒有那麼成熟, 假如程度還沒提升到這種地步, 不要使用這麼主動式的方式.