Skip to content

タグなしリソースIDとコストの一覧取得・配置手順(Phase 1.5用、廃止)

⚠️ 重要: この手順書は廃止されました(2025年12月)

廃止理由と背景:

  • この手順書はPhase 1.5(GitHub Actions自動実行)のためのS3アップロード手順でした
  • しかし、実際の運用では**非エンジニア(経理・財務担当者)**がコスト按分作業を実施します
  • 非エンジニアはS3やGitHub Actionsへのアクセス権限がなく、AWS CLIの操作も困難です
  • そのため、スプレッドシートベースの手動按分に運用を変更しました

現行手順書:

このドキュメントを残す理由:

  • 将来、運用が安定しエンジニアリソースが確保できた場合、Phase 1.5の自動化を再実装する可能性があります
  • その際の手順書として、このドキュメントを参考資料として保持します
  • 既に実装されたワークフロー(.github/workflows/*-untag-resources.yml)とスクリプト(phase1_5_*.py)も削除せず保持します

以下、Phase 1.5用の手順(参考資料):


概要(参考資料)

このドキュメントは、Phase 1のコスト分析完了後に、タグなしリソースのIDとコストの一覧をMegazone Hyper Billingから取得し、S3の指定パスに配置する手順を説明します。

注意: 現在の運用では使用していません。スプレッドシート手動按分を使用しています。

前提条件

  • Phase 1のコスト分析ワークフローが正常に完了していること
  • Slackに通知されたS3配置パスを確認済みであること
  • Megazone Hyper Billingへのアクセス権限を持っていること

手順1: Megazone Hyper Billingへのログイン

1.1 ログイン情報の確認

  1. Megazone Hyper Billing ログイン情報管理シートにアクセス
  2. シート内から以下の情報を確認:
    • ログインID
    • パスワード
    • 二要素認証の設定(必要に応じて)

注意:

  • このシートはSREチームのみアクセス可能です
  • パスワードは定期的に変更される可能性があります

1.2 Megazone Hyper Billingにログイン

  1. ブラウザで以下のURLを開く:

    https://billing.hyperbilling3.megazonecloud.jp/signin
  2. ログイン情報管理シートから取得した情報を入力:

    • ログインID: [シートから取得]
    • パスワード: [シートから取得]
  3. 二要素認証が求められた場合は、指示に従って認証を完了

  4. ログイン成功を確認:

    • ダッシュボードが表示されること

手順2: タグなしリソースID一覧のダウンロード

2.1 Cost Pivot画面への移動

  1. 左側メニューから 「Cost Pivot」 をクリック
  2. Cost Pivot画面が表示されることを確認

2.2 対象月とアカウントの選択

  1. アカウントフィルタで 対象アカウントID を選択
    • 例: 900176301532 (開発環境)
  2. 画面上部の月選択ドロップダウンから 対象月 を選択
    • 例: 2025-11 (Phase 1で集計した月と同じ)

2.3 保存済みフィルタの適用

  1. 画面上部の 「フィルタ」 または 「Saved Filters」 ボタンをクリック
  2. 保存済みフィルタ一覧から環境に応じたフィルタを選択:
    • 開発環境・本番環境・ステージング環境: no-tag-resource-id
    • amazon-connect環境: no-tag-resource-amazon-connect
  3. フィルタが適用されることを確認
    • タグなしリソースのみが表示されること

: 保存済みフィルタが存在しない場合は、以下の条件で新規フィルタを作成してください:

  • 通常環境: TAG:Service未設定 または
  • amazon-connect環境: TAG:Service AND TAG:Name が両方とも 未設定 または
  • 表示列: リソースID, AWSサービス, コスト

2.4 CSVファイルのダウンロード

  1. 画面右上の 「Export CSV」 ボタンをクリック
  2. ダウンロードされたCSVファイルを確認:
    • ファイル名例: billing.exported.csv
    • Megazone標準フォーマットでダウンロードされること

2.5 CSVファイルのフォーマット確認

ダウンロードしたCSVは以下のMegazone標準フォーマットになっています:

Megazone Hyper Billing CSVフォーマット:

csv
ym,projectName,usageAccountId,productCode,TAG:Service,TAG:Name,resourceId,unblendedCost
2025-11,p82516-220391,900176301532,AmazonS3,,,arn:aws:s3:::example-bucket,123.45
2025-11,p82516-220391,900176301532,AWSLambda,,,arn:aws:lambda:ap-northeast-1:123456789012:function:example,45.67
2025-11,p82516-220391,900176301532,AmazonEC2,,,i-0abcdef1234567890,234.56

列の説明:

  • ym: 年月(例: 2025-11
  • projectName: プロジェクト名(例: p82516-220391
  • usageAccountId: AWSアカウントID
  • productCode: AWSサービス名(例: AmazonS3, AWSLambda, AmazonEC2
  • TAG:Service: Serviceタグの値(タグなしリソースの場合は空白
  • TAG:Name: Nameタグの値(タグなしリソースの場合は空白
  • resourceId: リソースID/ARN
  • unblendedCost: コスト(USD、小数点以下の桁数は可変)

重要:

  • このCSVはそのままS3にアップロードしてください(フォーマット変換不要)
  • Phase 1.5スクリプトが自動的にTAG:Serviceが空白のレコードを抽出します
  • resourceIdのパターンマッチングで事業部を自動判定します
  • ダウンロードしたファイルをそのまま使用するため、手動での編集作業は不要です

手順3: S3へのアップロード

3.1 Slack通知から配置パスを確認

Phase 1完了のSlack通知に記載されたS3パスを確認:

【次のタスク】タグなしリソースの手動配分(Phase 1.5)
S3アップロード先:
s3://cost-monitoring-monthly-develop/output/phase1_5/2025/11/16/no_tag_resource_list/billing.exported.csv

手順: https://github.com/fastdoctor/terraform_for_aws/blob/develop/docs/sre/runbooks/cost-monitoring-no-tag-resources-upload.md

3.2 AWS CLIでアップロード

  1. ターミナルを開く

  2. AWS認証情報を確認:

    bash
    aws sts get-caller-identity
  3. ダウンロードしたCSVをそのままS3にアップロード(リネーム不要):

    bash
    # Slack通知に記載されたパスにアップロード
    aws s3 cp billing.exported.csv \
      s3://cost-monitoring-monthly-develop/output/phase1_5/2025/11/16/no_tag_resource_list/billing.exported.csv
  4. アップロード確認:

    bash
    aws s3 ls s3://cost-monitoring-monthly-develop/output/phase1_5/2025/11/16/no_tag_resource_list/

    期待される出力:

    2025-11-16 10:00:00      12345 billing.exported.csv

3.3 複数アカウントの場合

複数アカウントのコスト分析を実施している場合は、各アカウントごとに手順2と手順3を繰り返し実施してください:

例: 本番環境、ステージング環境、開発環境の3アカウント:

  1. 本番環境(967691968827)のタグなしリソース一覧をダウンロード
  2. S3にアップロード: s3://cost-monitoring-monthly-production/output/phase1_5/2025/11/16/no_tag_resource_list/no_tag_resources.csv
  3. ステージング環境(301608970378)のタグなしリソース一覧をダウンロード
  4. S3にアップロード: s3://cost-monitoring-monthly-staging/output/phase1_5/2025/11/16/no_tag_resource_list/no_tag_resources.csv
  5. 開発環境(900176301532)のタグなしリソース一覧をダウンロード
  6. S3にアップロード: s3://cost-monitoring-monthly-develop/output/phase1_5/2025/11/16/no_tag_resource_list/no_tag_resources.csv

手順4: Phase 1.5ワークフローの実行

すべてのアカウントのCSVアップロードが完了したら、Phase 1.5ワークフローを実行します。

4.1 GitHub Actionsへのアクセス

  1. ブラウザで以下のURLを開く:

    https://github.com/fastdoctor/terraform_for_aws/actions
  2. ワークフロー一覧から 「Cost Monitoring - Phase 1.5 (Manual Allocation)」 を選択

4.2 ワークフローの手動実行

  1. 右上の 「Run workflow」 ボタンをクリック

  2. パラメータを入力:

    • target_month: 対象月(例: 2025-11
    • target_date: Phase 1実行日(例: 2025-11-16
    • environment: 環境名(production / staging / develop / infra-dev
  3. 「Run workflow」 ボタンをクリックして実行

  4. ワークフロー実行状態を確認:

    • ステータスが「Success」になることを確認

4.3 各環境で繰り返し実行

複数環境の場合は、各環境ごとに手順4.2を繰り返し実行してください:

実行例:

  1. 本番環境: environment=production, target_date=2025-11-16
  2. ステージング環境: environment=staging, target_date=2025-11-16
  3. 開発環境: environment=develop, target_date=2025-11-16

手順5: 結果確認

5.1 Phase 1.5結果の確認

各環境のPhase 1.5実行完了後、結果CSVをダウンロードして確認:

bash
# Phase 1.5の結果をダウンロード
aws s3 cp s3://cost-monitoring-monthly-develop/output/phase1_5/2025/11/16/result/manual_allocation_20251116_*.csv .

# 内容確認
cat manual_allocation_20251116_*.csv

確認ポイント:

  • タグ付きリソースのコスト
  • タグなしリソースのコスト
  • 事業部別の最終割合(タグ付き + タグなし の合計)

5.2 Slack通知の確認

Phase 1.5完了のSlack通知を確認:

  • 処理完了通知
  • タグなしリソースの配分結果
  • 次のタスク(Phase 2実行)

トラブルシューティング

問題1: Megazone Hyper Billingにログインできない

原因: パスワードが変更された、または二要素認証の問題

対応:

  1. ログイン情報管理シートのパスワードが最新か確認
  2. 二要素認証アプリ(Google Authenticator等)の設定を確認
  3. 解決しない場合はSREチームリーダーに連絡

問題2: 保存済みフィルタが見つからない

原因: フィルタが未作成、または別名で保存されている

対応:

  1. フィルタ一覧で no_tag を検索
  2. 見つからない場合は手動でフィルタ条件を設定:
    • TAG:Service未設定 または
  3. 設定後、フィルタを保存(次回のため)

問題3: CSVのフォーマットが正しくない

原因: ダウンロードしたCSVの列構成が異なる

対応:

  1. 必須列(リソースID, AWSサービス, コスト(USD), 推定事業部)を確認
  2. 列の順序を調整
  3. ヘッダー行を正しいフォーマットに修正

問題4: S3アップロードでエラーが発生

原因: AWS認証情報の問題、またはS3バケットへのアクセス権限がない

対応:

  1. AWS認証情報を確認: aws sts get-caller-identity
  2. S3バケットのアクセス権限を確認
  3. Slack通知に記載されたパスが正しいか確認

関連ドキュメント


更新履歴

日付更新内容担当チーム更新者
2025-12-23Phase 1.5廃止、参考資料として保持SREチーム大賀
2025-12-16初版作成SREチーム大賀