ヤマムギ

growing hard days.

*

「JAWS-UG DE&I AWS re:Invent 2024 recap サーバーレス ハンズオン」でサポーターしてきました

   

JAWS-UG DE&I開催の「AWS re:Invent 2024 recap サーバーレス ハンズオン」にハンズオンお手伝いとして参加しました。

いつもすてきな会場を提供いただいているアールスリーインスティテュートさんのgusuku Ashibinaa OSAKA!
ありがとうございます!

お土産コーナーにはAWS re:Invent2024で配布されていたステッカーやお菓子などなどがありました。

JAWS-UG大阪やDE&Iももう10周年とのことです。

Serverless Data Processing with AWS Lambda and Apache Kafka解説

配車ならぬ配ユニコーンサービスみたいなのをMSK, Lambda, AppSyncで作成するハンズオン。
最初にAWS下川さんから各サービスの解説がありました。
ありがたい!

型指定されたスキーマにクエリーを投げるのがGraphQL。
クライアント側が取得したいフィールドをリクエストできるなどが嬉しいポイント。
ワークショップではSubscriptionとMutationを使ってDynamoDBテーブルのアイテムに変化があればイベントを実行する。

KafkaはREST APIでアクセス可能で、イベントのバスとしても、データストアとしても使えるOSSのストリーミング。
MSK(Amazon Managed Streaming for Apache Kafka)はKafkaのマネージドサービス。
Serverlessで容量性能の見積もりなく動的にスケールできる。

KafkaのパーティションはKinesisのシャード。
パーティションキーがハッシュされてパーティションに分かれて。パーティションの中で順序性が保たれる。
KafkaのオフセットがKinesisのシーケンス番号。

Lambda Event Source MappingsでKafka、Kinesis、SQS、DynamoDBストリームなどを設定すると、ポーラーは実装しなくてもLambdaサービスがやってくれる。

Serverless Data Processing with AWS Lambda and Apache Kafkaハンズオン

環境にリソースがすでに作成されていました。

VPC

MSKとVS Code Server用のEC2インスタンスが起動するVPCです。

MSKは複数のプライベートサブネットで起動していてNATゲートウェイへのルートがあり、ここからインターネットへアウトバウンド通信が可能です。
MSKに設定されているセキュリティグループのインバウンドはKafkaへの通信のために9098ポートへすべての送信元からの通信が可能で、アウトバウンドはすべてのポートと送信先への通信が可能です。

VS Code Serverはパブリックサブネットで起動していて、セキュリティグループのインバウンドは80ポートですべての送信元から通信可能で、アウトバウンドはすべてのポートと送信先への通信が可能です。
フロントエンドのデプロイやMSKへのプロデューサーコマンドはVS Code Serverから実行します。

MSK(Amazon Managed Streaming for Apache Kafka)

MSK Serverlessのクラスターが作成されていました。

AppSync

AppSyncでGraphQL APIが作成されていました。

Lambda関数

すでに作成されていたLambda関数に次のコードと環境変数API_CHANNELの修正をしました。

MSKから受け取ったrecord.itemsからvalueをGraphQL APIにPOSTされています。

Lambda関数自体はVPC設定ではありません。
イベントトリガーにMSKを設定すると、ENIが追加されます。
ENIはMSKクラスターが配置されているサブネットに作成されたので3つのAZのサブネットに作成されました。

複数のトリガーを設定するとその数だけENIも作成されます。

少し気になったのは試しにイベントトリガーを削除してもENIは削除されずに、ENIを手動で削除やデタッチしようとするとアタッチされているLambdaがあるのでエラーとなりますが、そのLambdaが内部のサービスのようで操作できません。
CLIとかで操作したらできるかもですが、今回はコンソールでしか試していません。

VS Code Server

フロントエンドのデプロイやMSKへのプロデューサーコマンドを実行しました。
今後のハンズオンはCloud9からVS Code Serverが主流になりそうですね。

デプロイしたフロントエンドアプリケーションにブラウザでアクセスすると、プロデューサーコマンドで送信されているであろうランダムな位置情報をもとにユニコーンの移動が地図上に現れました。

MSK、AppSyncのユースケースを学べたハンズオンでした。

LTコーナー

市野さんのIAM Identity Center前提サービス多くない?のLT!
サポートに従事されているからこその視点なんですね。

あべたくさんからDiscordのイベント投稿を自動化するLT!
未完成ではあってもアウトプットする!大切ですね。

泉さんのBedrockエージェントのLT!
チュートリアルの内容を生成AIに相談して実務に沿ったものにしてやってみられた。
ログ分析アクションと対応アクションを持ってて、必要に応じてEC2インスタンス再起動とかもしてくれる。
リアルな感じですごくいいですね。
ワークショップ化したい!

fumi9kenさんのスタッフエンジニアなどキャリアパスについてのLT!
いろんなキャリアが必要に応じてあるものなんですね。

楽しく各サービスを学べました!!
ありがとうございました!


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS, event, study , , ,

  関連記事

VPCピア接続した先のVPCインターフェイスエンドポイントを使用する

VPC1とVPC2でピア接続しています。 VPC2にはKMSのインターフェイスエ …

Developers Summit 2024「GitHub Copilotは開発者の生産性をどれだけ上げるのか? ZOZOでの全社導入とその効果」を見ました

株式会社ZOZO 技術本部 技術戦略部 CTOブロック テックリード 堀江 亮介 …

RDSの証明書をrds-ca-2019に更新しました

クライアント接続で署名書使ってないので、必要ないのですが、古いままなのも気持ち悪 …

Amazon Connectの新規作成からプッシュボタン入力と発信元電話番号をLambdaで処理するまで

とりあえずやりたいことはタイトルに書いたとおり、「電話をかけて、プッシュボタンに …

Amazon VPCにオンプレミス検証環境想定プライベートDNSサーバー(BIND)をEC2で起動する

オンプレミス想定の検証で使うために、Amazon VPCにプライベート向けDNS …

DevLOVE関西 現場甲子園2015 「西日本大会」に行ってきました

DevLOVE関西 現場甲子園2015 「西日本大会」に行ってきました。 全部で …

CloudFront用のAWS管理プレフィックスリストを使用しました

このブログでは、CloudFrontのカスタムヘッダーとALBのルーティングを組 …

ある意味マネジメントコンソールで生成された署名付きURL

マネジメントコンソールにS3オブジェクトの[開く]というボタンがいつのまにか出来 …

NGINXで500と502のエラーが実は頻発していたらしい

先日Mackerelで当ブログの外形監視を始めたのですが、500と502のエラー …

Amazon SES(Simple Email Service)でメール受信時のアクションでLambdaを実行して渡されるデータを見てみる

Amazon SESで受信したメールをS3に保存して、S3のトリガーでLambd …