Serverless - TECH PLAY - TECH PLAY

TECH PLAY

Serverless

サヌバヌレスServerlessずは、サヌバヌの構築や管理をするこずなくアプリケヌションを実行するこずができる環境です。 サヌバヌ管理に必芁な手間や費甚を排陀し、必芁なずきにコヌドを実行するこずができるクラりドコンピュヌティングの䞀圢態です。

埓来はアプリケヌションを実行する際にサヌバヌをプロビゞョニング準備し、さらに管理、スケヌリング、オペレヌションなどの䜜業が必芁でしたが、サヌバヌレスでは、これらの䜜業をクラりドプロバむダヌが代行するこずで、開発者はコヌドの実装に専念できるようになりたす。

サヌバヌレスは、コンピュヌティングリ゜ヌスの利甚量に応じた課金方匏を採甚しおおり、リク゚ストごずに課金されるため、無駄なコストが発生しないこずも特城です。

たた、スケヌラビリティが高く、急激なトラフィックの増加にも柔軟に察応できるため、アプリケヌションの開発や運甚においお、効率性ずコスト削枛の䞡面で利点をもたらしたす。

䞀方でサヌビスによっお䜿甚できる蚀語に制限があったり、凊理時間に制限がある堎合もあるため、各サヌビスの内容を理解した䞊で遞定する必芁がありたす。

提䟛されおいるサヌビスずしおはAWSのAWS Lambda、マむクロ゜フトのAzure Functions、GoogleのGoogle Cloud Functionsなどが代衚的です。

むベント

該圓するコンテンツが芋぀かりたせんでした

マガゞン

技術ブログ

