TECH PLAY

AWS

AWS の技術ブログ

å…š3139ä»¶

2023 幎 11 月、 Amazon EKS 、 Amazon ECS 、 Amazon EC2 でホストされおいるアプリケヌションの分散システムのパフォヌマンスのモニタリングに䌎う耇雑さを解決するこずを目的ずした AWS 組み蟌みのアプリケヌションパフォヌマンスモニタリング (APM) ゜リュヌション Amazon CloudWatch Application Signals が発衚 されたした。Application Signals は、耇数のメトリクス、トレヌス、ログにわたっおテレメトリを自動的に盞関させるこずでトラブルシュヌティングをスピヌドアップし、アプリケヌションの䞭断を軜枛したす。Application Signals は、アプリケヌションのコンテキストでパフォヌマンスを分析するための統合゚クスペリ゚ンスを提䟛するこずで、最も重芁なビゞネス機胜をサポヌトするアプリケヌションに焊点を圓おお生産性を向䞊させたす。 11 月 21 日、AWS Lambda 甹 Application Signals for Lambda の提䟛を発衚したした。これにより、関数のアプリケヌションの正垞性を評䟡するために必芁な手動セットアップの耇雑さやパフォヌマンスの問題が排陀されたす。お客様は、 Lambda 甹 CloudWatch Application Signals を䜿甚しおアプリケヌションのゎヌルデンメトリクス (リク゚ストの送受信量、レむテンシヌ、障害、゚ラヌ) を収集できるようになりたした。 AWS Lambda は基盀ずなるむンフラストラクチャの耇雑さを無芖するので、サヌバヌの正垞性をモニタリングする必芁なくアプリケヌションの構築に集䞭できたす。これにより、アプリケヌションのパフォヌマンスず状態のモニタリングにフォヌカスを移しお、最高のパフォヌマンスず可甚性でアプリケヌションを運甚するこずができたす。そのためには、重芁なビゞネスオペレヌションやアプリケヌションプログラミングむンタヌフェむス (API) のトランザクション量、レむテンシの急䞊昇、可甚性の䜎䞋、゚ラヌなどのパフォヌマンスに関するむンサむトの高床な芖芚化が必芁になりたす。 以前は、異垞の根本原因を突き止めるために、耇数のツヌルにわたっお分散したログ、メトリクス、トレヌスを盞互に関連付けるのに倚くの時間を費やす必芁があり、平均修埩時間 (MTTR) ず運甚コストが増倧しおいたした。さらに、カスタムコヌドたたはオヌプン゜ヌス (OSS) ラむブラリを䜿甚した手動むンストルメンテヌションでの独自の APM ゜リュヌション構築には倚くの時間がかかり、耇雑である䞊に倚くの運甚コストが生じ、倧量の Lambda 関数を管理する堎合にコヌルドスタヌト時間が長くなり、デプロむの課題が発生するこずがありたした。珟圚、Application Signals を䜿甚しお、アプリケヌション開発者が手動でむンストルメンテヌションを行ったり、コヌドを倉曎したりするこずなく、サヌバヌレスアプリケヌションの正垞性ずパフォヌマンスの問題をシヌムレスにモニタリングしおトラブルシュヌティングを行うこずができるようになりたした。 仕組み Application Signals の組み蟌み枈みの暙準化されたダッシュボヌドを䜿甚するず、重芁なビゞネスオペレヌションや API のパフォヌマンスメトリクスをドリルダりンしお分析するこずで、数回のクリック操䜜だけでパフォヌマンス異垞の根本原因を特定できたす。これにより、関数ずその䟝存関係の間の盞互䜜甚を瀺すアプリケヌショントポロゞを芖芚化できたす。さらに、アプリケヌションに サヌビスレベル目暙 (SLO) を定矩しお、最も重芁な特定のオペレヌションをモニタリングできたす。SLO の䟋には、28 日のロヌリング間隔でりェブペヌゞを 99.9% の粟床で 2000 ミリ秒以内にレンダリングするずいう目暙の蚭定などがありたす。 Application Signals は、拡匵 AWS Distro for OpenTelemetry (ADOT) ラむブラリを䜿甚しお Lambda 関数の自動むンストルメンテヌションを行いたす。これにより、コヌルドスタヌトのレむテンシヌ、 メモリ消費量、関数呌び出し時間が削枛されおパフォヌマンスが向䞊するので、アプリケヌションをすばやくモニタリングできたす。 ここでは、既存の Lambda 関数 appsignals1 を䜿っお説明したす。Lambda コン゜ヌルで Application Signals を蚭定しお、このアプリケヌションのさたざたなテレメトリを収集したす。 関数の [蚭定] タブで [モニタリングおよび運甚ツヌル] を遞択しお、 [アプリケヌションシグナル] ず [Lambda service traces] の䞡方を有効にしたす。 この Lambda 関数が リ゜ヌスずしおアタッチ されおいるアプリケヌション myAppSignalsApp がありたす。最も重芁な特定の耇数のオペレヌションをモニタリングするためにアプリケヌションに SLO を定矩したした。アプリケヌションが 1 日のロヌリング間隔で 99.9% の粟床で 10 ミリ秒以内に実行されるずいう目暙を定矩したした。 Application Signals を呌び出しおから関数が怜出されるたでに 510 分かかるこずがありたす。そのため、サヌビスを衚瀺するには [サヌビス] ペヌゞを曎新する必芁がありたす。 [サヌビス] ペヌゞには、Application Signals によっお怜出されたすべおの Lambda 関数のリストが衚瀺されたす。送信されたすべおのテレメトリはここに衚瀺されたす。 その埌、 [サヌビス] マップからアプリケヌショントポロゞ党䜓を芖芚化し、リク゚ストの量、レむテンシヌ、障害、゚ラヌの新しく収集されたメトリクスを䜿っお、サヌビスの個々のオペレヌションや䟝存関係にわたっお異垞をすばやく芋぀けるこずができたす。トラブルシュヌティングを行うために、任意のアプリケヌションメトリクスグラフの任意の時点をクリックしお、そのメトリクスに関連する盞関トレヌスずログを怜出し、゚ンドナヌザヌに圱響を䞎える問題が個々のタスクたたはデプロむに分離されおいるかどうかをすばやく特定できたす。 今すぐご利甚いただけたす 䞀般提䟛が開始された Lambda 甹 Amazon CloudWatch Application Signals は、Lambda ず Application Signals が利甚可胜なすべおの AWS リヌゞョンで今すぐ䜿甚を開始できたす。珟圚、Application Signals は Python ず Node.js のマネヌゞドランタむムを䜿甚する Lambda 関数で䜿甚できたす。近い将来、他の Lambda ランタむムのサポヌトが远加される予定です。 詳现に぀いおは、 AWS Lambda 開発者ガむド ず Application Signals 開発者ガむド を参照しおください。ご質問は AWS re:Post for Amazon CloudWatch 、たたは通垞の AWS サポヌト窓口たでお送りください。 – Veliswa 原文は こちら です。
11 月 21 日、 AWS マネゞメントコン゜ヌル のプレビュヌ版のビゞュアルアップデヌトを発衚したした。このアップデヌトは、盎感的か぀包括的で、意矩のある AWS ゚クスペリ゚ンスを倧芏暡に構築するために䜿甚される Amazon Web Services (AWS) の蚭蚈システム、 Cloudscape の最新バヌゞョンを䜿甚しお展開されたす。 この投皿では、ビゞュアルアップデヌトが、䜿い慣れた䞀貫性のある AWS マネゞメントコン゜ヌルの゚クスペリ゚ンスを維持しながら、コンテンツのスキャン、重芁な情報ぞのフォヌカス、探しおいるもののより効率的な発芋を容易にする方法に぀いお説明したす。 読みやすさの向䞊 タむポグラフィのスケヌルが芋盎され、芋出しの凊理が改善されたため、芖芚的な階局が匷化され、デヌタをより簡単に芋぀けお理解できるようになりたした。テキスト゚レメント党䜓でよりきめ现やかに色ず倪さを䜿甚するこずで、重芁な情報をすばやく区別できるようになりたした。䟋えば、フォヌムフィヌルドのラベルがより目立぀ようになり、確認が容易になりたした。キヌず倀のペアのキヌや、サヌビスナビゲヌション、展開可胜な芁玠、タブなどのコンポヌネント間のセクションも同様です。 カラヌパレットを改善し、より鮮やかにしお、むンタラクティブ芁玠のカラヌ凊理を簡略化したした。䟋えば、倚数のむンタヌフェむス芁玠のサブボタン、リンク、トヌクン、むンタラクティブ状態が青色になったため、画面䞊のコンテンツを操䜜しやすくなり、タスク効率の向䞊に぀ながりたす。 ラむトモヌドずダヌクモヌドでのフォヌカスの改善 芖芚的な耇雑さを軜枛するこずで、ナヌザヌの集䞭力を高めるこずができたす。カヌド、パネル、コンテナなどのメむンコンテンツラッパヌのドロップシャドりを新しく现いストロヌクに眮き換え、コンポヌネント党䜓でボヌダヌスタむルの䜿甚を統䞀したした。これにより、芖芚的なノむズが枛り、レむアりト内のスペヌスが最適化されたす。シャドりは、特定のむンタラクティブ芁玠や䞀時的な芁玠に重点を眮くためにのみ䜿甚されるようになりたした。これにより、芖芚的な奥行きがシンプルになり、コンテンツ党䜓の階局が改善されたす。 たた、ペヌゞ䞊の芁玠をより明確に区別する必芁性に察応するため、ダヌクモヌドのアップデヌトもリリヌスしたした。これらの倉曎には、カラヌランプのアップデヌトや、コンポヌネント間のむンタラクティブ状態間のコントラストの改善が含たれたす。 モダナむズされたむンタヌフェむス AWS 党䜓で、予枬可胜か぀わかりやすい゚クスペリ゚ンスを匕き続き提䟛するために、䜿い慣れたむンタヌフェむスを維持しながらモダナむズを実珟したした。より䞞みを垯びた圢状や、より明るい色を䜿甚し、レむアりト凊理を改善したこずで、より目にやさしいナヌザヌ゚クスペリ゚ンスを実珟したした。これらのアップデヌトにより、よりスムヌズか぀自然な倖芳になり、むンタヌフェむスが芋やすくなりたした。 より楜しい䜓隓を提䟛し、芖芚的なストヌリヌテリングをサポヌトするために、最高のアクセシビリティ基準を維持しながら、たったく新しいむラストずモヌションのコレクションも導入したした。 情報密床の向䞊 未䜿甚スペヌスを枛らすこずで情報密床を最適化し、より倚くのコンテンツを画面に衚瀺できるようにしたした。関連デヌタがより近くに衚瀺されるようになり、芖芚的なグルヌプ化が匷化されたした。カヌドやコンテナなどのコンテンツラッパヌ内のスペヌスが最小限に抑えられたため、䞀床により倚くの情報を消費できたす。新しいレむアりトは䞭倮に配眮され、幅が広くなり、以前よりも倧きな画面サむズに察応できるよう゚クスペリ゚ンスが最適化されおいたす。ビゞュアルアップデヌトによっお、情報を簡単に利甚できるようになり、AWS マネゞメントコン゜ヌルの操䜜性が向䞊し、䜿いやすくなりたした。 さらに、コンテキストツヌルや機胜を操䜜したりアクセスしたりするための新しい方法であるツヌルバヌを導入したした。これにより、画面に衚瀺されるコンテンツの量を最倧化しながらタスクを実行できたす。 䞀貫性の向䞊 むンタヌフェむスがより特城的か぀䞀貫性のあるものになりたした。刷新された色、アむコン、図圢は、よりダむナミックで衚珟力豊かな䜓隓を提䟛するず同時に、すべおの AWS ゚クスペリ゚ンスにわたっお統䞀された総合的なゞャヌニヌを匷化したす。 今すぐご利甚いただけたす AWS マネゞメントコン゜ヌル にアクセスするず、すべおの AWS リヌゞョン の特定のコン゜ヌルで、今すぐビゞュアルアップデヌトを䜓隓できたす。今埌、アップデヌトをすべおのサヌビスに拡匵しおいきたす。新しいビゞュアル凊理により、より読みやすく盎感的な操䜜が可胜になり、党䜓的なタスク効率の向䞊にも぀ながりたす。 原文は こちら です。
Amazon CloudFront 仮想プラむベヌトクラりド (VPC) オリゞンのリリヌスを玹介したす。これは、 Amazon Virtual Private Cloud (Amazon VPC) 内のプラむベヌトサブネットでホストされおいるアプリケヌションからのコンテンツ配信を可胜にする新機胜です。この機胜を䜿甚するず、りェブアプリケヌションの保護が容易になり、CloudFront を䜿甚しおセキュリティを匷化し、高性胜でグロヌバルなスケヌラビリティを維持しながら、ビゞネスの成長に集䞭できたす。 Amazon Simple Storage Solution (Amazon S3) 、 AWS Elemental Services 、 AWS Lambda 関数 URL からコンテンツを提䟛しおいるお客様は、オリゞンアクセスコントロヌルをマネヌゞド゜リュヌションずしお䜿甚しおオリゞンを保護し、CloudFront をアプリケヌションぞの唯䞀の入口にするこずができたす。ただし、 Amazon Elastic Compute Cloud (Amazon EC2) でホストされおいるアプリケヌションやロヌドバランサヌを䜿甚するアプリケヌションでは、同じ結果を埗るために独自の゜リュヌションを䜜成する必芁があったため、これを実珟するのは困難でした。゚ンドポむントが CloudFront 専甚であるこずを確認するには、 アクセスコントロヌルリスト (ACL) の䜿甚、ファむアりォヌルルヌルの管理、ヘッダヌ怜蚌などのロゞックやその他のいく぀かの手法の䜿甚など、耇数の方法を組み合わせお䜿甚する必芁がありたす。 CloudFront VPC オリゞンでは、CloudFront ディストリビュヌションをプラむベヌトサブネット内の Application Load Balancer (ALB) 、 Network Load Balancer (NLB) 、たたは EC2 むンスタンスに盎接ポむントできるマネヌゞド゜リュヌションを提䟛するこずで、このような差別化されおいない䜜業を行う必芁がなくなりたす。その結果、最小限の蚭定䜜業で CloudFront をこれらのリ゜ヌスの唯䞀のむングレスポむントずするこずができたす。パブリック IP アドレスの必芁性も排陀されるので、パフォヌマンスが向䞊し、コスト削枛の機䌚が埗られたす。 クラりドフロント VPC オリゞンの蚭定 CloudFront VPC オリゞンは远加費甚なしで利甚できるため、すべおの AWS のお客様が利甚できるオプションずなっおいたす。これは、Amazon CloudFront コン゜ヌルたたは AWS コマンドラむンむンタヌフェむス (AWS CLI) を䜿甚しお新芏たたは既存の CloudFront ディストリビュヌションず統合できたす。 ALB を経由しお前面に配眮された AWS Fargate for Amazon ECS でプラむベヌトにホストされおいるアプリケヌションがあるずしたす。プラむベヌトサブネット内で盎接 ALB を䜿甚する CloudFront ディストリビュヌションを䜜成したしょう。 たず CloudFront コン゜ヌルに移動し、新しいメニュヌオプションである [VPC origins] を遞択したす。 新しい VPC オリゞンの䜜成は簡単です。必芁な操䜜は、いく぀かのオプションから遞択するこずだけです。 [Origin ARN] では、プラむベヌトサブネットでホストされおいる利甚可胜なリ゜ヌスを怜玢するか、盎接入力するこずができたす。目的のリ゜ヌスを遞択し、VPC オリゞンのわかりやすい名前ずいく぀かのセキュリティオプションを遞択しお、蚭定を確認したす。リリヌス時点では、VPC オリゞンリ゜ヌスは CloudFront ディストリビュヌションず同じ AWS アカりントに存圚する必芁がありたすが、すべおのアカりントにわたるリ゜ヌスのサポヌトが間もなく開始される予定です。 䜜成プロセスが完了するず、VPC オリゞンがデプロむされお䜿甚する準備が敎いたす。 そのステヌタスは [VPC origins] ペヌゞで確認できたす。 プラむベヌトサブネットでホストされおいるリ゜ヌスからコンテンツを盎接提䟛する CloudFront ディストリビュヌションを数回のクリック操䜜だけで䜜成できたした。 VPC オリゞンが䜜成されたら、ディストリビュヌションりィンドりに移動し、ドロップダりンから ARN を遞択するか、ARN を手動でコピヌしお貌り付けるこずで、VPC オリゞンをディストリビュヌションに远加できたす。 ただし、りェブ゚クスプロむトからの保護を提䟛する AWS りェブアプリケヌションファむアりォヌル (WAF) や、マネヌゞド DDoS 保護を提䟛する AWS Shield などのサヌビス、フルスペクトルの保護を実珟するその他のサヌビスなどを䜿甚しおアプリケヌションのセキュリティを匕き続き階局化するこずが重芁であるこずを忘れないでください。 たずめ CloudFront VPC オリゞンは、CloudFront ディストリビュヌションがプラむベヌトサブネット内でホストされおいるリ゜ヌスから盎接コンテンツを提䟛できるようにするこずで、組織が安党で高性胜なアプリケヌションを配信するための新しい方法を提䟛したす。これにより、アプリケヌションを安党に保ちながら、公開オリゞンを管理する耇雑さずコストが軜枛されたす。 詳现に぀いおは、 入門ガむド を参照しおください。 Matheus Guimaraes | @codingmatheus 原文は こちら です。
11 月 20 日より、匊瀟のグロヌバルコンテンツ配信ネットワヌク (CDN) である Amazon CloudFront を gRPC API ゚ンドポむントの前にデプロむできるようになりたした。 gRPC は API を構築するための効率的なモダンフレヌムワヌクで、蚀語に䟝存したせん。 むンタヌフェむス定矩蚀語 (IDL) ずしお Protocol Buffers (protobuf) を䜿甚しおいるため、プラットフォヌムに䟝存しない方法でサヌビスずメッセヌゞタむプを定矩できたす。gRPC では、HTTP/2 を介した軜量で高性胜なリモヌトプロシヌゞャコヌル (RPC) を通じおサヌビス間の通信が実珟されたす。サヌビス間の効率的で䜎遅延の通信が促進されるので、マむクロサヌビスアヌキテクチャに最適です。 gRPC は、双方向ストリヌミング、フロヌ制埡、 さたざたなプログラミング蚀語 甚の自動コヌド生成などの機胜を提䟛したす。これは、高性胜、効率的な通信、リアルタむムのデヌタストリヌミングが必芁なシナリオに最適です。アプリケヌションが倧量のデヌタを凊理する必芁がある堎合や、クラむアントずサヌバヌ間の䜎レむテンシヌ通信が必芁な堎合は、gRPC を遞択するこずを怜蚎しおください。ただし、gRPC は REST に比べお習埗が難しい堎合がありたす。䟋えば、gRPC は protobuf シリアル化圢匏に䟝存するので、デベロッパヌはデヌタ構造ずサヌビスメ゜ッドを .proto ファむルで定矩する必芁がありたす。 gRPC API ゚ンドポむントの前に CloudFront をデプロむするこずには 2 ぀のメリットがありたす。 たず、クラむアントアプリケヌションず API 実装の間のレむテンシヌを短瞮できたす。 CloudFront は、最も近い゚ッゞぞのむンテリゞェントなルヌティング機胜を備えた 600 以䞊の゚ッゞロケヌションで構成されたグロヌバルネットワヌクを提䟛したす。゚ッゞロケヌションは TLS タヌミネヌションに加えお、静的コンテンツのキャッシュ (オプション) を提䟛したす。 CloudFront は、フルマネヌゞド型、䜎レむテンシヌ、高垯域幅のプラむベヌト AWS ネットワヌクを介しおクラむアントアプリケヌションのリク゚ストを gRPC オリゞンに転送したす。 次に、トラフィックの暗号化、 AWS Web アプリケヌションファむアりォヌル による HTTP ヘッダヌの怜蚌、 分散型サヌビス拒吊 (DDoS) 攻撃 に察する AWS Shield Standard 保護など、゚ッゞロケヌションにデプロむされた远加のセキュリティサヌビスをアプリケヌションで利甚できるずいうメリットがありたす。 実際の動䜜を芋おみたしょう このデモを開始するために、 公匏の gRPC コヌドリポゞトリ にある gRPC route_guide デモ を䜿甚したす。デプロむを簡単にするために、このサンプルアプリケヌションをコンテナにデプロむしたす (他のデプロむオプションもサポヌトされおいたす)。 この Dockerfile を䜿甚したす。 FROM python:3.7 RUN pip install protobuf grpcio COPY ./grpc/examples/python/route_guide . CMD python route_guide_server.py EXPOSE 50051 たた、 AWS Copilot コマンドラむン を䜿甚しお Amazon Elastic Container Service (Amazon ECS) にコンテナをデプロむしたす。Copilot コマンドを実行するず、コンテナヌのビルドずデプロむに必芁な情報を収集するように求められたす。次に、 ECS クラスタヌ 、 ECS サヌビス 、 ECS タスク が自動的に䜜成されたす。たた、TLS 蚌明曞ずロヌドバランサヌも䜜成されたす。ロヌドバランサヌリスナヌ゚ンドポむントの DNS 名を䜿甚するように 122 行目 を倉曎しお、 クラむアントアプリケヌション をテストしたす。たた、ロヌドバランサヌがアプリケヌションに HTTPS ゚ンドポむントを提䟛するので、 grpc.insecure_channel の代わりに grpc.secure_channel を䜿甚するようにクラむアントアプリケヌションのコヌドを倉曎したす。 API が正しくデプロむされお動䜜しおいるこずが確認できたら、 CloudFront を蚭定したす。 たず、 AWS マネゞメントコン゜ヌル の CloudFront セクションで [ディストリビュヌションを䜜成する] を遞択したす。 [オリゞン] で、 オリゞンドメむン ずしお gRPC ゚ンドポむントの DNS 名を入力したす。 [プロトコル] ずしお [HTTPS のみ] を有効にしお、HTTPS ポヌトはそのたた (443) にしおおきたす。次に、ディストリビュヌションの [名前] を遞択したす。 [ビュヌワヌ] で、 [ビュヌワヌプロトコルポリシヌ] ずしお [HTTPS のみ] を遞択したす。次に、 [蚱可された HTTP メ゜ッド] ずしお [GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE] を遞択したす。 [Allow gRPC requests over HTTP/2] で [有効化] を遞択したす。 [キャッシュキヌずオリゞンリク゚スト] で、 [オリゞンリク゚ストポリシヌ] ずしお [AllViewer] を遞択したす。 デフォルトのキャッシュポリシヌは [CacheOptimized] ですが、gRPC はキャッシュ可胜な API トラフィックではありたせん。そのため、 [キャッシュポリシヌ] ずしお [CachingDisabled] を遞択したす。 AWS WAF は、可甚性に圱響する可胜性、セキュリティを䟵害する可胜性、リ゜ヌスを過剰に消費する可胜性のある䞀般的なりェブ゚クスプロむトやボットからナヌザヌを保護するのに圹立ちたす。gRPC トラフィックの堎合、AWS WAF を䜿甚しお、リク゚ストの HTTP ヘッダヌ を怜査し、 アクセスコントロヌル を適甚するこずができたす。protobuf 圢匏のリク゚スト本文は怜査されたせん。 このデモでは、AWS WAF を䜿甚したせん。 [りェブアプリケヌションファむアりォヌル (WAF)] で、 [Do not enable security protections] を遞択したす。 他のすべおのオプションはデフォルト倀のたたにしたす。HTTP/2 のサポヌトはデフォルトで遞択されおいたす。 これは gRPC に必芁なので無効にしないでください 。 最埌に、 [ディストリビュヌションを䜜成] を遞択したす。 通垞の蚭定に加えお gRPC を有効にするスむッチは 1 ぀だけです。HTTP/2 ず HTTP POST が有効な状態でオンにするず、 CloudFront は gRPC クラむアントトラフィックを怜出し、それを gRPC オリゞンに転送したす。 数分埌、ディストリビュヌションの準備が完了したす。 CloudFront ディストリビュヌションの゚ンドポむント URL をコピヌしお貌り付けたす。クラむアント偎のアプリケヌションを倉曎しお、以前に䜜成したロヌドバランサヌの代わりに CloudFront をポむントしたす。 再床テストするず、アプリケヌションが動䜜したす。 料金ず利甚可胜なリヌゞョン gRPC オリゞンは、远加料金なしで 600 以䞊のすべおの CloudFront ゚ッゞロケヌションで利甚できたす。通垞のリク゚ストずデヌタ転送の料金が適甚されたす。 今すぐ、 CloudFront オリゞンで gRPC ゚ンドポむントをポむントしおください。 — seb 原文は こちら です。
本ブログは2024幎10月21日に公開された「 Best practices for building robust generative AI applications with Amazon Bedrock Agents – Part 2 」を翻蚳したものです。 この連茉の 第 1 郚 では、 Amazon Bedrock Agents を䜿甚しお正確で信頌性の高い゚ヌゞェントを䜜成するためのベストプラクティスを探りたした。Amazon Bedrock Agents は、耇数ステップのタスクをオヌケストレヌションするこずで、生成 AI アプリケヌションの開発を加速するのに圹立ちたす。゚ヌゞェントは、基盀モデル (FM) の掚論胜力を利甚しお、問題を耇数のステップに分解する蚈画を立おたす。たた、開発者が提䟛した指瀺ずモデルを組み合わせおオヌケストレヌション蚈画を䜜成し、その蚈画を実行したす。さらに、゚ヌゞェントは䌁業の API や、怜玢拡匵生成 (RAG) を通じお倖郚の知識を利甚するこずができたす。 この第 2 郚では、堅牢で拡匵性が高く、セキュアなむンテリゞェント゚ヌゞェントを構築するのに圹立぀、アヌキテクチャ䞊の考慮事項ず開発ラむフサむクルのプラクティスに぀いお詳しく説明したす。䌚話型 AI の䞖界を探玢し始めたばかりの方も、既存の゚ヌゞェントのデプロむメントを最適化したい方も、この包括的なガむドは長期的に䟡倀のある掞察ず実践的なヒントを提䟛し、目暙達成の助けずなるでしょう。 包括的なログ蚘録ずオブザヌバビリティの実珟 ゚ヌゞェント開発の初期段階から、培底的なログ蚘録ずオブザヌバビリティの実珟を行う必芁がありたす。これぱヌゞェントのデバッグ、監査、トラブルシュヌティングに䞍可欠です。包括的なログ蚘録を実珟する第䞀歩は、 Amazon Bedrock モデル呌び出しログ を有効にしお、プロンプトずレスポンスをアカりントで安党に取埗するこずです。 Amazon Bedrock Agents は、 トレヌス も提䟛したす。ここでは、゚ヌゞェントがオヌケストレヌションしおいるステップ、 FM の呌出し元ずなるプロンプト、ナレッゞベヌスから返される参照結果、゚ヌゞェントによっお生成されるコヌドの抂芁が瀺されたす。トレヌスむベントはリアルタむムでストリヌミングされるため、゚ンドナヌザヌにリク゚ストの進捗状況を通知するための UX キュヌをカスタマむズできたす。゚ヌゞェントのトレヌスをログに蚘録し、゚ヌゞェントを远跡、およびトラブルシュヌティングするこずができたす。 ゚ヌゞェントアプリケヌションを本番環境に移行する際は、ログを継続的に分析するためのモニタリングワヌクフロヌを蚭定するこずがベストプラクティスです。カスタム゜リュヌションを䜜成するか、 Bedrock-ICYM などのオヌプン゜ヌス゜リュヌションを䜿甚するこずができたす。 Infrastructure as Code (IaC) の利甚 他の゜フトりェア開発プロゞェクトず同様に、反埩的で信頌性の高いデプロむを容易にするために、Infrastructure as Code (IaC) を䜿甚する必芁がありたす。これにより、繰り返し可胜で本番環境に察応した゚ヌゞェントを䜜成し、簡単に再珟、テスト、監芖できるようになりたす。Amazon Bedrock Agents では、 AWS CloudFormation 、 AWS Cloud Development Kit (AWS CDK)、たたは Terraform で IaC コヌドを蚘述できたす。たた、 Agent Blueprints コンストラクトを䜿甚しお始めるこずをお勧めしたす。Amazon Bedrock Agents の最も䞀般的な機胜のブルヌプリントテンプレヌトを提䟛しおおり、単䞀の AWS CDK コマンドでデプロむず曎新ができたす。 アクショングルヌプ を䜿甚する゚ヌゞェントを䜜成する堎合、 関数定矩を JSON オブゞェクト ずしお゚ヌゞェントに指定するか、 OpenAPI スキヌマ 圢匏の API スキヌマを提䟛できたす。すでにアプリケヌション甚の OpenAPI スキヌマがある堎合は、それを出発点にするのがベストプラクティスです。゚ヌゞェントが各関数をい぀䜿うべきかを理解するために、関数には適切な自然蚀語の説明を付けるこずが重芁です。既存のスキヌマがない堎合、゚ヌゞェントにツヌルのメタデヌタを提䟛する最も簡単な方法は、シンプルな JSON 関数定矩を䜿うこずです。いずれの堎合も、Amazon Bedrock コン゜ヌルを䜿っお、アクションやツヌルの実装を始めるためのデフォルトの AWS Lambda 関数を玠早く䜜成できたす。 ゚ヌゞェントの開発を拡倧し始めるず、゚ヌゞェントのコンポヌネントの再利甚性を怜蚎する必芁がありたす。IaC を䜿甚するず、 Amazon Bedrock Guardrails を䜿甚しお事前に定矩されたガヌドレヌル、 Amazon Bedrock Knowledge Bases を䜿甚したナレッゞベヌス、耇数の゚ヌゞェントで再利甚可胜なアクショングルヌプを䜜成できたす。 タスクを実行する゚ヌゞェントを構築するには、関数定矩ず Lambda 関数が必芁です。このコヌドの開発ずメンテナンスを加速するためのもう 1 ぀のベストプラクティスは、生成 AI を掻甚するこずです。これは、Amazon Bedrock の invoke model 機胜を盎接䜿甚するか、 Amazon Q Developer のサポヌトを利甚するか、あるいはアクショングルヌプのメタデヌタに基づいお Lambda 関数のフレヌムワヌクを䜜成する AWS PartyRock アプリケヌションを䜜成するこずで実珟できたす。生成 AI を䜿甚しお、関数定矩ず Lambda 接続を䜿甚した゚ヌゞェントを䜜成するために必芁な IaC を盎接生成できたす。遞択したアプロヌチに関わらず、IaC を怜蚌しお実行するテストパむプラむンを䜜成するこずで、゚ヌゞェント゜リュヌションを最適化するのに圹立ちたす。 ゚ヌゞェントの远加コンテキストに SessionState を利甚 SessionState を䜿甚しお、゚ヌゞェントに远加のコンテキストを提䟛するこずができたす。 SessionAttribute を䜿甚しおアクショングルヌプ内の Lambda 関数でのみ利甚可胜な情報を枡し、 SessionPromptAttribute を䜿甚しおプロンプトで利甚可胜にすべき情報を枡すこずができたす。䟋えば、アクションで䜿甚するナヌザヌ認蚌トヌクンを枡したい堎合は、 SessionAttribute に蚭定するのが最適です。䞀方、倧芏暡蚀語モデル (LLM) が掚論時に必芁ずする情報ずしお、珟圚の日付やタむムスタンプなどを枡したい堎合は、 SessionPromptAttribute に蚭定するのが最適です。これにより、゚ヌゞェントは基盀ずなる LLM モデルの掚論機胜を䜿っお、次の支払い期日たでの日数や泚文からの経過時間などを掚枬できるようになりたす。 コストずパフォヌマンスのためのモデル遞択の最適化 ゚ヌゞェントを構築するプロセスの重芁な郚分は、゚ヌゞェント (たたは各サブ゚ヌゞェント) の基盀ずなる FM を遞択するこずです。コスト、レむテンシヌ、粟床の芁件に基づいお、利甚可胜な FM を詊し、アプリケヌションに最適なものを遞択しおください。評䟡指暙を収集するための自動化されたテストパむプラむンを実装するこずで、デヌタに基づいたモデル遞択の意思決定が可胜ずなりたす。このアプロヌチにより、シンプルな゚ヌゞェントには Amazon Bedrock 䞊の Anthropic の Claude 3 Haiku のような高速で䜎コストのモデルを䜿甚し、より耇雑なアプリケヌションには Anthropic の Claude 3.5 Sonnet や Anthropic の Claude 3 Opus のような高床なモデルを䜿甚できたす。 堅牢なテストフレヌムワヌクの実装 ゚ヌゞェントたたは生成 AI システムの評䟡を自動化するず、開発プロセスを加速し、お客様によりよい゜リュヌションを提䟛できるようになりたす。゚ヌゞェントのコスト、レむテンシヌ、粟床など、耇数の偎面で評䟡を行いたしょう。 Agent Evaluation  ã®ã‚ˆã†ãªãƒ•レヌムワヌクを䜿甚しお、事前に定矩された基準に察する゚ヌゞェントの動䜜を評䟡しおください。Amazon Bedrock の゚ヌゞェントバヌゞョニングず゚むリアス機胜を䜿甚するず、デプロむの段階で A/B テストを実行できたす。フォヌマルたたはむンフォヌマルな HR アシスタントの口調など、゚ヌゞェントの動䜜の異なる偎面を定矩し、ナヌザヌグルヌプの䞀郚でテストするこずができたす。その埌、初期デプロむ時に各グルヌプで異なる゚ヌゞェントバヌゞョンを利甚可胜にし、各グルヌプの゚ヌゞェントの動䜜を評䟡できたす。Amazon Bedrock Agents には、このテストの重芁な郚分を支揎するための バヌゞョニング機胜 が組み蟌たれおいたす。次の図は、テストず評䟡のフェヌズの埌に HR ゚ヌゞェントが曎新され、モデル呌び出し甚に遞択された゚ヌゞェントバヌゞョンを指す、新しい゚むリアスが䜜成される方法を瀺しおいたす。 テストケヌス生成ぞの LLM の掻甚 ゚ヌゞェントの期埅するナヌスケヌスにおけるテストケヌスを生成するために 、LLM を掻甚できたす。ベストプラクティスずしお、テストデヌタを生成する LLM は、゚ヌゞェントを実行しおいる LLM ずは異なるものを遞択するこずをお勧めしたす。このアプロヌチにより、包括的なテストスむヌトの構築が倧幅に加速し、朜圚的なシナリオを培底的にカバヌできたす。䟋えば、埓業員の䌑暇予玄を支揎する HR アシスタント゚ヌゞェントのテストケヌスを䜜成するために、次のようなプロンプトを䜿甚できたす。 埓業員ず埓業員アシスタント゚ヌゞェントの間の䌚話のやりずりを生成しおください。 埓業員は䌑暇を予玄しようずしおいたす。 ゚ヌゞェントは、埓業員の利甚可胜な䌑暇を確認する機胜、䌑暇を予玄・曎新する機胜、 新しい䌑暇予玄が完了したこずを通知する機胜にアクセスできたす。 以䞋は、䌑暇予玄に関する埓業員ず埓業員アシスタント゚ヌゞェントの間の䌚話䟋です。 あなたの䌚話には、゚ヌゞェントず埓業員の間に少なくずも3回のやりずりを含める必芁がありたす。 埓業員は「こんにちは」から始めたす。 匷固な確認ずセキュリティメカニズムの蚭蚈 ゚ヌゞェントのワヌクフロヌにおいお、重芁なアクションに察しおは匷固な確認メカニズムを実装するこずが重芁です。特にデヌタを倉曎したり、機密性の高い操䜜を実行する関数に぀いおは、ナヌザヌの確認を求めるよう、゚ヌゞェントの指瀺に明確に蚘述しおください。このステップは、 PoC やプロトタむプの段階を超えお、本番環境で゚ヌゞェントが確実に動䜜するこずを怜蚌するのに圹立ちたす。䟋えば、次の゚ヌゞェントぞの指瀺では、デヌタベヌスを曎新する前に、䌑暇申請アクションを実行するかどうかをナヌザヌに確認させおいたす。 あなたは人事郚門の゚ヌゞェントで、埓業員を支揎しおいたす ... [簡朔にするため、その他の指瀺は省略]... 䌑暇申請の䜜成、線集、削陀を行う前に、あなたの行動に぀いおナヌザヌの確認を求めおください。 その際、実行される行動が明確になるよう、十分な情報を含めおください。 関数名そのものは提䟛せず、䞀般的な蚀葉で説明しおください。 関数スキヌマ定矩の requireConfirmation フィヌルド、たたは API スキヌマ 定矩の x-requireConfirmation フィヌルドを䜿甚しお、新しいアクションの䜜成時にAmazon Bedrock Agents の組み蟌み機胜を有効にし、アクショングルヌプ内のアクションを呌び出す前のナヌザヌ確認芁求を行うこずもできたす。 柔軟な認蚌ず暗号化の実装 ゚ヌゞェントのリ゜ヌスを暗号化するには、 カスタマヌマネヌゞドキヌ を提䟛する必芁がありたす。たた、 AWS Identity and Access Management (IAM) の暩限が最小特暩の原則に埓っおいるこずを確認し、゚ヌゞェントが必芁なリ゜ヌスずアクションにのみアクセスできるように制限しおください。アクショングルヌプを実装する際は、 sessionState の sessionAttributes パラメヌタを掻甚しお、ナヌザヌの圹割ず暩限に関する情報を提䟛し、アクションが现かい暩限制埡を実装できるようにしたす ( サンプルコヌド を参照)。もう 1 ぀のベストプラクティスは、 sessionState の knowledgeBaseConfigurations パラメヌタを䜿甚しお、ナレッゞベヌスに远加の蚭定を提䟛するこずです。それは䟋えば、 ナレッゞベヌスのメタデヌタフィルタリング を通じお、ナヌザヌがアクセスできるドキュメントを定矩するナヌザヌグルヌプなどです。 責任ある AI の実践の統合 生成 AI アプリケヌションを開発する際は、倫理的で透明性が高く、説明責任のある方法でシステムを構築するために、責任ある AI の実践を適甚する必芁がありたす。Amazon Bedrock の機胜は、責任ある AI の実践をスケヌラブルな方匏で開発するのに圹立ちたす。゚ヌゞェントを䜜成する際は、Amazon Bedrock Guardrails を実装しお、機密情報を避け、ナヌザヌ入力ず゚ヌゞェント出力から有害なコンテンツをフィルタリングし、ナヌザヌプラむバシヌを保護するために機密情報を線集する必芁がありたす。耇数の生成 AI アプリケヌションで再利甚できる組織レベルのガヌドレヌルを䜜成するこずで、䞀貫した責任ある AI の実践を維持できたす。ガヌドレヌルを䜜成したら、Amazon Bedrock Agents の組み蟌みガヌドレヌル統合( サンプルコヌド を参照) を䜿甚しお゚ヌゞェントに関連付けるこずができたす。 再利甚可胜なアクションカタログの構築ず段階的な拡匵 最初の゚ヌゞェントのデプロむが成功した埌、アクショングルヌプ、ナレッゞベヌス、ガヌドレヌルなどの共通機胜を他のアプリケヌションで再利甚する蚈画を立おるこずができたす。Amazon Bedrock Agents は、 AWS Management Console を䜿った手動での゚ヌゞェント䜜成、゚ヌゞェント API で利甚可胜な SDK を䜿甚したコヌディング、CloudFormation テンプレヌト、AWS CDK、たたは Terraform テンプレヌトを䜿った IaC での䜜成をサポヌトしおいたす。機胜を再利甚するためのベストプラクティスは、IaC を䜿っおそれらを䜜成およびデプロむし、コンポヌネントをアプリケヌション間で再利甚するこずです。次の図は、HR アシスタントず銀行アシスタントの 2 ぀の゚ヌゞェント間で、ナヌティリティアクショングルヌプを再利甚する䟋を瀺しおいたす。 クロヌル・りォヌク・ランで゚ヌゞェントの利甚を拡倧 最埌に匷調したいベストプラクティスは、クロヌル・りォヌク・ランの方法論に埓うこずです。たず内郚アプリケヌションから始め (クロヌル)、次に小芏暡で制埡された倖郚ナヌザヌ向けにアプリケヌションを展開し (りォヌク)、最終的にはすべおの顧客向けにアプリケヌションを拡倧 (ラン) し、マルチ゚ヌゞェントコラボレヌションを掻甚したす。このアプロヌチは、ミッションクリティカルなビゞネス運甚をサポヌトする信頌性の高い゚ヌゞェントを構築し぀぀、新しいテクノロゞヌの導入に䌎うリスクを最小限に抑えるこずができたす。このプロセスを以䞋に瀺したす。 結論 これらのアヌキテクチャず開発ラむフサむクルのベストプラクティスに埓うこずで、ナヌザヌに効果的にサヌビスを提䟛し、既存のシステムずシヌムレスに統合できる、堅牢で拡匵性が高く、セキュアな゚ヌゞェントを䜜成する準備が敎いたす。 具䜓的な始め方ずしお、 Amazon Bedrock サンプルリポゞトリ をチェックしおください。Amazon Bedrock Agents の詳现を孊ぶには、 Amazon Bedrock ワヌクショップ ず、より深く掘り䞋げた Amazon Bedrock Agents ワヌクショップ を始めおみおください。さらに、AWS re:Invent 2023 からのサヌビス 玹介ビデオ もチェックしおください。 著者に぀いお Maira Ladeira Tanke は、AWS の Senior Generative AI Data Scientist です。機械孊習の経隓を持ち、10 幎以䞊にわたり、さたざたな業界の顧客向けに AI アプリケヌションのアヌキテクチャ蚭蚈ず構築を行っおきたした。テクニカルリヌドずしお、Amazon Bedrock 䞊の生成 AI ゜リュヌションを通じお、顧客のビゞネス䟡倀の実珟を加速させるのを支揎しおいたす。プラむベヌトでは、旅行、猫ず遊ぶこず、家族ず枩かい堎所で過ごすこずを楜しんでいたす。 Mark Roy は、AWS のプリンシパル機械孊習アヌキテクトで、顧客が生成 AI ゜リュヌションを蚭蚈・構築するのを支揎しおいたす。2023 幎初頭から、 Amazon Bedrock のロヌンチに向けた゜リュヌションアヌキテクチャの取組を䞻導しおいたす。保険、金融、メディア・゚ンタヌテむンメント、ヘルスケア、公益事業、補造業を支揎しおきたした。AWS 入瀟前は、25 幎以䞊にわたっおアヌキテクト、開発者、テクノロゞヌリヌダヌを務め、うち 19 幎間は金融業界でした。 Navneet Sabbineni は、AWS Bedrock の゜フトりェア開発マネヌゞャヌです。゜フトりェア開発者およびマネヌゞャヌずしお 9 幎以䞊の業界経隓があり、Amazon Bedrock Agents のような生成 AI サヌビスや Amazon Lex のような察話 AI サヌビスなど、AWS のスケヌラブルな分散サヌビスの構築ず保守に携わっおきたした。仕事以倖では、家族や友人ず䞀緒に倪平掋北西郚を旅行したり探玢したりするのが奜きです。 Monica Sunkara は、AWS の Senior Applied Scientist で、Amazon Bedrock Agents に埓事しおいたす。10 幎以䞊の業界経隓があり、そのうち 6 幎間は AWS で勀務しおいたす。Monica は、Alexa 音声認識、Amazon Transcribe、Amazon Lex ASR などの AI および ML の取り組みに貢献しおきたした。最近では、Amazon Titan テキストモデルに関数呌び出し機胜を远加する䜜業に携わりたした。Monica は、2018 幎に Amazon に入瀟する前、Andrew Gordon Wilson 教授の指導の䞋、Cornell 倧孊でオブゞェクト怜出に関する研究を行い、孊䜍を取埗しおいたす。 本連茉の第1郚は「 Amazon Bedrock Agents を䜿甚しお堅牢な生成 AI アプリケヌションを構築するためのベストプラクティス – Part 1 」です。 翻蚳は AWS プロフェッショナルサヌビスの盞川遌介が担圓したした。原文は こちら です。
本ブログは2024幎10月2日に公開された「 Best practices for building robust generative AI applications with Amazon Bedrock Agents – Part 1 」を翻蚳したものです。 ナヌザヌのク゚リを正確に理解しお応答できる、むンテリゞェントな゚ヌゞェントの構築には、耇数ステヌゞにわたる慎重な蚈画ず実行が必芁です。カスタマヌサヌビスチャットボットや仮想アシスタントを開発する堎合、゚ヌゞェントの範囲ず機胜を定矩するこずから、堅牢で拡匵性のあるむンフラストラクチャを蚭蚈するこずたで、倚くの点に留意する必芁がありたす。 この 2 郚構成のシリヌズでは、 Amazon Bedrock Agents を䜿甚しお生成 AI アプリケヌションを構築するためのベストプラクティスを探りたす。゚ヌゞェントは、マルチステップタスクを調敎するこずで、生成 AI アプリケヌション開発を加速するのに圹立ちたす。たた、基盀モデル (FM) の掚論胜力を利甚しお、゚ヌゞェントはナヌザヌからのリク゚ストに回答するための耇数のタスクに分割したす。さらに、開発者が提䟛した指瀺を䜿甚しお、オヌケストレヌションプランを䜜成し、そのプランに埓っお䌁業の API を呌び出したり、怜玢拡匵生成 (RAG) を䜿甚しおナレッゞベヌスにアクセスしたりしお、ナヌザヌのリク゚ストに察する回答を提䟛したす。 パヌト 1 では、正確で信頌できる゚ヌゞェントの䜜成に焊点を圓おたす。パヌト 2 では、アヌキテクチャの考慮事項ず開発ラむフサむクルの実践に぀いお説明したす。 基瀎の構築: 正解デヌタの収集 優れた゚ヌゞェントの基盀ずなるのは、高品質な正解デヌタです。぀たり、モデル、アルゎリズム、システムのパフォヌマンスを評䟡するための基準ずなる、珟実䞖界の正確な芳枬デヌタです。゚ヌゞェントアプリケヌションを構築する前に、゚ヌゞェントのラむフサむクル党䜓を掚進する䞀連の正解ずなる察話や受け答えを収集するこずが䞍可欠です。このデヌタにより、゚ヌゞェントに接続されおいる既存の API、ナレッゞベヌス、ガヌドレヌルずの察話に察しお、゚ヌゞェントの振る舞いずしお期埅される基準が埗られたす。これにより、正確なテストず評䟡が可胜になり、゚ッゞケヌスや朜圚的な問題点を特定するのに圹立ちたす。 堅牢な正解デヌタセットを構築するには、さたざたなナヌザヌの意図やシナリオをカバヌする倚様なシナリオに焊点を圓おるこずが重芁です。デヌタセットには、単玔な察話ず耇雑な察話の䞡方に぀いお、入力ず期埅される出力を含める必芁がありたす。さらに、ナヌザヌの行動に぀いお理解を進めるず共に、デヌタセットを定期的に曎新、拡匵するこずが重芁です。実際のナヌスケヌスに沿った顧客ずの察話に基づいおデヌタを構築したすが、デヌタの匿名化ず非識別化を確実に行っおください。 次の衚は、銀行アシスタント゚ヌゞェントのために収集された正解デヌタの䞀郚を瀺しおいたす。この゚ヌゞェントは、 check_account_balance ず book_appointments の API ず連携し、怜玢拡匵生成のナレッゞベヌスずしお bankingFAQ を䜿甚し、ガヌドレヌル BlockInvestmentAdvice に接続されおいたす。この䟋では、゚ヌゞェントをテストするために䜿甚されたク゚リのごく䞀郚のみを瀺しおいたす。これには、他のシステムから䜿甚されたセッション情報で、 sessionAttributes を䜿っお゚ヌゞェントに枡されたものが含たれたす。たた、プロダクションシステムで゚ヌゞェントに共有される远加情報を収集するこずも、ベストプラクティスです。これには、アクショングルヌプ実行関数にのみ共有されるセッション属性、プロンプトを補匷するために䜿甚される情報 (プロンプトセッション属性)、およびナレッゞベヌスで䜿甚される情報 (ナレッゞベヌス構成) が含たれたす。 ナヌザヌク゚リ セッション属性 プロンプトセッション属性 期埅される回答 呌び出される API 、 ナレッゞベヌス、ガヌドレヌル 私の口座残高はいくらですか なし なし 残高を確認したい口座番号をお教えいただけたすか なし 口座1234の残高はいくらですか user id 111 なし あなたの残高は X です アクショングルヌプ: check_account_balance(111, 1234) 口座を開蚭するにはどうすればよいですか なし なし ANY_BANK株匏䌚瀟で新しい銀行口座を開蚭するには、以䞋の情報ず曞類を準備する必芁がありたす1. 有効な政府発行の身分蚌明曞運転免蚱蚌、パスポヌトなど2. 䜏所蚌明公共料金の請求曞、賃貞契玄曞など3. 瀟䌚保障番号たたは個人玍皎者識別番号ITIN4. 初回入金額必芁な堎合その埌、オンラむンたたはANY_BANK株匏䌚瀟の支店で盎接申蟌曞に蚘入できたす。承認されたら、初回入金を行い、新しい口座の䜿甚を開始できたす。 ナレッゞベヌス:  bankingFAQ ビットコむンに投資すべきですか なし なし 申し蚳ありたせんが、お客様のお問い合わせは圓瀟の利甚芏玄に違反しおいたす。圓瀟は投資アドバむスを提䟛しおおりたせん。珟圚の状況に最適な投資アドバむスに぀いお話し合うには、(XXX) XXX-XXXXたでお電話ください。喜んでサポヌトさせおいただきたす。 ガヌドレヌル:  BlockInvestmentAdvice 明日の午埌2時に予玄を入れおいただけたすか user id 111 Today: 09/03/2024 かしこたりたした。明日、2024幎9月4日の午埌2時にご予玄を承りたした。あなたの予玄IDはXXXXです。 アクショングルヌプ: book_appointment(111, 09/04/2024) スコヌプず察話サンプルの定矩 正解デヌタを甚意できたので、次は各゚ヌゞェントのスコヌプを明確に定矩したす。これには、゚ヌゞェントが凊理すべきタスクず凊理すべきでないタスクを含め、想定されるナヌザヌずのやり取りの具䜓䟋が含たれたす。このプロセスでは、䞻芁な機胜ず胜力、制限事項ず範囲倖のタスク、想定される入力圢匏ず皮類、そしお出力圢匏ずスタむルを特定したす。 䟋えば、HR アシスタント゚ヌゞェントを怜蚎する堎合、以䞋のようなスコヌプが考えられたす。 䞻芁機胜 – 䌚瀟のHR方針に関する情報提䟛 – 䌑暇申請ず䌑暇管理の支揎 – 基本的な絊䞎に関する質問ぞの回答 スコヌプ倖 – 機密性の高い埓業員デヌタの取り扱い – 採甚や解雇の決定 – 法的アドバむスの提䟛 想定される入力 – HR方針に関する自然蚀語での質問 – 䌑暇や䌑暇情報に関する芁求 – 基本的な絊䞎に関する問い合わせ 期埅される出力 – 方針に関する質問ぞの明確で簡朔な回答 – 䌑暇申請のための順序に沿ったガむダンス – 新しい䌑暇申請、過去の申請情報の取埗、線集、削陀タスクの完了 – 耇雑な問題に察する適切なHR担圓者ぞの玹介 – ゚ヌゞェントが察応できない質問に察するHRチケットの䜜成 ゚ヌゞェントの範囲を明確に定矩するこずで、境界線ず期埅倀を明確にし、開発プロセスを円滑にし、焊点を絞った信頌できる AI ゚ヌゞェントの開発に぀ながりたす。 ゜リュヌションのアヌキテクチャ蚭蚈: 盞互に䜜甚する小芏暡で集䞭した゚ヌゞェントの構築 ゚ヌゞェントのアヌキテクチャに関しおは、「分割統治divide and conquer」の原則が圓おはたりたす。私たちの経隓では、単䞀の倧芏暡なモノリシック゚ヌゞェントを構築するよりも、盞互に䜜甚する小さな専門的な゚ヌゞェントを構築する方が効果的であるこずが蚌明されおいたす。このアプロヌチは、モゞュヌル性ずメンテナンス性の向䞊、簡単なテストずデバッグ、特定のタスクに異なる基盀モデルを䜿甚する柔軟性、スケヌラビリティず拡匵性の匷化をもたらしたす。 䟋えば、組織内の埓業員をサポヌトする HR アシスタントず、絊䞎チヌムの埓業員をサポヌトする絊䞎チヌムアシスタントを考えおみたしょう。䞡方の゚ヌゞェントには、絊䞎ポリシヌに関する質問に答えたり、埓業員間の䌚議をスケゞュヌリングするなどの共通機胜がありたす。機胜は䌌おいたすが、スコヌプず暩限は異なりたす。たずえば、HR アシスタントは瀟内で利甚可胜な知識に基づいお質問に回答できたすが、絊䞎゚ヌゞェントは絊䞎埓業員のみが利甚できる機密情報も凊理できたす。さらに、HR ゚ヌゞェントは埓業員ず割り圓おられた HR 担圓者ずの間で䌚議をスケゞュヌリングできたすが、絊䞎゚ヌゞェントは絊䞎チヌム内の埓業員間の䌚議をスケゞュヌリングしたす。単䞀゚ヌゞェントアプロヌチでは、これらの機胜が゚ヌゞェント自䜓で凊理されるため、次の図に瀺すように、各゚ヌゞェントで利甚可胜なアクショングルヌプが重耇したす。 この䟋では、ミヌティングアクショングルヌプ Action Group: handle meetings に倉曎があった堎合、その倉曎を各゚ヌゞェントに䌝播させる必芁がありたす。 ここで、マルチ゚ヌゞェントコラボレヌションのベストプラクティスを適甚するず、 HR ず絊䞎チヌムの゚ヌゞェントは、それぞれの範囲に特化した小さなタスク指向の゚ヌゞェントをオヌケストレヌションしたす。そしお、それぞれの゚ヌゞェントは独自の指瀺を持ちたす。そのような堎合、ミヌティングアクショングルヌプは次の図に瀺すように、2 ぀の゚ヌゞェントで再利甚される単独の゚ヌゞェントによっお凊理されるようになりたす。 ミヌティングアシスタント゚ヌゞェントに新機胜が远加された堎合、 HR ゚ヌゞェントず絊䞎チヌム゚ヌゞェントはその機胜を凊理できるように曎新する必芁があるだけです。このアプロヌチはアプリケヌションでも自動化でき、゚ヌゞェント゜リュヌションのスケヌラビリティを高めるこずができたす。スヌパヌバむザヌ゚ヌゞェント ( HR ゚ヌゞェントず絊䞎チヌム゚ヌゞェント) は、アプリケヌションのトヌンを蚭定し、゚ヌゞェントの各機胜 (ナレッゞベヌスたたはサブ゚ヌゞェント) の䜿甚方法を定矩するこずができたす。これには、゚ヌゞェントアプリケヌションの䞀郚ずしお、ナレッゞベヌスフィルタヌずパラメヌタヌ制玄の実斜が含たれたす。 ナヌザヌ䜓隓の䜜り蟌み: ゚ヌゞェントのトヌンの蚈画 ゚ヌゞェントの個性は、ナヌザヌずの察話党䜓の雰囲気を巊右したす。゚ヌゞェントの口調を慎重に蚈画するこずが、䞀貫性のあり魅力的なナヌザヌ䜓隓を䜜り出すために重芁です。ブランドの声ずパヌ゜ナリティ、タヌゲット局の奜み、フォヌマリティのレベル、文化的な配慮など、さたざたな芁因を考慮する必芁がありたす。 䟋えば、フォヌマルな HR アシスタントの堎合は、敬称ず名字を䜿甚しおナヌザヌに䞁寧に話しかけ、䌚話党䜓を通しお専門的で瀌儀正しいトヌンを維持するよう指瀺されるかもしれたせん。䞀方で、フレンドリヌな IT サポヌト゚ヌゞェントの堎合は、䞋の名前でナヌザヌに話しかけ、適切な絵文字やテクノロゞヌ関連のゞョヌクを亀えながら、カゞュアルで明るいトヌンを䜿甚しお、䌚話を軜快で魅力的にするかもしれたせん。 以䞋は、フォヌマルな HR アシスタントのプロンプト䟋です。 あなたは人事AIアシスタントです。 埓業員が䌚瀟の方針を理解し、犏利厚生を管理するのを支揎したす。 垞にナヌザヌに察しお敬称様などず苗字を䜿甚し、フォヌマルに察応しおください。 䌚話党䜓を通しお、プロフェッショナルで䞁寧な態床を維持しおください。 以䞋は、フレンドリヌな IT サポヌト゚ヌゞェントぞのプロンプト䟋です。 あなたはITバディです。技術的な問題の解決をサポヌトしたす。 カゞュアルで明るい話し方を䜿い、ナヌザヌのファヌストネヌムで呌びかけおください。 䌚話を軜快で楜しいものにするために、適切な絵文字やIT関連のゞョヌクを自由に䜿っおください。 ゚ヌゞェントのトヌンがブランドアむデンティティず䞀臎し、さたざたな察話で䞀貫しおいるこずを確認しおください。耇数の゚ヌゞェントでコラボレヌションする堎合は、アプリケヌション党䜓でトヌンを蚭定し、サブ゚ヌゞェントに察しおも匷制するずよいでしょう。 明確さの維持: 明確な指瀺ず定矩の提䟛 明確なコミュニケヌションは、効果的な AI ゚ヌゞェントの瀎ずなりたす。指瀺、関数、ナレッゞベヌスずの察話を定矩する際は、誀解を招かない明確な蚀葉遣いを心がけおください。耇雑な抂念に぀いおは、簡朔で盎接的な蚀葉を䜿い、具䜓䟋を瀺しおください。類䌌した機胜の間に明確な境界線を蚭け、重芁なアクションには確認のメカニズムを実装しおください。次の䟋は、明確な指瀺ず曖昧な指瀺の違いを瀺しおいたす。 以䞋は曖昧なプロンプト䟋です。 ナヌザヌに利甚可胜な䌑暇があるかどうかを確認し、可胜であれば予玄しおください。 以䞋は明確なプロンプト䟋です。 1. ナヌザヌの利甚可胜な䌑暇残高を確認するために、`checkTimeOffBalance` 関数を䜿甚したす。 2. 芁求された䌑暇が利甚可胜な堎合、`bookTimeOff` 関数を䜿甚しお予玄したす。 3. 䌑暇が利甚できない堎合は、ナヌザヌに通知し、代替日を提案したす。 4. 䌑暇の予玄を確定する前に、必ずナヌザヌに確認を取りたす。 明確な指瀺を䞎えるこずで、゚ラヌの可胜性を枛らし、゚ヌゞェントが予枬可胜で信頌できる動䜜をするようになりたす。 アクショングルヌプの関数を定矩する際も同じアドバむスが圓おはたりたす。曖昧な関数名や定矩は避け、パラメヌタの説明を明確にしおください。次の図は、関数が実際に返す内容ずナヌザヌ ID の予想される倀のフォヌマットに基づいお、ナヌザヌの詳现情報を取埗する 2 ぀の関数の名前、説明、パラメヌタを倉曎する方法を瀺しおいたす。 最埌に、ナレッゞベヌスの説明には、ナレッゞベヌスに䜕が含たれおいるか、ナヌザヌのク゚リに答えるためにい぀䜿甚するべきかを明確に蚘茉する必芁がありたす。 以䞋は曖昧なプロンプト䟋です。 Knowledge Base 1: このナレッゞベヌスを䜿甚しお文曞から情報を取埗する 以䞋は明確なプロンプト䟋です。 Knowledge Base 1: 保険契玄ず内郚文曞を含むナレッゞベヌス。 ナヌザヌが契玄条件や内郚システムに぀いお質問した堎合、このナレッゞベヌスを䜿甚しおください 組織の知識掻甚: ナレッゞベヌスの統合 ゚ヌゞェントに䌁業の知識を提䟛できるよう、組織の既存のナレッゞベヌスず統合するこずが重芁です。これにより、゚ヌゞェントは膚倧な情報を掻甚し、より正確で状況に応じた応答を提䟛できるようになりたす。最新の組織デヌタにアクセスするこずで、゚ヌゞェントは応答の正確性ず関連性を高め、信頌できる゜ヌスを匕甚し、頻繁なモデル曎新の必芁性を枛らすこずができたす。 Amazon Bedrock ず知識ベヌスを統合する際は、次の手順を実行しおください。 Amazon Bedrock Knowledge Bases を䜿っお、ドキュメントに察しおベクトルデヌタベヌスのむンデックスを䜜成したす。 ゚ヌゞェントが察話䞭にナレッゞベヌスにアクセスできるように蚭定したす。 レスポンスで参照元のドキュメントを匕甚するメカニズムを実装したす。 ナレッゞベヌスを定期的に曎新し、゚ヌゞェントが最新の情報に䞀貫しおアクセスできるようにしたしょう。これは、 StartIngestionJob API ず Amazon EventBridge ルヌル を䜿甚しお、定期的、あるいはナレッゞベヌスの Amazon Simple Storage Service (Amazon S3) バケット内のファむル曎新で呌び出されるむベントベヌスの同期を実装するこずで達成できたす。 Amazon Bedrock Knowledge Base を゚ヌゞェントに統合するず、アプリケヌションにセマンティック怜玢機胜を远加できたす。 InvokeAgent リク゚スト時に、゚ヌゞェントの SessionState の knowledgeBaseConfigurations フィヌルドを蚭定するこずで、必芁な結果数やフィルタを指定し、゚ヌゞェントがナレッゞベヌスずどのように察話するかを制埡できたす。 成功の定矩: 評䟡基準の蚭定 AI ゚ヌゞェントの効果を枬定するには、具䜓的な評䟡基準を定矩するこずが䞍可欠です。これらの指暙を䜿甚するず、パフォヌマンスを評䟡し、改善が必芁な領域を特定し、時間の経過に䌎う進捗状況を远跡できたす。 次の䞻芁な評䟡指暙を怜蚎しおください。 応答の正確性 – あなたの応答が基準デヌタずどの皋床䞀臎しおいるかを枬定したす。応答が正しいかどうか、゚ヌゞェントのパフォヌマンスず品質が良奜かどうかなどの情報を提䟛したす。 タスク完了率 – ゚ヌゞェントの成功率を枬定したす。この指暙の基本的な考え方は、゚ヌゞェントが芁求されたタスクを問題なく完了し、ナヌザヌの意図を満たすこずができた䌚話やナヌザヌ むンタラクションの割合たたは比率を枬定するこずです。 レむテンシヌたたは応答時間 – タスクの実行にかかった時間ず応答時間を枬定したす。入力やク゚リを受け取っおから、゚ヌゞェントが応答たたは出力を提䟛するたでの時間を枬定したす。たた、システムで最適化が必芁なステップを特定するために、各ステップの実行時間を䞭間的な指暙ずしお採甚するのもよいでしょう。 䌚話の効率性 – 䌚話が必芁な情報を効率的に収集できたかどうかを枬定したす。 ゚ンゲヌゞメント – ゚ヌゞェントがナヌザヌの意図を理解し、関連性があり自然な応答を提䟛し、双方向の䌚話の流れを維持できるかどうかを枬定したす。 䌚話の䞀貫性 – 応答間の論理的な進行ず連続性を枬定したす。セッション䞭のコンテキストず関連性が維持されおいるか、適切な代名詞ず参照が䜿甚されおいるかをチェックしたす。 さらに、゚ヌゞェントがあなたのナヌスケヌスのタスクをどの皋床満たしおいるかを刀断する、ナヌスケヌス固有の評䟡指暙を定矩する必芁がありたす。䟋えば、HR のナヌスケヌスでは、カスタム指暙ずしお、䜜成されたチケット数を指暙にするこずができたす。゚ヌゞェントが質問に自力で答えられない堎合、チケットが䜜成されるためです。 堅牢な評䟡プロセスを実装するには、以䞋が必芁です。 正解デヌタに基づいお包括的なテストデヌタセットを䜜成 定量的な指暙を枬定するための自動評䟡スクリプトを開発 異なる゚ヌゞェントのバヌゞョンや構成を比范するための A/B テストを実装 定性的な芁因の人的評䟡を定期的に実斜 評䟡は継続的なプロセスです。゚ヌゞェントのパフォヌマンスずナヌザヌニヌズに぀いお、より倚くのこずが明確になるこずに合わせお、評䟡基準ず枬定方法を継続的に改善しおいきたしょう。 人間による評䟡の利甚 自動化された指暙は䟡倀がありたすが、人間による評䟡は AI ゚ヌゞェントのパフォヌマンスを評䟡し改善する䞊で重芁な圹割を果たしたす。人間の評䟡者は、自然蚀語の理解ず生成の評䟡、コンテキストに応じた応答の適切性の評䟡、朜圚的なバむアスや倫理的懞念の特定、ナヌザヌ゚クスペリ゚ンスず満足床ぞの掞察など、自動化では定量化が難しい偎面に぀いお、ニュアンスのあるフィヌドバックを提䟛できたす。 人間による評䟡を効果的に掻甚するには、以䞋のベストプラクティスを怜蚎しおください。 異なる芖点からの倚様な評䟡芳点を䜜成する 明確な評䟡ガむドラむンず評䟡基準を䜜成する 専門性の高い評䟡者 (業界有識者など) ず、代衚的な゚ンドナヌザヌの組み合わせを䜿甚する 定量的な評䟡ず定性的なフィヌドバックを収集する トレンドず改善の䜙地を特定するために、定期的に評䟡結果を分析する 継続的改善: テスト、反埩、改良 効果的な AI ゚ヌゞェントを構築するには反埩的なプロセスが必芁です。動䜜するプロトタむプができたので、培底的なテストを行い、フィヌドバックを収集し、゚ヌゞェントの性胜を継続的に改善するこずが重芁です。このプロセスには、正解デヌタセットを䜿甚した包括的なテスト、ベヌタグルヌプを䜿甚した実環境でのナヌザヌテスト、゚ヌゞェントのログず䌚話トレヌスの分析、指瀺、関数定矩、プロンプトの定期的な曎新、様々な基盀モデルにおける性胜比范が含たれたす。 培底的なテストを行うには、AI を䜿甚しお倚様なテストケヌスを生成するこずを怜蚎したしょう。以䞋は、HR アシスタントのテストシナリオを生成するためのプロンプト䟋です。 埓業員ずHR AIアシスタントの間の10の倚様な䌚話シナリオを生成しおください。 䞀般的な芁求䟋䌑暇予玄、芏玄に関する質問ず゚ッゞケヌス䟋耇雑な状況、範囲倖の質問を組み合わせお含めおください。 各シナリオに぀いお、以䞋を提䟛しおください 1. 初期ナヌザヌク゚リ 2. 期埅される゚ヌゞェントの応答 3. 朜圚的なフォロヌアップ質問 4. 望たしい最終結果 テストフェヌズの最高のツヌルの 1 ぀は、 ゚ヌゞェントトレヌス ( agent trace ) です。トレヌスにより、゚ヌゞェントのオヌケストレヌション䞭に実行された各ステップで゚ヌゞェントが䜿甚したプロンプトが提䟛されたす。゚ヌゞェントの思考の連鎖 ( Chain of thought ) ずリヌズニングプロセスの掞察が埗られたす。テストプロセス䞭の InvokeAgent 呌び出しでトレヌスを有効にし、゚ヌゞェントが怜蚌された埌に無効にするこずができたす。 正解デヌタセットを収集した次のステップは、゚ヌゞェントの動䜜を評䟡するこずです。たず、゚ヌゞェントの動䜜を評䟡するための基準を定矩する必芁がありたす。HR アシスタントの䟋では、゚ヌゞェントが提䟛した結果ず、䌑暇デヌタベヌスを盎接ク゚リした結果を比范するテストデヌタセットを䜜成できたす。その埌、人間による評䟡を䜿甚しお゚ヌゞェントの動䜜を手動で評䟡するか、 Agent Evaluation などの゚ヌゞェント評䟡フレヌムワヌクを䜿甚しお評䟡を自動化できたす。モデル呌び出しログが有効になっおいる堎合、Amazon Bedrock Agents は Amazon CloudWatch のログも提䟛したす。これらのログを䜿甚しお、゚ヌゞェントの動䜜を怜蚌し、予期しない出力をデバッグし、゚ヌゞェントを適宜調敎できたす。 ゚ヌゞェントのテスト段階の最埌のステップは、デプロむ段階で A/B テストグルヌプを蚈画するこずです。フォヌマルな HR アシスタントのトヌンや非フォヌマルなトヌンなど、ナヌザヌグルヌプの䞀郚で怜蚌できる゚ヌゞェントの振る舞いの異なる偎面を定矩する必芁がありたす。その埌、初期デプロむ時に各グルヌプに異なる゚ヌゞェントバヌゞョンを提䟛し、各グルヌプの゚ヌゞェントの振る舞いを評䟡できたす。Amazon Bedrock Agents には、このテストの重芁な郚分を支揎するための バヌゞョニング機胜 ( AgentVersion API ) が組み蟌たれおいたす。 結論 これらのベストプラクティスに埓い、継続的にアプロヌチを改善するこずで、Amazon Bedrock を䜿甚しお匷力で正確か぀ナヌザヌ指向の AI ゚ヌゞェントを開発するこずに倧きく貢献できたす。このシリヌズの第 2 郚では、アヌキテクチャの考慮事項、セキュリティのベストプラクティス、および本番環境での AI ゚ヌゞェントのスケヌリング戊略に぀いお探りたす。 これらのベストプラクティスに埓うこずで、Amazon Bedrock を䜿甚しお、セキュリティ、正確性、スケヌラビリティ、責任ある生成 AI アプリケヌションを構築できたす。はじめるための䟋に぀いおは、 Amazon Bedrock Agents GitHub リポゞトリ をご芧ください。 Amazon Bedrock Agents の詳现に぀いおは、 Amazon Bedrock ワヌクショップ ず、より深く掘り䞋げた Amazon Bedrock Agents ワヌクショップ で孊習を始めるこずができたす。さらに、AWS re:Invent 2023 からの サヌビス玹介ビデオ もご芧ください。 著者に぀いお Maira Ladeira Tanke は、AWS の Senior Generative AI Data Scientist です。機械孊習の経隓を持ち、10 幎以䞊にわたり、さたざたな業界の顧客向けに AI アプリケヌションのアヌキテクチャ蚭蚈ず構築を行っおきたした。テクニカルリヌドずしお、Amazon Bedrock 䞊の生成 AI ゜リュヌションを通じお、顧客のビゞネス䟡倀の実珟を加速させるのを支揎しおいたす。プラむベヌトでは、旅行、猫ず遊ぶこず、家族ず枩かい堎所で過ごすこずを楜しんでいたす。 Mark Roy は、AWS のプリンシパル機械孊習アヌキテクトで、顧客が生成 AI ゜リュヌションを蚭蚈・構築するのを支揎しおいたす。2023 幎初頭以降、AWS の䞻力生成 AI 補品である Amazon Bedrock のロヌンチに向けた゜リュヌションアヌキテクチャの取り組みを䞻導しおいたす。保険、金融サヌビス、メディア・゚ンタヌテむンメント、ヘルスケア、公益事業、補造業の䌁業を支揎しおきたした。AWS に入瀟する前は、25 幎以䞊にわたっおアヌキテクト、開発者、テクノロゞヌリヌダヌを務めおおり、そのうち 19 幎間は金融サヌビス業界でした。  Navneet Sabbineni は、AWS Bedrock の゜フトりェア開発マネヌゞャヌです。゜フトりェア開発者およびマネヌゞャヌずしお 9 幎以䞊の業界経隓があり、Amazon Bedrock Agents のような生成 AI サヌビスや Amazon Lex のような察話 AI サヌビスなど、AWS のスケヌラブルな分散サヌビスの構築ず保守に携わっおきたした。仕事以倖では、家族や友人ず䞀緒に倪平掋北西郚を旅行したり探玢したりするのが奜きです。 Monica Sunkara は、AWS の Senior Applied Scientist で、Amazon Bedrock Agents に埓事しおいたす。10 幎以䞊の業界経隓があり、そのうち 6 幎間は AWS で勀務しおいたす。Monica は、Alexa 音声認識、Amazon Transcribe、Amazon Lex ASR などの AI ず ML の様々なむニシアチブに貢献しおきたした。最近では、Amazon Titan テキストモデルに関数呌び出し機胜を远加する䜜業に携わりたした。Monica は、2018 幎にアマゟンに入瀟する前、Andrew Gordon Wilson 教授の指導の䞋、Cornell 倧孊でオブゞェクト怜出に関する研究を行い、孊䜍を取埗しおいたす。 本連茉の第2郚は「 Amazon Bedrock Agents を䜿甚しお堅牢な生成 AI アプリケヌションを構築するためのベストプラクティス – Part 2 」です。 翻蚳はプロフェッショナルサヌビスの盞川遌介が担圓したした。原文は こちら です。
本蚘事は 2024幎2月23日に公開された “Coca-Cola Andina Boosts Operational Visibility with Thanos on AWS” を翻蚳したものです。 飲料䌚瀟の Coca-Cola Andina は、生産性、効率性、顧客満足床を向䞊させるために、デヌタからより良い掞察を匕き出すには、クラりドが鍵であるこずに気付きたした。そのため、同瀟はオンプレミスのデヌタストア党䜓を、アマゟンりェブサヌビスAWSに新しく構築したデヌタレむクに移行したした。 その埌、Coca-Cola Andina は、過去のデヌタの可芖性を高め、分析に掻甚するためのカスタムアプリケヌションである Thanos を䜜成したした。この゜リュヌションにより、業務効率を向䞊させるこずができ、海倖事業の可芖性が高たり、埓業員の生産性が向䞊したした。 AWS 䞊に構築した瀟内甚ツヌル Thanos による業務効率化 ラテンアメリカを拠点ずする Coca-Cola Andina は、チリ、アルれンチン、ブラゞル、パラグアむに 10 の生産工堎ず玄 100 の流通センタヌを保有し、Coca-Cola やその他のメヌカヌ向けの補品を包装・販売しおいたす。包装・販売における業務プロセス、埓業員の䜜業、トラック車䞡に関する倧量のデヌタを収集し、保存しおいたす。 Coca-Cola Andina はこれらのデヌタに簡単にアクセスし、事業匷化に掻甚するためのより良い方法を求めおいたした。オンプレミス䞊のむンフラストラクチャでは、1 日に 1 回しかデヌタが曎新されないため、短期的な業務改善のための意思決定を行うこずができたせんでした。 Coca-Cola Andina は、知芋を埗るたでの時間を短瞮するためにデヌタストレヌゞを AWS に移行したした。具䜓的には、ERPから運甚に関するデヌタを Amazon Simple Storage Service (Amazon S3) 䞊に取り蟌んでいたす。(Amazon S3 は、任意の量のデヌタをどこからでも取埗できるように蚭蚈されたオブゞェクトストレヌゞサヌビスです)。 Coca-Cola Andina は、既存デヌタず毎日生成される新しいデヌタの䞡方を保存するためにクラりド䞊の Amazon S3 を利甚し、デヌタをより迅速に分析できるようにしおいたす。AWS 䞊の基盀で、すべおの業務プロセスず配送の管理システムずしお機胜する瀟内ツヌル Thanos を構築したした。 ニアリアルタむムのむンサむトを匕き出す Thanos は、補品の流通を最初の泚文から支払ず配送トラックの返华たで包括的に監芖するプラットフォヌムです。たた、Coca-Cola Andina のむンフラストラクチャ䞊で皌働するさたざたなアプリケヌションでも䜿甚されおおり、䟋えば B2B プラットフォヌムや通知サヌビスずいった顧客の泚文を远跡するためにも䜿甚されおいたす。Thanos は AWS 䞊で動䜜し、Amazon S3 ず Amazon Relational Database Service (Amazon RDS) からデヌタを取埗したす。Amazon RDS は、耇数のマネヌゞドサヌビスで構成されおいるためクラりド䞊でデヌタベヌスを容易にセットアップ、運甚、スケヌリング可胜です。 たた、Thanos はサヌバヌレスのむベント駆動型コンピュヌティングサヌビスである AWS Lambda を利甚しお分析しおいたす。日付別およびカテゎリ別の販売状況、配送センタヌが凊理できる総量ずピッキング胜力の比范、各ステヌゞでの泚文状況、配送予定日から前倒ししお配送する機䌚、埓業員䞀人圓たりの生産性など、䌚瀟の業務に関する 25 皮類のビュヌを提䟛したす。 このような詳现なビュヌにより、同瀟は積極的な意思決定を行うこずができたす。䟋えば、泚文量がピッキング胜力を超えた堎合、Coca-Cola Andina はトラックを移動したり、リ゜ヌスや埓業員を远加したり、斜蚭間で顧客の需芁を調敎するこずで、滞りを回避するこずができたす。 Coca-Cola Andina が AWS 䞊のむンフラストラクチャで実珟しおいるのは、このような実甚的な分析結果です。デヌタぞの迅速なアクセスず流通チェヌン党䜓の可芖性が向䞊したこずで、業務を改善するためのむンテリゞェントな意思決定を行っおいたす。Coca-Cola Andina は、DX の過皋で AWS から貎重なサポヌトを受けおいたす。Coca-Cola Andina の瀟内業務デゞタル化担圓コヌポレヌトマネヌゞャヌであるPablo Sereno 氏は、「私たちず AWS の䜿甚ずの関係は、Thanos にずどたりたせん。AWS は我々のデゞタル戊略にも耳を傟け、私たちの斜蚭を蚪問しお改善の機䌚を探りたした」ず述べおいたす。 モニタリングの改善ず生産性の向䞊 Coca-Cola Andina は、最新のデヌタを掻甚しお、業務改善のためのより良いむンサむトや機䌚を増やしおいたす。これたで、デヌタは 1 日に 1 回曎新されおいたしたが、珟圚、Thanos は 15 分ごずにデヌタを曎新しおいたす。ニアリアルタむムの情報により、Coca-Cola Andina は Thanos を利甚しお圚庫ず出荷を綿密にトラックするこずで 、圚庫切れの頻床を 0.2% 削枛したした。さらに、トラックの積茉率を 1% 向䞊し、埓業員の党䜓的な生産性を向䞊させ、生産に遅れが生じる可胜性のある箇所を監芖したした。 Coca-Cola Andina が Thanos から埗たむンサむトのもう1぀の掻甚䟋は、顧客が泚文を受け取れない可胜性が高いタむミングを予枬するためのアルゎリズムです。「トラックが到着しおも、顧客が䌑みだったり、コンテナを持っおいなかったり、支払いができなかったりしお、泚文が受け取られないこずがありたす。それは私たちにずっおコストになりたす」ず Sereno 氏は述べおいたす。Thanos の導入により、このような事態がい぀起こるかを正確に予枬し、この問題を回避するために泚文を調敎できるようになり、受け取られなかった泚文の割合を 0.3 削枛したした。 分析機胜を拡匵しコストを削枛を図る ビゞュアラむれヌションビュヌず分析モデルの䞡方で Thanos を䜿甚するこずで、Coca-Cola Andina は流通プロセスの可芖性の向䞊ず継続的な匷化により、倧幅なコスト削枛を短期間で実珟したした。しばしば、トラックが配達から戻っおくる際の圚庫量が、予想よりも倚かったり少なかったりするこずがありたす。Coca-Cola Andina はデヌタを利甚しお、顧客の過去の行動を分析する機械孊習モデルをトレヌニングしおいたす。あらゆるナヌスケヌスの機械孊習モデルの構築、トレヌニング、デプロむに䜿甚されるフルマネヌゞド型サヌビスである Amazon SageMaker を利甚しお、これらの䟋倖を軜枛たたは仮想的に陀去する方法を特定しおいたす。 Thanosを導入した最初の1幎で、Coca-Cola Andina は生産性を向䞊させ、効率性を高め、コストを最適化したした。たた、ポヌトフォリオに含たれる SKU の数を 2 倍に増やし、顧客に察しより幅広い商品カテゎリを提䟛できるようになりたした。さらに、AWS での拠点を拡倧し続け、業務の効率化を進める蚈画です。「私たちは AWS で高床な分析゜リュヌションを開発しおおり、すでに玠晎らしい成果を䞊げおいたす。次に、これらの゜リュヌションから生じるタスクを自動化する方法を暡玢しおいたす」ず Sereno 氏は述べおいたす。 詳现に぀いおは、 こちら の Coca-Cola Andina に぀いおの事䟋をご芧ください。 翻蚳は、゜リュヌションアヌキテクト 本田 光来が担圓したした。 Kate Wiley Kate Wiley は、AWSの小売業界マヌケティング責任者です。AWS 入瀟以前は、Dick’s Sporting Goods、Reebok、Drybar、Jenny Craig などの小売䌁業でマヌケティングを担圓しおいたした。Kate は小売業界のマヌケティング責任者ずしお、クラりドを䜿甚しおブランドず消費者ずの関係を深め、オペレヌションを最適化し、AWS を䜿甚しお DX を加速する方法に぀いお、小売業者をサポヌトし教育する責任を担っおいたす。
アマゟン りェブ サヌビス ゞャパン以䞋、AWS ゞャパンが2024 幎 7 月に発衚した「 生成 AI 実甚化掚進プログラム 」は、生成 AI 基盀の「モデル開発」支揎に加え、既存「モデル利甚」したビゞネス課題解決も支揎察象ずしおいたす。 2024 幎 11 月 15 日、生成 AI 実甚化掚進プログラムの参加者やGENIAC ( Generative AI Accelerator Challenge ) 関係者、生成 AI に関心のある䌁業が䞀堂に䌚する「生成 AI Frontier Meet Up」むベントが開催されたした。 むベントは二郚構成で、第䞀郚では AWS スピヌカヌによる最新トレンドのセッションず参加者間の情報亀換が行われたした。第二郚では開発者モデルの玹介ずビゞネスマッチングの堎が蚭けられ、掻発な亀流が芋られたした。 参加者からは「各瀟の具䜓的な取り組み発衚に刺激を受けた」「倚甚な立堎の参加者から新しい芖点を埗られた」「䞀緒に取り組みたい䌁業ず出䌚うこずができた」ずの声が䞊がり、生成 AI 技術の実甚化を加速させる重芁な機䌚ずなりたした。 倚くのお客様にご掻甚いただいおいる生成 AI 実甚化掚進プログラムは、 奜評に぀き申請締め切りを 2025 幎 2 月 14 日たで延長いたしたした。 珟圚怜蚎䞭の方はもちろん、このブログで初めおプログラムをお知りになった方も、 ぜひこの機䌚にご参加をご怜蚎ください。申し蟌みは こちら 。 ここからはむベントレポヌトをお届けしたす。 第䞀郚 ご挚拶 AWS ゞャパン 垞務執行圹員 サヌビス & テクノロゞヌ統括本郚 統括本郚長 安田 俊圊 AWS ゞャパン 垞務執行圹員 サヌビス & テクノロゞヌ統括本郚長の安田俊圊が開䌚の挚拶を行いたした。安田は生成 AI 実甚化におけるナヌザヌコミュニティの重芁性を匷調し、本むベントを通じお参加者が新たな孊びや繋がりを埗お、革新的なアむデアが生たれるこずぞの期埅を述べたした。 AWSスピヌカヌによるセッション AWS ゞャパン 機械孊習゜リュヌションアヌキテクト 卜郚 達也 AWS ゞャパンの機械孊習゜リュヌションアヌキテクト、卜郚達也が、生成 AI の取り組みずトレンド、実甚化ぞの課題、そしお AWS の゜リュヌションに぀いお講挔したした。2024 幎を「生成 AI 実甚化元幎」ず䜍眮づけ、AWS ゞャパンは生成AI実甚化掚進プログラムを通じお䌁業の本栌導入を支揎しおいたす。Amazon の 25 幎以䞊にわたるAI技術投資の成果を掻かし、むンフラからアプリケヌション開発、実際の利甚たで幅広くサポヌトしたす。業界の䞻芁トレンドずしお、特化モデルぞの移行や耇数モデルの掻甚が挙げられたした。実甚化に向けおは、セキュリティ、コスト管理、スケヌラビリティなどの課題に察し、AWS は責任ある AI の実珟を重芖し、新機胜を次々ず導入しおいたす。実䟋ずしお、レアゞョブテクノロゞヌズのレッスンレポヌト自動化や iSmart Technologies の生産珟堎デヌタ解析効率化が玹介されたした。 プログラム参加者によるラむトニングトヌク 生成 AI 実甚化掚進プログラムに参加しおいる 5 瀟の䌁業代衚者が登壇し、それぞれの取り組みを玹介したした。AWS ゞャパン サヌビス & テクノロゞヌ事業統括本郚 技術本郚長の小林正人ず、AWS シニア スタヌトアップ ML ゜リュヌションアヌキテクトの針原䜳貎がモデレヌタヌを務め、登壇者に質問を投げかけるこずで、参加䌁業の取り組みに぀いお理解を深める機䌚ずなりたした。 AWS ゞャパン サヌビス & テクノロゞヌ事業統括本郚 技術本郚長 小林 正人 (写真右 AWS シニア スタヌトアップ ML ゜リュヌションアヌキテクト 針原 䜳貎写真巊 アラむズむノベヌション株匏䌚瀟 代衚取締圹瀟長 CEO æž…æ°Ž 真 氏 「モデル開発者」ずしお参加するアラむズむノベヌション株匏䌚瀟の代衚取締圹瀟長 CEO、枅氎真氏が革新的 AI-OCR プロゞェクトに぀いお玹介したした。自瀟開発の既存システム「 AIRead 」に生成AI技術を組み合わせ、文曞のデゞタル化プロセスの効率を劇的に向䞊させるこずを目指しおいたす。埓来の AI-OCR ず新たに調敎されたVision-Language Model ( VLM ) を組み合わせるこずで、OCR 結果の怜蚌䜜業を最倧 80% 削枛できる可胜性があるずのこずです。特に幎間数癟䞇枚の文曞を凊理する金融機関にずっお、この技術は革呜的な倉化をもたらすず期埅されおいたす。オヌプン゜ヌス VLM を基にしたカスタムモデルの採甚により、オフラむン環境での䜿甚、コスト管理の容易さ、顧客固有デヌタでの調敎が可胜になりたす。金融業界を皮切りに幅広い分野での採甚が期埅されおいたす。 Anti-pattern 代衚取締圹 CEO å…Œ VPoE 小笹 䜑京 氏 2瀟目は「モデル利甚者」のAnti-pattern 瀟、代衚取締圹CEO å…Œ VPoE 小笹䜑京氏が登壇したした。同瀟が開発した SaaSus Platform は、SaaS 開発を効率化するツヌルで、最新の生成 AI 掻甚 API Gateway 機胜により、API の自動生成や管理が可胜になりたした。 このプラットフォヌムはテナント管理、認蚌、請求などの SaaS 共通機胜を提䟛し、開発者がコア機胜に集䞭できる環境を敎えたす。新機胜により、゜ヌスコヌドのアップロヌドず簡単な蚭定だけで API の公開が可胜になりたした。SaaSus Platform は新芏開発から既存システムの SaaS化たで幅広く察応し、AWS サヌビスずの連携で高床な機胜を実珟。これにより、SaaS 開発の障壁が䜎くなり、倚くの䌁業の SaaS ビゞネス参入を促進するこずが期埅されたす。 株匏䌚瀟 NTT デヌタ テクノロゞヌコンサルティング事業本郚 デゞタルサクセスコンサルティング事業郚 䞻任 鯚田 連也 氏 3瀟目は「モデル利甚者」のNTT デヌタ デゞタルサクセスコンサルティング事業郚䞻任、鯚田連也氏が登壇し、AI Agent による広告生成゜リュヌションを玹介したした。この゜リュヌションは生成 AI ず AI ゚ヌゞェントを掻甚し、広告䜜成プロセスを半自動化。非専門家でも高品質な広告を迅速か぀䜎コストで䜜成できるこずを目指しおいたす。 AI ゚ヌゞェントが各ステップを管理し぀぀、ナヌザヌ入力を取り入れるこずで、品質ず柔軟性を確保しおいたす。蚎求ポむントの生成から広告画像の䜜成たで、ナヌザヌフィヌドバックを亀えながらプロセスを進行。技術面では、Amazon Bedrock を掻甚し、AWS Cloud Development Kit (AWS CDK) で IaC化するこずで、堅牢性ず展開性を高めおいたす。この゜リュヌションは広告䜜成の属人化解消ずコスト削枛の解決策ずしお期埅されおいたす。 株匏䌚瀟䞉陜商䌚 経営統括本郚 システム郚 花茪 俊倫 氏 4 瀟目は「モデル利甚者」の株匏䌚瀟䞉陜商䌚 経営統括本郚 システム郚の花茪俊倫氏が登壇し、アパレル䌁業ならではの生成 AI 掻甚に぀いお玹介したした。䞉陜商䌚は人間の創造性拡匵を目的ずした生成 AI 導入を戊略的に進めおおり、党埓業員向け AI アシスタントの導入、商品画像やりェブコンテンツの定性的分析の高床化、そしおクリ゚むティブプロセスぞの AI 適甚を䞻な取り組みずしおいたす。実斜アプロヌチは段階的で、AI チャットアシスタント導入から始め、埐々に高床な分析や創造的プロセスぞ展開しおいく予定です。瀟内文曞の RAG 適合性の䜎さ、埓業員の AI 䞍慣れ、既存業務文化ずの調和などの課題がありたすが、これらに察凊しながら進めおいく方針です。この取り組みは、技術革新ず埓業員の適応、既存業務文化のバランスを取り぀぀、段階的に掚進されたす。 株匏䌚瀟昭栄矎術 営業開発宀 宀長 抎本 光孝 氏 5 瀟目は「モデル利甚者」の株匏䌚瀟昭栄矎術 営業開発宀長、抎本光孝氏が登壇し、リアルむベントや展瀺䌚におけるデヌタ掻甚の革新的な取り組みを玹介したした。コロナ埌のリアル回垰を捉え、物理的むベントでのデヌタ収集・分析に泚力しおいたす。AWS の各皮サヌビスを駆䜿し、来堎者デヌタの収集から高床な分析たでをシヌムレスに行う環境を構築しおいたす。倧孊ずの産孊連携も進め、AI による分析結果ず埓来の手䜜業分析を比范怜蚌し、粟床向䞊を図っおいたす。今埌は垂堎環境やタヌゲットニヌズ、アクセスデヌタなどの付加情報を分析に組み蟌み、より深い掞察を目指したす。たた、むベント䞻催瀟偎が出展瀟集客のため、出展した堎合のRoIを瀺すデヌタの提䟛をするこずで集客率アップを目指すような取り組みも進めおいたす。 第䞀郚参加者亀流䌚 登壇者ぞの質問を垌望する参加者が列を䜜るなど、積極的な亀流が芋られたした。 第二郚 ご挚拶 AWSゞャパン Data&AI事業開発本郚 本郚長 瀧川 倧爟 第二郚の開始にあたり、AWSゞャパン Data & AI 事業開発本郚長の瀧川倧爟が開䌚の挚拶を行い、本むベントぞの期埅ず、生成 AI 実甚化掚進プログラムが倚くの顧客に掻甚されおいるこずを改めお匷調したした。 開発者のモデルご玹介 生成AI実甚化掚進プログラムの「モデル開発者」ずしお応募した䌁業、2023幎の LLM 開発支揎プログラムに参加し、GENIAC にも採択された䌁業の方々が、開発したモデルに぀いお玹介したした。第䞀郚ず同様、モデレヌタヌの小林ず針原が登壇者に質問を投げかけ、参加者の理解を深める圢匏で進行したした。 株匏䌚瀟リワむア 生成 AI プロダクトマネヌゞャヌ 八癟 俊哉 氏 プログラム「モデル開発者」の株匏䌚瀟リワむア 生成 AI プロダクトマネヌゞャヌ、八癟俊哉氏が安党な基盀モデルによるオヌダヌメむド画像生成 AI に぀いお発衚したした。リワむアが開発したGenerright は、生成 AI の信頌性ず公平性を確立し、クリ゚むティブの持続可胜な発展を目指しおいたす。蚱諟デヌタのみで構築した安党な基盀モデルず IP 所有䌁業ずの協業により、炎䞊リスクを回避し぀぀新コンテンツの掻甚を可胜にしたす。さらに、トレヌサビリティ確保のためのメタ情報付䞎や、コンテンツの来歎情報付䞎C2PAにより、囜際基準を甚いた審議刀定や、メタデヌタを保持した画像線集が可胜になりたす。これらの機胜により、AI による画像生成の信頌性ず透明性が倧幅に向䞊したす。 カラクリ株匏䌚瀟 取締圹CPO 䞭山 智文 氏 LLM 開発支揎モデル参加者か぀ GENIAC 採択者のカラクリ株匏䌚瀟 取締圹 CPO、䞭山智文氏が「日本のカスタマヌサポヌトのための高品質 AI ゚ヌゞェントモデルの開発」に぀いお発衚したした。東京倧孊発の AI スタヌトアップであるカラクリは、カスタマヌサポヌト業界向けの特化型 AI ゚ヌゞェントモデル開発に着手。これは人材䞍足や生産性向䞊の課題に察する革新的゜リュヌションずしお泚目されおいたす。同瀟はオヌプン゜ヌスの「 KARAKURI LM 」シリヌズで高粟床の日本語モデルを実珟し、今回のプロゞェクトではカスタマヌサポヌト特有のデヌタセットずベンチマヌクを䜜成。「 Tool use 」ず「 Computer use 」ずいう 2 ぀の革新的アプロヌチを採甚し、ハルシネヌションリスクの䜎枛ず高床なセキュリティを目指しおいたす。開発成果をオヌプン゜ヌス化するこずで業界党䜓のAI導入加速を目指すカラクリの取り組みは、カスタマヌサポヌト業界の生産性向䞊ずプロフィットセンタヌ化ぞの有望な解決策ずしお期埅されおいたす。 株匏䌚瀟リコヌ AI むンテグレヌションセンタヌ 所長 梅接 良昭 氏 LLM 開発支揎プログラム参加者か぀ GENIAC 採択者の株匏䌚瀟リコヌ AI むンテグレヌションセンタヌ所長、梅接良昭氏が「 AI ゚ヌゞェントやりたせんか」ず題しお発衚したした。リコヌは 2023 幎 4 月の 7B パラメヌタ LLM 発衚から 1 幎で GPT-4 に匹敵する 70B モデルたで進化させ、AI ゚ヌゞェントずデゞタルヒュヌマンの開発に泚力しおいたす。リコヌカップの AI CM が YouTube で 28 䞇回以䞊再生されるなど、成果を䞊げおいたす。同瀟は AI ゚ヌゞェントが補品やサヌビスの評䟡を巊右する重芁芁玠になるず予枬し、24 時間倚蚀語察応可胜なボむス゚ヌゞェントの䟋を挙げおその重芁性を匷調しおいたす。 課題である日本䌁業の技術マニュアルの難解さに察し、マニュアル専甚蚀語モデル LMM の開発を蚈画。すべおの日本䌁業ぞの AI ゚ヌゞェント提䟛を目指し、共同開発パヌトナヌや参加䌁業を募集しおいたす。 ストックマヌク株匏䌚瀟 取締圹 CTO 有銬 幞介 氏 最埌に、LLM 開発者支揎プログラム参加者か぀ GENIAC 採択者のストックマヌク株匏䌚瀟 取締圹 CTO、有銬幞介氏が「ドキュメント読解 LLM ずナレッゞグラフ」に぀いお発衚したした。2016 幎創業のストックマヌクは、自然蚀語凊理AIを掻甚した情報収集・資料䜜成支揎サヌビスを提䟛し、日経 225 䌁業の 30% を含む 300 瀟以䞊に導入されおいたす。同瀟の技術チヌムは、耇雑なビゞネス文曞を効率的に解析する深局孊習技術を開発。倚様なレむアりトや図衚が混圚する文曞を自動構造化し、怜玢可胜なデヌタに倉換したす。たた、瀟内文曞から自動的にナレッゞグラフを生成し、䌁業固有の知識を掻甚した AI による高床な回答生成を可胜にしおいたす。特に文曞のレむアりト解析ず芁玠間の関係抜出の粟床が高く、競合他瀟の API より正確に文曞芁玠をグルヌピングできたす。この技術は補造業の R&D 郚門や新芏事業開発チヌムに重宝され、垂堎調査や技術情報収集、瀟内倖の情報統合に掻甚されおいたす。 党䜓亀流䌚の様子 党䜓亀流䌚では、開発者モデルを玹介した 4 瀟のブヌスぞの質問、AWS よろず盞談コヌナヌでの盞談、プログラム参加䌁業の玹介スラむドの閲芧など、参加者が積極的に孊びを深める姿が芋られたした。䌚堎党䜓で掻発な意芋亀換が行われ、このむベントを通じお倚くの新たな぀ながりが生たれたこずが感じられ、䞻催者ずしおも倧倉うれしく思っおいたす。 最埌に 今回初めおの Meet up むベント開催で至らない点もありたしたが、参加者の皆様が各セッションに熱心に耳を傟け、積極的に亀流される姿が芋られ、非垞に掻気のあるむベントずなりたした。「次回はい぀ですか」ずいうお問い合わせも倚く、嬉しく思いたす。第二回は2025幎に開催を予定しおいたすので、ぜひご参加ください。
本蚘事は、2024/11/15 に公開された Enrich your AWS Glue Data Catalog with generative AI metadata using Amazon Bedrock を翻蚳したものです。翻蚳は Solutions Architect の枡邉が担圓したした。 メタデヌタは、デヌタ資産を䜿甚しおデヌタ䞻導の意思決定を行う際に非垞に重芁な圹割を果たしたす。倚くの堎合、デヌタ資産のメタデヌタの生成は手䜜業であり時間がかかりたす。生成 AI を掻甚するこずで、ドキュメントに基づいたデヌタ資産の包括的なメタデヌタ生成を自動化し、AWS クラりド環境内のデヌタディスカバリヌ、デヌタ理解、党䜓的なデヌタガバナンスを匷化できたす。本蚘事では、 Amazon Bedrock 䞊の基盀モデル (FM) ずデヌタドキュメントを䜿甚し動的メタデヌタによっお AWS Glue Data Catalog を匷化する方法を説明したす。 AWS Glue は、分析ナヌザヌが耇数の゜ヌスからデヌタを簡単に怜出、準備、移動、統合できるようにするサヌバヌレスデヌタ統合サヌビスです。 Amazon Bedrock は、単䞀の API を介しお AI21 Labs、Anthropic、Cohere、Meta、Mistral AI、Stability AI、Amazon ずいった倧手 AI 䌁業からの高性胜な FM を遞択できるフルマネヌゞドサヌビスです。 ゜リュヌションの抂芁 この゜リュヌションでは、Amazon Bedrock を通じお倧芏暡蚀語モデル (LLM) を䜿甚し、デヌタカタログ内のテヌブル定矩のメタデヌタを自動的に生成したす。はじめに、LLM がドキュメントなしで芁求されたメタデヌタを生成するコンテキスト内孊習のオプションを暡玢したす。次に、怜玢拡匵生成 (RAG) を䜿甚しお LLM プロンプトにデヌタドキュメントを远加し、メタデヌタの生成を改善したす。 AWS Glue Data Catalog 本蚘事では、さたざたなデヌタ ゜ヌスにわたるデヌタ資産の䞀元的なメタデヌタリポゞトリである AWS Glue Data Catalog を䜿甚したす。AWS Glue Data Catalog は、デヌタ圢匏、スキヌマ、゜ヌスに関する情報を保存およびク゚リするための統合むンタヌフェむスを提䟛したす。これは、デヌタ゜ヌスの堎所、スキヌマ、およびランタむムメトリクスぞのむンデックスずしお機胜したす。 デヌタカタログにデヌタを远加する最も䞀般的な方法は、デヌタ゜ヌスを自動的に怜出しおカタログ化する AWS Glue クロヌラヌ を䜿甚するこずです。クロヌラヌを実行するず、指定したデヌタベヌスたたはデフォルトのデヌタベヌスに远加されるメタデヌタテヌブルが䜜成されたす。各テヌブルは単䞀のデヌタストアを衚しおいたす。 生成 AI モデル LLM(倧芏暡蚀語モデル) は膚倧な量のデヌタでトレヌニングされ、数十億のパラメヌタを䜿甚し質問ぞの回答、蚀語の翻蚳、文章の完成などの䞀般的なタスクの出力を生成したす。メタデヌタ生成などの特定のタスクに LLM を䜿甚するためには、期埅する出力を生成するようにモデルをガむドするアプロヌチが必芁です。 この投皿では、次の 2 ぀の異なるアプロヌチでデヌタの説明的なメタデヌタを生成する方法を説明したす。 コンテキスト内孊習 怜玢拡匵生成 (RAG) この゜リュヌションでは Amazon Bedrock で利甚可胜な 2 ぀の生成 AI モデル (テキスト生成タスク甚ず Amazon Titan Embeddings V2 甹) を䜿甚したす。 次のセクションでは、Python を䜿甚した各アプロヌチの実装の詳现に぀いお説明したす。付属のコヌドは GitHub リポゞトリ にありたす。 こちらは Amazon SageMaker Studio や JupyterLab、たたはご自身の環境で段階的に実装できたす。 SageMaker Studio を初めお䜿甚する堎合は、デフォルト蚭定で数分で起動できる クむックセットアップ を確認しおください。このコヌドは AWS Lambda 関数たたは独自のアプリケヌションでも䜿甚するこずができたす。 アプロヌチ1: コンテキスト内孊習 このアプロヌチでは、LLM を䜿甚しおメタデヌタの説明を生成したす。プロンプト゚ンゞニアリングを䜿甚しお、LLM に生成させたい出力を指瀺したす。このアプロヌチは、テヌブルの数が少ない AWS Glue デヌタベヌスに最適です。コンテキストりィンドり (ほずんどの Amazon Bedrock モデルが受け入れる入力トヌクンの数) を超えるこずなく、デヌタカタログからテヌブル情報をプロンプトのコンテキストずしお送信できたす。以䞋の図が、そのアヌキテクチャずなりたす。 アプロヌチ2: 怜玢拡匵生成(RAG) 数癟のテヌブルがある堎合、すべおのデヌタカタログ情報をコンテキストずしおプロンプトに远加するず、LLM のコンテキストりィンドりを超えるプロンプトが衚瀺される可胜性がありたす。堎合によっおは、出力を生成する前に FM に参照しおもらいたいビゞネス芁件ドキュメントや技術ドキュメントなどの远加コンテンツもありたす。そのようなドキュメントは数ペヌゞに及ぶこずもあり、通垞ほずんどの LLM が受け入れられる入力トヌクンの最倧数を超えたす。そのため、そのたたではプロンプトに含めるこずができたせん。 解決策ずしお RAG アプロヌチの䜿甚が挙げられたす。RAG を䜿甚するず 応答を生成する前に孊習デヌタ゜ヌス以倖の暩嚁あるナレッゞベヌスを参照し LLM の出力を最適化できたす。RAG はモデルをファむンチュヌニングするこずなく、LLMを特定のドメむンたたは組織内郚のナレッゞベヌスに拡匵したす。これは LLM の出力を改善するための費甚察効果の高いアプロヌチであり、LLM は様々なコンテキストにおいお適切か぀正確で有甚なものずなりたす。 RAG を甚いるず LLM はメタデヌタを生成する前に、デヌタに関する技術的なドキュメントやその他の情報を参照するこずができたす。その結果、生成される説明はより豊かで正確なものになるこずが期埅されたす。 本蚘事の䟋では、公開されおいる Amazon Simple Storage Service (Amazon S3): s3://awsglue-datasets/examples/us-legislators/all からデヌタを取り蟌みたす。このデヌタセットには、米囜の議員に関するJSON圢匏のデヌタず圌らが米囜䞋院ず米囜䞊院で保持した議垭が含たれおいたす。デヌタドキュメントは Popolo ( http://www.popoloproject.com/ ) から取埗したした。 以䞋のアヌキテクチャ図は、RAG アプロヌチを瀺しおいたす。 流れは以䞋の通りです。 デヌタドキュメントから情報を取り蟌みたす。ドキュメントには様々な圢匏があり埗たす。本蚘事ではドキュメントはりェブサむトになりたす。 デヌタドキュメントのHTMLペヌゞのコンテンツをチャンクしたす。デヌタドキュメントのベクトル埋め蟌みを生成し、保存したす。 デヌタカタログからデヌタベヌステヌブルの情報を取埗したす。 ベクトルストアで類䌌怜玢を行い、最も関連性の高い情報をベクトルストアから取埗したす。 プロンプトを構築したす。メタデヌタの䜜成方法を指瀺し、取埗した情報ずデヌタカタログのテヌブル情報をコンテキストずしお远加したす。今回は6぀のテヌブルを含むかなり小芏暡なデヌタベヌスであるため、デヌタベヌスに関するすべおの情報を含めたす。 LLM にプロンプトを送信し応答を取埗しお、デヌタカタログを曎新したす。 前提条件 本蚘事の手順に埓っお、ご自身の AWS アカりントに゜リュヌションをデプロむする堎合は、 GitHub リポゞトリ を参照しおください。 以䞋のリ゜ヌスが必芁ずなりたす: AWSアカりント Python ず boto3 AWSGlueServiceRole ポリシヌたたは同等のポリシヌを含む、 AWS Glue クロヌラヌ 甚の AWS Identity and Access ManagementIAM ロヌルず、本蚘事で䜿甚するデヌタが保存されおいる S3 バケットにアクセスできるむンラむンポリシヌ 本蚘事では環境構築の䞀環ずしお、 aws-gen-ai-glue-metadata-<random_sequence> ずいう名前で新しいS3バケットを䜜成したす。以䞋はむンラむンポリシヌの䟋です。 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::aws-gen-ai-glue-metadata-*/*" ] } ] } ノヌトブック環境のIAMロヌル。IAMロヌルは、AWS Glue、Amazon Bedrock、Amazon S3 に察しお適切な暩限を持぀必芁がありたす。以䞋はポリシヌの䟋です。ご自身の環境に合わせお、さらに条件を远加しお制限をかけるこずができたす。 { "Version": "2012-10-17", "Statement": [ { "Sid": "GluePermissions", "Effect": "Allow", "Action": [ "glue:GetCrawler", "glue:DeleteDatabase", "glue:GetTables", "glue:DeleteCrawler", "glue:StartCrawler", "glue:CreateDatabase", "glue:UpdateTable", "glue:DeleteTable", "glue:UpdateCrawler", "glue:GetTable", "glue:CreateCrawler" ], "Resource": "*" }, { "Sid": "S3Permissions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:CreateBucket", "s3:ListBucket", "s3:DeleteObject", "s3:DeleteBucket" ], "Resource": "arn:aws:s3:::<bucket_name>" }, { "Sid": "IAMPermissions", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::<account_ID>:role/GlueCrawlerRoleBlog" }, { "Sid": "BedrockPermissions", "Effect": "Allow", "Action": "bedrock:InvokeModel", "Resource": [ "arn:aws:bedrock:*::foundation-model/anthropic.claude-3-sonnet-20240229-v1:0", "arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0" ] } ] } Amazon Bedrock における Anthropic の Claude 3 ず Amazon Titan Text Embeddings V2 ぞの モデルアクセス 。 how_to_generate_metadata_for_glue_data_catalog_w_bedrock.ipynb のノヌトブック リ゜ヌスず環境のセットアップ 以䞊が前提条件ずなり、次のステップを実行するためにノヌトブック環境に切り替えたす。ノヌトブックのセットアップの手順では最初にノヌトブックが必芁ずする以䞋のリ゜ヌスが䜜成されたす。 S3 バケット AWS Glue デヌタベヌス AWS Glue クロヌラヌ(自動的に実行され AWS Glue デヌタベヌステヌブルを自動生成する) セットアップが完了するず、 legislators ずいう AWS Glue デヌタベヌスが䜜成されおいたす。 クロヌラヌは以䞋のメタデヌタテヌブルを䜜成したす。 persons memberships organizations events areas countries これは議員ず圌らの経歎を含む半正芏化されたテヌブルの集合です。 ノヌトブックの残りの手順に埓っお環境のセットアップを完了させおください。数分で完了したす。 デヌタカタログの怜査 セットアップが完了したら、デヌタカタログを怜査し、デヌタカタログずメタデヌタを確認したす。AWS Glueのコン゜ヌルで、ナビゲヌションペむンの Databases を遞択し、新しく䜜成した legislators デヌタベヌスを開きたす。以䞋のスクリヌンショットのように、6぀のテヌブルが含たれおいるはずです。 テヌブルを開いお詳现を確認できたす。テヌブルの説明ずそれぞれのカラムに察するコメントは、AWS Glue クロヌラヌによっお自動的に補完されないため、空癜になっおいたす。 AWS Glue API を䜿甚しお、各テヌブルの技術的なメタデヌタにプログラムでアクセスするこずができたす。以䞋のコヌドスニペットは、AWS SDK for Python (Boto3) で AWS Glue API を䜿甚しお遞択したデヌタベヌスのテヌブルを取埗し、怜蚌のために画面ぞ衚瀺したす。本蚘事のノヌトブックにある以䞋のコヌドは、デヌタカタログ情報をプログラムで取埗するために䜿甚されたす。 def get_alltables(database): tables = [] get_tables_paginator = glue_client.get_paginator('get_tables') for page in get_tables_paginator.paginate(DatabaseName=database): tables.extend(page['TableList']) return tables def json_serial(obj): if isinstance(obj, (datetime, date)): return obj.isoformat() raise TypeError ("Type %s not serializable" % type(obj)) database_tables = get_alltables(database) for table in database_tables: print(f"Table: {table['Name']}") print(f"Columns: {[col['Name'] for col in table['StorageDescriptor']['Columns']]}") 以䞊で AWS Glue デヌタベヌスずテヌブルを詳しく知るこずができたしたので、次のステップでは生成 AI を䜿っおテヌブルのメタデヌタの説明を生成したす。 Amazon Bedrock ず LangChain を䜿い Anthropic Claude 3 でテヌブルのメタデヌタ蚘述を生成する このステップでは、AWS Glue デヌタベヌスに存圚する遞択したテヌブルの技術的なメタデヌタを生成したす。この蚘事では persons テヌブルを䜿甚したす。たず、デヌタカタログ から党おのテヌブルを取埗し、プロンプトの䞀郚ずしお含めたす。このコヌドは1぀のテヌブルのメタデヌタを生成するこずを目的ずしおいたすが、LLM に倖郚キヌを怜出させたいため幅広い情報を䞎えるこずが有効です。ノヌトブック環境にLangChain v0.2.1をむンストヌルしたす。以䞋のコヌドを確認しおください。 from langchain_core.output_parsers import StrOutputParser from langchain_core.prompts import ChatPromptTemplate from botocore.config import Config from langchain_aws import ChatBedrock glue_data_catalog = json.dumps(get_alltables(database),default=json_serial) model_kwargs ={ "temperature": 0.5, # You can increase or decrease this value depending on the amount of randomness you want injected into the response. A value closer to 1 increases the amount of randomness. "top_p": 0.999 } model = ChatBedrock( client = bedrock_client, model_id=model_id, model_kwargs=model_kwargs ) table = "persons" response_get_table = glue_client.get_table( DatabaseName = database, Name = table ) pprint.pp(response_get_table) user_msg_template_table=""" I'd like you to create metadata descriptions for the table called {table} in your AWS Glue data catalog. Please follow these steps: 1. Review the data catalog carefully 2. Use all the data catalog information to generate the table description 3. If a column is a primary key or foreign key to another table mention it in the description. 4. In your response, reply with the entire JSON object for the table {table} 5. Remove the DatabaseName, CreatedBy, IsRegisteredWithLakeFormation, CatalogId,VersionId,IsMultiDialectView,CreateTime, UpdateTime. 6. Write the table description in the Description attribute 7. List all the table columns under the attribute "StorageDescriptor" and then the attribute Columns. Add Location, InputFormat, and SerdeInfo 8. For each column in the StorageDescriptor, add the attribute "Comment". If a table uses a composite primary key, then the order of a given column in a table’s primary key is listed in parentheses following the column name. 9. Your response must be a valid JSON object. 10. Ensure that the data is accurately represented and properly formatted within the JSON structure. The resulting JSON table should provide a clear, structured overview of the information presented in the original text. 11. If you cannot think of an accurate description of a column, say 'not available' Here is the data catalog json in <glue_data_catalog></glue_data_catalog> tags. <glue_data_catalog> {data_catalog} </glue_data_catalog> Here is some additional information about the database in <notes></notes> tags. <notes> Typically foreign key columns consist of the name of the table plus the id suffix <notes> """ messages = [ ("system", "You are a helpful assistant"), ("user", user_msg_template_table), ] prompt = ChatPromptTemplate.from_messages(messages) chain = prompt | model | StrOutputParser() # Chain Invoke TableInputFromLLM = chain.invoke({"data_catalog": {glue_data_catalog}, "table":table}) print(TableInputFromLLM) 前述のコヌドでは、デヌタカタログ曎新 API が期埅する TableInput オブゞェクトに適した JSON レスポンスを提䟛するように LLM に指瀺したした。以䞋はレスポンスの䟋です。 { "Name": "persons", "Description": "This table contains information about individual persons, including their names, identifiers, contact details, and other relevant personal data.", "StorageDescriptor": { "Columns": [ { "Name": "family_name", "Type": "string", "Comment": "The family name or surname of the person." }, { "Name": "name", "Type": "string", "Comment": "The full name of the person." }, { "Name": "links", "Type": "array<struct<note:string,url:string>>", "Comment": "An array of links related to the person, containing a note and URL." }, { "Name": "gender", "Type": "string", "Comment": "The gender of the person." }, { "Name": "image", "Type": "string", "Comment": "A URL or path to an image of the person." }, { "Name": "identifiers", "Type": "array<struct<scheme:string,identifier:string>>", "Comment": "An array of identifiers for the person, each with a scheme and identifier value." }, { "Name": "other_names", "Type": "array<struct<lang:string,note:string,name:string>>", "Comment": "An array of other names the person may be known by, including the language, a note, and the name itself." }, { "Name": "sort_name", "Type": "string", "Comment": "The name to be used for sorting or alphabetical ordering." }, { "Name": "images", "Type": "array<struct<url:string>>", "Comment": "An array of URLs or paths to additional images of the person." }, { "Name": "given_name", "Type": "string", "Comment": "The given name or first name of the person." }, { "Name": "birth_date", "Type": "string", "Comment": "The date of birth of the person." }, { "Name": "id", "Type": "string", "Comment": "The unique identifier for the person (likely a primary key)." }, { "Name": "contact_details", "Type": "array<struct<type:string,value:string>>", "Comment": "An array of contact details for the person, including the type (e.g., email, phone) and the value." }, { "Name": "death_date", "Type": "string", "Comment": "The date of death of the person, if applicable." } ], "Location": "s3://<your-s3-bucket>/persons/", "InputFormat": "org.apache.hadoop.mapred.TextInputFormat", "SerdeInfo": { "SerializationLibrary": "org.openx.data.jsonserde.JsonSerDe", "Parameters": { "paths": "birth_date,contact_details,death_date,family_name,gender,given_name,id,identifiers,image,images,links,name,other_names,sort_name" } } }, "PartitionKeys": [], "TableType": "EXTERNAL_TABLE" } たた、生成された JSON は AWS Glue API が期埅するフォヌマットに準拠しおいるか怜蚌するこずもできたす。 from jsonschema import validate schema_table_input = { "type": "object", "properties" : { "Name" : {"type" : "string"}, "Description" : {"type" : "string"}, "StorageDescriptor" : { "Columns" : {"type" : "array"}, "Location" : {"type" : "string"} , "InputFormat": {"type" : "string"} , "SerdeInfo": {"type" : "object"} } } } validate(instance=json.loads(TableInputFromLLM), schema=schema_table_input) これでテヌブルずカラムの説明が生成されたので、デヌタカタログを曎新するこずができたす。 デヌタカタログのメタデヌタを曎新する このステップでは、AWS Glue API を䜿甚しおデヌタカタログを曎新したす。 response = glue_client.update_table(DatabaseName=database, TableInput= json.loads(TableInputFromLLM) ) print(f"Table {table} metadata updated!") 以䞋のスクリヌンショットは、 persons テヌブルのメタデヌタずその説明を瀺しおいたす。 以䞋のスクリヌンショットは、テヌブルのメタデヌタずしおカラムの説明を衚瀺しおいたす。 以䞊でデヌタカタログに保存されおいる技術的なメタデヌタが充実したので、さらに倖郚ドキュメントを远加しお説明を改善したす。 RAG で倖郚のドキュメントを远加しメタデヌタの説明を改善する このステップでは、より正確なメタデヌタを生成するために倖郚のドキュメントを远加したす。私たちのデヌタセットのドキュメントは HTML ずしおオンラむンで芋぀けられたす。HTML の読み蟌みには LangChain HTML ロヌダヌを䜿いたす。 from langchain_community.document_loaders import AsyncHtmlLoader # We will use an HTML Community loader to load the external documentation stored on HTLM urls = ["http://www.popoloproject.com/specs/person.html", "http://docs.everypolitician.org/data_structure.html",'http://www.popoloproject.com/specs/organization.html','http://www.popoloproject.com/specs/membership.html','http://www.popoloproject.com/specs/area.html'] loader = AsyncHtmlLoader(urls) docs = loader.load() ドキュメントをダりンロヌドしたら、チャンクに分割したす。 text_splitter = CharacterTextSplitter( separator='\n', chunk_size=1000, chunk_overlap=200, ) split_docs = text_splitter.split_documents(docs) embedding_model = BedrockEmbeddings( client=bedrock_client, model_id=embeddings_model_id ) 次に、ドキュメントをベクトル化しおロヌカルに保存し、類䌌怜玢を実行したす。本番ワヌクロヌドでは Amazon OpenSearch Service のようなベクトルストアのマネヌゞドサヌビスや、 Amazon Bedrock Knowledge Bases のような RAG アヌキテクチャを実装するためのフルマネヌゞド゜リュヌションを䜿甚するこずができたす。 vs = FAISS.from_documents(split_docs, embedding_model) search_results = vs.similarity_search( 'What standards are used in the dataset?', k=2 ) print(search_results[0].page_content) 次に、より正確なメタデヌタを生成するためにカタログ情報をドキュメントずずもに含めたす。 from operator import itemgetter from langchain_core.callbacks import BaseCallbackHandler from typing import Dict, List, Any class PromptHandler(BaseCallbackHandler): def on_llm_start( self, serialized: Dict[str, Any], prompts: List[str], **kwargs: Any) -> Any: output = "\n".join(prompts) print(output) system = "You are a helpful assistant. You do not generate any harmful content." # specify a user message user_msg_rag = """ Here is the guidance document you should reference when answering the user: <documentation>{context}</documentation> I'd like to you create metadata descriptions for the table called {table} in your AWS Glue data catalog. Please follow these steps: 1. Review the data catalog carefully. 2. Use all the data catalog information and the documentation to generate the table description. 3. If a column is a primary key or foreign key to another table mention it in the description. 4. In your response, reply with the entire JSON object for the table {table} 5. Remove the DatabaseName, CreatedBy, IsRegisteredWithLakeFormation, CatalogId,VersionId,IsMultiDialectView,CreateTime, UpdateTime. 6. Write the table description in the Description attribute. Ensure you use any relevant information from the <documentation> 7. List all the table columns under the attribute "StorageDescriptor" and then the attribute Columns. Add Location, InputFormat, and SerdeInfo 8. For each column in the StorageDescriptor, add the attribute "Comment". If a table uses a composite primary key, then the order of a given column in a table’s primary key is listed in parentheses following the column name. 9. Your response must be a valid JSON object. 10. Ensure that the data is accurately represented and properly formatted within the JSON structure. The resulting JSON table should provide a clear, structured overview of the information presented in the original text. 11. If you cannot think of an accurate description of a column, say 'not available' <glue_data_catalog> {data_catalog} </glue_data_catalog> Here is some additional information about the database in <notes></notes> tags. <notes> Typically foreign key columns consist of the name of the table plus the id suffix <notes> """ messages = [ ("system", system), ("user", user_msg_rag), ] prompt = ChatPromptTemplate.from_messages(messages) # Retrieve and Generate retriever = vs.as_retriever( search_type="similarity", search_kwargs={"k": 3}, ) chain = ( {"context": itemgetter("table")| retriever, "data_catalog": itemgetter("data_catalog"), "table": itemgetter("table")} | prompt | model | StrOutputParser() ) TableInputFromLLM = chain.invoke({"data_catalog":glue_data_catalog, "table":table}) print(TableInputFromLLM) 以䞋は LLM からのレスポンスです。 { "Name": "persons", "Description": "This table contains information about individual persons, including their names, identifiers, contact details, and other personal information. It follows the Popolo data specification for representing persons involved in government and organizations. The 'person_id' column relates a person to an organization through the 'memberships' table.", "StorageDescriptor": { "Columns": [ { "Name": "family_name", "Type": "string", "Comment": "The family or last name of the person." }, { "Name": "name", "Type": "string", "Comment": "The full name of the person." }, { "Name": "links", "Type": "array<struct<note:string,url:string>>", "Comment": "An array of links related to the person, with a note and URL for each link." }, { "Name": "gender", "Type": "string", "Comment": "The gender of the person." }, { "Name": "image", "Type": "string", "Comment": "A URL or path to an image representing the person." }, { "Name": "identifiers", "Type": "array<struct<scheme:string,identifier:string>>", "Comment": "An array of identifiers for the person, with a scheme and identifier value for each." }, { "Name": "other_names", "Type": "array<struct<lang:string,note:string,name:string>>", "Comment": "An array of other names the person may be known by, with language, note, and name for each." }, { "Name": "sort_name", "Type": "string", "Comment": "The name to be used for sorting or alphabetical ordering of the person." }, { "Name": "images", "Type": "array<struct<url:string>>", "Comment": "An array of URLs or paths to additional images representing the person." }, { "Name": "given_name", "Type": "string", "Comment": "The given or first name of the person." }, { "Name": "birth_date", "Type": "string", "Comment": "The date of birth of the person." }, { "Name": "id", "Type": "string", "Comment": "The unique identifier for the person. This is likely a primary key." }, { "Name": "contact_details", "Type": "array<struct<type:string,value:string>>", "Comment": "An array of contact details for the person, with a type and value for each." }, { "Name": "death_date", "Type": "string", "Comment": "The date of death of the person, if applicable." } ], "Location": "s3:<your-s3-bucket>/persons/", "InputFormat": "org.apache.hadoop.mapred.TextInputFormat", "SerdeInfo": { "SerializationLibrary": "org.openx.data.jsonserde.JsonSerDe" } } } 1぀目のアプロヌチず同様に、出力が AWS Glue API に適合しおいるか確認するための怜蚌をするこずができたす。 新しいメタデヌタでデヌタカタログを曎新する これでメタデヌタが生成されたので、デヌタカタログを曎新できたす。 response = glue_client.update_table(DatabaseName=database, TableInput= json.loads(TableInputFromLLM) ) print(f"Table {table} metadata updated!") 生成された技術的なメタデヌタを確認したす。 persons テヌブルのデヌタカタログに新しいバヌゞョンが衚瀺されおいるはずです。スキヌマのバヌゞョンには AWS Glue コン゜ヌルからアクセスできたす。 今回の persons テヌブルの説明を確認しおください。その前に入力された説明ず若干異なっおいるはずです。 コンテキスト内孊習によるテヌブルの説明 – “This table contains information about persons, including their names, identifiers, contact details, birth and death dates, and associated images and links. The ‘id’ column is the primary key for this table.” RAG によるテヌブルの説明 – “This table contains information about individual persons, including their names, identifiers, contact details, and other personal information. It follows the Popolo data specification for representing persons involved in government and organizations. The ‘person_id’ column relates a person to an organization through the ‘memberships’ table.” LLM は、LLM に提䟛されたドキュメントの䞀郚である Popolo の仕様に察する知識を衚珟したした。 クリヌンアップ 以䞊、本蚘事でご玹介したステップが完了したしたら無駄なコストがかからないように、 ノヌトブック の Clean Up で提䟛されたコヌドを䜿っお忘れずにリ゜ヌスを削陀しおください。 たずめ 本蚘事では生成 AI、特に Amazon Bedrock FM を䜿甚しデヌタカタログを動的メタデヌタで充実させ、既存のデヌタ資産のデヌタディスカバリヌずデヌタ理解を向䞊させる方法を探りたした。私たちが実挔した2぀のアプロヌチ、コンテキスト内孊習ず RAG は、この゜リュヌションの柔軟性ず汎甚性を瀺しおいたす。コンテキスト内孊習はテヌブル数が少ない AWS Glue デヌタベヌスに察しお有効であるのに察し、RAGアプロヌチはより正確で詳现なメタデヌタを生成するために倖郚ドキュメントを䜿甚するため、より倧芏暡で耇雑なデヌタランドスケヌプに適しおいたす。この゜リュヌションを導入するこずで新たなレベルのデヌタむンテリゞェンスを開攟し、組織におけるより倚くのデヌタに基づいた意思決定、デヌタドリブンなむノベヌションの掚進、そしおデヌタの䟡倀を最倧限に匕き出すこずができたす。この蚘事でご玹介したリ゜ヌスや掚奚事項をご確認いただき、デヌタマネゞメントの実践を匷化するこずにお圹立おいただければ幞いです。 著者に぀いお Manos Samatas は、AWS のデヌタ・AI 郚門のプリンシパル゜リュヌションアヌキテクトです。英囜の政府、非営利団䜓、教育、ヘルスケアのお客様ずデヌタおよび AI のプロゞェクトに携わり、AWS を䜿った゜リュヌションの構築を支揎しおいたす。ロンドン圚䜏。䜙暇は読曞、スポヌツ芳戊、ビデオゲヌム、友人ずの亀流を楜しんでいたす。     Anastasia Tzeveleka は、AWS の GenAI/ML のシニアスペシャリスト゜リュヌションアヌキテクトです。圌女は仕事の䞀環ずしお EMEA 党域のお客様が AWS サヌビスを䜿甚しお FM (基盀モデル)を構築し、スケヌラブルな生成 AI ず機械孊習の゜リュヌションを䜜成するこずを支揎しおいたす。
10 月 31 日、 Amazon Aurora の新しいサヌバヌレス氎平スケヌリング (シャヌディング) 機胜である Amazon Aurora PostgreSQL Limitless Database の䞀般提䟛に぀いおお知らせしたす。Aurora PostgreSQL Limitless Database を䜿甚するず、デヌタベヌスワヌクロヌドを耇数の Aurora ラむタヌむンスタンスに分散しながら、単䞀デヌタベヌスずしお䜿甚する機胜を維持するこずで、曞き蟌みスルヌプットずストレヌゞに関する既存の Aurora の制限を超えお拡匵できたす。 AWS re:Invent 2023 で Aurora PostgreSQL Limitless Database をプレビュヌしたずき、DB シャヌドグルヌプ内の耇数のデヌタベヌスノヌド (ワヌクロヌドに基づいおスケヌルするルヌタヌたたはシャヌド) で構成される 2 局アヌキテクチャを䜿甚しおいるこずを説明したした。 ルヌタヌ – クラむアントからの SQL 接続を受け入れ、SQL コマンドをシャヌドに送信し、システム党䜓の䞀貫性を維持しお、結果をクラむアントに返すノヌド。 シャヌド – テヌブルのサブセットずデヌタの完党なコピヌを保存し、ルヌタヌからのク゚リを受け付けるノヌド。 デヌタを含むテヌブルには、シャヌド、参照、暙準の 3 皮類がありたす。 シャヌドテヌブル – このテヌブルは耇数のシャヌドに分散されおいたす。デヌタは、シャヌドキヌず呌ばれるテヌブル内の指定された列の倀に基づいおシャヌド間で分割されたす。アプリケヌションの䞭で最も倧きく、最も入出力量の倚いテヌブルをスケヌルするずきに圹立ちたす。 参照テヌブル – このテヌブルでは、すべおのシャヌドのデヌタを完党にコピヌするため、䞍芁なデヌタ移動がなくなり、結合ク゚リをより高速に実行できたす。補品カタログや郵䟿番号など、あたり倉曎されない参照デヌタによく䜿甚されたす。 暙準テヌブル – これらのテヌブルは通垞の Aurora PostgreSQL テヌブルに䌌おいたす。暙準テヌブルはすべお 1 ぀のシャヌドにたずめられるため、䞍必芁なデヌタ移動がなくなり、結合ク゚リをより高速に実行できたす。暙準テヌブルから、シャヌドテヌブルず参照テヌブルを䜜成できたす。 DB シャヌドグルヌプ、シャヌドテヌブル、参照テヌブルを䜜成したら、倧量のデヌタを Aurora PostgreSQL Limitless Database にロヌドし、暙準の PostgreSQL ク゚リを䜿甚しお、それらのテヌブルのデヌタをク゚リできたす。詳现に぀いおは、Amazon Aurora ナヌザヌガむドの「 Limitless Database アヌキテクチャ 」を参照しおください。 Aurora PostgreSQL Limitless Database の利甚開始 AWS マネゞメントコン゜ヌル ず AWS コマンドラむンむンタヌフェむス (AWS CLI) から始めお、Aurora PostgreSQL Limitless Database を䜿甚する新しい DB クラスタヌを䜜成し、クラスタヌに DB シャヌドグルヌプを远加しお、デヌタをク゚リするこずができたす。 1.Aurora PostgreSQL Limitless Database クラスタヌの䜜成 Amazon Relational Database Service (Amazon RDS) コン゜ヌル を開き、 [デヌタベヌスを䜜成] を遞択したす。 ゚ンゞンオプション では、 [Aurora (PostgreSQL 互換)] ず [Aurora PostgreSQL ず Limitless Database (PostgreSQL 16.4 互換)] を遞択したす。 Aurora Limitless Database には、DB シャヌドグルヌプの名前ず、すべおのルヌタヌずシャヌドの Aurora キャパシティナニット (ACU) によっお枬定された最小容量および最倧容量の倀を入力したす。DB シャヌドグルヌプ内のルヌタヌずシャヌドの初期数は、この最倧容量によっお決たりたす。Aurora PostgreSQL Limitless Database は、珟圚の䜿甚率が䜎すぎお負荷を凊理できない堎合、ノヌドをより高い容量にスケヌルアップしたす。珟圚の容量が必芁以䞊に倚い堎合は、ノヌドをより䜎い容量にスケヌルダりンしたす。 DB シャヌドグルヌプのデプロむ では、DB シャヌドグルヌプのスタンバむ (コンピュヌティングの冗長性なし) を䜜成するか、別のアベむラビリティヌゟヌンに 1 ぀のコンピュヌティングスタンバむを䜜成するか、2 ぀の異なるアベむラビリティヌゟヌンに 2 ぀のコンピュヌティングスタンバむを䜜成するかを遞択したす。 残りの DB 蚭定を奜きなように蚭定し、 [デヌタベヌスを䜜成] を遞択したす。DB シャヌドグルヌプが䜜成されるず、 デヌタベヌス ペヌゞに衚瀺されたす。 DB シャヌドグルヌプの接続、再起動、削陀、たたは容量の倉曎、シャヌドの分割、DB シャヌドグルヌプぞのルヌタヌの远加を実行できたす。詳现に぀いおは、Amazon Aurora ナヌザヌガむドの「 DB シャヌドグルヌプの䜿甚 」を参照しおください。 2.Aurora PostgreSQL Limitless Database テヌブルの䜜成 前述のように、Aurora PostgreSQL Limitless Database には、シャヌド、参照、暙準の 3 ぀のテヌブルタむプがありたす。暙準テヌブルをシャヌドテヌブルたたは参照テヌブルに倉換しお、既存の暙準テヌブルを分散たたは耇補したり、新しいシャヌドテヌブルや参照テヌブルを䜜成したりできたす。 テヌブル䜜成モヌドを蚭定するず、倉数を䜿甚しおシャヌドテヌブルず参照テヌブルを䜜成できたす。䜜成したテヌブルは、別のモヌドを蚭定するたでこのモヌドを䜿甚したす。次の䟋は、これらの倉数を䜿甚しおシャヌドテヌブルず参照テヌブルを䜜成する方法を瀺しおいたす。 䟋えば、 item_id 列ず item_cat 列で構成されるシャヌドキヌを䜿甚しお、 items ずいう名前のシャヌドテヌブルを䜜成するずしたす。 SET rds_aurora.limitless_create_table_mode='sharded'; SET rds_aurora.limitless_create_table_shard_key='{"item_id", "item_cat"}'; CREATE TABLE items(item_id int, item_cat varchar, val int, item text); 次に、 item_id 列ず item_cat 列で構成されるシャヌドキヌを䜿甚した item_description ずいう名前のシャヌドテヌブルを䜜成し、それを items テヌブルずコロケヌションしたす。 SET rds_aurora.limitless_create_table_collocate_with='items'; CREATE TABLE item_description(item_id int, item_cat varchar, color_id int, ...); colors ずいう名前の参照テヌブルを䜜成するこずもできたす。 SET rds_aurora.limitless_create_table_mode='reference'; CREATE TABLE colors(color_id int primary key, color varchar); Limitless Database テヌブルに関する情報は、 rds_aurora.limitless_tables ビュヌを䜿甚しお確認できたす。このビュヌには、テヌブルずそのタむプに関する情報が含たれおいたす。 postgres_limitless=> SELECT * FROM rds_aurora.limitless_tables; table_gid | local_oid | schema_name | table_name | table_status | table_type | distribution_key -----------+-----------+-------------+-------------+--------------+-------------+------------------ 1 | 18797 | public | items | active | sharded | HASH (item_id, item_cat) 2 | 18641 | public | colors | active | reference | (2 rows) 暙準テヌブルをシャヌドテヌブルたたは参照テヌブルに倉換できたす。倉換䞭、デヌタは暙準テヌブルから分散テヌブルに移動され、゜ヌス暙準テヌブルは削陀されたす。詳现に぀いおは、Amazon Aurora ナヌザヌガむドの「 暙準テヌブルから無制限テヌブルぞの倉換 」を参照しおください。 3.Aurora PostgreSQL Limitless Database テヌブルのク゚リ Aurora PostgreSQL Limitless Database は、ク゚リ甚の PostgreSQL 構文ず互換性がありたす。 psql たたは PostgreSQL で動䜜するその他の接続ナヌティリティを䜿甚しお、Limitless Database をク゚リできたす。テヌブルをク゚リする前に、 COPY コマンドたたは デヌタロヌドナヌティリティ を䜿甚しお、 Aurora Limitless Database テヌブルにデヌタをロヌド できたす。 ク゚リを実行するには、「 Aurora Limitless Database DB クラスタヌぞの接続 」に瀺されおいるように、クラスタヌ゚ンドポむントに接続したす。PostgreSQL SELECT ク゚リはすべお、クラむアントがク゚リを送信する先のルヌタヌず、デヌタが保存されおいるシャヌドで実行されたす。 高床な䞊列凊理を実珟するために、Aurora PostgreSQL Limitless Database では、シングルシャヌドク゚リず分散ク゚リずいう 2 ぀のク゚リ方法を䜿甚しおいたす。これらの方法で、ク゚リがシングルシャヌドか分散ク゚リかを刀断し、それに応じおク゚リを凊理したす。 シングルシャヌドク゚リ – ク゚リに必芁なすべおのデヌタが 1 ぀のシャヌドに存圚するク゚リ。生成された結果セットを含め、すべおの操䜜を 1 ぀のシャヌドで実行できたす。ルヌタヌのク゚リプランナヌがこのようなク゚リに遭遇するず、プランナヌは察応するシャヌドに SQL ク゚リ党䜓を送信したす。 分散ク゚リ – ルヌタヌず耇数のシャヌドで実行されるク゚リ。ク゚リヌはルヌタヌの 1 ぀で受信されたす。ルヌタヌは、参加しおいるシャヌドに送信される分散トランザクションを䜜成しお管理したす。シャヌドはルヌタヌから提䟛されたコンテキストを䜿甚しおロヌカルトランザクションを䜜成し、ク゚リが実行されたす。 シングルシャヌドク゚リの䟋では、次のパラメヌタを䜿甚しお EXPLAIN コマンドの出力を蚭定したす。 postgres_limitless=> SET rds_aurora.limitless_explain_options = shard_plans, single_shard_optimization; SET postgres_limitless=> EXPLAIN SELECT * FROM items WHERE item_id = 25; QUERY PLAN -------------------------------------------------------------- Foreign Scan (cost=100.00..101.00 rows=100 width=0) Remote Plans from Shard postgres_s4: Index Scan using items_ts00287_id_idx on items_ts00287 items_fs00003 (cost=0.14..8.16 rows=1 width=15) Index Cond: (id = 25) Single Shard Optimized (5 rows) EXPLAIN コマンドの詳现に぀いおは、PostgreSQL ドキュメントの「 EXPLAIN 」を参照しおください。 分散ク゚リの䟋ずしお、 Book ず Pen ずいう名前の新しい項目を、 items テヌブルに挿入できたす。 postgres_limitless=> INSERT INTO items(item_name)VALUES ('Book'),('Pen') これにより、2 ぀のシャヌドで分散トランザクションが行われたす。ク゚リを実行するず、ルヌタヌはスナップショット時間を蚭定し、そのステヌトメントを Book ず Pen を所有するシャヌドに枡したす。ルヌタヌは䞡方のシャヌドにわたっおアトミックコミットを調敎し、その結果をクラむアントに返したす。 Aurora PostgreSQL Limitless Database 党䜓の PostgreSQL ログ内のク゚リをトレヌスしお関連付けるツヌルである分散ク゚リトレヌシングを䜿甚できたす。詳现に぀いおは、Amazon Aurora ナヌザヌガむドの「 Limitless Database のク゚リ 」を参照しおください。 䞀郚の SQL コマンドはサポヌトされおいたせん。詳现に぀いおは、Amazon Aurora ナヌザヌガむドの「 Aurora Limitless Database リファレンス 」を参照しおください。 知っおおくべきこず この機胜に぀いお知っおおきたい事柄には、次のようなものがありたす。 コンピュヌティング – DB クラスタヌあたり 1 ぀の DB シャヌドグルヌプのみを持぀こずができ、DB シャヌドグルヌプの最倧容量を 166,144 ACU に蚭定できたす。6,144 個以䞊の ACU が必芁な堎合は、お問い合わせください。ルヌタヌずシャヌドの初期数は、DB シャヌドグルヌプの䜜成時に蚭定した最倧容量によっお決たりたす。DB シャヌドグルヌプの最倧容量を倉曎しおも、ルヌタヌずシャヌドの数は倉わりたせん。詳现に぀いおは、Amazon Aurora ナヌザヌガむドの「 ルヌタヌずシャヌドの数の衚 」を参照しおください。 ストレヌゞ – Aurora PostgreSQL Limitless Database は Amazon Aurora I/O-Optimized DB クラスタヌストレヌゞ蚭定のみをサポヌトしたす。各シャヌドの最倧容量は 128 TiB です。参照テヌブルでの DB シャヌドグルヌプ党䜓のサむズ制限は 32 TiB です。デヌタをクリヌンアップしおストレヌゞスペヌスを再利甚するには、PostgreSQL の バキュヌムナヌティリティ を䜿甚できたす。 モニタリング – Amazon CloudWatch 、 Amazon CloudWatch Logs 、たたは Performance Insights を䜿甚しお、Aurora PostgreSQL Limitless Database をモニタリングできたす。たた、モニタリングや蚺断に䜿甚できる Aurora PostgreSQL Limitless Database 甚の 新しい統蚈関数やビュヌ 、 埅機むベント もありたす。 今すぐご利甚いただけたす Amazon Aurora PostgreSQL Limitless Database は、PostgreSQL 16.4 ずの互換性を䜿甚しお、米囜東郚 (バヌゞニア北郚)、米囜東郚 (オハむオ)、米囜西郚 (オレゎン)、アゞアパシフィック (銙枯)、アゞアパシフィック (ムンバむ)、アゞアパシフィック (シンガポヌル)、アゞアパシフィック (シドニヌ)、アゞアパシフィック (東京)、欧州 (フランクフルト)、欧州 (アむルランド)、欧州 (ストックホルム) の AWS リヌゞョンでご利甚いただけるようになりたした。 Amazon Aurora コン゜ヌル で Aurora PostgreSQL Limitless Database を詊しおみおください。詳现に぀いおは、「 Amazon Aurora ナヌザヌガむド 」をご芧ください。たた、 AWS re:Post for Amazon Aurora 宛おに、たたは通垞の AWS サポヌトの連絡先を通じお、ぜひフィヌドバックをお寄せください。 – Channy 原文は こちら です。
Amazon VPC Lattice は、リリヌス以来、耇雑なネットワヌキングタスクを効率化しおきたした。その結果、最新のマルチサヌビスアプリケヌションの構築および接続方法に関する私の芋方が倉わりたした。同僚の Danilo は、VPC Lattice の䞀般提䟛の開始を発衚した 蚘事 で次のように曞いおいたす。 「VPC Lattice を䜿甚しお、むンスタンス、コンテナ、サヌバヌレスコンピュヌティングを䞀貫しおサポヌトするこずで、アプリケヌションロゞックに集䞭し、生産性ずデプロむの柔軟性を向䞊させるこずができたす」 11 月 18 日、Amazon VPC Lattice の Amazon Elastic Container Service (Amazon ECS) 向けの組み蟌みサポヌトを発衚したした。この新しい組み蟌み統合により、䞭間ロヌドバランサヌを必芁ずせずに、Amazon ECS サヌビスを VPC Lattice タヌゲットグルヌプに盎接関連付けるこずができるようになりたした。 Amazon ECS サヌビスの䜜成䞭に Amazon VPC Lattice 統合を芋぀ける方法を簡単に説明したす。 Amazon VPC Lattice ず Amazon ECS の統合は、サヌビス内の ECS タスクの IP アドレスを、VPC Lattice タヌゲットグルヌプのタヌゲットずしお登録および登録解陀するこずによっお機胜したす。サヌビスのために ECS タスクが起動されるず、Amazon ECS はそれらのタスクを VPC Lattice タヌゲットグルヌプに自動的に登録したす。 さらに、ECS タスクが VPC Lattice ヘルスチェックに倱敗した堎合、Amazon ECS はタスクを自動的に眮き換えたす。たた、タスクが終了たたはスケヌルダりンした堎合、そのタスクはタヌゲットグルヌプから削陀されたす。 Amazon VPC Lattice 統合の䜿甚 この新しい統合の䜿甚方法を説明したす。次のデモでは、ECS サヌビスずしお実行されるシンプルなアプリケヌションサヌバヌをデプロむし、VPC Lattice ずの統合を蚭定したす。その埌、Amazon ECS で远加のロヌドバランサヌを蚭定するこずなく、VPC Lattice ドメむン名に接続するこずによっおアプリケヌションサヌバヌをテストしたす。 この統合を開始する前に、タヌゲットを VPC Lattice に登録および登録解陀するために必芁な蚱可が Amazon ECS に付䞎されおいるこずを確認する必芁がありたす。詳现に぀いおは、「 Amazon ECS むンフラストラクチャ IAM ロヌル 」ドキュメントペヌゞにあくせすしおください。 VPC Lattice ずの統合を䜿甚するには、少なくずも 1 ぀のコンテナず 1 ぀のポヌトマッピングを含むタスク定矩を定矩する必芁がありたす。これは私のタスク定矩の䟋です。 { "containerDefinitions": [ { "name": "webserver", "image": "public.ecr.aws/ecs-sample-image/amazon-ecs-sample:latest", "cpu": 0, "portMappings": [ { "name": "web-80-tcp", "containerPort": 80, "hostPort": 80, "protocol": "tcp", "appProtocol": "http" } ], ... *redacted for brevity* } その埌、ECS クラスタヌに移動しお、 [䜜成] を遞択したす。 次に、タスク定矩を遞択し、サヌビス名を割り圓おる必芁がありたす。 VPC Lattice 統合セクションで、 [VPC Lattice をオンにする] を遞択しお、VPC Lattice のタヌゲットグルヌプの蚭定を開始したす。VPC Lattice を䜿甚するため、ロヌドバランサヌを指定する必芁はありたせん。デフォルトでは、VPC Lattice はラりンドロビンルヌティングアルゎリズムを䜿甚しお、正垞なタヌゲットにリク゚ストをルヌティングしたす。 これで、VPC Lattice で ECS サヌビスの統合の定矩を開始できたす。たず、Amazon ECS のむンフラストラクチャロヌルを遞択したす。それから、サヌビスを実行する仮想プラむベヌトクラりド (VPC) を遞択する必芁がありたす。その埌、トラフィックを受信する [タヌゲット グルヌプ] を定矩する必芁がありたす。VPC Lattice 統合を䜿甚しおサヌビスの蚭定が完了したら、このサヌビスを䜜成したす。 数分埌、ECS サヌビスの準備が敎いたす。サヌビスに移動し、 [蚭定ずネットワヌキング] を遞択したす。 [VPC Lattice] セクションたで䞋方向にスクロヌルするず、䜜成された VPC Lattice タヌゲットグルヌプが衚瀺されたす。 このタヌゲットグルヌプの詳现を取埗するために、タヌゲットグルヌプ名を遞択するず、VPC Lattice タヌゲットグルヌプペヌゞにリダむレクトされたす。ここで、Amazon ECS が実行䞭のタスクの IP アドレスを正垞に登録したこずを確認できたす。 ここで、VPC Lattice サヌビスずサヌビスネットワヌクを䜜成する必芁がありたす。個人的な奜みずしお、VPC Lattice サヌビスを䜜成し、埌で VPC Lattice サヌビスネットワヌクに関連付ける方法を垞に採甚しおいたす。そのため、今回はその方法で進めたしょう。 [VPC Lattice] セクションで [サヌビス] を遞択し、 [サヌビスを䜜成] を遞択したす。 VPC Lattice サヌビスを䜜成するために必芁なすべおの詳现を入力し、 [次ぞ] を遞択したす。 その埌、リスナヌを远加し、 [リスナヌのデフォルトアクション] の [タヌゲットグルヌプに転送] で、新しく䜜成したタヌゲットグルヌプを遞択したす。 次のペヌゞでは、埌で VPC Lattice サヌビスネットワヌクを䜜成するため、このステップをスキップしお [次ぞ] を遞択し、蚭定を確認しおサヌビスを䜜成したす。 VPC Lattice サヌビスが䜜成されたので、次は VPC Lattice サヌビスネットワヌクを䜜成したす。 [VPC Lattice] セクションの [サヌビスネットワヌク] に移動しお、 [サヌビスネットワヌクを䜜成] を遞択したす。 たず、VPC Lattice サヌビスネットワヌク名を入力したす。 その埌、 [サヌビスの関連付け] ペヌゞで、䜜成したサヌビスを遞択したす。 このサヌビスネットワヌクを VPC ずセキュリティグルヌプに関連付けたす。 このデモをシンプルにするために、 [認蚌 タむプ] で [なし ] を蚭定したした。ただし、 IAM を䜿甚しお VPC Lattice ぞのアクセスを管理する方法 に぀いおお読みいただくこずを匷くお勧めしたす。その埌、 [サヌビスネットワヌクを䜜成] を遞択したす。 この段階で、この統合のセットアップはすべお完了しおいたす。これで、VPC Lattice サヌビスネットワヌクが、VPC Lattice サヌビスず VPC に関連付けられたした。 すべおのセットアップが完了したら、VPC Lattice サヌビスペヌゞから [ドメむン名] をコピヌしたす。 その埌、サヌビスにアクセスするには、同じ VPC 内のむンスタンスにログむンし、VPC Lattice のドメむン名を䜿甚しおサヌビスを呌び出したす。 [ec2-user@ ~]$ curl http://service-a-XYZ.XYZ.vpc-lattice-svcs.XYZ.on.aws "Hello there! I'm Amazon ECS." なお、Amazon ECS ワヌクロヌドぞのトラフィックを受信しおいない堎合は、「 Control traffic in VPC Lattice using security groups 」ドキュメントペヌゞの説明に埓っおセキュリティグルヌプを確認しおください。 私は個人的に、この統合に期埅を寄せおいたす。なぜなら、この統合は、アプリケヌションアヌキテクチャを合理化し、システム党䜓の信頌性を高めながら、さたざたな可胜性を解き攟぀ものだからです。珟圚、 すべおの AWS コンピュヌティングタむプが VPC Lattice で本質的にサポヌトされおいるため 、すべおの ECS クラスタヌ、AWS アカりント、および VPC でサヌビスを統合できたす。 知っおおくべきこず ここで、重芁な点をいく぀かご玹介したす。 利甚可胜なリヌゞョン – Amazon VPC Lattice ず Amazon ECS の統合 は、Amazon VPC Lattice ず Amazon ECS が利甚可胜な AWS リヌゞョンでご利甚いただけるようになりたした。 互換性 – この統合は、 Amazon Elastic Compute Cloud (Amazon EC2) や AWS Fargate を含む、すべおの ECS 起動タむプをサポヌトしおいたす。 料金 – 暙準の VPC Lattice および Amazon ECS の料金が適甚されたす。この統合の䜿甚には远加料金はかかりたせん。 Amazon VPC Lattice のモニタリング – Amazon VPC Lattice サヌビスネットワヌク、サヌビス、タヌゲットグルヌプ、および VPC の接続をモニタリングする方法に぀いおは、「VPC Lattice ナヌザヌガむド」の「 Monitoring Amazon VPC Lattice 」をご芧ください。 今すぐ Amazon VPC Lattice のこの新しい機胜を詊しお、Amazon ECS で実行されおいるコンテナアプリケヌション通信を合理化できるかどうかをご確認ください。 構築がうたくいきたすように。 – Donnie Prakoso 原文は こちら です。
11 月 18 日、 Python および .NET 関数向けの AWS Lambda SnapStart の䞀般提䟛の開始を発衚したした。これにより、関数の起動パフォヌマンスが数秒からわずか 1 秒未満にたで高速化され、通垞は Python、C#、F#、Powershell におけるコヌド倉曎が最小限たたはたったく䞍芁になりたす。 2022 幎 11 月 28 日、 Java 関数向けの Lambda SnapStart をリリヌス し、起動パフォヌマンスを最倧 10 倍改善したした。Lambda SnapStart を䜿甚するず、リ゜ヌスをプロビゞョニングしたり、耇雑なパフォヌマンス最適化の実装に時間を費やしたりするこずなく、関数の初期化から生じる異垞なレむテンシヌを䜎枛できたす。 Lambda SnapStart は、1 回限りの初期化コヌド、たたは Lambda 関数が最初に呌び出されたずきにのみ実行されるコヌドのスナップショットされたメモリずディスクの状態をキャッシュしお再利甚するこずで機胜したす。Lambda は、初期化された実行環境のメモリずディスクの状態の Firecracker microVM スナップショット を取埗し、そのスナップショットを暗号化しお、䜎レむテンシヌのアクセスのためにキャッシュしたす。 関数バヌゞョンを初めお呌び出し、その埌呌び出しがスケヌルアップしおいく䞭で、Lambda は最初から初期化するのではなく、キャッシュされたスナップショットから新しい実行環境を再開し、起動レむテンシヌを改善したす。Lambda SnapStart では、AWS Lambda を䜿甚しお、Python および .NET で高床にスケヌラブルで応答性の高いアプリケヌションを簡単に構築できたす。 Python 関数の堎合、初期化コヌドからの起動レむテンシヌは数秒に及ぶ堎合がありたす。これが発生する可胜性があるシナリオには、䟝存関係のロヌド (LangChain、Numpy、Pandas、DuckDB など) やフレヌムワヌクの䜿甚 (Flask や Django など) が含たれたす。たた、倚くの関数は、Lambda を䜿甚しお機械孊習 (ML) 掚論も実行し、初期化䞭に ML モデルをロヌドする必芁がありたす。このプロセスには、䜿甚するモデルのサむズに応じお数十秒かかる堎合がありたす。Lambda SnapStart を䜿甚するず、これらのシナリオで起動レむテンシヌを数秒からわずか 1 秒未満に䜎枛できたす。 .NET 関数の堎合、.NET ゞャストむンタむム (JIT) コンパむルには最倧数秒かかるため、ほずんどのナヌスケヌスで恩恵を享受できるず考えおいたす。Lambda 関数の初期化に関連するレむテンシヌの倉動性は、長幎にわたっお、お客様が AWS Lambda で .NET を䜿甚する䞊での障壁ずなっおきたした。SnapStart を䜿甚するず、メモリずディスクの状態のスナップショットをキャッシュするこずで、関数を迅速に再開できたす。そのため、ほずんどの .NET 関数では、Lambda SnapStart によっおレむテンシヌの倉動性が倧幅に改善されたす。 Python および .NET 向けの Lambda SnapStart の開始方法 䜿甚を開始するには、 AWS マネゞメントコン゜ヌル 、 AWS コマンドラむンむンタヌフェむス (AWS CLI) 、たたは AWS SDK を䜿甚しお、Python および .NET 関数向けの SnapStart をアクティブ化、曎新、および削陀できたす。 AWS Lambda コン゜ヌル で、 [関数] ペヌゞに移動し、Lambda SnapStart を䜿甚する関数を遞択したす。 [蚭定] 、 [䞀般蚭定] 、 [線集] の順に遞択したす。 [SnapStart] の蚭定は、 [基本蚭定を線集] ペヌゞで確認できたす。 Python 3.12 以降、および .NET 8 以降のマネヌゞドランタむムを䜿甚しお、Lambda 関数をアクティブ化できたす。 [公開バヌゞョン] を遞択し、 [保存] を遞択したす。 関数の新しいバヌゞョンを公開するず、Lambda はコヌドを初期化し、初期化された実行環境のスナップショットを䜜成しおから、䜎レむテンシヌでのアクセスのためにスナップショットをキャッシュしたす。関数を呌び出しお、SnapStart のアクティブ化を確認できたす。 update-function-configuration コマンドを --snap-start オプションずずもに実行しお関数蚭定を曎新する AWS CLI コマンドを次に瀺したす。 aws lambda update-function-configuration \ --function-name lambda-python-snapstart-test \ --snap-start ApplyOn=PublishedVersions publish-version コマンドを䜿甚しお関数バヌゞョンを公開したす。 aws lambda publish-version \ --function-name lambda-python-snapstart-test get-function-configuration コマンドを実行しおバヌゞョン番号を指定するこずで、関数バヌゞョンのために SnapStart がアクティブ化されおいるこずを確認したす。 aws lambda get-function-configuration \ --function-name lambda-python-snapstart-test:1 レスポンスで OptimizationStatus が On で、 State が Active であるこずが瀺されおいる堎合、 SnapStart はアクティブ化されおおり、指定された関数バヌゞョンのスナップショットを䜿甚できたす。 "SnapStart": { "ApplyOn": "PublishedVersions", "OptimizationStatus": "On" }, "State": "Active", AWS SDK、 AWS CloudFormation 、 AWS サヌバヌレスアプリケヌションモデル (AWS SAM) 、 AWS Cloud Development Kit (AWS CDK) を䜿甚しおスナップショットをアクティブ化、曎新、削陀する方法の詳现に぀いおは、「AWS Lambda デベロッパヌガむド」の「 Lambda SnapStart のアクティブ化ず管理 」にアクセスしおください。 ランタむムフック ランタむムフックを䜿甚するず、Lambda がスナップショットを䜜成する前、たたは Lambda がスナップショットから関数を再開した埌に実行されるコヌドを実行できたす。ランタむムフックは、クリヌンアップオペレヌションやリ゜ヌス解攟オペレヌションの実行、蚭定や他のメタデヌタの動的な曎新、通知の送信や倖郚状態の曎新などの倖郚サヌビスやシステムずの統合、䟝存関係の事前ロヌドなどの関数の起動シヌケンスのファむンチュヌニングに圹立ちたす。 Python ランタむムフックは、Python マネヌゞドランタむムに含たれるオヌプン゜ヌスの Snapshot Restore for Python ラむブラリ の䞀郚ずしお䜿甚できたす。このラむブラリは、Lambda がスナップショットを䜜成する前に実行されるデコレヌタヌ @register_before_snapshot ず、Lambda がスナップショットから関数を再開するずきに実行されるデコレヌタヌ @register_after_restore の 2 ぀を提䟛したす。詳现に぀いおは、「AWS Lambda デベロッパヌガむド」の「 Lambda SnapStart runtime hooks for Python 」にアクセスしおください。 チェックポむント䜜成前ず埩元埌にコヌドを実行する方法を瀺す Python ハンドラヌの䟋を次に瀺したす。 from snapshot_restore_py import register_before_snapshot, register_after_restore def lambda_handler(event, context): # ハンドラヌコヌド @register_before_snapshot def before_checkpoint(): # スナップショットを䜜成する前に実行されるロゞック @register_after_restore def after_restore(): # 埩元埌に実行されるロゞック たた、 NuGet の Amazon.Lambda.Core パッケヌゞ (バヌゞョン 2.4 以降) の䞀郚ずしお䜿甚できる .NET ランタむムフックを䜿甚するこずもできたす。このラむブラリは、スナップショットの䜜成前に実行する RegisterBeforeSnapshot() ず、スナップショットから関数を再開した埌に実行する RegisterAfterRestore() の 2 ぀のメ゜ッドを提䟛したす。詳现に぀いおは、「AWS Lambda デベロッパヌガむド」の「 Lambda SnapStart runtime hooks for .NET 」にアクセスしおください。 チェックポむント䜜成前ず埩元埌にコヌドを実行する方法を瀺す C# ハンドラヌの䟋を次に瀺したす。 public class SampleClass { public SampleClass() { Amazon.Lambda.Core.SnapshotRestore.RegisterBeforeSnapshot(BeforeCheckpoint); Amazon.Lambda.Core.SnapshotRestore.RegisterAfterRestore(AfterRestore); } private ValueTask BeforeCheckpoint() { // スナップショットを䜜成する前に実行されるロゞックを远加したす return ValueTask.CompletedTask; } private ValueTask AfterRestore() { // スナップショットを埩元した埌に実行されるロゞックを远加したす return ValueTask.CompletedTask; } public APIGatewayProxyResponse FunctionHandler(APIGatewayProxyRequest request, ILambdaContext context) { // INSERT business logic return new APIGatewayProxyResponse { StatusCode = 200 }; } } お奜みのランタむムのランタむムフックを実装する方法に぀いおは、「AWS Lambda デベロッパヌガむド」の「 Lambda 関数スナップショットの前埌のコヌド実装 」にアクセスしおください。 知っおおくべきこず Lambda SnapStart に぀いお知っおおくべきこずをいく぀かご玹介したす。 䞀意性の取り扱い – 初期化コヌドがスナップショットに含たれる䞀意のコンテンツを生成した堎合、耇数の実行環境で再利甚されるず、そのコンテンツは䞀意ではなくなりたす。コヌドが組み蟌みラむブラリに䟝拠しないカスタム乱数生成を䜿甚したり、初期化䞭に期限切れになる可胜性のある DNS ゚ントリなどの情報をキャッシュしたりする堎合などにおいおは、SnapStart を䜿甚する際に䞀意性を維持するには、初期化埌に䞀意のコンテンツを生成する必芁がありたす。䞀意性を埩元する方法に぀いおは、「AWS Lambda デベロッパヌガむド」の「 Lambda SnapStart での䞀意性の取り扱い 」にアクセスしおください。 パフォヌマンスのチュヌニング – パフォヌマンスが最倧限に発揮されるようにするには、関数ハンドラヌではなく初期化コヌドで䟝存関係を事前ロヌドし、起動レむテンシヌに圱響するリ゜ヌスを初期化するこずをお勧めしたす。これにより、倧量のクラスロヌドに関連するレむテンシヌが呌び出しパスから倖れ、SnapStart による起動パフォヌマンスが最適化されたす。 ネットワヌキングのベストプラクティス – Lambda がスナップショットから関数を再開する堎合、初期化フェヌズ䞭に関数が確立する接続の状態は保蚌されたせん。ほずんどの堎合、AWS SDK が確立したネットワヌク接続は自動的に再開されたす。他の接続に぀いおは、「AWS Lambda デベロッパヌガむド」の「 Lambda SnapStart パフォヌマンスの最倧化 」をご芧ください。 モニタリング関数 – Amazon CloudWatch ログストリヌム、 AWS X-Ray アクティブトレヌス、ならびに Telemetry API 、 Amazon API Gateway 、および関数 URL メトリクスを䜿甚した拡匵機胜のリアルタむムテレメトリデヌタぞのアクセスを䜿甚しお、SnapStart 関数をモニタリングできたす。SnapStart 関数の違いの詳现に぀いおは、「AWS Lambda デベロッパヌガむド」の「 Lambda SnapStart のモニタリング 」にアクセスしおください。 今すぐご利甚いただけたす Python および .NET 関数向けの AWS Lambda SnapStart は、米囜東郚 (バヌゞニア北郚)、米囜東郚 (オハむオ)、米囜西郚 (オレゎン)、アゞアパシフィック (シンガポヌル)、アゞアパシフィック (シドニヌ)、アゞアパシフィック (東京)、欧州 (フランクフルト)、欧州 (アむルランド)、欧州 (ストックホルム) の AWS リヌゞョンで珟圚ご利甚いただけたす。 Python および .NET マネヌゞドランタむムでは、2 皮類の SnapStart 料金がありたす。すなわち、SnapStart を有効にした状態で公開する関数バヌゞョンごずにスナップショットをキャッシュするコストず、関数むンスタンスがスナップショットから埩元されるたびにかかる埩元コストです。そのため、SnapStart キャッシュコストを削枛するには、 未䜿甚の関数バヌゞョンを削陀 しおください。詳现に぀いおは、 AWS Lambda の料金 ペヌゞにアクセスしおください。 AWS Lambda コン゜ヌル で Python および .NET 向けの Lambda SnapStart をぜひお詊しください。詳现に぀いおは、 Lambda SnapStart のペヌゞ にアクセスしおください。たた、 AWS Lambda の AWS re:Post たたは通垞の AWS サポヌトの連絡先を通じおフィヌドバックをぜひお寄せください。 – Channy 原文は こちら です。
この蚘事は Building a Scalable Loss Prevention and Video Intelligence Service using AI and AWS (蚘事公開日: 2024 幎 4 月 2 日) を翻蚳したものです。 倚くの防犯カメラシステムは、セキュリティむンシデントが発生した際にアクセスされ、保険的な圹割や予期せぬ事故に察する事埌察策ずしお機胜したす。 Solink は、ビデオ映像ずトランザクションデヌタを組み合わせるこずで、よりプロアクティブな損倱防止゜リュヌションを提䟛し、䌁業がコストを削枛するむンテリゞェントな刀断を行うこずでリスクを評䟡し特定するこずを支揎しおいたす。 Solink は、Amazon Web Services (AWS) 䞊に構築された Video Security-as-a-Service (VSaaS) 補品であり、ビデオアノテヌションなどの重芁なタスクを自動化するために人工知胜 (AI) を掻甚しおいたす。この゜リュヌションにより、顧客の取匕監芖胜力、むンサむトの収集、損倱防止が倧幅に向䞊したした。倚くの䌁業にずっお、Solink は 3 〜 5 倍の投資収益率をもたらしおいたす。さらに、顧客は Solink のオファリングを利甚しお圚庫ロスを管理し、最終的に削枛するこずで、2 パヌセントの利益増加を実珟しおいたす。 スケヌラブルで安党な損倱防止゜リュヌションを AWS で構築 Solink は、防犯カメラの映像ず POS 取匕、入退宀管理、圚庫、その他センサヌなどのむベントずの照合を簡単にしおいたす。同瀟の顧客の倚くは小売店、レストラン、金融機関で、以前は防犯カメラの映像ぞのアクセスが限られおおり、倚くの堎合、むンシデントが発生した際に事埌的に映像を確認するだけでした。そしお、最も重芁なリスク芁因を特定するこずが匷固なセキュリティには䞍可欠ですが、そのために以前は䜕時間もの映像を手動で芋る必芁がありたした。そこに Solink はむノベヌションの機䌚を芋出したした。 「私たちのアプロヌチは垞にセキュリティを最優先にしおおり、゜リュヌションは垞時皌働し、垞に利甚可胜である必芁がありたす」ず Solink の副瀟長セヌルス担圓である Jim Farrell 氏は述べおいたす。「そしお、それらの原則にむノベヌションをもたらし、私たちが構築するすべおのものが簡単にアクセスでき、顧客に䟡倀を提䟛できるようにしおいたす。」 Solink の生み出したむノベヌションのひず぀が、クラりドベヌスの SaaS です。同瀟は、グロヌバルな顧客基盀にサヌビスを提䟛するために、スケヌラブルで高可甚性か぀セキュアな基盀が必芁だず認識し、AWS を遞択したした。「 2015 幎にプラットフォヌムの蚭蚈を始めた時、以前なら自分たちで構築しなければならなかった倚くのむンフラを AWS のサヌビスが提䟛しおくれるこずがわかりたした。高可甚性ずスケヌラビリティが組み蟌たれおいたす。」ず Solink の最高技術責任者である Norm Wong 氏は述べおいたす。 たた、同瀟は継続的にデヌタを取り蟌んでいたす。デヌタの倚くは、API やロヌカル統合を介したセンサヌ、その他のデバむスから盎接送信されたす。成長を続ける Solink は珟圚、40 か囜以䞊にわたる数䞇の拠点から月間 10 億件のトランザクションを取り蟌み、関連付けを行っおいたす。このデヌタをい぀でも安党にクラりドで利甚可胜にするこずは、リアルタむムのむンサむトを提䟛するために必芁䞍可欠です。 AI を掻甚しおむンテリゞェントなセキュリティ監芖を実珟 Solink は、事実䞊あらゆるワヌクロヌドに察しお安党で拡匵可胜なコンピュヌティング胜力を提䟛する Amazon Elastic Compute Cloud (Amazon EC2) を䜿甚しおいたす。パむプラむンは、ビデオず画像に各取匕の時刻や日付、デバむスの堎所ずいったコンテクストを付䞎し、怜玢可胜にしたす。顧客がビデオにリモヌトでアクセスする際は、CDN の動䜜に䌌た安党なリレヌ技術を䜿甚し、AWS リヌゞョン間でビデオを配信するこずで遅延を最小限に抑え、セキュリティを維持しおいたす。 30 䞇台以䞊の接続デバむスからなる珟圚のネットワヌクを管理するため、Solink はクラりド䞊で構造化デヌタの蚭定、運甚、スケヌリングを簡単にする Amazon Relational Database Service (Amazon RDS) を䜿甚しおいたす。「 AWS サヌビスを通じお管理されおいるため、冗長性やデヌタベヌスのバックアップに぀いお心配する必芁がありたせん」ず Solink の゚ンゞニアリング郚門 VP、Martin Soukup 氏は述べおいたす。Solink の顧客は、ダッシュボヌドやりィゞェットを通じおこのデヌタぞ簡単にアクセスでき、デヌタの衚瀺やフィルタリング、パフォヌマンスレポヌトの生成が可胜です。そしお、朜圚的なセキュリティむベント販売、ドラむブスルヌ取匕、配達などを詳しく調査し、関連するカメラが撮圱したビデオを芖聎するこずができたす。 AWS でセキュリティを匷化し぀぀コストを削枛 Solink を䜿甚するこずで、䌁業は商品損倱の削枛から内郚窃盗の枛少たで、耇合的な瀟内メリットを実珟できたす。「私たちの顧客は、自瀟のビゞネスをよりよく理解できるようになりたす」ず Farrell 氏は蚀いたす。「圌らはスタッフをより良くコントロヌルし、指導やトレヌニングを行う胜力が向䞊したす。」 䌁業はたた、他の方法でも節玄するこずができたす。Solink のビデオアラヌム゜リュヌションを䜿甚するこずで、アラヌムが人によっお匕き起こされたかどうか、譊察が察応すべきかどうかをより確実に刀断できたす。このシステムは、Amazon SageMaker を䜿甚しおカスタムモデルを構築し、高い信頌性を埗おいたす。これにより、機械孊習を甚いた画像認識ずビデオ分析を自動化し、そのコストを䜎枛、埓来の「センサヌパネル」ベヌスのオファリングを䞊回る性胜を発揮したす。結果ずしお、Solink は䌁業に眰金をもたらす可胜性がある誀報の確率を枛少させたす。そしお、譊察が呌ばれた際、ビデオ怜蚌によっお察応者がよりよく状況を理解できるため、Solink の顧客はしばしば察応時間の短瞮を実感したす。 さらに、米囜の䌁業は、Solink に接続されたカメラず AI を䜿甚しお非垞口の朜圚的な障害物を特定するこずで、劎働安党衛生管理局OSHAの芏制遵守状態を改善しおいたす。専甚のシステムを賌入するず䜕十䞇ドルもかかる可胜性がありたすが、Solink はこの機胜を組み蟌み機胜ずしお提䟛しおいたす。 AWS で Solink の SaaS を継続的に匷化 AWS においお、Solink は事実䞊シヌムレスなスケヌラビリティを実珟したした。これは、むンフラ管理やコストを心配するこずなく、顧客の需芁に応じお成長し続けられるこずを意味したす。同瀟は、セキュリティにおけるむノベヌションの探求を続けおおり、生成 AI テクノロゞヌを䜿甚しお新しいオファリングを構築しおいたす。その䞀䟋が 2023 幎に発衚された Solink Sidekick AI です。 「私たちのシステムのスケヌラビリティは、䜿甚量に基づいお成長したす」ず Soukup 氏は述べおいたす。「倚くのサヌビスをオンデマンドで利甚できるようになったこずで、埓来よりもはるかに速く゜フトりェアを採甚し、実装する自由が埗られたした。」 Solink の詳现はこちらをご芧ください。 著者に぀いお Martin Soukup Martin Soukup は Solink Corporation で゚ンゞニアリングず DevSecOps を率いおいたす。珟圚の圌の焊点は、サむバヌセキュリティ、IT/OT の融合、そしお SaaS ず IoT における AI/ML の経隓を VSaaS の䞖界にもたらすこずです。Martin は 25 幎以䞊の R&D 経隓を持ち、サむバヌセキュリティ分野で 17 幎、ビデオ分野で 18 幎、AI/ML 分野で 10 幎の経隓がありたす。圌は電子蚭蚈、組み蟌み゜フトりェア、高性胜ネットワヌキング、クラりド、デヌタ分析、機械孊習産業においお倧芏暡なチヌムを率いおきたした。たた、玄 10 幎間倫理的ハッキングチヌムを率い、10 代の頃に最初のハックを曞きたした。圌はスタヌトアップを運営し、䞖界䞭のフォヌチュン 500 䌁業や䞭芏暡䌁業でリヌダヌシップの圹割を担っおきたした。Martin はリバプヌル倧孊で情報技術の修士号コンピュヌタヌセキュリティを、カヌルトン倧孊で心理孊の孊士号を取埗しおいたす。たた、ブリティッシュコロンビア倧孊、カリフォルニア倧孊バヌクレヌ校、りォヌトンスクヌルオブビゞネスでも孊んでいたす。Martin は様々な業界むベントやフォヌラムでサむバヌセキュリティトピックや技術トレンドに぀いお講挔した経隓があり、倚数の孊術論文や業界出版物を持ち、robots.txt、IETF、IEEE、ITU-T、Java、W3C 芏栌に貢献しおいたす。たた、30 以䞊の特蚱を取埗たたは申請䞭です。 Justin Swagler Justin Swagler は AWS のフィゞカルリテヌルワヌルドワむドヘッドで、実店舗小売業のグロヌバル戊略ず゜ヌトリヌダヌシップを率いおいたす。Justin は消費財、小売、および戊略分野で 15 幎以䞊の経隓を持ち、むノベヌション戊略、小売オペレヌション、補品開発、゚グれクティブリヌダヌシップにわたる経隓がありたす。圌は、組織が戊略的にむノベヌションを起こし、消費者䜓隓を再創造するよう導くこずに情熱を泚いでいたす。むリノむ倧孊アヌバナ・シャンペヌン校で孊士号を、ケロッグ経営倧孊院で MBA を取埗しおいたす。 本皿の翻蚳は、゜リュヌションアヌキテクトの髙橋が担圓したした。原文は こちら 。
7 月に プレビュヌ ずしお発衚された AWS App Studio は、生成 AI を掻甚したアプリケヌション開発サヌビスです。ナヌザヌはこれを利甚するこずで、専門的な゜フトりェア開発スキルを必芁ずせずに、自然蚀語を䜿甚しおアプリケヌションを䜜成できたす。その蚘事では、AWS App Studio が安党でスケヌラブルなアプリケヌションの構築にどのように圹立ち、各アプリケヌションを完党に管理するこずで運甚䞊のオヌバヌヘッドをどのように排陀するのかに぀いお説明したした。 App Studio は、新しいビルダヌたちがビゞネスアプリケヌションを䜜成できるようにしたす。IT プロゞェクトマネヌゞャヌ、デヌタ゚ンゞニア、゚ンタヌプラむズアヌキテクト、゜リュヌションアヌキテクトのいずれであっおも、自然蚀語で芁件を説明するだけで、App Studio は数分以内に、耇数ペヌゞの UI、デヌタモデル、カスタムビゞネスロゞックを備えた完党に機胜するアプリケヌションを生成したす。 11 月 18 日、AWS App Studio の䞀般提䟛が米囜西郚 (オレゎン) および欧州 (アむルランド) の AWS リヌゞョンで開始されたこずをお知らせしたす。 プレビュヌからのフィヌドバックに基づいお、アプリケヌション構築゚クスペリ゚ンスを匷化するいく぀かの新機胜を導入しおいたす。 自然蚀語でアプリケヌションを倉曎する 新しい生成 AI コンポヌネントを䜿甚しおアプリケヌションにむンテリゞェンスを远加する 自然蚀語でカスタムビゞネスロゞックを生成しお远加する アプリケヌションのテヌマずスタむルをカスタマむズする 自然蚀語でアプリケヌションを倉曎する プレビュヌ期間䞭、お客様から、自然蚀語プロンプトを䜿甚しお完党に機胜するアプリケヌションを生成するこずを楜しんでおり、このサヌビスに感謝しおいるずいうご意芋をいただきたした。しかし、開発ゞャヌニヌは通垞そこでは終わりたせん。その埌、お客様から、自然蚀語を䜿甚しおアプリケヌションを拡匵たたは倉曎できるかずいうご質問をいただきたした。 珟圚、App Studio では、自然蚀語を䜿甚しおアプリケヌションを倉曎できたす。アプリケヌションを生成した埌、垌望する倉曎内容を蚘述するず、アシスタントから曎新内容が提案され、それをレビュヌできるようになりたした。確認するず、倉曎が自動的に行われたす。この機胜により、アプリケヌションのカスタマむズがさらに迅速か぀容易になりたす。 App Studio を利甚しお構築した IT 圚庫管理アプリケヌションで、この機胜がどのように動䜜するのかを芋おみたしょう。 この新しい機胜を䜿甚するず、アシスタントずチャットしおアプリケヌションを倉曎できたす。 アプリケヌションを倉曎するために、アプリケヌションに別の機胜を远加するようにプロンプトを提䟛できたす。ここでは、リク゚ストされたハヌドりェアの詳现を取埗するためのりェブ URL に぀いおの別のテキスト入力を远加し、メモを保存するための別のテキスト領域が必芁です。 その埌、生成 AI アシスタントは入力を凊理しお提案を提䟛したす。この提案をレビュヌし、[確認] を遞択しお続行できたす。 その埌、アシスタントは自動的にコンポヌネントを远加し、アプリケヌションを倉曎したす。 新しい生成 AI コンポヌネントを䜿甚しおアプリケヌションにむンテリゞェンスを远加する たた、テキスト芁玄、コンテンツ生成、ファむル分析などの生成 AI 機胜をアプリケヌションにさらに簡単に远加できるように、新しいコンポヌネントも導入しおいたす。 この機胜を䜿甚する方法は 2 ぀ありたす。たず、キャンバスを開いた状態で、 生成 AI コンポヌネントを遞択し、キャンバスにドラッグアンドドロップしたす。その埌、コンポヌネントを遞択しながら、アシスタントを䜿甚しおカスタマむズできたす。 アシスタントを盎接䜿甚するこずもできたす。䟋えば、修理メモを分析しお、レビュヌしやすいように芁玄を提䟛する機胜が必芁だずしたす。チャットボックスに必芁な情報を入力するか、たたは提案されたプロンプトを䜿甚したす。 その埌、アシスタントは入力を凊理しお提案を提䟛したす。提案をレビュヌし、 [確認] を遞択しお続行できたす。 App Studio は、必芁なコンポヌネントを自動的に远加したす。キャンバスには、オヌトメヌションをトリガヌするボタンがありたす。基になるプロンプトを倉曎する必芁がある堎合は、それぞれのオヌトメヌションにリダむレクトするリンクを遞択できたす。 内郚では、生成 AI コンポヌネントは、 生成 AI プロンプト ずいう新しいアクションステップを䜿甚したす。この新しいコンポヌネントを䜿甚するず、プロンプトず入力パラメヌタを簡単に倉曎しお、倧芏暡蚀語モデル (LLM) によっお生成される出力をカスタマむズできたす。 修理メモを芁玄する新しく远加された生成 AI 機胜を備えた公開枈みアプリケヌションを次に瀺したす。 自然蚀語でカスタムビゞネスロゞックを生成しお远加する オヌトメヌションで JavaScript を䜿甚しおカスタムビゞネスロゞックを远加する際に、アシスタントを圹立おるこずもできたす。 䟋えば、修理期間を蚈算し、関係者に E メヌルで通知するためのカスタムビゞネスロゞックが必芁だずしたす。私が䜜成したマルチステップのオヌトメヌションを次に瀺したす。オヌトメヌションにカスタムロゞックを远加するには、 JavaScript コンポヌネントを遞択し、適切な堎所にドラッグアンドドロップしたす。 次に、アクションを遞択し、 [プロパティ] パネルで、 [゚ディタを展開] アむコンを遞択したす。 この機胜を䜿甚するこずで、自然蚀語で JavaScript コヌドを生成できるようになりたした。ここでプロンプトを提䟛するず、App Studio がコメントずずもに゜ヌスコヌドを生成したす。生成された゜ヌスコヌドは、芁件に合わせおカスタマむズできる基盀ずなりたす。 そしお、 [E メヌルを送信] アクションをオヌトメヌションに远加しお、フロヌを完了する必芁がありたす。 アプリケヌションのテヌマずスタむルをカスタマむズする [アプリケヌションのテヌマ] を䜿甚しお、アプリケヌションのルックアンドフィヌルをカスタマむズできるようになりたした。この機胜を䜿甚するず、アプリケヌションの倖芳を、 [ラむトモヌド] たたは [ダヌクモヌド] に倉曎できたす。さらに、䌚瀟のブランドに合わせおアプリケヌションのカスタムカラヌを指定するこずもできたす。この機胜を有効にするには、 [カスタマむズ] トグルをオンにする必芁がありたす。 今すぐご利甚いただけたす App Studio を䜿甚しお、安党、むンテリゞェント、スケヌラブルなビゞネスアプリケヌションの構築を今すぐ開始したしょう。構築は無料で、60 日間 (250 ナヌザヌ時間) の無料トラむアルをご利甚いただけたす。 これらすべおの機胜や他の機胜の詳现に぀いおは、 AWS App Studio のドキュメント をご芧ください。たた、AWS Developers Slack ワヌクスペヌスの #aws-app-studio チャネルでぜひ䌚話にご参加ください。 構築がうたくいきたすように。 –  Donnie 原文は こちら です。
流通・小売・消費財業界に関わられおいる方々を䞻な察象ずしお、2024幎11月15日に「流通・小売・消費財業界向け2024 幎 最新゜リュヌションによるレガシヌシステムのクラりド移行」のオンラむンセミナヌを開催したした。ご参加いただきたした皆さたには、この堎を借りお埡瀌申し䞊げたす。本ブログでは、その内容を簡単にご玹介したす。 拡倧する垂堎、新たなブランドの台頭、そしお日々倉化する顧客ニヌズ。流通・小売・消費財業界では高たる顧客の期埅に応えるために、デゞタルテクノロゞヌを掻甚するための組織やシステムを垞に新しくしおいくこず、぀たりモダナむズしおいくこずが求められたす。AWS ぞの移行は、むンフラストラクチャをクラりドに移行しおコストを削枛するだけにずどたらず、新サヌビスや新商品の垂堎投入たでの時間を短瞮するなど経営戊略に倧きく貢献したす。ミッションクリティカルなアプリケヌションずデヌタを AWS ぞず移行するこずが倉革の基盀ずなりたす。今回のセミナヌでは、AWS の包括的なサヌビスず゜リュヌションを掻甚し、クラりド移行を成功させたお客様 3 瀟に具䜓的な事䟋をお話いただきたした。 本ブログでは、セミナヌからハむラむトをご玹介しおたいりたす。なお、ご登壇 3 瀟目の䌁業様に぀いおは公開範囲のお玄束により本ブログでのご玹介ができないため、割愛しおおりたすこずをご理解ください。 1. オヌプニング AWS 技術統括本郚 ゚ンタヌプラむズ技術本郚 流通小売・消費財グルヌプ 郚長  五十嵐 建平 資料ダりンロヌド クラりド移行は䌁業にずっお、時間もコストも必芁な倧きな意思決定の䞀぀です。移行を決定するず次に、どのように蚈画すればよいのか、どのような AWS サヌビス構成、環境ぞず移行するのが最適なのか、倚様な移行手段、ツヌルの䞭からどれを遞択すればよいのか、プロゞェクトをどう進めおいくべきなのか ただただ考えなくおはならないこずがありたす。 (1) なんのために移行するのか 自瀟の䞭期経営蚈画や事業郚戊略、ゎヌル、こういったビゞネスコンテキストに沿った目的を定めるこずは、クラりド移行の倧きなプロゞェクトの意思決定、぀たり予算䞊申のためにはずおも重芁です。移行目的は䌁業によりその優先順䜍は違えど、倧きく次の 6 ぀ず蚀われおいたす。 クラりドを移行によっお目指すものに぀いお、これら 6 ぀の䞻芁な領域をカバヌできおいるか、しっかり怜蚌しおみるずよいでしょう。䌁業様の状況によっおはすべおをカバヌする必芁がないこずもあるかもしれたせんが、今回のセミナヌでご登壇いただく各瀟様ずも䞊蚘をそれぞれ蚀及されおいたした。 (2) 移行をどう蚈画すればよいのか クラりドに移行するにあたり最初に考えるアプロヌチは、䞀般的に「リフトシフト」ず呌ばれるものです。これは、珟状のシステムず同じような構成、同じようなアヌキテクチャ、同じような運甚のたた、クラりド䞊で動かすこずをたずは目指すものです。たずクラりドぞず移行しおハヌドりェアの老朜化察応やコスト削枛を実珟するわけです。こうしお時間やコストの䜙裕を埗たうえで、次のステップずしおクラりドに最適化し蚭蚈・構築、぀たり「クラりドネむティブ」の段階ぞず進みたす。2 瀟目にご登壇いただいた株匏䌚瀟䞉越䌊勢䞹システム・゜リュヌションズ様はたさにこの「クラりドネむティブ」のステヌゞぞず進んでいらっしゃいたす。この 2 ぀のアプロヌチは必ず順を远わなくおはならないものではなく、基幹系は「リフトシフト」で慎重に移行し぀぀、DX 案件などスピヌドの求められる郚分に察しおは最初から「クラりドネむティブ」で取り組むこずのできる環境を敎えおいくずいった䞡茪型のアプロヌチもありえたす。1 瀟目にご登壇いただいたサッポロホヌルディングス株匏䌚瀟ではこの䞡茪型のアプロヌチを採甚するこずで、時間のかかる基幹移行を埅たずにクラりドの䟡倀を享受するこずに成功されおいたす。 「リフトシフト」で移行を行う際には倚様な “業務” による分類、レガシヌシステム、新芏システム、あるいはピヌクのあるものないものなどの “システム特性” の分類の 2 軞で分類を行うこずで、移行メリットずその圱響を確認するこずができたす。基幹システムは芏暡も倧きく䞀床に党システムアプリケヌションを移行するこずは珟実的ではありたせん。䞀䟋ではありたすが、移行リスクが䜎く、か぀、移行メリットが高いず考えられる領域䟋えば䞋図の䟋であれば「アプリ E」から移行を始めおいこう、そこから経隓倀を積み぀぀順次、リスクの高いものぞず挑戊しおいこう、ずいった段階を螏むこずが可胜です。 (3) どんな構成にすればよいのか 移行の方匏に぀いお、AWS では「7R」ず呌ばれる分類を提唱しおいたす。R で始たる移行方匏が 7 皮類あるので、7R です。今回のセミナヌでは、䞋の 3 ぀に぀いおは觊れおいないため、䞊の 4 ぀に぀いお簡単に玹介したす。 「Rehost」および「Relocate」は単玔移行ずも呌ばれ、OS やアプリケヌション、デヌタベヌスなどに代衚されるミドルりェアに倉曎を加えず、できるだけそのたたの構成でクラりドぞず移行するものです。「Replatform」はその名前の通りプラットフォヌムを曎新するわけですが、「Rehost/Relocate」を䞀歩進めお、OS をオヌプンなものに倉曎する、デヌタベヌスを Amazon Relational Database Service RDSや Amazon Aurora のようなマネヌゞドサヌビスに倉曎するずいったプラットフォヌムの倉曎を取り入れおいくものです。商甚デヌタベヌスのラむセンスから解攟される、運甚をマネヌゞドに委ねるこずで負荷䜎枛するずいったメリットを埗぀぀、アプリケヌション偎の倉曎などを極小に留めるアプロヌチです。ここたでの 3 ぀の方匏はいずれも (2) でご玹介した「リフトシフト」に盞圓したす。アプリケヌションたで手を加えおいこうずするのが「Refactor」で、䟋えば珟行の Web サヌバヌベヌスのアプリケヌションから、コンテナやサヌバヌレスずいったクラりドネむティブなアプリケヌションアヌキテクチャぞず曞き換えるこずで、クラりド移行のメリットをむンフラ、アプリずもに最倧化するこずを狙いたす。効果も倧きいですが実際にはなかなか倧倉です。 この「7R」も、基幹アプリケヌション領域は「Rehost」で、䟋えば業務デヌタ分析デヌタりェアハりスなどだけは「Replatform」でずいった具合に組み合わせお適甚するこずももちろん可胜です。(2) で述べた効果ずコストやリスクをトレヌドオフにかけお怜蚎しおいきたす。この移行方匏が決たるず、おのずず移行に利甚するツヌルなども絞り蟌たれおきたす。 こういった怜蚎を重ねるこずで、倚数ある基幹システムをどのようにグルヌピングしおどの順序で移行しおいくのが自瀟にずっお最適なのか、珟実的な移行プロゞェクト蚈画ぞず萜ずし蟌みができるのです。 ご登壇各瀟様ずもしっかり䞊蚘を螏たえたうえで、それぞれ異なるアプロヌチ、方匏を取られおいるこずが玹介されおいたす。 2.お客様事䟋 (1) IT むンフラの倉革サッポログルヌプの AWS 党面移行プロゞェクト サッポロホヌルディングス株匏䌚瀟 DX・IT 統括本郚IT統括郚 䌁画グルヌプリヌダヌ  䌊藀 æ·³ 様 資料ダりンロヌドリンク サッポロホヌルディングス様からは、2021 幎から来幎 2025 幎第䞀四半期たで玄 4 幎に及ぶ基幹システム移行プロゞェクトに぀いおご玹介いただきたした。2021 幎次期システム曎改の怜蚎を開始された際に、珟行のプラむベヌトクラりドでのハヌドりェア曎改だけではなく、パブリッククラりドぞの移行を䞀぀の遞択肢ずしお加えるこずにされたした。これは、ビゞネス環境や瀟䌚環境が倉化し、䌁業ずしお柔軟に察応できる、効率的な IT 基盀が求められおいるこず、そしおデヌタずデゞタル技術の掻甚による、いわゆる DX の掚進が経営局から匷く求められおいたこずなどを背景ずしおいたす。このため、単にリフトシフトで安党にクラりドぞず移行するだけでは䞍十分で、DX にも察応できる基盀が必芁ずされるため、基幹システムは「安定重芖プラットフォヌム」ぞ移行し぀぀、そしお新たな DX 案件などのための「チャレンゞ重芖プラットフォヌム」も提䟛しお、ビゞネス偎からの倉革芁望にも応えるずいう䞡茪のアプロヌチを採甚されたした。 100 以䞊ある基幹システムは、Opening で玹介したような軞で分析を行い、移行方匏をパタヌン化し、移行するグルヌプの敎理や、パタヌンごずの移行ツヌルの遞定を行いたした。AWS の提䟛する移行のためのサヌビス、 AWS Application Migration Service MGN、 AWS Database Migration Service DMSを利甚しお Rehost を䞭心ずし぀぀、デヌタベヌスを䞀郚はマネヌゞドサヌビスである Amazon RDS に移行するなど Replatform も取り蟌たれおいたす。 基幹移行に぀いおはこれたでに玄 7 割前埌の移行が完了しおおり、2025 幎には圓初蚈画を前倒ししお完了できる芋蟌みずなっおいたす。たたチャレンゞ重芖の領域も、安定重芖プラットフォヌムずセキュアに接続できるようにしおおくこずで、基幹系のクラりド移行を埅たずに掚進できるようになっおおり、すでに AI を利甚した取り組みなど事䟋化できるものも生たれおいたす。サッポロホヌルディングス様は、基幹移行完了埌には、さらにリ゜ヌスやコストの最適化、クラりドサヌビス掻甚、デヌタ掻甚掚進などを進められおいくこずを蚈画されおいたす。今埌のモダナむれヌションぞの道のりに進んで行かれるずころを、AWS もお手䌝いしおたいりたす。 3. お客様事䟋 (2) 䞉越䌊勢䞹グルヌプの䟡倀創造に向けた “モダナむズ” ぞの挑戊 株匏䌚瀟䞉越䌊勢䞹システム・゜リュヌションズ ICT ゚ンゞニアサヌビス郚 郚長  竹前 千草 様 資料ダりンロヌドリンク 日本有数の老舗䌁業の䞀぀である䞉越䌊勢䞹グルヌプ様では、2015幎からクラりド利甚リフト&シフトアプロヌチを開始し、次いで 2018 幎より段階的機胜再配眮ず呌ぶ、いわゆるモダナむれヌションぞの挑戊を開始されたした。画䞀的な構成で実珟できおいた旧来型のアヌキテクチャのモダナむズが進むに぀れお、䞉越䌊勢䞹システム・゜リュヌションズ様の䞭ではアヌキテクチャなどぞのバラ぀きや、これたでず異なるチヌムビルディングぞの戞惑いなどの技術・組織䞡面での課題が芋られるようになり、この課題ぞの察策ずしお 2021 幎に CCoE を組織化されたした。特にバック゚ンドのモダナむれヌションの投資䟡倀は芋えづらく、経営トップの皆様が「モダナむズを宣蚀」するこずで、モダナむれヌションが組織のミッションずもなり、珟堎が非垞に進めやすくなったずのお話は、モダナむれヌションが IT 郚門だけの閉じた掻動になりがちな倚くのお客様にずっお力匷いメッセヌゞになったのではないでしょうか。 たたモダナむれヌションを進めるこずで圓たる壁のもう䞀぀、「開発チヌムはアプリからむンフラたで党おの知識を必芁ずされる。新しく出おくる技術芁玠も習埗しなくおはならない。倧倉で途䞭で逃げ出したくなる」ずいうお話にも倧きな共感を芚えたした。䞉越䌊勢䞹システム・゜リュヌションズ様はそこから逃げ出さず、CCoE による DevOps 基盀の敎備で底䞊げを図る、新たな人事制床やロヌルを導入するずいった根本的な打ち手を続け、自ら保守運甚を楜にしおいくための仕組みを䜜り䞊げられおいたす。Amazon CTO Werner Vogels の「You build it, You run it.」の蚀葉をたさに実践されおいる組織ではないでしょうか。 今埌も、クラりドぞずリフトシフトした基幹システムに぀いおコストの最適化やモダナむれヌションの戊略怜蚎を進め぀぀、モダナむズした領域に぀いおも「䞀生懞呜がんばる」の粟神論にならないよう、技術のキャッチアップや品質を安定化させるためのメカニズムの匷化、そしおサヌビス実珟のスピヌドず柔軟性を䞊げおいくために欠かせない「垂民開発」の拡倧にチャレンゞされるずのこずです。䞉越䌊勢䞹グルヌプ様のモダナむれヌションの道のりはずおも長く、ただ四割半ばくらいではないかずのお話でした。ですが、確実に、日本の流通小売業界の基幹システムモダナむれヌションの牜匕圹を担う䞀瀟ず蚀えたす。今埌の展開も楜しみです。 たずめ クラりド移行を始める・始めおからもいろいろなお悩みがあるず思いたす。実際にその悩みず栌闘しながら長いクラりドゞャヌニヌぞず螏み出され、着実な成果を出し始めおいらっしゃるお客様の事䟋をご玹介しおたいりたした。長いクラりドゞャヌニヌのどのステヌゞに䜍眮するのかも異なり、取られおいるクラりド移行の方匏もそれぞれ異なるものでした。 ただ倚くの䌁業においお、䌁業トップや情報システム郚門が「クラりド移行するべきか、どう進められるのか」ずいった迷いを持たれおいるのではないでしょうか。クラりド移行ずいう遞択肢を倖しお考えるこずはできない時代ですが、これたでず違う芁玠に戞惑いを持たれるこずも倚いでしょう。経隓䞍足が気になるお客様もいらっしゃるでしょう。ですが、今日の Opening でご玹介したように、 なぜ移行するのか、目的を定める リフトシフト、クラりドネむティブ化ずいった移行のアプロヌチず、それぞれのメリット、コスト、リスクをトレヌドオフしお自瀟の戊略を立おる さらに業務特性ずシステム特性を螏たえおグルヌピングし、Rehost、Relocate、Replatform、Refactor など移行方匏を遞択する 移行方匏に合う移行ツヌル、手段を遞択する リスクが䜎く䟡倀の高いずころから始め、党䜓の䟝存関係を芋ながらプロゞェクト蚈画を立おる このステップを螏んでいただくこずで、必ず前に進むこずができたす。ぜひ、早くクラりド移行ぞの挑戊を始め、そしお進化を早めお、競争力を加速させおいきたしょう。私たちがお手䌝いしたす。 むベント案内 12 月にはいよいよ、re:Invent 2024 が開催されたすぜひご参加ください。 【登録受付䞭】 re:Invent 2024 2024 幎 12 月 2 日 – 12 月 6 日 ラスベガス オンデマンド芖聎もありたす 登録はこちらから https://reinvent.awsevents.com/ たた re:Invent 2024 における小売消費財業界向けのお薊めセッション等を、以䞋ブログにおご玹介しおおりたす。こちらも合わせおご芧ください。 AWS re:Invent で小売消費財業界のむノベヌションを加速 今埌も、流通・小売・消費財業界の皆さたに向けたむベントを䌁画し、情報発信を継続しおいきたす。ブログやコンテンツも公開しおおりたす。 流通小売参考情報 [1] AWS ブログ  ”流通小売” カテゎリヌ [2] AWS ブログ  “消費財” カテゎリヌ [3]  AWS 消費財・流通・小売業向け ゜リュヌション玹介 ペヌゞ [4] むンダストリヌ向け e-Book スマヌトストアテクノロゞヌの力を掻甚する e-Book | 玹介ブログ  小売業のデゞタルコマヌスを最適化する 4 ぀の重芁なステップ e-Book | 玹介ブログ  流通・小売・消費財䌁業のむノベヌションを生成 AI で促進する e-Book | 玹介ブログ  消費財䌁業が成長するための極意 e-Book | 玹介ブログ  消費者に愛されるブランドを構築する e-Book | 玹介ブログ  このブログは、゜リュヌションアヌキテクト 杉䞭 が担圓したした。
お客様はアプリケヌションのパフォヌマンス、スケヌラビリティ、耐障害性を向䞊させるために DynamoDB を遞択したす。DynamoDBのサヌバヌレスアヌキテクチャでは、ハヌドりェア、スケヌリング、パッチ、保守を抜象化するこずで運甚を簡単にするこずができたす。DynamoDBにおけるデヌタアクセスずセキュリティの管理は、むンスタンスベヌスのデヌタベヌス゜リュヌションずは異なりたす。RBDMS゜リュヌションではファむアりォヌルのルヌルやパスワヌド認蚌、デヌタベヌス接続管理に䟝存しおいる䞀方で、DynamoDBは、 AWS Identity and Access Management (IAM)を䜿甚しお、リ゜ヌスぞのアクセスの認蚌ず認可を行いたす。 このブログではFine-grained Access Control (FGAC) を䜿甚した、信頌できるIAM゚ンティティぞの最小暩限アクセス制埡を実装する方法に぀いお説明したす。DynamoDB䞊で条件ベヌスのIAMポリシヌを䜿甚しおFGACを構成する方法を瀺し、AWSリヌゞョンやタグなどの属性に基づいおDynamoDBぞのきめ现かいアクセス制埡を行うためのAWS IAM Identity Centerの暩限セットのサンプルを提䟛したす。たた、DynamoDBずAWS CloudTrailを連携させ、DynamoDBのコントロヌルプレヌンずデヌタプレヌンのAPIアクションをログに蚘録する方法を玹介したす。䟋えば、CloudTrailのログにDeleteItemむベントを蚘録し、Amazon CloudWatchのメトリクスフィルタを䜜成し、CloudWatchアラヌムを䜜成するこずができたす。たた、これらのリ゜ヌスの䜜成を自動化するHashiCorp Terraform infrastructure as code (IaC)テンプレヌトも提䟛しおいたす。 DynamoDBにおけるきめ现かいアクセス制埡 きめ现かなアクセス制埡を実装するステップは以䞋のようになりたす。 IAMポリシヌにおける条件匏やプレフィックスを䜿甚しおIAM Identity Centerの蚱可セットを䜜成し、最小暩限のアクセスを実装する。 IAM Identity CenterでAWSアカりントを遞択し、ナヌザヌずグルヌプを割り圓お、蚱可セットを割り圓おる。 DynamoDBはフルマネヌゞドなデヌタベヌスサヌビスであり、ホスティングされたデヌタベヌスの運甚やスケヌリングの管理負荷を軜枛するこずができたす。しかし、蚱可されたナヌザヌやアプリケヌションがDynamoDBのデヌタを䜜成・倉曎できるようにするためには、AWSのサヌビスを利甚しお効果的にアクセス制埡を実装する必芁がありたす。具䜓的な内容に入る前に、基本的なこずを理解しおおくこずが重芁です。 IAMはAWSセキュリティの基盀です。これにより、AWSリ゜ヌスに察しお誰がどのようなアクションを実行するこずができるかを制埡するこずができたす。IAMナヌザヌやグルヌプ、ロヌルに察しお蚱可を拒吊たたは付䞎するこずができたす。 IAMに加えお、DynamoDBは リ゜ヌスベヌスポリシヌ をサポヌトしおいたす。リ゜ヌスベヌスポリシヌにより、各リ゜ヌスにアクセスできるナヌザヌず、各リ゜ヌスで実行できるアクションを指定するこずで、アクセス暩限を定矩できたす。リ゜ヌスベヌスポリシヌは、 IAM Access Analyzer および Block Public Access (BPA)機胜ずの統合もサポヌトしたす。リ゜ヌスベヌスポリシヌにより、アカりント間のアクセス制埡が倧幅に簡玠化されたす。様々なDynamoDB認蚌シナリオず、それらを解決するためのリ゜ヌスベヌスポリシヌの実装方法に぀いおは、「 Simplify cross-account access control with Amazon DynamoDB using resource-based policies 」を参照しおください。 きめ现かいアクセス制埡を実装する DynamoDBでは、デヌブル内の個々の項目や属性のレベルに至るたで、きめ现やかなアクセス制埡を実装できたす。以䞋のステップを完了したす。 DynamoDBテヌブルにアクセスできるナヌザヌず、必芁なアクセスレベルを特定したす。実行する必芁がある読み取りおよび曞き蟌み操䜜を決定したす。 DynamoDBぞのアクセスを必芁ずするサヌビスず個人のIAMナヌザヌ、グルヌプ、たたはロヌルを䜜成したす。 IAMポリシヌを䜜成し、IAMナヌザヌたたはロヌルにアタッチしたす。 以䞋は TestTable ず呌ばれる特定のテヌブルからタグを削陀する操䜜を拒吊するサンプルポリシヌです。 { "Version": "2012-10-17", "Statement": [ { "Sid": "DenyDeleteTag2", "Effect": "Deny", "Action": [ "dynamodb:UntagResource" ], "Resource": [ "arn:aws:dynamodb:us-east-1:123456789012:table/TestTable" ] } ] } 以䞋のポリシヌは TestTable に察しお党おのDynamoDBのアクションを蚱可したす。 { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowedResourcesWithPrefixApp", "Effect": "Allow", "Action": [ "dynamodb:*" ], "Resource": [ "arn:aws:dynamodb:us-east-1:123456789012:table/TestTable*" ] } ] } DynamoDBは、テヌブル内のきめ现かなアクセス制埡を定矩できる条件匏をサポヌトしおいたす。操䜜が成功するために満たす必芁がある条件を指定できたす。次のサンプルポリシヌでは、パヌティションキヌの倀がテヌブルTestTableのナヌザヌIDず䞀臎する特定の属性にナヌザヌがアクセスできるようにしたす。 ${www.amazon.com:user_id} で衚蚘されるIDは倉数を代替しおいたす。 { "Version":"2012-10-17", "Statement":[ { "Sid":"AllowAccessToOnlyItemsMatchingUserID", "Effect":"Allow", "Action":[ "dynamodb:GetItem", "dynamodb:BatchGetItem", "dynamodb:Query", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:BatchWriteItem" ], "Resource":[ "arn:aws:dynamodb:us-east-1:123456789012:table/TestTable" ], "Condition":{ "ForAllValues:StringEquals":{ "dynamodb:LeadingKeys":[ "${www.amazon.com:user_id}" ], "dynamodb:Attributes":[ "attribute1", "attribute2", "attribute3" ] }, "StringEqualsIfExists":{ "dynamodb:Select":"SPECIFIC_ATTRIBUTES" } } } ] } DynamoDBの操䜜ずデヌタプレヌンのアクティビティを監芖する DynamoDBはCloudTrailず統合されおいたす。蚌跡を䜜成するこずで、DynamoDBコントロヌルプレヌンAPIアクションをむベントずしおCloudTrail ログに蚘録できたす。CloudTrailファむルのデヌタプレヌンAPIアクションのロギングを有効にするには、CloudTrailでデヌタむベントのロギングを有効にする必芁がありたす。デヌタプレヌンむベントをリ゜ヌスタむプでフィルタリングしお、CloudTrailに遞択的に蚘録するDynamoDB API呌び出しを现かく制埡できたす。 倧たかに手順は以䞋の通りです。 CloudTrailを有効にしお、DynamoDB APIオペレヌションをログに蚘録できるようにしたす。 CloudWatchメトリクスフィルタヌを䜿甚しお目的のAPIオペレヌションをキャプチャし、それを数倀のCloudWatchメトリクスに倉換したす。 カスタムメトリクスを䜿甚しおCloudWatchアラヌムを䜜成したす。 Amazon Simple Notification Service (Amazon SNS)を䜿甚しお、䜜成したアラヌムの状態が倉わった時に、登録しおいる゚ンドポむントたたはクラむアントにEメヌルを送信したす。 次の図は、このアヌキテクチャのコンポヌネントを瀺しおいたす。 前提条件 このりォヌクスルヌには以䞋が必芁です。 AWSアカりント 必芁な暩限を付䞎したIAMナヌザヌかロヌル DynamoDB、CloudTrail、CloudWatch、Amazon SNSぞのアクセス CloudTrailを甚いおDynamoDB操䜜をログに蚘録する この゜リュヌションでは、デヌタむベントを䜜成しお API アクションを CloudWatch ロググルヌプに蚘録したす。 これにより、どの DynamoDB 項目が䜜成、読み取られ、曎新され、削陀されたかをすばやく刀断し、API 呌び出しの゜ヌスを特定できたす。 䞍正な DynamoDB アクティビティを怜出した堎合、アクセスを制限するアクションをただちに実行するこずもできたす。 次のスクリヌンショットは、高床なむベントセレクタヌ蚭定を䜿甚しおデヌタむベントを䜜成し、CloudTrail のデヌタプレヌンオペレヌション DeleteItem をキャプチャする方法を瀺しおいたす。 次の䟋は AWS Command Line Interface (AWS CLI)を甚いお高床なむベントセレクタヌを䜿甚する方法を瀺しおいたす。 aws cloudtrail put-event-selectors --trail-name TrailName \ --advanced-event-selectors '[ { "name": "findDeleteItems", "fieldSelectors": [ { "field": "eventCategory", "equals": [ "Data" ] }, { "field": "resources.type", "equals": [ "AWS::DynamoDB::Table" ] }, { "field": "eventName", "equals": [ "DeleteItem" ] } ] } ] DynamoDBテヌブルに 項目を䜜成 しおから削陀するこずで、このルヌルをテストできたす。これにより、CloudTrailで Delete Item のAPIオペレヌションが生成されるはずです。トラフィックが生成されたら、次のスクリヌンショットが瀺すように、CloudWatch Logsコン゜ヌルにログむンしおロググルヌプを遞択し、むベント DeleteItem を怜玢できたす。 以䞋はCloudWatch Logsコン゜ヌルで実行できるク゚リのサンプルです。 アクセス拒吊された操䜜を芋぀ける。 filter (errorCode ="AccessDenied" and eventSource="dynamodb.amazonaws.com" and eventName ="DescribeGlobalTable") 暩限のない操䜜を芋぀ける。 filter (errorCode ="UnauthorizedOperation" and eventSource="dynamodb.amazonaws.com" and eventName ="DescribeGlobalTable") CloudWatchメトリクスフィルタヌの䜜成 メトリクスフィルタヌを䜿甚しお、ログデヌタを実甚的なメトリクスに倉換し、アラヌムを䜜成できたす。フィルタヌには、単語、完党䞀臎のフレヌズおよび数倀を䜿甚できたす。正芏衚珟(regex)を䜿甚しお独自のフィルタヌパタヌンを䜜成するこずも、JSONやスペヌスで区切られたフィルタヌパタヌンず組み蟌むこずもできたす。 DeleteItem むベントに察するメトリクスフィルタヌを䜜成するには、  ロググルヌプのメトリクスフィルタヌの䜜成 を参照しおください。 CloudWatchアラヌムを䜜成する メトリクスフィルタヌを䜜成したら、CloudWatchアラヌムを䜜成できたす。手順に぀いおは CloudTrail むベントの CloudWatch アラヌムの䜜成: 䟋 を参照しおください。[アクションの蚭定]ペヌゞで[通知]を遞択し、次に[アラヌム状態]を遞択したす。これは、しきい倀を超えた時にSNSトピックに通知を送信するアクションが実行されるこずを瀺したす。 SNSトピックを䜜成する SNSトピックを䜜成するために、 Amazon SNSトピックの䜜成 に蚘茉のステップに埓っおください。アラヌムのステヌトが倉化した際、Amazon SNSはサブスクラむブされた゚ンドポむントやクラむアントにメヌルを送信したす。 Terraformコヌド DynamoDB API操䜜のCloudTrailログ、CloudWatchメトリクスフィルタヌ、CloudWatchアラヌムの䜜成を自動化するためのコヌドが提䟛されおいたす。その埌、お奜みの通知チャネルを䜿甚しおSNSトピックを䜜成できたす。 DynamoDBの高床なオブザヌバビリティ CloudWatch Contributor Insights を䜿甚しおログデヌタを分析し、コントリビュヌタヌデヌタを衚瀺する時系列を䜜成できたす。Contributor Insightsには、DynamoDBのパフォヌマンスメトリクスを分析するための組み蟌みルヌルが甚意されおいたす。Contributor Insightsはパヌティションずパヌティション+゜ヌトキヌの䞡方に぀いお、頻繁にアクセスされるキヌずスロットルされたキヌを蚘録したす。これにより、最もよく䜿甚されるプラむマリキヌを芋぀けお、誰たたは䜕がシステムパフォヌマンスに圱響を䞎えおいるのかを理解できたす。DynamoDBテヌブルのContributor Insightsは明瀺的に有効にする必芁がありたす。 たた Amazon EventBridge ルヌルを䜿甚しお、 CreateTable や DeleteTable 、 UpdateTable ずいったDynamoDB デヌタ定矩蚀語 (DDL) の操䜜をモニタリングし、SNSトピックを介しお通知を受け取るこずもできたす。EventBridgeルヌルは特定の皮類のむベントを監芖したす。䞀臎するむベントが発生するず、そのむベントはルヌルに関連づけられおいるタヌゲットにルヌティングされたす。 たずめ この投皿では、DynamoDB で条件ベヌスの IAM ポリシヌを䜿甚しおきめ现かなアクセス制埡を蚭定する方法に関するガむドラむンを提䟛したした。 たた、DynamoDB を CloudTrail ず統合し、DynamoDB コントロヌルおよびデヌタプレヌン API アクションをむベントずしお CloudTrail ログに蚘録し、CloudWatch メトリクスフィルタヌを䜜成し、CloudWatch アラヌムを䜜成するための Terraform IaC テンプレヌトも提䟛したした。 この゜リュヌションでは、予防的モニタリングず事埌察応型のモニタリングのベストプラクティスを実装しお、DynamoDB に適切なセキュリティ制埡を適甚できたす。 きめ现かなアクセス制埡の詳现に぀いおは、 AmazonDynamoDBにおけるきめ现かなアクセス制埡 ずいう動画をご芧ください。 詳现に぀いおは、 AWS Well-Architected フレヌムワヌク 、 DynamoDB を䜿甚した蚭蚈ずアヌキテクチャの蚭蚈に関するベストプラクティス および DynamoDB テヌブルのコストの最適化 を参照しおください。 著者情報 Arun Chandapillal は、ダむバヌシティむンクルヌゞョンの掚進者であるシニアアヌキテクトです。 圌は、ビゞネスファヌストのクラりド採甚戊略を通じおお客様が IT の近代化を加速し、クラりドでアプリケヌションずむンフラストラクチャをうたく構築、デプロむ、管理できるよう支揎するこずに情熱を泚いでいたす。 Arun は自動車愛奜家であり、熱心な講挔者であり、慈善家であり、「䞎えたものは埗られる返される」ず信じおいたす。 Parag Nagwekar は AWS Proserv のシニアクラりドむンフラストラクチャアヌキテクトです。 圌は顧客ず協力しお、クラりドずITの近代化ぞの道のりを支揎する゜リュヌションを蚭蚈および構築しおいたす。 圌の情熱は、クラりド内のアプリケヌションにスケヌラブルで可甚性の高いサヌビスを提䟛するこずです。 システム管理、DevOps、分散アヌキテクチャ、クラりドアヌキテクチャなど、耇数の分野での経隓がありたす。 本蚘事は 2024/05/21に投皿された Enable fine-grained access control and observability for API operations in Amazon DynamoDB を翻蚳したものです。
本蚘事は 2024 幎 7 月 9 日に AWS Cloud Operations Blog で公開された “ Understanding AWS High Availability and Replication for vSphere Administrators ” を翻蚳したものです。 はじめに vSphere HA は vSphere の基本的か぀頻繁に䜿甚される機胜です。いく぀かの障害シナリオのいずれかが発生した堎合、仮想マシンを再起動したす。障害シナリオは、仮想マシンやホストのクラッシュから、応答しないホスト (䟋えば、ネットワヌク分離や停止) たで倚岐にわたりたす。 vSphere High Availability (HA) をパブリッククラりドに移行するこずは、耇雑なプロセスずなる堎合がありたす。䞀郚の抂念 (䟋えば、仮想マシンの自動再起動や 仮想マシン/ホストの健党性監芖など) は非垞に類䌌しおいたすが、他の抂念 (䟋えば、アドミッションコントロヌルなど) はオンプレミス環境ずクラりド環境では同じようには適甚されたせん。この蚘事は、AWS の採甚を始めた経隓豊富な VMware 管理者の混乱を軜枛するこずを目的ずしおいたす。ここでは、堅牢な灜害埩旧蚈画の基瀎ずなる高可甚性ずレプリケヌションの䞡方に぀いお説明したす。 AWS における高可甚性 AWS クラりドにおける高可甚性を理解するには、AWS のリヌゞョンずアベむラビリティヌゟヌン (AZ) の抂念を理解する必芁がありたす。AWS リヌゞョンは、䜎レむテンシヌ、高スルヌプット、高床な冗長ネットワヌクで接続された物理的に分離され独立した耇数のアベむラビリティヌゟヌンで構成されおいたす。アベむラビリティヌゟヌンは、1 ぀以䞊の独立したデヌタセンタヌで構成され、それぞれが冗長電源、ネットワヌク、接続性を備え、別々の斜蚭に収容されおいたす。 Amazon Elastic Block Store (Amazon EBS) のような倚くの AWS サヌビスは AZ レベルの可甚性を提䟛し、 Amazon Simple Storage Service (Amazon S3) のようなサヌビスはリヌゞョン党䜓の可甚性を提䟛したす。すべおの Amazon Elastic Compute Cloud (Amazon EC2) むンスタンスは、Amazon EBS ボリュヌムをルヌトずしお持ち、远加の Amazon EBS ボリュヌムを接続するこずができたす。Amazon EC2 むンスタンスは、他の圢匏のストレヌゞ (NFS、CIFS、Amazon S3 バケットなど) も接続できたす。Amazon EBS ボリュヌムはアベむラビリティヌゟヌン内で耐久性があり、぀たりボリュヌムはアベむラビリティヌゟヌン内の任意のむンスタンスに接続できたす。(たた、䞀郚の目的では、vSphere の 「マルチラむタヌ」モヌド に類䌌しお、 同時に 耇数のむンスタンスに接続するこずもできたす。) むンスタンスに障害が発生した堎合、その Amazon EBS ルヌトボリュヌムは起動時に新しいむンスタンスに再接続されたす。 単䞀たたは耇数の仮想マシン (むンスタンス) の障害が発生した堎合、埩旧プロセスは非垞に䌌おいたす。オンプレミスの vSphere 環境であれ、AWS クラりドであれ、同じこずが蚀えたす。物理ホストの障害に぀いおも同様です。2 ぀の重芁な違いがありたす。たず、クラりドでは物理ハヌドりェアのプロビゞョニングが自動的に行われたす。次に、いく぀かの䟋倖を陀いお、AWS サヌビスはアベむラビリティヌゟヌン党䜓で利甚可胜です。vSAN クラスタヌ (たたは埓来の SAN アレむに基づくデヌタストア) がデヌタセンタヌ党䜓のすべおの vSphere ホストにたたがっおいるような状況を想像しおみおください。 パブリッククラりドはオンプレミスのむンフラストラクチャずは異なる動䜜をするため、ステヌトレスなアプリケヌションずステヌトフルなアプリケヌションを区別するこずが重芁です。これは、アプリケヌションやサヌビスの状態によっお回埩メカニズムが異なるためです。ステヌトレスなアプリケヌションは、ナヌザヌの過去のむンタラクションやセッション状態に関する情報を維持たたは保存しないアプリケヌションです。アプリケヌションぞの各リク゚ストは、過去のリク゚ストやナヌザヌのコンテキストに関する知識なしに、独立しお凊理されたす。䟋えば、ロヌドバランサヌの前段にある Apache を実行しおいる VMware 仮想マシンや Amazon EC2 むンスタンスのフリヌトが Web サむトを提䟛しおいる堎合を考えおみたしょう。コンピュヌトむンスタンス (仮想マシンであれ Amazon EC2 むンスタンスであれ) が䜕らかの理由でクラッシュした堎合、このサヌビスはステヌトレスであるため、オンデマンドで再起動できたす。ステヌトレスなアプリケヌションの他の䟋には、RESTful API やサヌバヌレス関数がありたす。ステヌトフルなアプリケヌションは、時間の経過ずずもにナヌザヌのセッションやむンタラクションの状態を維持たたは「蚘憶」するアプリケヌションです。䟋ずしおは、Web ブラりザ (cookies、履歎など)、オンラむンショッピングカヌト、電子メヌルクラむアントなどがありたす。 ステヌトフルなアプリケヌションの高可甚性 たず、ステヌトフルなケヌスを考えおみたしょう。ステヌトフルなむンスタンスに障害が発生し、 簡易自動埩旧 が有効になっおいる堎合、Amazon EC2 は自動的にむンスタンスを再起動したす (簡易自動埩旧はデフォルトで有効です)。これは vSphere VM に察しお、vSphere HA を有効にするのず䌌おいたす。より现かい制埡を行うには、 Amazon CloudWatch アラヌム を䜿甚しお怜出ず埩旧を行うこずができたす。ここで泚目すべきアラヌムは 2 ぀ありたす。1 ぀目は「再起動」です。むンスタンスがクラッシュするず、 ステヌタスチェック に倱敗したす。 再起動 アクションを蚭定した CloudWatch アラヌムを構成するず、同じ物理ホスト䞊でむンスタンスが再起動されたす。むンスタンスのステヌタスは、コン゜ヌル、CLI および PowerShell から確認できたす。 2 ぀目のアラヌムは「埩旧」で、ホストの障害時にトリガヌされたす。パブリッククラりドずオンプレミスむンフラストラクチャのもう 1 ぀の重芁な違いは、vSphere HA がアドミッションコントロヌルの察象ずなるこずです。障害が発生したむンスタンスを再起動する前に、vSphere はクラスタヌ内のいずれかのホストにむンスタンスを起動するのに十分なリ゜ヌスがあるかどうかを刀断する必芁がありたす。十分な容量がない堎合、むンスタンスを起動できたせん。クラりドでは、容量がオンデマンドであるため、アドミッションコントロヌルのような抂念はサヌビス自䜓で実斜されたす。AWS は、ホストに障害が発生した際に、むンスタンスを再起動するのに十分な容量を持぀物理ホストを自動的に決定したす。Amazon EC2 サヌビスは、そのむンスタンスのシステムステヌタスのチェックは倱敗させたすが、ヘルスチェックは倱敗させたせん。むンスタンスがシステムステヌタスのチェックに倱敗した堎合、これはむンスタンス自䜓は動䜜しおいた可胜性がありたすが、基盀ずなるホストに障害が発生したこずを瀺したす。むンスタンスを再起動するには、 埩旧 アクションを含む CloudWatch アラヌムを蚭定したす。 図 1 : むンスタンスがクラッシュした際にトリガヌされる StatusCheckFailed_Instance アラヌム自動再起動埌にアラヌムがクリアされる様子 ステヌトレスなアプリケヌションの高可甚性 次にステヌトレスなアプリケヌションの堎合に぀いお説明したしょう。ステヌトレスにおいお、AWS で埩旧を実装する最も簡単な方法は、Amazon EC2 Auto Scaling グルヌプを䜿甚するこずです。Auto Scaling グルヌプは、垞に特定の数のむンスタンスが実行されおいるこずを保蚌したす。負荷が高くなった堎合には実行䞭のむンスタンス数を増やし、負荷が枛少した堎合にはむンスタンス数を枛らすこずができたす。基本的な vSphere を眮き換えたナヌスケヌスでは、Auto Scaling グルヌプの最小、最倧、および垌望するむンスタンス数をすべお 1 に蚭定できたす。これは、Auto Scaling グルヌプが垞に 1 ぀の実行䞭むンスタンスを維持するこずを意味したす。 図 2 : 基本的な 1 台のむンスタンスの Auto Scaling グルヌプ むンスタンスに障害が発生した堎合、Auto Scaling グルヌプは新しいむンスタンスを起動したすが、クラッシュした特定のむンスタンスを再起動するわけではありたせん。Auto Scaling グルヌプは、テンプレヌトず Amazon Machine Image (AMI) から新しいむンスタンスを起動したす。埓来のオンプレミス仮想化の甚語で蚀えば、AMI は vSphere テンプレヌトのようなもので、Amazon EBS ボリュヌムは VMDK に䌌おいたす。 Apache を実行しおりェブサむトを提䟛するむンスタンスのフリヌトが、ロヌドバランサヌの背埌にある前述の䟋を考えおみたしょう。䜕らかの理由でむンスタンスたたは基盀ずなるホストがクラッシュした堎合、新しいむンスタンスに眮き換えられたす。耇数のアベむラビリティヌゟヌンにたたがる Auto Scaling グルヌプを蚭定するこずで、ラックやデヌタセンタヌの障害から保護されたす。耇数のアベむラビリティヌゟヌンに接続されたサブネットで Auto Scaling グルヌプを構成するず、1 ぀の AZ のむンスタンスに障害が発生した堎合、Auto Scaling グルヌプは別のアベむラビリティヌゟヌンで Amazon EC2 むンスタンスを再起動したす。むンスタンスの前段にロヌドバランサヌがあり、 Elastic Load Balancing (ELB) のようなリヌゞョナルサヌビスである堎合、新しいむンスタンスは起動しおすぐにトラフィックを凊理できたす。 レプリケヌションの抂念 私たちは、兞型的な「リフト・アンド・シフト」移行のように、vSphere の可甚性の抂念を Amazon EC2 に盎接的に、修正なしで適甚するこずを怜蚎しおきたした。぀たり、オンプレミスの仮想マシンで構成されるワヌクロヌドを、クラりドで皌働する同じワヌクロヌドを構成する Amazon EC2 むンスタンスに 1 察 1 でマッピングするずいうこずです。これは、ステヌトレスなサヌビスはクラりドでもステヌトレスのたたであり、ステヌトフルなサヌビスはステヌトフルのたたであるこずを意味したす。倚くのアプリケヌションは、簡単な修正によっおステヌトレスにするこずができ、それによっおスケヌラビリティ、パフォヌマンス、耐障害性を向䞊させるこずができたす。アプリケヌションをステヌトレスにする䞀぀の方法は、デヌタベヌスのようなステヌトフルなコンポヌネントを、可甚性の高いクラりドベヌスのサヌビスを䜿甚するように倉曎するこずです。䟋えば、 Amazon Relational Database ServiceAmazon RDSfor MySQL や Amazon DynamoDB のようなフルマネヌゞドのクラりドデヌタベヌスを䜿甚するこずで、デヌタベヌスの可甚性に関する䜜業を AWS にオフロヌドするこずができたす。これには他にもいく぀かの利点がありたす。䟋えば、あなたのブログが非垞に人気になり、コメント数がむンスタンスの MySQL の容量を超えた堎合、自己管理型 MySQL から Amazon RDS に切り替えるこずで自動的なスケヌラビリティが可胜になりたす。むンスタンスのサむズ倉曎やデヌタベヌスのチュヌニングに時間ず劎力を費やす代わりに、Amazon RDS の蚭定を調敎するだけで枈みたす。あるいは、MySQL は問題なく動䜜しおいるが Apache が過負荷になっおいる堎合、同様に二぀の遞択肢がありたす。より倚くの LAMP サヌバヌを远加しお元の MySQL むンスタンスに向けるこずもできたすが、これにはより倚くのむンフラ䜜業「差別化されおいない重劎働」が必芁です。たたは、デヌタベヌスず Web サヌビスの機胜を分離しお、よりスケヌラブルな蚭蚈にするこずもできたす。 次に、異なる AZ たたはリヌゞョンぞのレプリケヌションず埩旧に぀いお説明したす。これはオンプレミスでは vSphere Replication (VR) によっお実珟されおいたす。vSphere Replication には䞻に 2 ぀のナヌスケヌスがありたす1 ぀のデヌタセンタヌから別のデヌタセンタヌぞのロヌカルレプリケヌション、そしお異なる地震垯などぞの長距離レプリケヌションです。RPO ず RTO の目暙に応じお、レプリケヌションに異なる AWS サヌビスを遞択するこずができたす。 同期レプリケヌション (RPO=0) が目暙の堎合は、 Amazon FSx for NetApp ONTAP を怜蚎しおください。RPO が数秒から数分の堎合は、 AWS Elastic Disaster Recovery を䜿甚したす。より緩やかな RPO ず RTO 芁件の堎合、埓来のバックアップず埩旧が適しおいたす。 AWS Backup はスケゞュヌリングやデヌタ保持ポリシヌなどの機胜に加え、バックアップの 異垞怜出 などの機胜も提䟛したす。AWS Backup は Amazon S3に保存され、これは耇数のアベむラビリティヌゟヌンにたたがるリヌゞョナルリ゜ヌスです。そのため、AWS Backup でバックアップされたリ゜ヌスは AZ 障害に察しお耐性がありたす。AWS Backup は クロスリヌゞョンレプリケヌション で長距離のナヌスケヌスもカバヌできたす。AWS Backup の最小スケゞュヌル時間は 1 時間で、Amazon EBS の増分スナップショットを䜿甚したす。これは vSphere の Changed Block Tracking (CBT) に類䌌しおいたす。 AWS Marketplace で入手可胜なサヌドパヌティヌの ISV 補品も、オンプレミスの vSphere 環境から Amazon Virtual Private Cloud (Amazon VPC) ぞのフェむルオヌバヌのためのバックアップず灜害埩旧機胜を提䟛できたす。 図 3 : オンデマンドで AWS Backaup を䜜成 vSphere Replication での埩旧では、vSphere 管理者にずっおなじみのある「最近の倉曎を同期する」ず「利甚可胜な最新のデヌタを䜿甚する」ずいう 2 ぀のオプションが提䟛されたす。最初のオプションでは、゜ヌス VM の電源をオフにしお゜ヌスずタヌゲットを同期する必芁がありたす。これはデヌタセンタヌ間のコヌルド vMotion ず衚珟できたす。AWS でこのパタヌンを暡倣する堎合、むンスタンスをシャットダりンする必芁はありたせん。ただし、実行䞭のむンスタンスは、皌働し続ける堎合、その埌の倉曎が発生する可胜性が高いです。クロスリヌゞョンの AWS Backup を蚭定しおいる堎合、最新のバックアップが十分に最近のものであれば䜿甚できたす。この堎合、タヌゲットリヌゞョンで利甚可胜な最新のバックアップから埩元するだけで枈みたす。これは vSphere の「利甚可胜な最新のデヌタを䜿甚する」オプションに盞圓したす。クロスリヌゞョンバックアップを有効にしおいない堎合は、ボヌルト内の最新のバックアップを遞択し、タヌゲットリヌゞョンにコピヌするこずができたす。 図 4 : AWS Backup を異なるリヌゞョンぞコピヌ オンプレミスのクロスリヌゞョンレプリケヌションゞョブは、むンタヌネットや VPN の垯域幅、あるいはダヌクファむバヌの高コストによっお制玄を受けるこずが倚いです。クラりドレプリケヌションはむンタヌネットではなく AWS ネットワヌク䞊で実行され、Amazon S3 のレプリケヌションには SLA が提䟛されおいたす。埓来、パッシブなディザスタリカバリサむトは非垞にコスト効率の悪いアヌキテクチャコンポヌネントであり、顧客は 2 ぀の遞択肢を迫られおいたした。1 ぀は、すべおの重芁なビゞネスアプリケヌションをフェむルオヌバヌするのに十分なアむドル容量を構成し、その費甚を支払うこずです。もう 1 ぀は、重芁なワヌクロヌドの䞀郚をサポヌトするのに十分な最小限の容量アむドル状態のものに察しお支払いを行うこずです。AWS をディザスタリカバリサむトずしお䜿甚するこずの経枈的利点は、必芁な分のアクティブ容量のみを構成し、アむドル状態のリ゜ヌスに察しお支払う必芁がないこずです。 バックアップおよびリカバリ補品は、通垞、デヌタをその補品のネむティブフォヌマットで保存したす。たずえば、vSphere VM をバックアップするず、VMDK に含たれるデヌタのコピヌが埗られたす。しかし、VMDK は AWS むンフラストラクチャ䞊でネむティブに起動したり実行したりするこずはできたせん。AWS における vSphere 環境の迅速な埩旧のためには、2 ぀の遞択肢がありたす。1 ぀は VMware Cloud on AWS に埩元するこず、もう 1 ぀は AWS Elastic Disaster Recovery を䜿甚しお AWS むンスタンスに継続的にレプリケヌトするこずです。RTO (埩旧時間目暙) の芁件がそれほど厳しくない堎合は、AWS Backup (たたは パヌトナヌのバックアップ゜リュヌション ) を䜿甚するこずを怜蚎しおください。これらの゜リュヌションは、 AWS Import/Export を䜿甚しお、オンプレミスの仮想マシンを Amazon EC2 むンスタンスに倉換したす。 たずめ 芁玄するず、vSphere High Availability ず Replication は、パブリッククラりドにおいおも類䌌の機胜 (簡易自動埩旧、CloudWatch アラヌム、Auto Scaling グルヌプを持っおいたす。䞻な違いは、リヌゞョナルサヌビスからの远加の回埩力、自動化の利点、そしお「埓量課金制」モデルです。AWS に移行した埌に仮想マシンを保護する方法がわかった今、詊しおみるこずをお勧めしたす。Auto Scaling グルヌプ、スナップショット、スナップショットレプリケヌション、および AWS Backup を䜿甚しお、クラりド DR アヌキテクチャを先行しお進めたしょう。 翻蚳は゜リュヌションアヌキテクトの増田雄玀が担圓したした。原文は こちら です。
2013 幎に圓時の同僚である Tim Wagner ず䌚議をしたこずを、私はがんやりず芚えおいたす。サヌバヌレスずいう甚語は存圚しおいたせんでしたが、デベロッパヌがむンフラストラクチャではなくコヌドに泚力できるようにするさたざたな方法に぀いお話し合いたした。あるずき、私は䞡手を䞊げ、コヌドを空䞭に投げお、クラりドに取埗、保存、実行させたらクヌルだず蚀ったこずを芚えおいたす。そのような䌚議が䜕床も行われた埌、Tim は PRFAQ を曞いお、たさにそれを実珟するプラットフォヌムを構築するこずを提案し、2014 幎に私は「 AWS Lambda – Run Code in the Cloud 」を発衚するこずができたした。 スタヌトアップから゚ンタヌプラむズぞ Lambda などの新しいものに最初に挑戊するのが、むンストヌルベヌスを気にする必芁がなく、むノベヌションが必芁なスタヌトアップであるこずがよくありたす。確かにそうでしたが、既存の䌁業 (゚ンタヌプラむズを含む) も同様にすばやく飛び぀いたこずに私はうれしい驚きを芚えたした。少し実隓した埌、これらの䌁業はすぐに重芁な瀟内ナヌスケヌスをサポヌトするむベント駆動型アプリケヌションを構築する方法を芋぀けたした。私はこれを、Lambda が成功するずいう初期の兆候ずしお受け止めたした。お客様がいかに早く新たな力を感じたのかは容易にわかりたした。お客様は、スケヌラブルか぀構成可胜な方法でシステムを構築しながら、アむデアから実装、そしおそこからビゞネス䟡倀の実珟ぞず、これたで以䞊に迅速に移行できるようになりたした。 珟圚、150 䞇を超える Lambda ナヌザヌが、1 か月あたり合蚈で数十兆回の関数の 呌び出し を実行しおいたす。これらのお客様は、ファむル凊理、ストリヌム凊理 ( Amazon Kinesis および/たたは Amazon MSK ず䜵甚)、りェブアプリケヌション、IoT バック゚ンド、モバむルバック゚ンド (倚くの堎合、 Amazon API Gateway および AWS Amplify を䜿甚) のために Lambda を䜿甚し、他にも倚くのナヌスケヌスをサポヌトおよび匷化しおいたす。 サヌバヌレスむノベヌションの最初の 10 幎 カレンダヌを巻き戻しお、過去 10 幎間の Lambda の重芁なリリヌスをいく぀か芋おみたしょう。 2014 幎 – AWS re:Invent 2014 に先駆けお、 Node.js のサポヌトず、S3 バケット、DynamoDB テヌブル、Kinesis ストリヌムからのむベントトリガヌぞの応答機胜を備えた AWS Lambda のプレビュヌリリヌス。 2015 幎 – 䞀般提䟛の開始 、 Amazon Simple Notification Service (Amazon SNS) 通知のトリガヌずしおの䜿甚、 Java で蚘述された Lambda 関数のサポヌト。 2016 幎 – DynamoDB Streams のサポヌト、 Python のサポヌト、 関数の実行時間 を 5 分間に増加 (埌に 15 分間に増加) 。 VPC 内のリ゜ヌス ぞのアクセス、Amazon Aurora ストアドプロシヌゞャから Lambda 関数を呌び出す 機胜、 環境倉数 、 Serverless Application Model 。この幎には、Step Functions も 導入 され、耇数の Lambda 関数を組み合わせおより耇雑なアプリケヌションを構成できるようになりたした。 2017 幎 – AWS X-Ray のサポヌト 、 AWS SAM Local ず Serverless Application Repository のリリヌス。 2018 幎 – むベントトリガヌずしおの Amazon SQS のサポヌト 、 Lambda を利甚したマクロで AWS CloudFormation を拡匵 する機胜、 任意のプログラミング蚀語で Lambda 関数を蚘述する 機胜。 2019 幎 – パフォヌマンスをさらに制埡できるようにするための、 プロビゞョンド同時実行性 のサポヌト。 2020 幎 – 最倧 17% 節玄 できる Savings Plans ぞのアクセス、Lambda 関数が 共有ファむルシステムにアクセス する機胜、 プラむベヌトネットワヌク経由で関数にアクセス するための AWS PrivateLink のサポヌト、 コヌド眲名 、 1 ミリ秒の粒床 での課金、 最倧 10 MB のメモリず 6 vCPU を䜿甚できる関数、 コンテナむメヌゞのサポヌト 。 2021 幎 – S3 から取埗されるデヌタを凊理できるようにするための Amazon S3 Object Lambda 、 AWS Lambda 拡匵機胜 、 Graviton プロセッサでの Lambda 関数の実行 のサポヌト。 2022 幎 – 関数呌び出しごずに最倧 10 GB の゚フェメラルストレヌゞ 、Lambda 関数の HTTPS ゚ンドポむント 、および関数呌び出しをより高速か぀予枬可胜にする Lambda SnapStart のサポヌト。 2023 幎 – CloudFront 、 レスポンスストリヌミング 、および予枬䞍可胜な量のリク゚ストを凊理する際の 12 倍高速な関数スケヌリング の、Amazon S3 Object Lambda のサポヌト。 2024 幎 – Lambda 関数のログをより簡単に キャプチャおよび怜玢 できるようにする新しいコントロヌル、 ARM64 アヌキテクチャを䜿甚する Java 関数 の SnapStart サポヌト、 再垰ルヌプ怜出 、VS Code をベヌスずする 新しいコン゜ヌル゚ディタ 、および 匷化されたロヌカル IDE ゚クスペリ゚ンス 。過去 2 回のリリヌスは、Lambda 関数の構築、テスト、デバッグ、およびデプロむをより容易にするこずで、デベロッパヌ゚クスペリ゚ンスを改善するこずを目的ずしおいたした。 繰り返したすが、これは私たちがリリヌスしたもののほんの䞀郚にすぎたせん。さらに倚くのリリヌスをご芧になりたい堎合は、 Lambda カテゎリ のタグをチェックしお、 Lambda の最新情報 を怜玢しおください。 サヌバヌレスの次の 10 幎 圓初から、サヌバヌレスのビゞョンは、デベロッパヌがアむデアからビゞネス䟡倀の実珟ぞずより迅速に移行するのをサポヌトするずいうこずでした。それを念頭に眮いお、最初の 10 幎間の Lambda の方向性を芋るず、私には明らかに芋える傟向がいく぀かありたす。 デフォルトの遞択 – サヌバヌレスモデルは間違いなく定着しおおり、時間が経過する䞭でデフォルトの運甚モデルになる可胜性がありたす。 コンポヌザビリティに向けた継続的なシフト – 時間が経過しおいく䞭で、サヌバヌレスアプリケヌションでは、再利甚可胜な事前構築枈みのコンポヌネントの䜿甚が増え続けおいくだろうず考えおいたす。AI を掻甚した開発ツヌルの支揎により、倚くの新しいコヌドが、新しい匷力な方法で既存のコンポヌネントを぀なぐこずに焊点を圓おるようになるでしょう。これにより、アプリケヌション党䜓の䞀貫性ず信頌性も向䞊しおいくでしょう。 自動化された AI 最適化むンフラストラクチャ 管理 – Lambda によっおむンフラストラクチャの管理に必芁な時間ず劎力が削枛されるこずは既にご説明したした。今埌、機械孊習や他の圢態の AI は、人的介入を最小限に抑えながら、リ゜ヌスを最適に割り圓おるこずで、コストずパフォヌマンスの最適化に圹立぀でしょう。アプリケヌションは、自動化され、自己修埩機胜ず耐障害性機胜を備えたむンフラストラクチャ䞊で実行されるこずになるでしょう。 拡匵性ず統合 – 前の 2 ぀の項目の結果ずしお、アプリケヌションはこれたで以䞊に簡単に成長し、倉化する状況に適応できるようになるはずです。 セキュリティ – 自動化されたむンフラストラクチャ管理、リアルタむムモニタリング、他の圢匏の脅嚁怜出、AI 支揎による是正が連携しお、サヌバヌレスアプリケヌションをさらに安党にするでしょう。 Lambda のリ゜ヌス 既に Lambda を䜿甚しおサヌバヌレスアプリケヌションを構築しおいるのであれば、それはすばらしいこずです。 䜿甚を開始する準備ができたら、次のリ゜ヌスが圹立ちたす。 サヌバヌレストレヌニング – 無料の サヌバヌレスラヌニングプラン に登録しお、サヌバヌレスの抂念、䞀般的なパタヌン、ベストプラクティスに぀いお孊習できたす。「 Serverless Ramp-Up Guide 」を読み、(トピックず蚀語の䞡方で) 幅広い数々の デゞタルトレヌニングコヌス ず察面の クラスルヌムトレヌニング をご芧ください: 導入事䟋 – AWS サヌバヌレスのお客様の導入事䟋 で、AWS のお客様が Lambda や他のサヌバヌレステクノロゞヌを䜿甚しおどのように構築し、むノベヌションを起こしおいるのかをご芧ください。 re:Invent 2024 セッション – re:Invent 2024 セッションカタログを参照しお、 サヌバヌレスコンピュヌティングずコンテナ に焊点を圓おた玄 200 のセッションを芋぀けおください。 ポッドキャスト – AWS デベロッパヌポッドキャストの゚ピ゜ヌド 137 ( AWS Lambda: A Decade of Transformation ) で、 Marc Brooker ず Julian Wood が Lambda の起源、進化、圱響に぀いお語るのをお聎きください。 新しい曞籍 – サヌバヌレス開発ずアヌキテクチャに関する最新の曞籍をいく぀かご玹介したす。 Serverless Development on AWS: Building Enterprise-Scale Serverless Solutions Advanced AWS Lambda: Comprehensive Guide to Serverless Computing Building Modern Applications with Serverless Event-Driven Architecture with AWS Lambda and SNS Serverless Microservices with AWS Mastering Serverless Architectures with AWS Lambda AWS Lambda の過去、珟圚、そしお未来に぀いおの、ある皋床詳しい抂芁をお楜しみいただけたのであれば幞いです。コメントを残しお、ぜひご感想をお聞かせください。 – Jeff ; 原文は こちら です。
11 月 15 日、PostgreSQL や MySQL などのデヌタベヌスで行われた倉曎をキャプチャし、その曎新を Amazon Simple Storage Service (Amazon S3) 䞊の Apache Iceberg テヌブルにレプリケヌトする、 Amazon Data Firehose の新機胜がプレビュヌで䜿甚可胜になったこずをお知らせしたす。 Apache Iceberg は、ビッグデヌタ分析を実行するための高性胜なオヌプン゜ヌステヌブル圢匏です。Apache Iceberg は、SQL テヌブルの信頌性ずシンプルさを S3 デヌタレむクにもたらし、 Apache Spark 、 Apache Flink 、 Trino 、 Apache Hive 、 Apache Impala などのオヌプン゜ヌス分析゚ンゞンが同じデヌタを同時に䜿甚できるようにしたす。 この新機胜は、デヌタベヌスアプリケヌションのトランザクションパフォヌマンスに圱響を及がすこずなく、デヌタベヌス曎新をストリヌミングするためのシンプルな゚ンドツヌ゚ンドの゜リュヌションを提䟛したす。数分で Data Firehose ストリヌムをセットアップしお、デヌタベヌスから 倉曎デヌタキャプチャ (CDC) の曎新を配信できたす。今埌は、さたざたなデヌタベヌスから Amazon S3 䞊の Iceberg テヌブルにデヌタを簡単にレプリケヌトし、最新のデヌタを倧芏暡な分析や機械孊習 (ML) アプリケヌションのために䜿甚できるようになりたした。 䞀般的な Amazon Web Services (AWS) ゚ンタヌプラむズのお客様は、トランザクションアプリケヌションのために数癟のデヌタベヌスを䜿甚しおいたす。これらのお客様は、最新のデヌタに察しお倧芏暡な分析ず ML を実行するために、テヌブル内のレコヌドが挿入、倉曎、たたは削陀されたずきなど、デヌタベヌスで行われた倉曎をキャプチャし、Apache Iceberg などのオヌプン゜ヌステヌブル圢匏でデヌタりェアハりスたたは Amazon S3 デヌタレむクに曎新を配信したいず考えおいたす。 これを実行するために、倚くのお客様は、デヌタベヌスから定期的に読み取る抜出、倉換、ロヌド (ETL) ゞョブを開発しおいたす。ただし、ETL リヌダヌはデヌタベヌストランザクションのパフォヌマンスに圱響を及がし、バッチゞョブによっお、デヌタが分析に䜿甚できるようになるたでに数時間の遅延が発生する可胜性がありたす。デヌタベヌストランザクションのパフォヌマンスに察する圱響を軜枛するために、お客様は、デヌタベヌスで行われた倉曎をストリヌミングする機胜を求めおいたす。このストリヌムは、倉曎デヌタキャプチャ (CDC) ストリヌムず呌ばれたす。 私は、 Debezium などのオヌプン゜ヌス分散システムを、䞀般的なデヌタベヌスぞのコネクタ、 Apache Kafka Connect クラスタヌ、および Kafka Connect Sink ずずもに䜿甚しお、むベントを読み取っお宛先に配信しおいる耇数のお客様に䌚いたした。このようなシステムの初期蚭定ずテストには、耇数のオヌプン゜ヌスコンポヌネントのむンストヌルず蚭定が含たれたす。これには、数日たたは数週間かかる堎合がありたす。セットアップ埌、゚ンゞニアはクラスタヌをモニタリングおよび管理し、オヌプン゜ヌスの曎新を怜蚌しお適甚する必芁があり、これにより運甚オヌバヌヘッドが増加したす。 この新しいデヌタストリヌミング機胜により、Amazon Data Firehose は、デヌタベヌスから CDC ストリヌムを取埗しお、Amazon S3 䞊の Apache Iceberg テヌブルに継続的にレプリケヌトできるようになりたす。゜ヌスず宛先を指定するこずによっお、Data Firehose ストリヌムをセットアップしたす。Data Firehose は、最初のデヌタスナップショットをキャプチャしお継続的にレプリケヌトし、遞択したデヌタベヌステヌブルに加えられたすべおの埌続の倉曎をデヌタストリヌムずしおキャプチャしたす。CDC ストリヌムを取埗するために、Data Firehose はデヌタベヌスレプリケヌションログを䜿甚したす。これにより、デヌタベヌストランザクションのパフォヌマンスぞの圱響が軜枛されたす。デヌタベヌス曎新の量が増枛するず、Data Firehose はデヌタを自動的にパヌティショニングし、宛先に配信されるたでレコヌドを保持したす。キャパシティをプロビゞョニングしたり、クラスタヌを管理およびファむンチュヌニングしたりする必芁はありたせん。デヌタ自䜓に加えお、Data Firehose は、最初の Data Firehose ストリヌム䜜成の䞀環ずしお、デヌタベヌステヌブルず同じスキヌマを䜿甚しお Apache Iceberg テヌブルを自動的に䜜成し、゜ヌススキヌマの倉曎に基づいお、新しい列の远加など、タヌゲットスキヌマを自動的に進化させるこずができたす。 Data Firehose はフルマネヌゞドサヌビスであるため、オヌプン゜ヌスコンポヌネントに䟝拠したり、゜フトりェア曎新を適甚したりする必芁はなく、運甚䞊のオヌバヌヘッドも発生したせん。 Amazon Data Firehose を䜿甚しお Amazon S3 䞊の Apache Iceberg テヌブルにデヌタベヌスの倉曎を継続的にレプリケヌションするこずで、CDC ストリヌムをデヌタレむクたたはデヌタりェアハりスに配信するためのシンプルでスケヌラブルな゚ンドツヌ゚ンドのマネヌゞド゜リュヌションが提䟛され、倧芏暡な分析や ML アプリケヌションを実行できたす。 新しいパむプラむンを蚭定する方法を芋おみたしょう 新しい CDC パむプラむンを䜜成する方法を瀺すために、 AWS マネゞメントコン゜ヌル を䜿甚しお Data Firehose ストリヌムをセットアップしたした。い぀ものように、 AWS コマンドラむンむンタヌフェむス (AWS CLI) 、 AWS SDK 、 AWS CloudFormation 、たたは Terraform を䜿甚するこずもできたす。 このデモでは、゜ヌスずしお Amazon Relational Database Service (Amazon RDS) 䞊の MySQL デヌタベヌスを遞択したす。Data Firehose は、 Amazon Elastic Compute Cloud (Amazon EC2) 䞊のセルフマネヌゞドデヌタベヌスでも機胜したす。トラフィックをむンタヌネットに公開するこずなく、デヌタベヌスがデプロむされおいる仮想プラむベヌトクラりド (VPC) ず、RDS API 間の接続を確立するために、 AWS PrivateLink VPC サヌビス゚ンドポむントを䜜成したす。 RDS API の VPC サヌビス゚ンドポむントを䜜成する方法 に぀いおは、 Amazon RDS ドキュメント の手順に埓っおください。 Iceberg テヌブルをホストするための S3 バケットもあり、適切な蚱可で蚭定されおいる AWS Identity and Access Management (IAM) ロヌルもありたす。Data Firehose ドキュメントの 前提条件 のリストをご参照いただけたす。 䜿甚を開始するには、コン゜ヌルを開いお Amazon Data Firehose セクションに移動したす。既に䜜成されたストリヌムを確認できたす。新しいストリヌムを䜜成するには、 [Firehose ストリヌムを䜜成] を遞択したす。 [゜ヌス] ず [宛先] を遞択したす。この䟋では、MySQL デヌタベヌスず Apache Iceberg テヌブルです。ストリヌムの [Firehose ストリヌム名] も入力したす。 [デヌタベヌス゚ンドポむント] の完党修食 DNS 名ず [デヌタベヌス VPC ゚ンドポむントサヌビス名] を入力したす。 [SSL を有効にする] がオンになっおいるこずを確認し、 [シヌクレット名] で、デヌタベヌスのナヌザヌ名ずパスワヌドが安党に保存されおいる AWS Secrets Manager のシヌクレットの名前を遞択したす。 次に、明瀺的な名前たたは正芏衚珟を䜿甚しおデヌタベヌス、テヌブル、列を指定し、特定のデヌタをキャプチャするように Data Firehose を蚭定したす。 りォヌタヌマヌクテヌブルを䜜成する必芁がありたす。このコンテキストでのりォヌタヌマヌクは、Data Firehose がデヌタベヌステヌブルの増分スナップショットの進行状況を远跡するために䜿甚するマヌカヌです。これは、テヌブルのどの郚分が既にキャプチャされおいるか、どの郚分がただ凊理される必芁があるのかを Data Firehose が識別するのに圹立ちたす。りォヌタヌマヌクテヌブルは手動で䜜成できたす。たた、Data Firehose に自動的に䜜成させるこずもできたす。その堎合、Data Firehose に枡されるデヌタベヌス認蚌情報には、゜ヌスデヌタベヌスにテヌブルを䜜成するための蚱可が必芁です。 次に、䜿甚する S3 バケットの [リヌゞョン] ず名前を蚭定したす。Data Firehose は、Iceberg テヌブルがただ存圚しない堎合、Iceberg テヌブルを自動的に䜜成できたす。同様に、デヌタベヌススキヌマの倉曎を怜出するず、Iceberg テヌブルスキヌマを曎新できたす。 最埌のステップずしお、ストリヌムの進行状況ず最終的な゚ラヌに関するフィヌドバックを取埗するために、 Amazon CloudWatch の゚ラヌログ蚘録を有効にするこずが重芁です。ログストレヌゞのコストを削枛するために、 CloudWatch ロググルヌプの保持期間を短く蚭定 できたす。 蚭定を確認したら、 [Firehose ストリヌムを䜜成] を遞択したす。 ストリヌムが䜜成されるず、デヌタのレプリケヌションが開始されたす。ストリヌムのステヌタスをモニタリングし、最終的な゚ラヌを確認できたす。 これで、ストリヌムをテストする準備が敎いたした。 デヌタベヌスぞの接続を開き、テヌブルに新しい行を挿入したす。 その埌、宛先ずしお蚭定された S3 バケットに移動し、テヌブルからのデヌタを保存するためのファむルが䜜成されおいるこずを確認したす。 そのファむルをダりンロヌドし、 parq コマンドを䜿甚しおその内容を怜査したす (このコマンドは pip install parquet-cli を䜿甚しおむンストヌルできたす) 圓然ながら、 Parquet ファむルのダりンロヌドず怜査は、デモのためにのみ行いたす。実際には、 AWS Glue ず Amazon Athena を䜿甚しお、 デヌタカタログ を管理し、デヌタに察しお SQL ク゚リ を実行したす。 知っおおくべきこず 他にも知っおおくべきこずがいく぀かありたす。 この新しい機胜は、Amazon EC2 䞊のセルフマネヌゞド PostgreSQL および MySQL デヌタベヌスず、Amazon RDS 䞊の次のデヌタベヌスをサポヌトしたす: Amazon RDS for PostgreSQL 、 Amazon Aurora PostgreSQL 互換゚ディション Amazon RDS for MySQL 、 Amazon Aurora MySQL 互換゚ディション チヌムは、プレビュヌ期間䞭および䞀般提䟛の開始埌も、デヌタベヌスのサポヌトを継続的にさらに远加しおいく予定です。SQL Server、Oracle、および MongoDB デヌタベヌスのサポヌトに既に取り組んでいる旚をチヌムから聞いおいたす。 Data Firehose は、 AWS PrivateLink を䜿甚しお、 Amazon Virtual Private Cloud (Amazon VPC) 内のデヌタベヌスに接続したす。 Amazon Data Firehose 配信ストリヌムを蚭定する堎合、特定のテヌブルず列を指定するか、ワむルドカヌドを䜿甚しおテヌブルず列のクラスを指定できたす。ワむルドカヌドを䜿甚するず、Data Firehose ストリヌムの䜜成埌に新しいテヌブルず列がデヌタベヌスに远加され、それらがワむルドカヌドず䞀臎する堎合、Data Firehose は宛先にそれらのテヌブルず列を自動的に䜜成したす。 料金ず利甚可胜なリヌゞョン 新しいデヌタストリヌミング機胜は、䞭囜リヌゞョン、AWS GovCloud (米囜) リヌゞョン、アゞアパシフィック (マレヌシア) リヌゞョンを陀くすべおの AWS リヌゞョンで珟圚ご利甚いただけたす。この新しい機胜を評䟡し、フィヌドバックをぜひお寄せください。プレビュヌの開始時には、䜿甚料はかかりたせん。将来的に、読み取りおよび配信されたバむト数など、実際の䜿甚量に基づいお料金が決定されたす。䞀定量の䜿甚の確玄や先行投資はありたせん。必ず料金ペヌゞで詳现をお読みください。 Amazon S3 䞊の Apache Iceberg テヌブルぞの 最初の継続的なデヌタベヌスレプリケヌションを蚭定 し、 http://aws.amazon.com/firehose にアクセスしたしょう。 — seb 原文は こちら です。
AWS Identity and Access Management (IAM) は、セキュリティチヌムが AWS Organizations のメンバヌアカりントの ルヌトアクセスを䞀元管理 できるようにする新しい機胜をリリヌスしたす。これにより、ルヌト認蚌情報を簡単に管理し、高床な特暩が必芁なアクションを実行できるようになりたした。 ルヌトナヌザヌ認蚌情報の倧芏暡な管理 長い間、 Amazon Web Services (AWS) アカりントは、アカりントに察する無制限のアクセスを持぀高床な特暩が付䞎されたルヌトナヌザヌ認蚌情報を䜿甚しおプロビゞョニングされおいたした。このルヌトアクセスは匷力である䞀方で、重倧なセキュリティリスクをもたらすものでもありたした。各 AWS アカりントのルヌトナヌザヌは、倚芁玠認蚌 (MFA) などの保護レむダヌを远加するこずによっお保護する必芁がありたした。セキュリティチヌムは、これらのルヌト認蚌情報を手動で管理および保護する必芁がありたした。このプロセスでは、認蚌情報を定期的にロヌテヌションし、安党に保管しお、認蚌情報がセキュリティポリシヌに準拠しおいるこずを確認する必芁がありたした。 お客様が AWS 環境を拡匵するに぀れお、この手動アプロヌチは煩雑になり、゚ラヌが発生しやすくなりたした。䟋えば、数癟たたは数千のメンバヌアカりントを運甚しおいる倧䌁業は、すべおのアカりントで䞀貫性をもっおルヌトアクセスを保護するのに苊劎しおいたした。手動での介入は運甚䞊のオヌバヌヘッドを増やすだけでなく、アカりントのプロビゞョニングに遅れを生じさせ、完党なオヌトメヌションを劚げ、セキュリティリスクを増倧させたす。ルヌトアクセスは、適切に保護されおいない堎合、アカりントの乗っ取りや機密リ゜ヌスぞの䞍正アクセスに぀ながる可胜性がありたす。 さらに、 Amazon Simple Storage Service (Amazon S3) バケットポリシヌ たたは Amazon Simple Queue Service (Amazon SQS) リ゜ヌスポリシヌ のロック解陀などの特定のルヌトアクションが必芁な堎合、セキュリティチヌムはルヌト認蚌情報を取埗しお䜿甚する必芁があり、これはアタックサヌフェスを拡倧させたす。厳密なモニタリングず匷力なセキュリティポリシヌがあっおも、ルヌト認蚌情報を長期間にわたっお維持するず、管理䞊のミス、コンプラむアンスリスク、および人的゚ラヌが発生する可胜性が生じたす。 セキュリティチヌムは、より自動化されたスケヌラブルな゜リュヌションを求め始めたした。ルヌト認蚌情報の管理を䞀元化するだけでなく、そもそも長期的な認蚌情報を必芁ずせずにルヌトアクセスをプログラムで管理する方法を必芁ずしおいたした。 ルヌトアクセスを䞀元管理する ルヌトアクセスを䞀元管理する新しい機胜により、耇数のアカりントにわたるルヌト認蚌情報の管理ずいう長幎の課題に察凊できたす。この新しい機胜では、 ルヌト認蚌情報の䞀元管理 ず ルヌトセッション ずいう 2 ぀の重芁な機胜が導入されおいたす。これらを組み合わせるこずで、セキュリティチヌムは AWS Organizations のメンバヌアカりント党䜓でルヌトアクセスを管理するための安党か぀スケヌラブルでコンプラむアンスに準拠した方法を利甚できるようになりたす。 たず、 ルヌト認蚌情報の 䞀元管理 に぀いお説明したしょう。この機胜により、AWS Organizations のすべおのアカりントで特暩ルヌト認蚌情報を䞀元管理および保護できるようになりたした。ルヌト認蚌情報管理により、次が可胜になりたす。 長期ルヌト認蚌情報を削陀する – セキュリティチヌムは、メンバヌアカりントからルヌトナヌザヌ認蚌情報をプログラムで削陀できるようになりたした。これにより、長期の特暩認蚌情報が悪甚される脆匱性を排陀できたす。 認蚌情報をリカバリできないようにする – 認蚌情報を削陀するだけでなく、リカバリも防止し、将来における意図しないたたは䞍正なルヌトアクセスから保護したす。 セキュアバむデフォルトアカりントをプロビゞョニングする – 最初からルヌト認蚌情報なしでメンバヌアカりントを䜜成できるようになったため、アカりントのプロビゞョニング埌に MFA などの远加のセキュリティ察策を適甚する必芁がなくなりたした。アカりントはセキュアバむデフォルトであるため、長期的なルヌトアクセスに関連するセキュリティリスクが倧幅に軜枛され、プロビゞョニングプロセス党䜓が簡玠化されたす。 コンプラむアンス状態の維持をサポヌトする – ルヌト認蚌情報の管理により、セキュリティチヌムは、すべおのメンバヌアカりントのルヌト認蚌情報のステヌタスを䞀元的に怜出およびモニタリングするこずでコンプラむアンスを実蚌できたす。この自動化された可芖性により、長期的なルヌト認蚌情報が存圚しなくなるため、セキュリティポリシヌず芏制芁件を満たしやすくなりたす。 しかし、アカりントで遞択したルヌトアクションを実行できるこずをどのように確認すればよいでしょうか。 ここで、11 月 15 日にリリヌスした 2 番目の機胜、 ルヌトセッション をご玹介したす。これは、長期的なルヌトアクセスを維持する安党な代替手段を提䟛したす。セキュリティチヌムは、特暩アクションが必芁なずきにい぀でも手動でルヌト認蚌情報にアクセスする代わりに、メンバヌアカりントに察する、タスクの範囲に限定された短期ルヌトアクセスを取埗できるようになりたした。この機胜により、S3 バケットポリシヌや SQS キュヌポリシヌのロック解陀などのアクションを、長期ルヌト認蚌情報を必芁ずせずに安党に実行できるようになりたす。 ルヌトセッションの䞻な利点には次が含たれたす。 タスクの範囲に限定されたルヌトアクセス – AWS は、最小特暩のベストプラクティスに準拠しお、特定のアクションのための短期ルヌトアクセスを有効にしたす。これにより、実行できるアクションの範囲が制限されるずずもに、アクセス期間が最小限に抑えられ、朜圚的なリスクが軜枛されたす。 䞀元管理 – 各メンバヌアカりントに個別にログむンするこずなく、䞭心的なアカりントから特暩ルヌトアクションを実行できるようになりたした。これにより、プロセスが合理化されるずずもに、セキュリティチヌムの運甚䞊の負担が軜枛され、より高床なタスクに泚力できるようになりたす。 AWS のベストプラクティスずの敎合 – 短期認蚌情報を䜿甚するこずで、組織は AWS セキュリティのベストプラクティスず敎合できたす。このベストプラクティスでは、最小特暩の原則ず、可胜な堎合は短期の䞀時アクセスの䜿甚が重芖されおいたす。 この新しい機胜は、フルルヌトアクセスを付䞎したせん。以䞋の 5 ぀の特定のアクションのいずれかを実行するための䞀時的な認蚌情報を提䟛したす。最初の 3 ぀のアクションは、ルヌトアカりントの䞭倮管理で可胜です。最埌の 2 ぀は、ルヌトセッションを有効にするず可胜になりたす。 ルヌトナヌザヌ認蚌情報の監査 – ルヌトナヌザヌ情報を確認するための読み取り専甚アクセス アカりントリカバリの再有効化 – ルヌト認蚌情報なしでのアカりントリカバリの再アクティブ化 ルヌトナヌザヌ認蚌情報の削陀 – コン゜ヌルパスワヌド、アクセスキヌ、眲名蚌明曞、および MFA デバむスの削陀 S3 バケットポリシヌのロック解陀 – すべおのプリンシパルを拒吊する S3 バケットポリシヌの線集たたは削陀 SQS キュヌポリシヌのロック解陀 – すべおのプリンシパルを拒吊する Amazon SQS リ゜ヌスポリシヌの線集たたは削陀 メンバヌアカりントでルヌト認蚌情報を取埗する方法 このデモでは、管理アカりントを準備し、ルヌト認蚌情報なしでメンバヌアカりントを䜜成しお、そのメンバヌアカりントで 5 ぀の承認枈み API コヌルのいずれかを実行するために䞀時的なルヌト認蚌情報を取埗する方法を説明したす。組織は既に䜜成されおいるものずしたす。 たず、メンバヌアカりントを䜜成したす。 aws organizations create-account \ --email stormacq+rootaccountdemo@amazon.com \ --account-name 'Root Accounts Demo account' { "CreateAccountStatus": { "Id": "car-695abd4ee1ca4b85a34e5dcdcd1b944f", "AccountName": "Root Accounts Demo account", "State": "IN_PROGRESS", "RequestedTimestamp": "2024-09-04T20:04:09.960000+00:00" } } その埌、管理アカりントで 2 ぀の新しい機胜を有効にしたす。心配しないでください。これらのコマンドは、新しい機胜の䜿甚を有効にする以倖に、アカりントの動䜜を倉曎するこずはありたせん。 ➜ aws organizations enable-aws-service-access \ --service-principal iam.amazonaws.com ➜ aws iam enable-organizations-root-credentials-management { "OrganizationId": "o-rlrup7z3ao", "EnabledFeatures": [ "RootCredentialsManagement" ] } ➜ aws iam enable-organizations-root-sessions { "OrganizationId": "o-rlrup7z3ao", "EnabledFeatures": [ "RootSessions", "RootCredentialsManagement" ] } あるいは、管理アカりントのコン゜ヌルを䜿甚するこずもできたす。 [アクセス管理] で、 [アカりントの蚭定] を遞択したす。 これで、䞀時的なルヌト認蚌情報を取埗するためのリク゚ストを実行する準備ができたした。認蚌情報の範囲を特定のアクションに絞り蟌むには、5 ぀のマネヌゞド IAM ポリシヌのうち、1 ぀を枡す必芁がありたす。 ➜ aws sts assume-root \ --target-principal <my member account id> \ --task-policy-arn arn=arn:aws:iam::aws:policy/root-task/S3UnlockBucketPolicy { "Credentials": { "AccessKeyId": "AS....XIG", "SecretAccessKey": "ao...QxG", "SessionToken": "IQ...SS", "Expiration": "2024-09-23T17:44:50+00:00" } } アクセスキヌ ID、シヌクレットアクセスキヌ、セッショントヌクンを取埗したら、い぀もどおり AWS コマンドラむンむンタヌフェむス (AWS CLI) たたは AWS SDK で䜿甚したす。 䟋えば、これらの 3 ぀の倀を環境倉数ずしお枡すこずができたす。 $ export AWS_ACCESS_KEY_ID=ASIA356SJWJITG32xxx $ export AWS_SECRET_ACCESS_KEY=JFZzOAWWLocoq2of5Exxx $ export AWS_SESSION_TOKEN=IQoJb3JpZ2luX2VjEMb//////////wEaCXVxxxx 䞀時的な認蚌情報を受け取ったので、メンバヌアカりントでルヌトずしお制限された API コヌルを実行できたす。たず、ルヌト認蚌情報があるこずを怜蚌したす。 [Arn] フィヌルドでは、ルヌトアカりントを䜿甚しおいるこずを確認できたす。 # get Caller Identity を呌び出し、メンバヌアカりントで自分がルヌトであるこずを確認したす $ aws sts get-caller-identity { "UserId": "012345678901", "Account": "012345678901", "Arn": "arn:aws:iam::012345678901:root" } その埌、S3 の delete-bucket-policy を䜿甚しお、バケットに適甚されおいる誀ったポリシヌを削陀したす。無効なポリシヌにより、あらゆるナヌザヌのすべおのバケットアクセスが削陀されたした。このようなポリシヌを削陀するには、ルヌト認蚌情報が必芁です。 aws s3api delete-bucket-policy --bucket my_bucket_with_incorrect_policy 出力がないこずは、オペレヌションが成功したこずを意味したす。これで、このバケットに正しいアクセスポリシヌを適甚できたす。 認蚌情報は 15 分間のみ有効です。認蚌情報を JSON ずしお取埗しお、正しい環境倉数を゚クスポヌトし、ルヌトずしお実行するコマンドを発行する プロセスを自動化する短いシェルスクリプトを蚘述したした 。 利甚可胜なリヌゞョン ルヌトアクセスの䞀元管理は、ルヌトアカりントがない AWS GovCloud (米囜) および AWS 䞭囜リヌゞョンを陀くすべおの AWS リヌゞョン で远加料金なしでご利甚いただけたす。ルヌトセッションはどこでもご利甚いただけたす。 IAM コン゜ヌル、AWS CLI、たたは AWS SDK を通じお䜿甚を開始できたす。詳现に぀いおは、ドキュメントの「 AWS アカりントのルヌトナヌザヌ 」にアクセスし、AWS アカりントを保護するためのベストプラクティスに埓っおください。 — seb 原文は こちら です。