LoginSignup
1
5

More than 3 years have passed since last update.

Amazon EventBridgeを試す

Last updated at Posted at 2019-07-17

はじめに

AWS環境で発生するイベントを、AWSサービスやSaaSのサービスと紐付けることができるサービスがAmazon EventBridgeになります。

チュートリアルのEC2インスタンス状態変更イベントをKinesisストリームにIngestする手順をやってみます。
https://docs.aws.amazon.com/ja_jp/eventbridge/latest/userguide/relay-events-kinesis-stream.html

試してみる

事前作業

Kinesisストリームを作成します

aws kinesis create-stream --stream-name test --shard-count 1

Amazon EventBridgeのルール作成

管理コンソールでAmazon EventBridgeの画面を開きます。
ルール作成をクリックします。
image.png

名前と説明

任意の名前を入力する
image.png

パターンを定義

・イベントパターン
・イベント一致パターン:サービスごとの事前定義パターン
・サービスプロバイダー:AWS
・サービス名:EC2
・イベントタイプ:EC2 Instance State-change Notification
・特定の状態:running
・任意のインスタンス

イベントパターン

{
  "source": [
    "aws.ec2"
  ],
  "detail-type": [
    "EC2 Instance State-change Notification"
  ],
  "detail": {
    "state": [
      "running"

image.png

イベントバスを選択

AWS のデフォルトのイベントバス
選択したイベントバスでルールを有効にする
image.png

ターゲットを選択

先程作成したKinesisストリームを選択する
image.png

作成をクリックする

テスト

EC2を起動する。
Cloudwatchイベントが発火し、KinesisストリームにデータがPutされる。
Kinesisストリームの確認

シャードイテレータの確認

$ aws kinesis get-shard-iterator --shard-id shardId-000000000000 --shard-iterator-type TRIM_HORIZON --stream-name test --region ap-northeast-1
{
    "ShardIterator": "AAAAAAAAAAE1mZhG3rrfdQ5tdAaeUbQa2ypHZFGOL/bNXDJrMPwQ6k6cOFwg0Uu/Kc9Coqn1pOfEj6urr9izKxk7/H7dB2DB6Ntw371oTx/Uxi5ixBBOMhkFb4MEVWNAvcW63bSBe7Z+Am7GS7lP1CZJaNV1vnMDKOX42SAStBr2BneylFxgZm25sdq/n1omPCc9JGZqO4dmDxn+txU6k64jvHm+uVSM"
}

データを取得

$ aws kinesis get-records --shard-iterator "AAAAAAAAAAE1mZhG3rrfdQ5tdAaeUbQa2ypHZFGOL/bNXDJrMPwQ6k6cOFwg0Uu/Kc9Coqn1pOfEj6urr9izKxk7/H7dB2DB6Ntw371oTx/Uxi5ixBBOMhkFb4MEVWNAvcW63bSBe7Z+Am7GS7lP1CZJaNV1vnMDKOX42SAStBr2BneylFxgZm25sdq/n1omPCc9JGZqO4dmDxn+txU6k64jvHm+uVSM" --region ap-northeast-1
{
    "Records": [
        {
            "SequenceNumber": "49597676585257306017395502932031331338920563685948653570",
            "ApproximateArrivalTimestamp": 1563343124.406,
            "Data": "eyJ2ZXJzaW9uIjoiMCIsImlkIjoiNWMzYTRhYTYtOGY0ZS02YzQ3LTlkMTEtNjEwOGU0NWJlY2YyIiwiZGV0YWlsLXR5cGUiOiJFQzIgSW5zdGFuY2UgU3RhdGUtY2hhbmdlIE5vdGlmaWNhdGlvbiIsInNvdXJjZSI6ImF3cy5lYzIiLCJhY2NvdW50IjoiNzkzNDkzMjg4NzA0IiwidGltZSI6IjIwMTktMDctMTdUMDU6NTg6NDNaIiwicmVnaW9uIjoiYXAtbm9ydGhlYXN0LTEiLCJyZXNvdXJjZXMiOlsiYXJuOmF3czplYzI6YXAtbm9ydGhlYXN0LTE6NzkzNDkzMjg4NzA0Omluc3RhbmNlL2ktMGY1YThkOWIzMDQyZjczNmMiXSwiZGV0YWlsIjp7Imluc3RhbmNlLWlkIjoiaS0wZjVhOGQ5YjMwNDJmNzM2YyIsInN0YXRlIjoicnVubmluZyJ9fQ==",
            "PartitionKey": "5c3a4aa6-8f4e-6c47-9d11-6108e45becf2_b25f9c09-11fa-6a82-b840-013b6ae39b76"
        }
    ],
    "NextShardIterator": "AAAAAAAAAAG6RsTO2LGqtJLbeMj702cPpUN2Q7uWc/wCaocHWcbo6VHydK2J6hYdwgsL6FrRE31VtpcJAII02j+Ao/il/g5nPQ4jJiPyDqBm3F86Fn9UMTaVIs/I35oeiznH1+Lk8RbXcXj1/S5Bi6sbbF9hFY1lbJG9Ue1E3cBLK3BZz+8vbcanlFQlZ3XDxSNc8hxyOrzG0+lWSWwfzxZ2Dc96F4cW",
    "MillisBehindLatest": 0
}

データを確認
base64デコードする

$ echo "eyJ2ZXJzaW9uIjoiMCIsImlkIjoiNWMzYTRhYTYtOGY0ZS02YzQ3LTlkMTEtNjEwOGU0NWJlY2YyIiwiZGV0YWlsLXR5cGUiOiJFQzIgSW5zdGFuY2UgU3RhdGUtY2hhbmdlIE5vdGlmaWNhdGlvbiIsInNvdXJjZSI6ImF3cy5lYzIiLCJhY2NvdW50IjoiNzkzNDkzMjg4NzA0IiwidGltZSI6IjIwMTktMDctMTdUMDU6NTg6NDNaIiwicmVnaW9uIjoiYXAtbm9ydGhlYXN0LTEiLCJyZXNvdXJjZXMiOlsiYXJuOmF3czplYzI6YXAtbm9ydGhlYXN0LTE6NzkzNDkzMjg4NzA0Omluc3RhbmNlL2ktMGY1YThkOWIzMDQyZjczNmMiXSwiZGV0YWlsIjp7Imluc3RhbmNlLWlkIjoiaS0wZjVhOGQ5YjMwNDJmNzM2YyIsInN0YXRlIjoicnVubmluZyJ9fQ==" | base64 -D
{"version":"0","id":"5c3a4aa6-8f4e-6c47-9d11-6108e45becf2","detail-type":"EC2 Instance State-change Notification","source":"aws.ec2","account":"XXXXXXXXXX","time":"2019-07-17T05:58:43Z","region":"ap-northeast-1","resources":["arn:aws:ec2:ap-northeast-1:XXXXXXXXXX:instance/i-0f5a8d9b3042f736c"],"detail":{"instance-id":"i-0f5a8d9b3042f736c","state":"running"}}" 

CloudWatchイベントの情報が取得できていることを確認する。

投稿内容は私個人の意見であり、所属企業・部門見解を代表するものではありません。

1
5
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
1
5