Date Category AWS Tags aws

2016年春天, AWS 推出一個小頻道叫做 AWS Answers , 它是 AWS 架構師撰寫的說明文件和解決方案的地方。您可以在這裡找到各種主題的常見問題解答,像是:如何防範DDOS、如何架一個直播平台等等. 是一個值得挖寶的好所在。

什麼是 AWS Tag

AWS 允許客戶對AWS的資源 (例如:EC2) 標記標籤, 你可以標記像是測試機、正式機, 或者研發部門、業務部門這樣的metadata, 當然你可以同時標記多種維度的標籤.

最後你會在你的Detail 帳單.CSV裡看到你標記的標籤, 只要用Excel 的自動篩選功能就可以用各種維度來分析你的成本.

cost-allocation.png

當然,這不只是分析成本才可以使用, 在維運的角度也可以用得上. 例如找出所有的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 有沒有那麼成熟, 假如程度還沒提升到這種地步, 不要使用這麼主動式的方式.

參考資料