LoginSignup
11
14

More than 5 years have passed since last update.

Lambdaのcloudwatch-alarm-to-slackで無料と思ってKMS暗号化キーを使ったら2円かかったので関数修正した

Last updated at Posted at 2018-03-25

CloudWatchアラーム通知をSlackにするIAMのKMSで暗号キーでWebhookURLを暗号化でKMSキーを使ったのですが、これが実は無料じゃなかった。

AWS Key Management Service の料金

キー
AWS Key Management Service で作成したそれぞれのお客様のマスターキー (CMK) は、KMS により生成されたキーマテリアルで使用するか、インポートしたキーマテリアルで使用するかに関わりなく、それが削除されるまで、1 USD/月の料金がかかります。KMS により生成されたキーマテリアルの CMK の場合で、CMK が毎年自動的にローテーションするように設定されている場合は、新しくローテーションされたバージョンに 1 USD/月の CMK コストが発生します。AWS KMS では、以前の各バージョンの CMK を保持および管理して、古いデータを確実に復号できるようにしています。以下について、料金が請求されることはありません。

・AWS 管理の CMK。サポートされている AWS のサービス内のリソースを最初に暗号化しようとすると、お客様に代わって自動的に作成されます。

・削除を予定された CMK。待機期間中に削除をキャンセルした場合、その CMK は削除を予定されなかったものとして請求されます。

・GenerateDataKey および GenerateDataKeyWithoutPlaintext API リクエストによって作成されたデータキー。これらの API リクエストを直接行うか、またはユーザーに代わって統合された AWS のサービスによって行うかに応じて、以下で説明される使用料金ごとに、これらの API リクエストに対して課金されます。AWS KMS で保存または管理されない限り、データキー自体に対して月間利用料金が課金されることはありません。

つまり、自身で作成したキーに料金が発生するようです。
よく読めよってな話ですね。

ちなみにLambda関数は以下のように修正しました。

l.51

const hookUrl = process.env.hookUrl;

l.120

exports.handler = (event, context, callback) => {
    if (hookUrl) {
        // Container reuse, simply process the event with the key in memory
        processEvent(event, callback);
    } else {
        callback('Hook URL has not been set.');
    }
};

環境変数は取得したWebHookURLをそのまま設定する感じ。
「hookUrl」:「https://hooks.slack.com/services/*********」

これで無料枠でslackにも通知が来るようになります。

11
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
14