1
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?