タグなしリソース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 ログイン情報の確認
- Megazone Hyper Billing ログイン情報管理シートにアクセス
- シート内から以下の情報を確認:
- ログインID
- パスワード
- 二要素認証の設定(必要に応じて)
注意:
- このシートはSREチームのみアクセス可能です
- パスワードは定期的に変更される可能性があります
1.2 Megazone Hyper Billingにログイン
ブラウザで以下のURLを開く:
https://billing.hyperbilling3.megazonecloud.jp/signinログイン情報管理シートから取得した情報を入力:
- ログインID:
[シートから取得] - パスワード:
[シートから取得]
- ログインID:
二要素認証が求められた場合は、指示に従って認証を完了
ログイン成功を確認:
- ダッシュボードが表示されること
手順2: タグなしリソースID一覧のダウンロード
2.1 Cost Pivot画面への移動
- 左側メニューから 「Cost Pivot」 をクリック
- Cost Pivot画面が表示されることを確認
2.2 対象月とアカウントの選択
- アカウントフィルタで 対象アカウントID を選択
- 例:
900176301532(開発環境)
- 例:
- 画面上部の月選択ドロップダウンから 対象月 を選択
- 例:
2025-11(Phase 1で集計した月と同じ)
- 例:
2.3 保存済みフィルタの適用
- 画面上部の 「フィルタ」 または 「Saved Filters」 ボタンをクリック
- 保存済みフィルタ一覧から環境に応じたフィルタを選択:
- 開発環境・本番環境・ステージング環境:
no-tag-resource-id - amazon-connect環境:
no-tag-resource-amazon-connect
- 開発環境・本番環境・ステージング環境:
- フィルタが適用されることを確認
- タグなしリソースのみが表示されること
注: 保存済みフィルタが存在しない場合は、以下の条件で新規フィルタを作成してください:
- 通常環境:
TAG:Serviceが未設定または空 - amazon-connect環境:
TAG:ServiceANDTAG:Nameが両方とも未設定または空 - 表示列: リソースID, AWSサービス, コスト
2.4 CSVファイルのダウンロード
- 画面右上の 「Export CSV」 ボタンをクリック
- ダウンロードされたCSVファイルを確認:
- ファイル名例:
billing.exported.csv - Megazone標準フォーマットでダウンロードされること
- ファイル名例:
2.5 CSVファイルのフォーマット確認
ダウンロードしたCSVは以下のMegazone標準フォーマットになっています:
Megazone Hyper Billing 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.md3.2 AWS CLIでアップロード
ターミナルを開く
AWS認証情報を確認:
bashaws sts get-caller-identityダウンロードした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アップロード確認:
bashaws 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アカウント:
- 本番環境(967691968827)のタグなしリソース一覧をダウンロード
- S3にアップロード:
s3://cost-monitoring-monthly-production/output/phase1_5/2025/11/16/no_tag_resource_list/no_tag_resources.csv - ステージング環境(301608970378)のタグなしリソース一覧をダウンロード
- S3にアップロード:
s3://cost-monitoring-monthly-staging/output/phase1_5/2025/11/16/no_tag_resource_list/no_tag_resources.csv - 開発環境(900176301532)のタグなしリソース一覧をダウンロード
- 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へのアクセス
ブラウザで以下のURLを開く:
https://github.com/fastdoctor/terraform_for_aws/actionsワークフロー一覧から 「Cost Monitoring - Phase 1.5 (Manual Allocation)」 を選択
4.2 ワークフローの手動実行
右上の 「Run workflow」 ボタンをクリック
パラメータを入力:
- target_month: 対象月(例:
2025-11) - target_date: Phase 1実行日(例:
2025-11-16) - environment: 環境名(
production/staging/develop/infra-dev)
- target_month: 対象月(例:
「Run workflow」 ボタンをクリックして実行
ワークフロー実行状態を確認:
- ステータスが「Success」になることを確認
4.3 各環境で繰り返し実行
複数環境の場合は、各環境ごとに手順4.2を繰り返し実行してください:
実行例:
- 本番環境:
environment=production,target_date=2025-11-16 - ステージング環境:
environment=staging,target_date=2025-11-16 - 開発環境:
environment=develop,target_date=2025-11-16
手順5: 結果確認
5.1 Phase 1.5結果の確認
各環境のPhase 1.5実行完了後、結果CSVをダウンロードして確認:
# 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にログインできない
原因: パスワードが変更された、または二要素認証の問題
対応:
- ログイン情報管理シートのパスワードが最新か確認
- 二要素認証アプリ(Google Authenticator等)の設定を確認
- 解決しない場合はSREチームリーダーに連絡
問題2: 保存済みフィルタが見つからない
原因: フィルタが未作成、または別名で保存されている
対応:
- フィルタ一覧で
no_tagを検索 - 見つからない場合は手動でフィルタ条件を設定:
TAG:Serviceが未設定または空
- 設定後、フィルタを保存(次回のため)
問題3: CSVのフォーマットが正しくない
原因: ダウンロードしたCSVの列構成が異なる
対応:
- 必須列(リソースID, AWSサービス, コスト(USD), 推定事業部)を確認
- 列の順序を調整
- ヘッダー行を正しいフォーマットに修正
問題4: S3アップロードでエラーが発生
原因: AWS認証情報の問題、またはS3バケットへのアクセス権限がない
対応:
- AWS認証情報を確認:
aws sts get-caller-identity - S3バケットのアクセス権限を確認
- Slack通知に記載されたパスが正しいか確認
関連ドキュメント
更新履歴
| 日付 | 更新内容 | 担当チーム | 更新者 |
|---|---|---|---|
| 2025-12-23 | Phase 1.5廃止、参考資料として保持 | SREチーム | 大賀 |
| 2025-12-16 | 初版作成 | SREチーム | 大賀 |