Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Amazon SageMaker Catalogの、AIエージェントによる自動データ分類機能を...
Search
kasacchiful
January 17, 2026
Technology
0
8
Amazon SageMaker Catalogの、AIエージェントによる自動データ分類機能を試してみようとしたが、できなかったので、代わりに最近構築したデータ連携基盤を紹介します / 20260117jawsug-fukui
2026/01/17 (土) JAWS-UG福井 #1 にて発表した資料。
イベントページ:
https://jawsug-fukui.connpass.com/event/375652/
kasacchiful
January 17, 2026
Tweet
Share
More Decks by kasacchiful
See All by kasacchiful
データファイルをAWSのDWHサービスに格納する / 20251115jawsug-tochigi
kasacchiful
2
180
テーブル定義書の構造化抽出して、生成AIでDWH分析を試してみた / devio2025tokyo
kasacchiful
0
620
ワイがおすすめする新潟の食 / 20250912jasst-niigata-lt
kasacchiful
0
34
WorkersでDiscord botを試してみた / 20250822workers-tech-talk-niigata
kasacchiful
1
65
地域コミュニティへの「感謝」と「恩返し」 / 20250726jawsug-tochigi
kasacchiful
0
240
Amazon Q Developer for CLI を使って PHP Conference 新潟 2025 参加者向けにグルメサイトを構築した話 / 20250620niigata-5min-tech
kasacchiful
1
130
ワイがおすすめする新潟の食 / 20250530phpconf-niigata-eve
kasacchiful
0
470
生成AIでメタデータを生成してみた / 20250525generate-metadata-using-generative-ai
kasacchiful
0
150
Strands Agents SDK で AIエージェント作成 を試してみた / 20250525strands-agents
kasacchiful
0
450
Other Decks in Technology
See All in Technology
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
12k
「アウトプット脳からユーザー価値脳へ」がそんなに簡単にできたら苦労しない #RSGT2026
aki_iinuma
11
5.2k
複雑さを受け入れるか、拒むか? - 事業成長とともに育ったモノリスを前に私が考えたこと #RSGT2026
murabayashi
1
1.9k
善意の活動は、なぜ続かなくなるのか ーふりかえりが"構造を変える判断"になった半年間ー
matsukurou
0
490
純粋なイミュータブルモデルを設計してからイベントソーシングと組み合わせるDeciderの実践方法の紹介 /Introducing Decider Pattern with Event Sourcing
tomohisa
1
1k
業務の煩悩を祓うAI活用術108選 / AI 108 Usages
smartbank
9
22k
スクラムを一度諦めたチームにアジャイルコーチが入ってどう変化したか / A Team's Second Try at Scrum with an Agile Coach
kaonavi
0
230
2025年の医用画像AI/AI×medical_imaging_in_2025_generated_by_AI
tdys13
0
340
AI Agent Standards and Protocols: a Walkthrough of MCP, A2A, and more...
glaforge
0
280
戰略轉變:從建構 AI 代理人到發展可擴展的技能生態系統
appleboy
0
190
歴史から学ぶ、Goのメモリ管理基礎
logica0419
14
2.8k
モノタロウ x クリエーションラインで実現する チームトポロジーにおける プラットフォームチーム・ ストリームアラインドチームの 効果的なコラボレーション
creationline
0
820
Featured
See All Featured
Between Models and Reality
mayunak
1
170
How to Ace a Technical Interview
jacobian
281
24k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
1
36
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Being A Developer After 40
akosma
91
590k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
100
Facilitating Awesome Meetings
lara
57
6.7k
Faster Mobile Websites
deanohume
310
31k
Navigating Team Friction
lara
191
16k
The Pragmatic Product Professional
lauravandoore
37
7.1k
A Soul's Torment
seathinner
4
2.1k
Transcript
Amazon SageMaker Catalogの、AIエージェントによる自 動データ分類機能を試してみようとしたが、できなかったの で、代わりに最近構築したデータ連携基盤を紹介します JAWS-UG福井 #1 2026/01/17 笠原 宏
JAWS-UG福井 リブート おめでとうございます! 約2年前の「JAWS-UG北陸新幹線 #1 in 福井」以来、2回目の福井参加
笠原 宏 (@kasacchiful) クラスメソッド株式会社 データ事業本部 ビジネスソリューション部 ソリューションアーキテク ト 新潟県新潟市在住 JAWS-UG新潟
/ Python機械学習勉強会 in 新潟 / JaSST Niigata / ASTER / SWANII / Cloudflare Meetup Niigata / AI CRAFT Hacks Niigata / KomeKaigi AWS Community Builder (Serverless) 2025 Japan AWS Top Engineer / 2025 Japan All AWS Certifications Engineer 自己紹介 3
本日の道のり 4
本編勉強会 不定期で約2〜3時間 オフライン (たまにZoom配信あり) 講演いただいたり、ハンズオンしたり、事前にテーマ決めて開催 プチキャッチアップ会 毎週木曜夜21:00から1時間 オンライン 気になる記事を一緒に見たり、お悩み相談したり、その場でやること 決めて開催
JAWS-UG新潟のご紹介 https://jawsug-niigata.connpass.com/ 5
まずは re:Invent 2025で出てきた分析サービスについて、簡単にお話し。 タイトル申請時にこのようにしていたので https://jawsug-fukui.connpass.com/event/375652/ 6
AWS re:Invent 2025で出たデータ分析系の流れ https://speakerdeck.com/ishikawa_satoru/aws-re-invent-2025-data-and-ai-updates?slide=6 7
データカタログ作成の手間を、AIが支援 https://aws.amazon.com/jp/about-aws/whats-new/2025/11/amazon-sagemaker-catalog- automatic-data-classification-ai-agents/ 8
Amazon SageMaker Catalog
ビジネスメタデータを管理 Amazon SageMaker Unified Studioから利用可能 Amazon SageMaker Catalog 10
Glue Data Catalog テクニカルメタデータ向け 主にETLパイプラインで利用 SageMaker Catalog ビジネスメタデータ向け 主に組織全体のデータガバナンス管理で利用 Glue
Data Catalogを呼び出して管理することも可能 SageMaker Catalog vs Glue Data Catalog 11
早速試そうと、SageMaker Unified Studioを新規作成したものの... 結論: 試せませんでした... 早速試そうとしたが... 12
メニューがない ? https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/autodoc.html 13
権限の問題かも? 色々試したが変わらず、権限の問題ではなさそう。 なんか、SageMakerのドメインが、古くね? SageMaker Unified Studioの環境構築したのに、ドメインの形式が前のSageMakerのもの になってるらしい 今のドメイン: https://[domain-id].sagemaker.[region].on.aws/ 本来こうなってほしいらしい:
https://[domain-name].studio.[region].sagemaker.aws/ SageMaker Unified Studioのドメイン再作成したけど変わらず 他のAWSアカウントで作成してみたけど変わらず 最終的には、AWSサポートへの問い合わせになりました。 (Amazon Qからも、サポートに問い合わせた方がいいと助言いただきました) わからないので、Amazon Qに問い合わせ 14
このままでは大した発表にならない
代わりに最近構築したデータ連携基盤を紹介します
オンプレミスやRDSにあるOracle DBから、DWH(Snowflake)にデータを溜めたい DWHでは、データマートを整備して、BIツールでデータを可視化したい とある事例 17
構成図 18
処理の流れ 19
Oracle DBはオンプレミスや他アカウントのRDSにある お客様にてTransit GatewayやDirectConnectが整備済 Transit Gateway経由でアクセス可能 接続先は4箇所 (オンプレミス・RDS含め) Oracle DBのバージョンは全て19c
ただし、RDS以外は sec_case_sensitive_logon がFalse 「ログイン時のパスワードの大文字・小文字を区別しない」古い設定 「python-oracledb」ライブラリのthinモード(Oracleクライアント不要)では接続できず、 thickモード(Oracleクライアント必要)での接続が必須 Oracle Instant Client導入するにしても容量が大きいため、今回はコンテナ化 (Lambdaコン テナ → 後にECS/Fargate) で対応する Oracle DBへのクエリはS3に保管しておいて、実行時にダウンロード Oracle DB → S3 20
Snowflakeには「Snowpipe」という便利な機能がある 今回はSnowflake SQL REST APIをLambdaから実行して、Snowflakeのテーブルにロードする 方法をとった (なお、今回のテーマにはあまり関わってこないところなので、詳細は控える) S3 → DWH(Snowflake)
21
Lambdaの実行時間制限「15分」を超える処理が必要になる メモリも上限10GBじゃ足りなくなる Lambdaコンテナから、ECS/Fargateへ移行 その後の運用にて 22
1. Lambda関数はそのままに、ECS/Fargateのエントリポイント用の関数を用意する 2. Dockerfileのエントリポイントを変更する 3. Step Functionsのステートマシン上でサービス定義 4. ステートマシン上のpayloadは、必要な項目をCommandに渡す 5.
VPCエンドポイントを各種用意する 6. ステートマシンの実行権限に注意 LambdaコンテナからECS/Fargateへの変更方法 23
ECSサービスを定義する代わりに、ステートマシン上で定義する ステートマシンでコールされた分だけ、タスクが起動する Comment: >- ETL1 State Machine StartAt: ETL_query_serialize States:
ETL_query_serialize: Type: Pass Parameters: query_serialize.$: States.JsonToString($.queries) Next: ETL_Command ETL_Command: Type: Pass Parameters: commands.$: States.Array($.query_serialize) Next: ETL_process Step Functionsのステートマシン上でサービス定義 24
ETL_process: Type: Task Resource: "arn:aws:states:::ecs:runTask.sync" ResultPath: null Parameters: LaunchType: FARGATE
Cluster: ${EcsClusterArn} TaskDefinition: ${EcsTaskDefinitionArn} NetworkConfiguration: AwsvpcConfiguration: Subnets: - ${subnetId1} - ${subnetId2} SecurityGroups: - ${securityGroupId1} AssignPublicIp: DISABLED Overrides: ContainerOverrides: - Name: ${EcsTaskDefinitionContainerName} Command.$: $.commands Environment: - Name: TASK_TOKEN Value.$: $$.Task.Token End: true Step Functionsのステートマシン上でサービス定義 (続き) 25
コンテナのCMDは、ContainerOverridesで上書き可能 ステートマシンのpayloadから、必要な項目を配列で渡してあげると、各々の引数としてエント リポイントに渡せる JSON項目は、 States.JsonToString() で文字列化すれば渡せる ETL_Command: Type: Pass Parameters:
commands.$: States.Array($.query_serialize) Next: ETL_process Overrides: ContainerOverrides: - Name: ${EcsTaskDefinitionContainerName} Command.$: $.commands payloadは、必要な項目をCommandに渡す 26
ステートマシンのIAMロールに以下の権限を追加しないと、ステートマシンからのECSタスク起 動時にエラーになるので注意 手動で設定する場合に忘れがち { "Version": "2012-10-17", "Statement": [ { "Effect":
"Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:ap-northeast-1:<AWS_ACCOUNT_ID>:rule/StepFunctionsGetEventsForECSTaskRule" ] }, // <省略> ] } ステートマシンの実行権限に注意 27
ステートマシンの構成: 接続先毎に並列実行 28
Lambda → 軽めのタスクを並列でぶん回したい場合はLambdaが良い 起動は早い タイムアウト・メモリ・ストレージ等の制約は大きい タイムアウト: 最大15分 メモリ: 最大10GB エフェメラルストレージ(
tmp ): 512MB〜10GB ECS/Fargate → 重めのタスク起動に向いている 起動するまで時間はそれなりにかかる タイムアウト・メモリ・ストレージ等の制約は少ない タイムアウト: 最大14日 メモリ: 最大120GB エフェメラルストレージ: 20GB〜200GB LambdaコンテナとECS/Fargateコンテナの違い 29
SageMaker Catalogの新機能を試そうとしましたが、残念ながら試せませんでした。 その代わり、データ基盤でコンテナを活用した際のお話をしました。 Step FunctionsのステートマシンからECSタスクを実行する際の参考にどうぞ ECSサービスに相当する部分をステートマシン上で定義する 必要なリソースを適宜追加する LambdaコンテナからECS/Fargateコンテナに変更する際は、なるべく元のLambda関数に変更 を加えないように移行した エントリポイントのpythonコードで、Lambda関数に必要な引数や環境変数を定義
まとめ 30
来週のJAWS-UG北陸新幹線in群馬では、Apache Icebergにつ いてお話ししようかな?
おわり