概要
本記事ではRippleにAWS CURデータを連携する方法を記載しています。Cloud Formationを利用しての登録を推奨しておりますが、マニュアルで設定が必要な場合は以下の手順に沿って操作を行ってください。
作業時間:おおよそ5分ほど
必要となる権限やアクセス:
AWS Cost Usage Report(以下、CUR)はペイヤーアカウント単位で発行されますので、ペイヤーアカウントの管理権限が必要になります。
作業手順
Rippleのアカウントをもっていない場合にはアルファスへログイン時にIDとして利用するEメールアドレスの情報をご連絡ください。ご連絡いただき次第、アカウントの発行をおこないます。
CUR連携方法:
CURの作成
Rippleへログイン
左メニューの「設定」→「支払いアカウント設定」から右上の「支払いアカウントの追加」をクリック
今回登録するAWS支払いアカウントID(12桁)を入力し、一番下にあるマニュアル設定を選択後、アカウントを追加ボタンをクリックします。
【CURの設定:AWSコンソールで作業】ここから一度Rippleの画面を離れ、AWS コンソール上で作業をおこないます。
AWSログイン後、上部検索バーから「請求とコスト管理ホーム」を検索しクリックします。
右の「レガシーCURエクスポート」を選択します。
エクスポート名は任意で入力。例)alphaus-cur
その他のエクスポートコンテンツ
リソースIDを含めるを選択
CURの容量が大きくなるので、保存料金があがります。もしリソースIDレベルでの分析等必要ない場合は不要ですが、有効化を推奨しております。
コスト配分データを分割(チェックなし)
データ更新設定
自動的に更新(チェック)
S3バケットの設定
任意で選択。S3のバケット名例)alphaus-cur
プレフィックス:任意です。例)cur
タグの設定も任意です。
IAMポリシーの設定:
次にIAMポリシーの設定をおこないます。
AWS IAMページの左メニューにある「ポリシー」をクリック
右側に表示されている「ポリシーを作成」をクリックします。
アクセス許可を指定し、以下の設定内容をコピーペーストしてください。
バケット名は変更して保存します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:Get*",
"s3:List*"
],
"Resource": [
"arn:aws:s3:::alphaus-cur",
"arn:aws:s3:::alphaus-cur/*"
]
}
]
}
例:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:Get*",
"s3:List*"
],
"Resource": [
"arn:aws:s3:::alphaus-cur",
"arn:aws:s3:::alphaus-cur/*"
]
}
]
}
これでポリシーの設定は完了です。次にロールを設定します。
IAMロールの作成
AWS IAMページの左メニューにある「ロール」をクリック
右側に表示されている「ロールを作成」をクリックします。
信頼されたエンティティタイプでは「AWS アカウント」を選択します。
「別の AWS アカウント」を選択し、アカウント ID は
131920598436
を入力します。このアカウント ID はアルファス側のアカウント ID となり、アルファスがこの IAM Role を使用し、cur を取得するために入力して頂きます。
オプションはチェックなしでOKです。
ロール画面から先ほど作成したポリシー選択してロールを作成します。
以上でAWSコンソールでの作業は終了です。
作成したロールをクリックすると詳細が表示されるので、以下の情報をコピーしてRippleへ入力していきます。
Rippleへの登録:
Ripple左メニュー「設定」→「支払いアカウント」
該当のペイヤーアカウントの「・・・」をクリック
「S3バケットの登録/変更」をクリックすると以下のような画面が表示されます。
各項目を入力いただき、右下の「S3バケットを登録する」をクリックし保存すれば作業完了です。
以上ですべての作業完了となります。お疲れ様でした!
正しくCURが連携されているかの確認については該当のペイヤーアカウントの情報を展開すると「更新情報」が表示されます。ここではCURの更新履歴をトラッキングしており、ここにデータが反映されていれば、連携に問題ないことが確認できます。
また、基本的にはCURを連携してからのデータをRippleでは連携をしていきます。ただ、もし過去分のデータを取り込みたい場合はお手数ではあるのですが、以下にご連絡いただく、またはRipple右下にあるチャットよりアルファスへお問い合わせください。
例)CURをRippleと連携したのが、11月だった場合に11月利用分以降のデータがRippleへ連携されます。もし10月分やそれ以前のデータなど過去分のデータをRippleへ取り込みたい場合はお問い合わせください。
参考情報:2023/12 CUR仕様変更前の作業手順
各手順詳細
まずはじめに、AlphausへはRippleにログインする際に使用するルートアカウントのメールアドレスを送付き、アルファスにてRippleアカウントを作成いたします。
その後、Rippleへのログイン情報を共有いたしますので、ログインしたあとに下記AWSアカウント(ポータル)での作業後、Rippleへコストデータの連携をしていただきます。
下記は登録時に必要となる情報の一覧です。
各項目はRipple左メニューの「支払いアカウント設定」から入力いただくことで連携することが可能です。
- AWSアカウントのID (数字12桁)
- 作成したレポートの情報
- レポート名
- S3バケット
- レポートパスのプレフィックス、またはレポートのパス
- 特定バケット許可用の IAMロールのARN (例: arn:aws:iam::xxxxxxxxxxxx:role/crossacounnt-access-for-alphaus)
手順 1 : S3バケットおよびHourlyレポートの作成
請求情報を共有するAWSのアカウントで、Hourlyレポートを作成します。
以下の条件に当てはまるレポート定義がすでにある場合、この作業をスキップしてすることが可能です。時間単位: 時間別レポートに含める項目で リソースID が有効バケット内にAlphausが 閲覧してはいけないオブジェクト を含まない (バケット全体に読み取りアクセスを付与するため)
手順1-1: S3バケットの作成
S3コンソールから任意の名称でバケットを作成します。オプションはデフォルトで構いません。レポートの出力先として利用するため、バケット名を控えておいてください。
手順1-2: Hourlyレポートの作成
AWSのマネジメントコンソールから、[請求]を開き[Cost & Usage Reports]メニューへ移動します。
レポートの作成へ進みます。
[ステップ 1: レポートの明細項目]を以下の要領で記入して次に進めます。
レポート名:任意
リソースIDのインクルード:チェック
データの更新設定:チェック推奨
[ステップ 2: 配信オプション]では、S3バケットの操作を含めるため、以下手順で進めます。S3バケット名の設定ボタンをクリック[ステップ 1/2: S3 バケットの設定]で既存のバケットを選択[ステップ 2/2: ポリシーの確認]のポリシーの確認にチェックを入れ保存
検証で「有効なバケット」と出ていることを確認し、下記の設定を行います。レポートパスのプレフィックス: 任意 (※なしでも構いません)使用料の時間詳細度:時間別レポートのバージョニング:新しいメールバージョンの作成:レポートデータ統合の有効化: チェックしない圧縮タイプ: GZIP もしくは ZIP を選択
レポートデータ統合を有効化すると正常に動かない場合があります。
[ステップ 3: 確認]に表示されている内容に間違いがない確認し、完了します。
手順 2 :読み取り権限を委譲するIAMロールの作成
AWSのマネジメントコンソールから、IAMサービスを開き、『ロール』>> 『ロールの作成』メニューへ移動します。
『信頼されたエンティティの種類を選択』で、「別のAWSアカウントを」選択し、以下のAlphaus のアカウントIDを入力します。
AlphausアカウントID: 131920598436
「Attach アクセス権限ポリシー」メニューで、『ポリシーの作成』を選択します。
別のタブ(ウィンドウ)で「ポリシーの作成」メニューが開くので、入力形式にJSONを選択し、以下の内容でポリシーを入力します。 Resourceの{replace_to_report_bucket}
部分を レポートに使用するバケット名 に置き換えてください。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:Get*",
"s3:List*"
],
"Resource": [
"arn:aws:s3:::{replace_to_report_bucket}",
"arn:aws:s3:::{replace_to_report_bucket}/*"
]
}
]
}
「ポリシーの確認」へ進み、以下の項目を入力してポリシーを作成します。
名前: 任意(※必須)
説明: 任意
『ロールの作成』メニューに戻り、リストを更新し、先ほど作成したポリシーを表示します。 チェックを有効にして、確認へ進みます。
『次のステップ: タグ』をクリック。
タグは任意で設定してください。
「確認」メニューで、以下の項目を入力します。
ロール名: 任意(※必須)
ロールの説明: 任意
「信頼されたエンティティ」、「ポリシー」が適用されていることを確認し、ロールを作成します。
作成したロールのARNを控えます。
お疲れさまでした。これでRippleからデータを参照するために必要となる情報はすべて取得できました。
今後の手順:
Rippleログイン時に使用するルートアカウントのアドレスをAlphausに連携
Rippleへのログインし、上記情報を入力しRippleからCURを取得できるよう設定
詳細はこちら↓
注意事項:
操作をしているIAMに権限がないとエラーになる可能性がありますので、エラーが発生した場合には権限をご確認ください(ルートアカウントの場合は問題ありません)
S3のサーバサイド暗号化(SSE-S3)は、Ripple との連携において追加の設定等必要なくご利用頂けます。それ以外の暗号化オプション(SSE-KMS, SSE-C)をご希望の場合には事前にアルファスまでご連絡いただけますと幸いです。
*SSE-KMSを利用する場合にはIAMのポリシー設定でAWS KMSの権限を追加いただく必要があります。