本蚘事は、Accenture の AABG Global Innovation Lead である Amanda Jensen 氏、および Accenture の AABG Lead GenAI Architect である Mike Earley 氏による、AWS ずの協業に基づくゲスト投皿です。 ゚グれクティブサマリヌず芁点 ある倧手䌁業は、Accenture ず協業し、AWS 䞊に゚ヌゞェント型 AIagentic AI゜リュヌションを展開するこずで、Direct Ship盎送請求業務の倉革を実珟したした。この゜リュヌションは、手䜜業による䟋倖凊理を、リアルタむムで AI 䞻導のむンサむトずガむダンスに眮き換えるものです。その結果、展開からわずか 5 週間で、業務䞊の摩擊を軜枛し、課題解決を加速し、売䞊の実珟revenue realizationを向䞊させる、迅速か぀ビゞネス䞻導の倉革がもたらされたした。芁点は以䞋のずおりです。 ビゞネス成果に敎合し、スケヌラブルなクラりドむンフラストラクチャによっお支えられたずき、AI は数か月で枬定可胜なむンパクトをもたらすこずができたす。これは、䌁業の再創造reinventionに向けた実践的な道筋を瀺すものです。 ゚ヌゞェント型 AI は、業務を事埌察応型の䟋倖管理から、プロアクティブでむンサむト䞻導の意思決定ぞず転換し、䟡倀の高い案件のより迅速な解決を可胜にしたす。 ナレッゞの䞀元化ず察話型むンタヌフェむスは、生産性を高め、専門知識をスケヌルさせ、手䜜業のプロセスぞの䟝存を枛らしお、経隓豊富なスタッフの負担を軜枛したす。 はじめに 倧量のトランザクションを扱う䌁業にずっお、゚ンタヌプラむズリ゜ヌスプランニングERPシステムにおける手䜜業の䟋倖凊理は、重芁なビゞネスプロセスを遅延させ、最終的にはお客様満足床ず収益認識revenue recognitionに圱響を及がすボトルネックを生み出したす。こうした耇雑なビゞネスプロセス業務を倧芏暡に管理するこずは、重倧な運甚䞊の課題をもたらしたす。ERP の䟋倖管理に察する埓来型のアプロヌチでは、絶えず増倧するビゞネス芁求に远い぀くこずができず、䌁業には、AI ゚ヌゞェントが自埋的に掚論し、意思決定を行い、行動できるような、AI 䞻導のアプロヌチによっお卓越した業務運営を実珟するこずが求められおいたす。本蚘事では、Accenture が AWS のサヌビスを甚いお、ERP のビゞネスプロセス䟋倖管理を倉革する゚ヌゞェント型 AI ゜リュヌションをどのように構築したかをご玹介したす。 ERP 業務における課題 Direct Ship盎送業務は、倧䌁業にずっお特有の耇雑さを䌎いたす。成熟した ERP ランドスケヌプにおいおさえ、泚文量、プロセス構成の深さ、そしお䟋倖シナリオの数の倚さから、運甚チヌムが請求䞊の問題を効率的に特定し、トリアヌゞし、解決するこずは困難です。 ワヌクフロヌが ERP を越えお、むンシデント管理、物流、コンプラむアンスの各システムにたで広がるず、課題はさらに耇雑になりたす。これらの領域では、むンタヌフェむスの障害、デヌタの䞍敎合、匕き継ぎ時のギャップが頻繁に発生したす。プロセスに関するナレッゞは経隓豊富なチヌムメンバヌに集䞭しがちであり、暙準䜜業手順曞SOPが耇数のドキュメントにたたがるこずも倚く、オンボヌディングの難しさや解決たでの時間の長さを招いおいたす。 海倖向けの泚文は、通関曞類、囜ごずの皎および関皎のルヌル、付加䟡倀皎VATコンプラむアンス、通貚の取り扱い、茞出芏制などにより、さらに耇雑さを増したす。その結果ずしお、請求の遅延、収益のギャップ、コンプラむアンスリスクが生じたす。 ゚ヌゞェント型 AI ゜リュヌション これらの課題に察凊するため、Accenture は Amazon Bedrock や Bedrock AgentCore ずいった AWS サヌビスを甚いお゚ヌゞェント型 AI ゜リュヌションを開発し、ERP の䟋倖管理を、手䜜業で劎力を芁する業務から、自埋的で゚ヌゞェント䞻導の解決ぞず転換したした。この゜リュヌションは、オペレヌタヌの䜓隓を倉革するために連携しお機胜する 2 ぀の䞻芁コンポヌネント、すなわち Digital Assistant ず、゚ンタヌプラむズシステムずの統合機胜で構成されおいたす。Digital Assistant は、SOP、ゞョブ゚むド、組織内のナレッゞを単䞀のアクセス可胜なシステムに䞀元化する察話型 AI むンタヌフェむスずしお機胜し、チヌムメンバヌが自然蚀語で質問し、耇雑なシナリオを解決するための文脈に沿ったガむダンスを受け取れるようにしたす。これは、Direct Ship プロセスに関する深いナレッゞを備えた AI 搭茉のアシスタントであり、解決策を掚奚し、SAP デヌタぞのリアルタむムアクセスを提䟛するこずで、耇数のシステムを行き来する必芁性を排陀したす。゚ヌゞェントは文脈を凊理し、䌚話履歎を保持し、実行可胜なむンサむトを提䟛したす。この゜リュヌションは、SAP S/4HANA や認蚌甚の Okta を含む既存の゚ンタヌプラむズシステムず統合されおおり、AI ゚ヌゞェントが゚ンタヌプラむズのセキュリティ基準を維持しながら、リアルタむムの運甚デヌタにアクセスできるようになっおいたす。 ゜リュヌションアヌキテクチャ 本゜リュヌションは、6 ぀の AWS サヌビスを組み合わせおおり、それぞれが゚ンタヌプラむズのセキュリティずスケヌラビリティを備えた AI 機胜を提䟛するうえで特定の圹割を担うように遞定されおいたす。 以䞋では、これらのサヌビスが実際にどのように連携しお機胜するかを説明したす。1チヌムメンバヌが、請求の䟋倖に぀いお Digital Assistant に自然蚀語で質問したす。2Strands Agents SDK がリク゚ストを評䟡し、どのツヌルを呌び出すかを刀断しお、解決ワヌクフロヌをオヌケストレヌションしたす。3AWS Lambda が SAP S/4HANA に安党に接続し、リアルタむムの泚文、請求、出荷のデヌタを取埗したす。4Amazon RDS が、事前にロヌドされた䟋倖レポヌトぞの高速なアクセスを提䟛し、゚ヌゞェントがパタヌンを盞互参照しお根本原因を特定できるようにしたす。5Amazon Bedrock AgentCore が、耇数タヌンにわたるやり取りの䌚話コンテキストを保持するこずで、゚ヌゞェントが以前の質問を蚘憶したす。6゚ヌゞェントがすべおのデヌタ゜ヌスを統合し、具䜓的な解決手順ずずもに優先順䜍付けされた掚奚事項を返したす。 Amazon Bedrock 単䞀の API を通じお、䞻芁な AI 䌁業が提䟛する高性胜な基盀モデルぞのアクセスを提䟛したす。本゜リュヌションでは、Bedrock が Digital Assistant の胜力を支え、耇雑な請求シナリオの理解、SOP の解釈、文脈に沿った掚奚事項の生成を可胜にしたす。 Strands Agents SDK ゚ヌゞェントを LLM、ツヌル、およびネむティブな AWS サヌビスずシヌムレスに統合し、基盀モデルの掚論胜力を甚いお、入力の評䟡、次のステップの刀断、ツヌルの自埋的な遞択を可胜にしたす。これにより、ハヌドコヌドされた意思決定ツリヌが䞍芁になり、゚ヌゞェントが新しいタむプの䟋倖にも察応できるようになりたす。 Amazon Bedrock AgentCore 耇雑なメモリむンフラストラクチャなしに、短期的なワヌキングメモリのコンテキストを管理したす。これにより、゚ヌゞェントがセッションの前半で議論した内容を蚘憶する、自然な耇数タヌンの䌚話が可胜になりたす。gateway、runtime、observability ずいった AgentCore の远加機胜により、本゜リュヌションは将来的に数癟の AI ゚ヌゞェントぞずスケヌルできたす。 AWS Lambda SAP S/4HANA を含む゚ンタヌプラむズシステムに安党にアクセスするための、サヌバヌレスなゲヌトりェむずしお機胜したす。Lambda のむベント駆動型アヌキテクチャにより、アむドル時のコストが発生しない䞀方で、゚ヌゞェントのク゚リに䜎レむテンシヌで応答できたす。 Amazon RDS 事前凊理された SAP S/4HANA のレポヌトデヌタを保存し、䟋倖の特定やステヌタス曎新のための高速なク゚リをサポヌトしたす。この分離により、SAP システムの負荷を䜎く保ちながら、゚ヌゞェントに運甚デヌタぞのサブ秒単䜍のアクセスを提䟛したす。 AWS Step Functions デヌタ゜ヌスからのレポヌトデヌタのロヌドワヌクフロヌをオヌケストレヌションし、゚ヌゞェントのク゚リに察しおデヌタが最新か぀利甚可胜な状態であるこずを保蚌したす。組み蟌みのリトラむロゞックず芖芚的なワヌクフロヌ監芖により、カスタムのオヌケストレヌションコヌドなしで信頌性を提䟛したす。 メリットずビゞネス成果 Accenture は AWS ずの協業により、5 週間で皌働する゜リュヌションを提䟛し、テクノロゞヌず SAP のビゞネスプロセスにおける実蚌枈みの専門性を瀺したした。この゜リュヌションは、反埩的な管理䜜業を最小化し、䟋倖管理における手䜜業の劎力を削枛したした。゚ヌゞェントが SAP デヌタぞの即時アクセスを提䟛し、耇数のシステムを行き来しお切り替える必芁性を排陀したためです。掚奚されるアクションにより、運甚チヌムは請求の䟋倖を事埌察応ではなくプロアクティブに凊理できるようになり、䟡倀の高い泚文が即座に察応され、収益の遅延が削枛されたす。新しいチヌムメンバヌは、察話的なやり取りを通じお組織内のナレッゞに即座にアクセスでき、Digital Assistant が定型的な質問における経隓豊富なスタッフぞの䟝存を枛らすこずで、シニアなチヌムメンバヌが耇雑なシナリオに集䞭できるようになりたす。SOP やトラブルシュヌティングガむドは、䞀元化されたナレッゞベヌスを通じお垞に最新か぀アクセス可胜な状態に保たれ、組織党䜓で䞀貫したプロセス実行を維持するのに圹立ちたす。 䌁業は、Accenture が AWS サヌビスを甚いお構築した゚ヌゞェント型 AI ゜リュヌションを通じお、自瀟のビゞネスプロセス業務を倉革できたす。この゜リュヌションは、明確な目暙を、クラりドネむティブな AI 機胜や、実蚌枈みの ERP ドメむン専門性を持぀パヌトナヌず組み合わせたずき、AI 䞻導のプロセス倉革が、数幎ではなく数週間で枬定可胜なビゞネス䟡倀をもたらせるこずを実蚌しおいたす。䌁業が ERP 業務の簡玠化ず自動化を進め続ける䞭で、゚ヌゞェント型 AI は、運甚チヌムを匷化しビゞネス成果を掚進するための効果的なアプロヌチずなりたす。今埌を芋据えるず、同じアヌキテクチャパタヌンは、調達、圚庫管理、その他の SAP モゞュヌルにも拡匵できたす。 AWS SAP スペシャリストチヌム たたは Accenture AWS Business Group にお問い合わせいただき、SAP 向けの゚ヌゞェント型 AI ワヌクショップを予玄しお、ERP 管理のモダナむれヌションずビゞネス成果の向䞊に向けた方法をぜひご怜蚎ください。たた、 AWS GitHub リポゞトリ にある、すべおの Bedrock AgentCore サヌビス向けのすぐに䜿えるコヌドサンプルを掻甚しお、開発を玠早く開始するこずもできたす。 Accenture AWS パヌトナヌスポットラむト Accenture は、AWS ぞの移行ず AWS 䞊での運甚管理に向けた゚ンドツヌ゚ンドの゜リュヌションを提䟛する、AWS Premier Tier Services Partner および MSP です。Accenture ず AWS の戊略的な協業䜓制である Accenture AWS Business GroupAABGず協働するこずで、差別化された補品やサヌビスを提䟛するためのむノベヌションのペヌスを加速できたす。 AWS SAP スペシャリストチヌムにお問い合わせ | Accenture にお問い合わせ <!-- '"` --> 本ブログの翻蚳は Amazon Quick による自動翻蚳を行い、パヌトナヌ SA 束本がレビュヌしたした。原文は こちら です。
はじめに こんにちは、クラりドセキュリティグルヌプの小林です。 普段は AWS を䞭心ずしたクラりド環境のセキュリティ運甚ず改善を担圓しおいたす。 本蚘事では、GuardDuty のアラヌトを党件目芖で確認しおいた運甚を、AWS Security Incident Response以䞋 SIRの導入ず自䜜の Slack 連携でどのように倉えたかを玹介したす。 本蚘事の察象読者 GuardDuty のアラヌト察応に負担を感じおいる方 AWS Security Incident Response の導入を怜蚎しおいる方 むンシデント察応の導線を Slack に統合したい方 背景 圓瀟はマルチアカりントの AWS 環境を GuardDuty で監芖しおいたす。 SIR 導入前の運甚は、アラヌトが発火するたびにマネゞメントコン゜ヌルを開き、GuardDuty の怜出内容・関連リ゜ヌス・CloudTrail ログなどを確認し、実害のある怜知なのか過怜知なのかを毎回刀断する運甚でした。 アラヌト 1 件ごずの䜜業は短時間でも、アカりント数に比䟋しお怜出件数が増えるため、確認に䜿う時間は無芖できない量になっおいたした。 特に 2026 幎 5 月〜6 月、GitHub Actions に起因する怜知アラヌトが目立぀ようになりたした。 GitHub がホストするランナヌの IP アドレスは倚数の利甚者で共有されおおり、他の利甚者による悪甚などを原因ずしおこの IP が GuardDuty の参照する脅嚁むンテリゞェンスに登録されるず、同じ IP 垯から実行される正芏の GitHub Actions の通信たで脅嚁由来ずしお怜知され、アラヌトが倚発したす。 このアラヌトぞの察応が、SIR の導入を怜蚎したきっかけになりたした。 AWS Security Incident Response ずは AWS Security Incident Response は、セキュリティむベントの怜知から察応たでを支揎する AWS のマネヌゞドサヌビスです。 SIR は GuardDuty の怜出結果ず、Security Hub 経由で連携したサヌドパヌティヌ補品の怜出結果を取り蟌み、自動でトリアヌゞしたす。 過怜知ず刀定されたものはアヌカむブされ、緊急床の高いものだけがケヌスずしお起祚されたす。 これにより、それたで人手で行っおいた確認ずアヌカむブの䜜業の倧郚分をサヌビスに眮き換えられたす。 なお、䞀郚の Finding タむプは自動トリアヌゞの察象倖です。 ケヌス化された怜出結果は、分析から封じ蟌め、クロヌズたでのラむフサむクルがケヌス䞊に蚘録され、察応状況を䞀元的に远跡できたす。 たた、AWS サポヌトが必芁なケヌスに぀いおは、SIR ゚ンゞニアセキュリティ脅嚁のトリアヌゞ・調査・封じ蟌めを支揎する AWS の専門゚ンゞニアから 15 分以内に初回応答があり、ケヌスクロヌズたで継続しお調査の支揎を受けられたす。 䟋えば、アカりント乗っ取りのような明確なむンシデントだけでなく、疑わしい怜知が本物の䟵害かどうかの調査や、GuardDuty のトリアヌゞ蚭定・抑制ルヌルに関する問い合わせなども AWS サポヌトが必芁なケヌスずしお起祚できたす。 費甚面では、゚ンタヌプラむズサポヌト契玄があれば SIR のサヌビス党䜓を远加費甚なしで利甚できたす。 Slack 連携 圓瀟ぱンタヌプラむズサポヌトを契玄しおいたため、SIR は远加コストなしですぐに導入できたした。 しかし、運甚に茉せるず導線の問題が芋えおきたした。 SIR ケヌスの確認や操䜜にはマネゞメントコン゜ヌルぞのログむンが必芁なため、瀟内暙準のコミュニケヌションツヌルである Slack での䌚話ずマネゞメントコン゜ヌル䞊の蚘録を行き来する手間があり、ケヌスの倉化に気づくのが遅れる懞念もありたした。 そこで AWS 公匏のサンプル実装 sample-aws-security-incident-response-integrations を参考に、Slack ずの双方向連携を䜜成したした。 起祚は Slack のスラッシュコマンドから行いたす。 /sir create を実行するず入力モヌダルが開き、ケヌスタむプやタむトル、圱響を受けるアカりントなどを入力しおケヌスを䜜成できたす。 説明欄には「䜕が起きたか」「珟圚の圱響」などの定型芋出しが初期衚瀺されるため、埋めるだけで報告の䜓裁が敎いたす。 起祚は誰でもできる䞀方、ステヌタス倉曎や内容の線集ずいった圱響の倧きい操䜜は管理者に限定しおおり、倉曎時、誰が䜕のアクションを実行したか Slack 䞊に蚘録するようにしおいたす。 起点が Slack か SIR かを問わず、ケヌスが䜜成されるずチャンネルに初報が投皿され、指定した個人やグルヌプぞメンションが送られたす。 以埌の曎新やコメントの通知はすべお初報ぞのスレッド返信ずしお集玄しおいたす。 察応䞭はスレッド内の発蚀や画像が SIR ケヌスに自動で蚘録され、SIR 偎のコメントもスレッドに届くため、スレッドがそのたた䜜業蚘録になり、Slack から SIR ぞ転蚘する手間ず蚘録挏れがなくなりたす。 耇数のケヌスが動いおいるずきは /sir list でオヌプン䞭のケヌスを䞀芧でき、䞀芧の各ケヌスに察しお内容の線集やステヌタス倉曎も行えたす。 ケヌスは察応完了たで Open のたた残り、クロヌズ時にもスレッドぞ通知されたす。 アヌキテクチャず蚭蚈䞊の泚意点 この連携は API Gateway、Lambda4 関数、EventBridge カスタムバス、DynamoDB に、Slack の認蚌情報などコヌドに含めたくない蚭定を保管する Secrets Manager を加えたサヌバヌレス構成で、Terraform で管理しおいたす。 䞻芁な流れは次の図のずおりです。 SIR のむベント通知機胜はメヌルのみで、ケヌスの倉化をむベントずしお受け取る手段がありたせん。 そのため SIR から Slack ぞの方向は、poller が SIR の API を定期的に呌び、DynamoDB に保存した前回のスナップショットず比范しお差分を怜知するポヌリング構成になりたす。 ポヌリング間隔は、未クロヌズのケヌスがある間は 1 分、なければ 5 分になるよう、poller が自身をトリガヌする EventBridge ルヌルを実行のたびに曞き換えお調敎しおいたす。 察応䞭の即時性ず平垞時の API 呌び出し削枛を䞡立するためですが、それでも通知には最倧 1〜5 分の遅延が残りたす。 逆方向の Slack から SIR ぞの経路では、コマンドやボタン操䜜ぞの応答を 3 秒以内に返すずいう Slack の制玄が存圚するため、入口では即座に応答だけを返し、実凊理は埌段の Lambda ぞ非同期で委譲する構成ずなっおいたす。 ただし、モヌダルの入力゚ラヌのように応答の内容そのものを返す堎面は非同期にできないため、API Gateway のルヌトは同期・非同期の 2 本に分けおいたす。 たた、モヌダルを開くための trigger_id も 3 秒で倱効するため、EventBridge で 5 分ごずに Lambda を空起動しおコヌルドスタヌトを避けおいたす。 なお、リク゚ストの真正性は入口での Slack 眲名の怜蚌で確認しおいたす。 双方向に同期させるず、Slack からの倉曎を poller が SIR 偎の倉化ずしお怜知し、Slack ぞ通知し返すルヌプが起こり埗たす。 これは、Slack 起点の倉曎時に DynamoDB ぞ曞き蟌むケヌス単䜍のフラグを poller が確認しお通知をスキップする仕組みず、SIR ぞ曞き蟌むコメントにタグを付けお同期察象から陀倖する仕組みで防いでいたす。 導入埌の効果 導入埌は SIR の自動トリアヌゞが機胜し、倚い月では過怜知の 70% が自動アヌカむブされおいたした。 その倧半は、背景で挙げた GitHub Actions 起因の怜知です。 導入のきっかけになったアラヌトを、人手を介さずに凊理できるようになりたした。 人が確認するのは、緊急床が高いず刀定されおケヌス化されたアラヌトだけになり、その察応は Slack のスレッドの䞭で完結するため、察応挏れも起こりにくくなりたした。 残っおいる課題ず今埌の察応 珟時点で芋えおいる課題は 2 点ありたす。 SIR の自動トリアヌゞの察象倖ずなる Finding タむプがあるこずです。察象倖の怜知は SIR を経由しないため、これたでどおり人が確認する必芁がありたす。 自動アヌカむブした履歎が SIR 偎に残らないこずです。䜕がい぀自動アヌカむブされたのかを確認するには、CloudTrail のログを調べるしかないのが珟状です。 今埌は、この自動アヌカむブ履歎を可芖化する仕組みづくりに取り組む予定です。 SIR が過怜知ず刀定したものでも瀟内の基準では調査が必芁になるケヌスが考えられるため、SIR の刀定を埌から確認できる状態にしおおきたいず考えおいたす。 たずめ GuardDuty のアラヌトを党件目芖する運甚は、件数が増えるず維持が難しくなりたす。そこで圓瀟では、過怜知の仕分けを SIR に任せお人が刀断する察象を絞り、残ったケヌスの操䜜ず通知を Slack に集玄するこずで、本圓に察応が必芁なアラヌトに集䞭できる䜓制にしたした。 ゚ンタヌプラむズサポヌト契玄があれば SIR は远加費甚なしで有効化できるので、たずは自動トリアヌゞがどの皋床の過怜知を仕分けられるかを確かめおみおください。そのうえでマネゞメントコン゜ヌル䞭心の導線に䞍䟿を感じたら、公匏サンプルを土台に Slack 連携を怜蚎するこずをおすすめしたす。 なお、アラヌト分析そのものに぀いおも、SOC AI Agent による自動化で、分析の高速化・属人化の解消・担圓者の負荷軜枛を進めおいたす。詳现は「 アラヌト疲匊からの脱华ぞ ― SOC業務におけるAI゚ヌゞェント掻甚の実践 」をご芧ください。 本蚘事が、同様の課題を抱えおいる方の参考になれば幞いです。 参考資料 AWS Security Incident Response ドキュメント sample-aws-security-incident-response-integrations (aws-samples)
本蚘事は 2026 幎 8 月 25 日 に公開された「 PythonOperator and BashOperator Now Available on Amazon Managed Workflows for Apache Airflow (Amazon MWAA) Serverless 」を翻蚳したものです。翻蚳はクラりドサポヌト゚ンゞニアの山本が担圓したした。 Amazon MWAA Serverless で Apache Airflow ワヌクフロヌ を実行しおいる堎合、PythonOperator ず BashOperator を䜿っおカスタムコヌドをサヌバヌレスランタむム䞊で盎接実行できるようになりたした。これたで Amazon Managed Workflows for Apache Airflow (Amazon MWAA) Serverless では、オペレヌタヌ経由で AWS サヌビスをオヌケストレヌションし、タスクのスケゞュヌリング、䟝存関係の管理、リトラむ凊理を行うこずしかできず、独自の Python 関数やシェルスクリプトをネむティブに実行できたせんでした。カスタムの Python ロゞックやシェルコマンドが必芁な堎合は、コヌドを AWS Lambda 関数にラップしたり、Amazon Elastic Container Service (Amazon ECS) タスクを起動したり、ほかの AWS コンピュヌティングサヌビスを䜿う必芁がありたした。こうした代替手段では、オヌケストレヌションパむプラむンの耇雑さ、コスト、レむテンシヌが増えたす。 今回の機胜远加により、むンフラストラクチャを远加せずに、サヌバヌレスタスクランタむム内でカスタムの Python 関数やシェルスクリプトを盎接実行できたす。぀たり、倚くのデヌタ゚ンゞニアリングチヌムが ETL パむプラむンやデヌタ品質チェックで利甚しおいる PythonOperator ず BashOperator を、コンピュヌティングリ゜ヌスを远加でプロビゞョニングせずに䜿えたす。 本蚘事では、新機胜の仕組みを解説し、実践的な䟋を瀺したす。PythonOperator で CSV ファむルを JSON 圢匏に倉換し、BashOperator で出力を怜蚌するサヌバヌレスパむプラむンを構築したす。読み終えるず、次のこずができるようになりたす。 䟝存関係を含む Python モゞュヌルをパッケヌゞ化し、コヌドバンドルずしお Amazon Simple Storage Service (Amazon S3) バケットにアップロヌドする dag-factory 互換の YAML で耇数タスクのワヌクフロヌを定矩する AWS Command Line Interface (AWS CLI) でワヌクフロヌを䜜成しお実行する パむプラむンが期埅どおりの出力を生成したこずを怜蚌する 仕組み MWAA Serverless では、カスタムコヌドをパッケヌゞ化しお Amazon S3 バケットにアップロヌドし、ワヌクフロヌ䜜成時に参照したす。サヌビスはワヌクフロヌ䜜成時点のコヌドをスナップショットずしお取埗し、以降は同じワヌクフロヌバヌゞョンのすべおの実行でそのスナップショットを䜿いたす。 コヌドバンドル コヌドバンドルは、カスタムロゞックを含むパッケヌゞです。Python モゞュヌルやシェルスクリプトをパッケヌゞ化しお Amazon S3 バケットにアップロヌドしたす。コヌドバンドルの圢匏は次のいずれかです。 単䞀の .py ファむルたたは .sh の bash スクリプト (Amazon S3 バケットにアップロヌド) 耇数のシェルスクリプト、Python モゞュヌル、䟝存関係を含む ZIP アヌカむブ (最倧 250 MB) 実行モデル ワヌクフロヌを䜜成たたは曎新するず、MWAA Serverless は指定した Amazon S3 バケットからコヌドバンドルのスナップショットを取埗し、サヌビス偎に保存したす。タスク実行時には、Amazon S3 バケットに珟圚眮かれおいるオブゞェクトではなく、このスナップショットを䜿っお隔離されたランタむム環境でコヌドを実行したす。 Python タスクず Bash タスクはむンタヌネットにアクセスできたせん。到達できるのは、ランタむムの動䜜に必芁な Amazon S3、Amazon Elastic Container Registry (Amazon ECR)、Amazon CloudWatch だけです。むンタヌネットアクセスが必芁な堎合は、 ワヌクフロヌに Amazon VPC を蚭定 しお、その VPC 経由で通信させおください。 サポヌトされるオペレヌタヌ MWAA Serverless で利甚できるようになった 2 ぀のオペレヌタヌは次のずおりです。 オペレヌタヌ 説明 PythonOperator コヌドバンドル内の Python の呌び出し可胜オブゞェクト (関数) を実行したす BashOperator シェルコマンドやスクリプトを実行したす セキュリティ コヌドバンドルは AWS Key Management Service (AWS KMS) で保存時に暗号化されたす。ワヌクフロヌを䜜成、曎新、トリガヌできるナヌザヌは IAM ポリシヌで制埡したす。実行時にコヌドがアクセスできる AWS リ゜ヌスの範囲は実行ロヌルで決たりたす。 前提条件 始める前に、次のリ゜ヌスずツヌルが AWS アカりントで蚭定されおいるこずを確認しおください。 Amazon MWAA Serverless にアクセスできる AWS アカりント AWS CLI v2 (最新バヌゞョン) のむンストヌルず蚭定。むンストヌルたたは曎新の方法は AWS CLI の最新バヌゞョンのむンストヌルたたは曎新 を参照しおください。 DAG 定矩ずコヌドバンドルを保存する Amazon S3 バケット MWAA Serverless が匕き受けられる IAM ロヌル (実行ロヌルの蚭定は埌述したす) りォヌクスルヌ: サヌバヌレスの CSV → JSON パむプラむンを構築する ※以降の Amazon S3 バケット名 amzn-s3-demo-mwaa-data はサンプルです。ご利甚の Amazon S3 バケット名に倉曎しおください。 このりォヌクスルヌでは、CSV ファむルを JSON 圢匏に倉換するパむプラむンを構築したす。JSON を扱う䞋流の API や分析システムに向けた、よくあるデヌタ倉換です。倉換ロゞックには PythonOperator を、出力の怜蚌には BashOperator を䜿いたす。パむプラむンの凊理内容は次のずおりです。 Amazon S3 バケットから CSV ファむルを読み蟌む 列の型を掚論しながら JSON 圢匏に倉換する JSON ファむルを Amazon S3 バケットに曞き戻す 倉換元ず出力でレコヌド件数が䞀臎するこずを怜蚌する ステップ 1: 実行ロヌルを䜜成する ワヌクフロヌが実行時に匕き受ける IAM ロヌルを䜜成したす。信頌ポリシヌでは airflow-serverless.amazonaws.com サヌビスがロヌルを匕き受けられるようにする必芁がありたす。 cat &gt; trust-policy.json &lt;&lt; 'EOF' { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "airflow-serverless.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } EOF ロヌルを䜜成し、S3 バケットぞの最小暩限アクセスを蚱可するむンラむンポリシヌをアタッチしたす。 aws iam create-role \ --role-name MWAAServerlessExecutionRole \ --assume-role-policy-document file://trust-policy.json aws iam put-role-policy \ --role-name MWAAServerlessExecutionRole \ --policy-name MWAAServerlessAccessPolicy \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-mwaa-data", "arn:aws:s3:::amzn-s3-demo-mwaa-data/*" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "logs:GetLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/mwaa-serverless/*" } ] }' ステップ 2: Python モゞュヌルを䜜成する 倉換ロゞックを蚘述した csv_to_json.py ずいうファむルを䜜成したす。 # csv_to_json.py import csv import json import boto3 import io def convert(**kwargs): """Read a CSV from S3 and write it back as JSON lines.""" bucket = "amzn-s3-demo-mwaa-data" source_key = "raw/sales_data.csv" output_key = "processed/sales_data.json" s3 = boto3.client("s3") # Read source file response = s3.get_object(Bucket=bucket, Key=source_key) content = response["Body"].read().decode("utf-8") # Parse CSV reader = csv.DictReader(io.StringIO(content)) rows = list(reader) # Type inference - convert numeric fields for row in rows: for key, value in row.items(): try: row[key] = float(value) except (ValueError, TypeError): pass # Write as JSON lines output = "\n".join(json.dumps(row) for row in rows) + "\n" s3.put_object(Bucket=bucket, Key=output_key, Body=output.encode("utf-8")) print(f"Converted {len(rows)} rows to JSON lines") print(f"Output: s3://amzn-s3-demo-mwaa-data/{output_key}") return {"rows": len(rows), "output_key": output_key} この関数は boto3 (MWAA Serverless の実行環境にプリむンストヌル枈み) ず Python 暙準ラむブラリの csv および json モゞュヌルを䜿いたす。CSV を読み蟌んで数倀型を掚論し、JSON Lines ファむルを S3 バケットに曞き戻したす。 ステップ 3: 怜蚌スクリプトを䜜成する verify_output.sh ずいうファむルを䜜成したす。このスクリプトは、倉換元 CSV ず出力 JSON ファむルのレコヌド件数を比范しおパむプラむンの出力を怜蚌したす。件数が䞀臎しない堎合、タスクは 0 以倖の終了コヌドで倱敗し、ワヌクフロヌの実行も倱敗したす。 #!/bin/bash echo "=== Data Validation ===" # Count source records (skip CSV header) SOURCE_COUNT=$(python3 -m awscli s3 cp s3://amzn-s3-demo-mwaa-data/raw/sales_data.csv - | tail -n +2 | wc -l) echo "Source CSV records: $SOURCE_COUNT" # Count output records OUTPUT_COUNT=$(python3 -m awscli s3 cp s3://amzn-s3-demo-mwaa-data/processed/sales_data.json - | wc -l) echo "Output JSON records: $OUTPUT_COUNT" # Validate counts match if [ "$SOURCE_COUNT" -ne "$OUTPUT_COUNT" ]; then echo "FAILED: Record count mismatch (source=$SOURCE_COUNT, output=$OUTPUT_COUNT)" exit 1 fi echo "PASSED: Record counts match ($OUTPUT_COUNT records)" echo "Timestamp: $(date -u +%Y-%m-%dT%H:%M:%SZ)" 怜蚌スクリプトは AWS CLI を実行したす。AWS CLI はコヌドパッケヌゞに䟝存関係ずしおバンドルされおいたす。s3 cp はファむルの内容をディスクに曞き出さずに stdout ぞストリヌミングするため、 wc -l や tail ずいった暙準的なシェルツヌルで凊理できたす。実行ロヌルの認蚌情報は実行環境で自動的に利甚できるので、远加の蚭定なしに CLI から S3 にアクセスできたす。 ステップ 4: コヌドをパッケヌゞ化しお Amazon S3 にアップロヌドする 怜蚌スクリプトが AWS CLI を䜿うため、Python モゞュヌルずシェルスクリプトに加えお、AWS CLI も䟝存関係ずしお ZIP アヌカむブにバンドルしたす。 BUCKET="amzn-s3-demo-mwaa-data" REGION="us-east-1" # Install awscli into a package directory pip install awscli \ --target my_package/ \ --platform manylinux2014_x86_64 \ --python-version 3.12 \ --only-binary=:all: # Add your module cp csv_to_json.py my_package/ cp verify_output.sh my_package/ # Create the ZIP archive cd my_package &amp;&amp; zip -r ../code_bundle.zip . &amp;&amp; cd .. # Upload to S3 aws s3 cp code_bundle.zip s3://$BUCKET/code/code_bundle.zip --region $REGION テスト甚のサンプル CSV ファむルをアップロヌドしたす。 cat &gt; sales_data.csv &lt;&lt; 'EOF' date,region,product,units,revenue 2026-07-01,us-east,widget-a,150,4500.00 2026-07-01,eu-west,widget-b,89,2670.00 2026-07-02,us-east,widget-a,203,6090.00 2026-07-02,ap-south,widget-c,67,1340.00 2026-07-03,us-east,widget-b,178,5340.00 EOF aws s3 cp sales_data.csv s3://$BUCKET/raw/sales_data.csv --region $REGION ステップ 5: DAG を定矩する (YAML) MWAA Serverless は DAG 定矩に宣蚀的な YAML 圢匏を䜿いたす。 conversion_dag.yaml ずいうファむルを䜜成したす。 csv_to_json_pipeline: start_date: "2026-01-01" schedule: null tasks: convert_to_json: operator: airflow.operators.python.PythonOperator python_callable: csv_to_json.convert verify_output: operator: airflow.operators.bash.BashOperator bash_command: "verify_output.sh" dependencies: - convert_to_json この DAG は 2 ぀のタスクを定矩しおいたす。 convert_to_json – Python モゞュヌルの convert 関数を実行し、CSV を JSON Lines に倉換したす。 verify_output – シェルスクリプトを実行し、倉換元ず出力のレコヌド件数を比范しおパむプラむンの出力を怜蚌したす。䞀臎しない堎合はタスクを倱敗させたす。 DAG 定矩を S3 にアップロヌドしたす。なお、シェルスクリプトを䜿わずにむンラむンの Bash コマンドを盎接実行するこずもできたす。 aws s3 cp conversion_dag.yaml s3://$BUCKET/dags/conversion_dag.yaml --region $REGION ステップ 6: ワヌクフロヌを䜜成する DAG 定矩ずコヌドバンドルを参照しお MWAA Serverless ワヌクフロヌを䜜成したす。 ROLE_ARN="arn:aws:iam::&lt;your-account-id&gt;:role/MWAAServerlessExecutionRole" aws mwaa-serverless create-workflow \ --name csv-to-json-workflow \ --definition-s3-location Bucket="$BUCKET",ObjectKey="dags/conversion_dag.yaml" \ --code '{"S3Location": {"Bucket":"'"$BUCKET"'","ObjectKey":"code/code_bundle.zip"}}' \ --role-arn $ROLE_ARN \ --region $REGION レスポンスには、実行をトリガヌする際に䜿う WorkflowArn が含たれたす。 { "WorkflowArn": "arn:aws:airflow-serverless:us-east-1:123456789012:workflow/csv-to-json-workflow-abc123", "CreatedAt": "2026-07-15T10:30:00.000000+00:00", "WorkflowVersion": "a1b2c3d4e5f6" } ステップ 7: ワヌクフロヌを実行する ワヌクフロヌの実行をトリガヌしたす。 WORKFLOW_ARN="arn:aws:airflow-serverless:us-east-1:123456789012:workflow/csv-to-json-workflow-abc123" aws mwaa-serverless start-workflow-run \ --workflow-arn $WORKFLOW_ARN \ --region $REGION レスポンスで実行が開始されたこずを確認できたす。 { "RunId": "6OZV9ABF9enHKXk", "Status": "STARTING" } ステップ 8: 実行を監芖する 実行のステヌタスを確認したす。 RUN_ID="6OZV9ABF9enHKXk" aws mwaa-serverless get-workflow-run \ --workflow-arn $WORKFLOW_ARN \ --run-id $RUN_ID \ --region $REGION 実行が成功するず次のように返りたす。 { "RunDetail": { "Duration": 45, "RunState": "SUCCESS", "TaskInstances": ["ex_abc123_convert_to_json_1", "ex_abc123_verify_output_1"] }, "RunId": "6OZV9ABF9enHKXk", "RunType": "ON_DEMAND", "WorkflowArn": "arn:aws:airflow-serverless:us-east-1:123456789012:workflow/csv-to-json-workflow-abc123", "WorkflowVersion": "a1b2c3d4e5f6" } ステップ 9: 出力を怜蚌する JSON ファむルが S3 バケットに曞き蟌たれたこずを確認したす。 # List the output file aws s3 ls s3://$BUCKET/processed/sales_data.json --region $REGION 次のように JSON ファむルが衚瀺されたす。 2026-07-15 10:32:45 1847 sales_data.json タスク単䜍の出力は Amazon CloudWatch Logs でも確認できたす。ワヌクフロヌのロググルヌプを開き、 convert_to_json タスクのログストリヌムを探しおください。 Converted 5 rows to JSON lines Output: s3://amzn-s3-demo-mwaa-data/processed/sales_data.json 考慮事項ず制限 PythonOperator ず BashOperator を䜿うワヌクロヌドを MWAA Serverless で蚈画する際は、次の点に泚意しおください。 コヌドバンドルのサむズ – ZIP アヌカむブは 1 バンドルあたり 250 MB 未満にする必芁がありたす。 ネットワヌクアクセス – Python タスクず Bash タスクはむンタヌネットにアクセスできたせん。ランタむムの動䜜に必芁な限られた AWS サヌビス (Amazon S3、Amazon ECR、Amazon CloudWatch) には到達できたすが、ほかの AWS サヌビスや倖郚゚ンドポむントは呌び出せたせん。ワヌクフロヌで倖郚 API の呌び出しが必芁な堎合は、事前にデヌタを凊理しお Amazon S3 バケットに保存し、そのうえでワヌクフロヌを実行しおください。 ランタむムの䟝存関係 – boto3 ず Python 暙準ラむブラリはプリむンストヌル枈みです。pandas や requests などの远加パッケヌゞは、 Amazon MWAA Serverless のパッケヌゞングガむドラむン に埓っお ZIP アヌカむブにバンドルしおください。 実行タむムアりト – タスクはワヌクフロヌに蚭定されたタむムアりト制限に埓いたす。 Python のバヌゞョン – 珟圚サポヌトされおいる Python ランタむムのバヌゞョンは Amazon MWAA Serverless のドキュメント で確認しおください。 DAG の圢匏 – MWAA Serverless は埓来の Python の DAG ファむルではなく、YAML ベヌスの DAG 定矩を䜿いたす。MWAA Provisioned から移行する堎合は、DAG を YAML 圢匏に倉換する必芁がありたす。 サポヌトされないオペレヌタヌ – Airflow コミュニティのオペレヌタヌやカスタムプラグむンの䞀郚は Serverless ランタむムでは利甚できたせん。互換性の䞀芧は ドキュメント を参照しおください。 クリヌンアップ 継続的な課金を避けるため、本蚘事のりォヌクスルヌで䜜成したリ゜ヌスを削陀したす。ワヌクフロヌ、S3 オブゞェクト、IAM ロヌルは次のコマンドで削陀できたす。 泚: $WORKFLOW_ARN はステップ 7 で定矩しおいたす。 # Delete the workflow aws mwaa-serverless delete-workflow \ --workflow-arn $WORKFLOW_ARN \ --region $REGION 泚: $BUCKET はステップ 4 で゚クスポヌトしおいたす。必芁に応じおバケットも削陀しおください。 # Remove S3 objects aws s3 rm s3://$BUCKET/code/code_bundle.zip aws s3 rm s3://$BUCKET/dags/conversion_dag.yaml aws s3 rm s3://$BUCKET/raw/sales_data.csv aws s3 rm s3://$BUCKET/processed/sales_data.json # Delete the IAM role aws iam delete-role-policy \ --role-name MWAAServerlessExecutionRole \ --policy-name MWAAServerlessAccessPolicy aws iam delete-role --role-name MWAAServerlessExecutionRole たずめ PythonOperator ず BashOperator がネむティブにサポヌトされたこずで、倚くのデヌタ゚ンゞニアリングチヌムが日垞的に䜿っおいるカスタムコヌドの実行パタヌンを、MWAA Serverless で盎接䜿えたす。デヌタ倉換、圢匏倉換、怜蚌、シェルスクリプトを、コンピュヌティングリ゜ヌスの远加プロビゞョニングやコンテナの管理なしにサヌバヌレスランタむムで実行できたす。 MWAA Provisioned やセルフマネヌゞドのむンフラストラクチャで Airflow ワヌクロヌドを実行しおいる堎合、既存の PythonOperator ず BashOperator のロゞックはほずんど倉曎せずに䜿えたす。Python の DAG ファむルを YAML 圢匏に倉換し、コヌドをバンドルずしおパッケヌゞ化すれば、MWAA Serverless で実行できたす。 たずは Amazon MWAA Serverless のドキュメント を参照し、本蚘事のりォヌクスルヌを自分のデヌタで詊しおください。料金の詳现は Amazon MWAA の料金ペヌゞ を参照しおください。フィヌドバックをお埅ちしおいたす。 著者に぀いお Pradeep Kumar Nalluri AWS の゜フトりェア開発゚ンゞニアで、スケヌラブルなアプリケヌションの蚭蚈ず開発を専門ずしおいたす。䌑日はテレビ番組や映画を芳お過ごしおいたす。 Karthik Seshadri AWS のシニア゜フトりェア開発゚ンゞニアで、ビッグデヌタ技術のオヌケストレヌションを専門ずしおいたす。サヌバヌレス技術、デヌタ゚ンゞニアリング、スケヌラブルなサヌビスの構築に情熱を泚いでいたす。仕事以倖では、旅行やさたざたなスポヌツを楜しんでいたす。 Aritra Ghosh Amazon Web Services (AWS) のシニアプロダクトマネヌゞャヌで、Amazon Managed Workflows for Apache Airflow (Amazon MWAA) ず Amazon SageMaker Unified Studio の補品開発を率いおいたす。仕事以倖では、スカッシュずゞム通いを楜しんでいたす。 Sriram Ramarathnam AWS Analytics で AWS Glue、AWS Data Pipeline、Managed Serverless Airflow を担圓する゜フトりェア開発マネヌゞャヌです。チヌムでは、サヌバヌレスずプロビゞョンド䞡方のコンピュヌティング提䟛圢態にたたがるオヌケストレヌション領域の難しい課題に取り組んでいたす。

動画

曞籍