ヤマムギ

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 , , ,

  関連記事

Aurora Serverless Data APIを有効にしてLambdaからクエリを実行

Aurora Serverless作成 MySQLを作成しました。 作成時にDa …

AWSアカウント内特定リージョン内のDynamoDBテーブルを全削除するLambda(Python)

やりたいこと タイトル通りですが、特定アカウントの特定リージョン内のDynamo …

Java SE 7 Silver対策勉強をしながらメモ 2015/2/10

練習問題3日目。 疲れてきた。 でも明日は休みだし一気にやる。 いつものごとくマ …

AWS Service Catalogポートフォリオを他のアカウントと共有する

AWS Service Catalogチュートリアルで作成したポートフォリオの他 …

Java SE 7 Silver対策勉強をしながらメモ 2015/2/5

本日は例外。 いつものごとくマークダウンで記載したのでそのままJetpack M …

「コミュニティリーダーズサミット in 高知 2023初鰹編」に参加しました

始まりました! 今回のテーマは「旗を立てる ~Raise Your Flag~」 …

交通情報系スキルを事例に見る日常生活に溶け込むスキルのテクニック(Alexa Day 2019でのブログ)

以下は、気になったことのメモとか感想を書いています。 登壇者、発表者、主催企業な …

VPCピア接続ではピア先VPCのセキュリティグループIDを指定できる

タイトルどおりです。 できることは知ってたのですが、試したことがなかったので、確 …

GoogleフォームからAPI Gatewayで作成したREST APIにPOSTリクエストする

「API GatewayからLambdaを介さずにSNSトピックへ送信」の続きで …

「Serverless Meetup Japan Virtual #15 – re:Cap」を視聴しました

オンラインで時間がかぶっていなかったので、はしごしました。 場所移動がないのもオ …