Upgrade to Pro — share decks privately, control downloads, hide ads and more …

FinOpsとタグ付け防止対策 / CCoE Osaka FinOps Tags

FinOpsとタグ付け防止対策 / CCoE Osaka FinOps Tags

Avatar for sasaki

sasaki

July 17, 2025
Tweet

More Decks by sasaki

Other Decks in Technology

Transcript

  1. 2 • 名前 ◦ 佐々木真也 • 所属 ◦ 株式会社コドモン ▪

    SREチーム マネージャー • X ◦ @taishin • 居住地 ◦ 大阪 自己紹介
  2. 5

  3. 7 CONFIDENTIAL - © 2022 CoDMON Inc. 7 Finopsとは? •

    FinOpsとは、「Finance(財務)」と「DevOps(開発・運用)」を組み 合わせた造語で、クラウドの利用料金を継続的に最適化し、そのビジネス 価値を最大化するための運用モデルであり、文化的な実践です。
  4. 8 CONFIDENTIAL - © 2022 CoDMON Inc. 8 オライリー本 1.

    FinOpsとは何か? 2. なぜFinOpsが必要なのか? 3. 文化的転換とFinOpsチーム 4. FinOpsの共通言語 5. クラウド請求書の解剖学 6. FinOpsの導入 7. FinOpsのユーザーインターフェース(UI) 8. FinOpsライフサイクル 9. Informフェーズ:あなたの現在地はどこですか? 10.配賦:すべての費用を割り当てる 11.タグ、ラベル、アカウント、あぁ大変! 12.予測:将来を理解する 13.Optimizeフェーズ 14.使用量の低減:使用量の最適化 15.支払いの低減:料金(レート)の最適化 16.コミットメント割引の理解 17.コミットメントベースの割引戦略の構築 18.持続可能性(サステナビリティ):FinOpsとGreenOpsの連携
  5. 9 CONFIDENTIAL - © 2022 CoDMON Inc. 9 オライリー本 1.

    FinOpsとは何か? 2. なぜFinOpsが必要なのか? 3. 文化的転換とFinOpsチーム 4. FinOpsの共通言語 5. クラウド請求書の解剖学 6. FinOpsの導入 7. FinOpsのユーザーインターフェース(UI) 8. FinOpsライフサイクル 9. Informフェーズ:あなたの現在地はどこですか? 10.配賦:すべての費用を割り当てる 11.タグ、ラベル、アカウント、あぁ大変! 12.予測:将来を理解する 13.Optimizeフェーズ 14.使用量の低減:使用量の最適化 15.支払いの低減:料金(レート)の最適化 16.コミットメント割引の理解 17.コミットメントベースの割引戦略の構築 18.持続可能性(サステナビリティ):FinOpsとGreenOpsの連携
  6. 10 CONFIDENTIAL - © 2022 CoDMON Inc. 10 AWSにおけるタグ •

    タグ ◦ AWS上のリソース(EC2インスタンスやS3バケットなど)に付けることができる ◦ キーと値のペアで構成される(例: Key=Project, Value=Apollo) • AWSコスト配分タグ ◦ AWSの利用料金を分析するために使われるタグ https://aws.amazon.com/jp/blogs/news/aws-taggi ng-and-governance-part1/
  7. 11 CONFIDENTIAL - © 2022 CoDMON Inc. 11 FinOpsにおいて、なぜ「タグ付け」が重要なのか? •

    責任の明確化 • 正確なコスト配分 • ビジネス価値の可視化 • コスト最適化の機会発見
  8. 12 CONFIDENTIAL - © 2022 CoDMON Inc. 12 FinOpsにおいて、なぜ「タグ付け」が重要なのか? •

    Service_1 Service_2 Service_3 Service_1 Service_2 Service_3 • サービスがアカウントごとに 分かれている構成 ◦ タグがなくてもコスト配分 はしやすい • 1アカウントで提供され、そ の中で複数サービスが稼働し ている構成 ◦ コスト配分にはタグ付けが 必須
  9. 13 CONFIDENTIAL - © 2022 CoDMON Inc. 13 タグ付けするための考慮点 •

    タグ付けのルール決め/浸透 ◦ タグ付けのルールを組織全体統一させないといけない • 既存リソースへのタグ付け ◦ 稼働している膨大な数のリソースに後からタグを付けるのは非常に困難 • タグの付け漏れへの対応 ◦ リソース作成時にタグを付け忘れる
  10. 14 CONFIDENTIAL - © 2022 CoDMON Inc. 14 タグ付けするための考慮点 •

    タグ付けのルール決め/浸透 ◦ タグ付けのルールを組織全体統一させないといけない • 既存リソースへのタグ付け ◦ 稼働している膨大な数のリソースに後からタグを付けるのは非常に困難 • タグの付け漏れへの対応 ◦ リソース作成時にタグを付け忘れる
  11. 16 CONFIDENTIAL - © 2022 CoDMON Inc. 16 タグのつけ漏れ対策(IaC/Terraform) •

    Conftest (Open Policy Agent) での対応 ◦ タグ付けポリシーに沿っていないリソースは作成できない
  12. 17 CONFIDENTIAL - © 2022 CoDMON Inc. 17 タグのつけ漏れ対策(手動作成等) •

    AWS Configで検知して、Slack通知 ◦ ブロックしたいが・・・
  13. 18 CONFIDENTIAL - © 2022 CoDMON Inc. 18 AWS Configでの検知方法

    • AWS Config マネージドルール(required-tags) ◦ マネージドルールなので、設定が簡単だが、サポートしているリソースがかな り限られている • AWS Security Hub(Resource Tagging Standard) ◦ 対応しているリソースが限られている ◦ 設定が面倒
  14. 19 CONFIDENTIAL - © 2022 CoDMON Inc. 19 AWS Configでの検知方法

    • Configカスタムルール ◦ Guardで書けるようになってからは割と簡単 https://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/create-aws-co nfig-custom-rules-by-using-aws-cloudformation-guard-policies.html rule check_service_tag { tags.Service exists when tags.Service exists { tags.Service in 〜 } }
  15. 20 CONFIDENTIAL - © 2022 CoDMON Inc. 20 Configカスタムルールでの課題 •

    リソースタイプの指定が必要 ◦ 「すべて」を選択すると、下記のようなリソースも全部通知されてしまう ▪ AWS APIにてそもそもタグの指定オプションがないもの ▪ AWSがマネージドで動的に作成するリソースで、タグが付与できなもの 例 • Aurora:SnapshotExportToS3 • ConfigurationItemRecorded • ConfigRuleEvaluations • CW:MetricMonitorUsage • PublicIPv4:InUseAddress • PaidComplianceCheck • Lambda-Edgeの全ての使用タイプ • S3-Egress-Bytes • など
  16. 21 CONFIDENTIAL - © 2022 CoDMON Inc. 21 Configカスタムルールでの課題 •

    チェック対象のリソースタイプの設定 ◦ terraformで管理 ◦ 一つのカスタムルールで設定できるリソースタイプ数は100までという制限が あるので、ルールを分割 variable "tags_resource_types_scope_1" { default = [ "AWS::ApiGateway::Stage", "AWS::ApiGateway::RestApi", "AWS::ApiGatewayV2::Stage", "AWS::ApiGatewayV2::Api", "AWS::Athena::WorkGroup", "AWS::Athena::DataCatalog", "AWS::Athena::PreparedStatement", "AWS::CloudFront::Distribution", "AWS::CloudFront::StreamingDistribution", : variable "tags_resource_types_scope_2" { default = [ "AWS::Kinesis::Stream", "AWS::Kinesis::StreamConsumer", "AWS::KinesisAnalyticsV2::Application", "AWS::KinesisFirehose::DeliveryStream", "AWS::MSK::Cluster", "AWS::MSK::Configuration", "AWS::MSK::BatchScramSecret", "AWS::MSK::ClusterPolicy", "AWS::MSK::VpcConnection", :
  17. 22 CONFIDENTIAL - © 2022 CoDMON Inc. 22 Configカスタムルールでの課題 •

    リソースタイプの追加確認 ◦ ConfigのAWS公式ドキュメントの更新情報をもとに対象とするリソースの追加 を判断 ◦ 「ドキュメント履歴」をRSSでチェックし、AWS Config が新しいリソースタイ プをサポートしたときには、対象リソースとして追加
  18. 23 CONFIDENTIAL - © 2022 CoDMON Inc. 23 CostExplorerで見る実践後の結果 •

    なかなか減らない・・・ ◦ 前述のタグ付けをコントロールできないリソースの割合が結構多い
  19. 25 CONFIDENTIAL - © 2022 CoDMON Inc. 25 まとめ •

    FinOpsの実践において、タグ付けは重要 • タグの付け漏れ対策 • 実際全部タグ付けするのは難しい・・・ ◦ もっといい方法あれば教えて下さい🙏