あるリージョンでリソースが作成されたら検知したい

# はじめに
本日は、あるリージョンで何かリソースが作成されたとき、自動で検知する方法をまとめました。
EventBridge + Config で、〇〇リージョンにリソースが作成された際に自動で検知するようにしています。
うっかり違うリージョンにリソースを作成されてもすぐに気づけるようにしてみました。

# 構成

EventBridgeルールを使用して、そのリージョンにリソースが作成されたらメールで通知します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3115411/c0e9a564-fa20-bb72-aa31-2ac8fcd32a5e.png)


# 設定手順

## SNSトピックの作成
以下のリンクを参考に、SNSトピックを作成します。

https://docs.aws.amazon.com/ja_jp/sns/latest/dg/sns-getting-started.html

## EventBridge ルールの作成
以下の設定でEventBridge ルールを作成します。

[Rule type] で、[Rule with and event pattern] を選択します。
[Event source] で、[AWS events or EventBridge partner events] を選択します。
[Event pattern] で、 [Custom patterns (JSON editor)] を選択し、以下のイベントパターンを貼り付けます。
```
 {
    "source": ["aws.config"],
    "detail-type": ["Config Configuration Item Change"],
    "detail": {
        "messageType": ["ConfigurationItemChangeNotification"],
        "configurationItem": {
           "configurationItemStatus": ["ResourceDiscovered"]
        }
    }
}
```


以下のリンクを参考に設定していますが、"resourceType" を指定しないことで、特定のリソースに限らず、作成を検知することができます。

https://repost.aws/ja/knowledge-center/config-email-resource-created 

ターゲットには、先ほど作成したSNSトピックを選択します。

以上で設定は完了です。

試しにEC2インスタンスを作成してみると、メールが来ることがわかります。




# リージョンごとに設定が必要
私は、東京リージョン以外にリソースが作成された際に検知する方法を探していたのですが、この方法だと東京リージョン以外のすべてのリージョンに設定をすることになります。（CloudFormation StackSetの出番ですね）

us-east-2	米国東部 (オハイオ)
us-east-1	米国東部 (バージニア北部)	
us-west-1	米国西部 (北カリフォルニア)
us-west-2	米国西部 (オレゴン)	
af-south-1	アフリカ (ケープタウン)	
ap-east-1	アジアパシフィック (香港)	
ap-south-2	アジアパシフィック (ハイデラバード)	
ap-southeast-3	アジアパシフィック (ジャカルタ)	
ap-southeast-4	アジアパシフィック (メルボルン)	
ap-south-1	アジアパシフィック (ムンバイ)	
ap-northeast-3	アジアパシフィック (大阪)	
ap-northeast-2	アジアパシフィック (ソウル)	
ap-southeast-1	アジアパシフィック (シンガポール)	
ap-southeast-2	アジアパシフィック (シドニー)	
ap-northeast-1	アジアパシフィック (東京)	
ca-central-1	カナダ (中部)	
eu-central-1	欧州 (フランクフルト)	
eu-west-1	欧州 (アイルランド)	
eu-west-2	欧州 (ロンドン)	
eu-south-1	ヨーロッパ (ミラノ)	
eu-west-3	欧州 (パリ)	
eu-south-2	欧州 (スペイン)	
eu-north-1	欧州 (ストックホルム)	
eu-central-2	欧州 (チューリッヒ)	
me-south-1	中東 (バーレーン)	
me-central-1	中東 (アラブ首長国連邦)	
sa-east-1	南米 (サンパウロ)	


# コスト
東京リージョン以外のリージョンでリソースが作成されたことを検知するための設定をした場合、どのくらいコストがかかるのでしょうか。
各サービスごとにコストを確認します。

## Configにかかるコスト
今回の構成では、記録された設定項目の数に応じて0.003USDが課金されます。

### Configのランニングコスト
* 記録された設定項目（configuration item recorded）
AWS アカウントに記録された構成アイテムごとに課金されます。
※リソースの新規作成や設定変更、削除が頻繁に行われる環境では意図せず料金が膨らむ場合があります

* Config ルール
記録された AWS Config ルール評価の数に基づいて課金されます。

* 適合パック
AWS アカウントでの適合パック評価ごとに課金されます。
適合パックについては以下のリンクをご覧ください。
> 適合パックを使用すると、コンプライアンスルールのパッケージを作成することができます。このパッケージはAWS Config ルールと修復アクションの両方を単一のエンティティにまとめたもので、大規模な展開を容易にします。

https://aws.amazon.com/jp/blogs/news/aws-config-conformance-packs/




## EventBridgeにかかるコスト
今回の構成では、カスタムイベントを利用するため、100万件あたり1.00USDが課金されます。

### EventBridgeのランニングコスト
* AWS のサービスがデフォルトで発行したすべての状態変更イベント：無料
* カスタムイベント：100万件あたり1.00USD
* サードパーティーの software as a service (SaaS) イベント：100 万件の公開済みイベントあたり1.00USD
* クロスアカウントイベント：送信されたイベント100万件あたり 1.00USD


## SNSにかかるコスト
今回の構成では、標準トピックでEMailを利用するため、1,000 件の通知までは無料で、10万通知ごとに2.00USDが課金されます。
### SNSのランニングコスト
* Email/Email-JSON	
    * 1,000 件の通知：無料
    * 10万通知ごとに2.00USD
* モバイルプッシュ通知
    * 100万件の通知：無料
    * 100万通知ごとに0.50USD
* HTTP/S
    * 10 万件の通知：無料
    * 100万通知ごとに0.60USD


# おわりに
ほかにも方法がある気がします、、
何かある方はぜひ共有お願いします！