Amazon Redshift Serverless の請求情報をクエリする方法を教えてください。

所要時間2分
0

Redshift Serverless の請求詳細を計算できるように、Amazon Redshift プロセッシングユニット (RPU) の使用状況をクエリしたいと考えています。

簡単な説明

実行するワークロードに基づいてコストが発生します。ワークロードは RPU 時間で測定され、1 分間の最小料金で秒単位で計上されます。詳細については、「Amazon Redshift Serverless での請求」を参照してください。

解決策

コストに関する情報を取得するには、Amazon Redshift Serverless アカウントに接続されているクライアントツールまたはクエリエディタを使用して次のクエリを実行します。詳細については、「Amazon Redshift Serverless への接続」を参照してください。

**注:**次のクエリでは、AWS\ _REGION\ _PRICE を、お使いの AWS リージョンの RPU 時間あたりの料金に置き換えます。RPU コストの詳細については、Amazon Redshift 料金ページの「Amazon Redshift Serverless 」を参照してください。

次のクエリから得られるコスト出力は概算です。出力は、AWS 請求コンソールに表示される Amazon Redshift Serverless Costとは異なる場合があります。

1 日あたりの費用

過去 7 日間に毎日発生した費用を調べるには、次のクエリを実行します。

SELECT date_trunc('d',start_time) "Day",
    (
        sum(charged_seconds)/3600::double precision
    ) * AWS_REGION_PRICE as cost_incurred
FROM   sys_serverless_usage
GROUP  BY 1
ORDER  BY 1;

**注:**Amazon Redshift Serverlessは、5~7 日分の履歴データのみを保存します。7 日より前のデータを取得できない場合があります。

出力例:

day                 |    cost_incurred($)
--------------------+--------------------------
2024-05-27 00:00:00 |    1.536    
2024-05-29 00:00:00 |    59.903999999999996    
2024-05-30 00:00:00 |    13.824    
2024-05-31 00:00:00 |    0.768    

特定日の RPU 使用量とコスト

前日の RPU 使用量と合計コストを確認するには、次のクエリを実行します。他の日付をクエリするには、dateadd(day,-1,sysdate)\ -1 を別の負の数に変更します。

SELECT date_trunc('d',start_time)  as "day",
       (
        sum(charged_seconds)/3600::double precision
       ) * <AWS_REGION_PRICE> as cost_incurred,
       min(compute_capacity) min_rpu,
       max(compute_capacity) max_rpu,
       avg(compute_capacity) avg_rpu,
       max(data_storage) as max_storage
FROM   sys_serverless_usage
WHERE "day" = date_trunc('d', dateadd(day,-1,sysdate))
GROUP  BY 1
ORDER  BY 1

出力例:

day                  | cost_incurred ($) |    min_rpu |  max_rpu  |     avg_rpu | max_storage
---------------------+-------------------+------------+-----------+-------------+-------------
2024-05-30 00:00:00  |    13.824         |    0       |  128      |    92.16    | 3166    

RPU 使用量とクエリあたりのコスト

特定の日付に実行したクエリのおおよその RPU 使用量とコストを取得するには、次のクエリを実行します。

with
daily_cost as (
    select
        trunc(start_time) "YYY-MM-DD",
        max(compute_capacity) max_compute_capacity,
        (sum(charged_seconds) / 3600:: double precision) * <AWS_REGION_PRICE> as daily_cost
    from
        sys_serverless_usage
    group by
        1
),
daily_queries as (
    SELECT
        *,
        elapsed_time / total_time_for_day:: double precision as perc
    from
        (
            SELECT

                query_id,
                user_id,
                query_text,
                trunc(start_time) "Day",
                elapsed_time,
                sum(elapsed_time) over (partition by trunc(start_time)) total_time_for_day
            FROM
                sys_query_history
        )
)
select
    q.*,
    c.daily_cost * q.perc as query_cost,
    c.*
from
    daily_cost c
    join daily_queries q using ("Day") where Day ='<start_date>';

**注:**YYYY-MM-DD を、クエリ対象の特定の日付に置き換えます。日付は YYYY-MM-DD 形式でなければなりません。

出力例:

query_id| user_id | day        | elapsed_time | total_time_for_day | perc                   | query_cost             | day        | max_compute_capacity |    daily_cost  | query_text
--------+---------+------------+--------------+--------------------+------------------------+------------------------+------------+----------------------+------------------+--------------------------------------+
5240721 | 101     | 2024-05-30 | 174646       | 22720291           | 0.00768678534971229    | 0.10921384624871222    | 2024-05-30 | 128                  | 14.208         | SELECT table_name as view_name, table_type, schema_name FROM SVV_ALL_TABLES WHERE database_name='dev' AND schema_name='lakeformation_schema' and table_type IN ('VIEW');

5240073 | 101     | 2024-05-30 | 765          | 22720291           | 0.00003367034339480951 | 0.00047838823895345354 | 2024-05-30 | 128                  | 14.208         | select oid, lanname from pg_language order by lanname asc

**重要:**出力は近似値です。クエリは、その日付に発生した合計コストを決定し、クエリの経過時間に基づいて起動されたすべてのクエリにコストを分配します。

関連情報

SYS_SERVERLESS_USAGE

SYS_QUERY_HISTORY

AWS公式
AWS公式更新しました 2ヶ月前
コメントはありません

関連するコンテンツ