[レポート] Amazon S3 Object Lambdaを使用したデータ変換を学ぶワークショップに参加しました #AWSreInvent #STG302-R

Transforming your data with Amazon S3 Object Lambda(STG302-R)のセッションレポートとなります。
2023.11.30

はじめに

ネクストモードの南です。

Amazon S3 Object Lambdaを使用したデータ変換を試すことのできるワークショップTransforming your data with Amazon S3 Object Lambda(STG302-R)に参加してきました。
本エントリではそのセッションレポートをお届けします。

ワークショップの概要

Amazon S3 Object Lambda works with your existing applications and allows you to add your own code using AWS Lambda functions to automatically process and transform data from Amazon S3 before returning it to an application. This allows different views of the same object depending on user identity, so you can restrict access to confidential information or disallow access to PII data. In this workshop, learn how to use Amazon S3 Object Lambda to modify the object during the GET so you no longer have to store multiple views of the same document. You must bring your laptop to participate.

Amazon S3 Object Lambdaは既存のアプリケーションと連携し、AWS Lambda 関数を使用して独自のコードを追加し、Amazon S3 からのデータをアプリケーションに返す前に自動的に処理および変換できます。これにより、ユーザー ID に応じて同じオブジェクトを異なるビューで表示できるため、機密情報へのアクセスを制限したり、PII データへのアクセスを禁止したりできます。このワークショップでは、Amazon S3 Object Lambda を使用して GET中にオブジェクトを変更する方法を学ぶことができ、同じドキュメントの複数のビューを保存しなくても済むようになります。参加するにはラップトップを持参する必要があります。

学んだこと

Amazon S3 Object Lambdaは、S3に対するGET、HEADおよびLISTリクエストをトリガーにしてLambdaを起動し、レスポンスデータを加工することができる機能です。

Amazon S3 Object Lambda

このワークショップでは、Amazon S3 Object Lambdaを使用して以下のようなデータ処理の実装方法を学ぶことができます。
具体的なユースケースに沿ってハンズオンを進めることができるので、実際の利用シーンを想定しながら理解を深めることができます。

  • LIST、HEAD、GETリクエストに対してデータを変換してレスポンスする
  • ロールごとに異なる処理や変更を加える
  • 使用済みの署名付きURLを判定してアクセスを拒否する

ワークショップの内容

以下の3つのモジュールに分かれており、それぞれのユースケースに沿ったAmazon S3 Object Lambdaの実装方法を体験できるワークショップとなっています。

  • Module 1 - S3 Object Lambda - Small Object Aggregator
  • Module 2 - S3 Object Lambda PⅡ redaction Workshop
  • Module 3 - Using S3 Object Lambda to make single-use presigned URLs

スピーカーから冒頭に説明がありますが、ワークショップの時間(2時間)では2つのモジュールを実施すると大体タイムアップとなってしまいます。
ラボ環境はワークショップ終了後もしばらく使用することができるため、すべてのモジュールを実施したい場合はその後のスケジュールに余裕を持たせることをおすすめします。

Module 1では以下のような環境を作成します。

S3上には複数のファイルをまとめたZipのオブジェクトが保管されています。
クライアントはAmazon S3 Object Lambdaアクセスポイントに対してLIST、HEAD、GETリクエストを投げ、Amazon S3 Object Lambdaが起動します。
Amazon S3 Object LambdaはAmazon S3アクセスポイントを介してZipオブジェクトを取得し、個別のファイルに直してからレスポンスを返す、という処理を行います。

Module 2では以下のような環境を作成します。

PII(個人を特定できる情報)のような機密情報に対するアクセスを想定した構成となります。
ロールの異なるクライアントからのGETリクエストに対してAmazon S3 Object Lambdaがそれぞれ異なるデータ変換を加えてレスポンスを返す、という処理を行います。

Module 3では以下のような環境を作成します。

署名付きURLからのアクセスに対してAmazon S3 Object Lambdaが仲介します。
Amazon S3 Object Lambdaが別のユーザーでアクセス済みであるかをチェックし、すでに利用された署名付きURLであると判定した場合にはリクエストを拒否する、という処理を行います。

おわりに

Transforming your data with Amazon S3 Object Lambda(STG302-R)のセッションレポートをお届けしました。

Amazon S3 Object Lambdaを使用することで、複数のレスポンスパターンを持つような場合でも1つのオブジェクトと処理の組み合わせで実現することができます。
本ワークショップはその構成を実際に手を動かしながら学ぶことができる実践的な内容になってました。

また、re:Inventのワークショップには初参加で、英語ベースでのセッションとなるため緊張もしましたが、いざ参加してみるとそこまでハードルの高さは感じませんでした。
サポートをしてくれる担当者は複数いるので困ったときに話しかけやすく、英語のスピーキングが苦手でも身振り手振りで何とかなる、という印象です。
ワークショップは現地でした参加できない形式のセッションとなるため、チャンスがあればどんどん参加してみてください。

ネクストモードについて

ネクストモード株式会社は東日本電信電話株式会社とクラスメソッド株式会社で設立したクラウドカンパニーです。「クラウドであたらしい働き方を」というメッセージを掲げ、さまざまなクラウド技術や製品を組み合わせて企業の働き方の当たり前を変えていくことを目指しています。クラウドやSaaSのご利用に関してお困りごとがあれば、ネクストモードまでぜひお問い合わせください。