TECH PLAY

AWS

AWS の技術ブログ

å…š3302ä»¶

OTT の䞖界における QoS ずその重芁性に぀いお 今日のデゞタル時代においお、高速むンタヌネットの普及ずストリヌミング・デバむスの倚様化により、OTTOver-the-Topコンテンツは日垞生掻に欠かせないものずなっおいたす。しかし、OTT コンテンツのサヌビス品質QoSを確保するための遞択肢が豊富なため、コンテンツ・プロバむダヌず消費者の双方にずっお重芁な課題ずなっおいたす。囜際電気通信連合ITUは、ネットワヌク管理ず保蚌に重点を眮く QoS ず、䞻芳的なナヌザヌ満足床を評䟡する QoEQuality of Experienceを区別しおいたす。優れた品質䜓隓を実珟するには、ネットワヌク・パフォヌマンスだけでなく、より広範な芁玠を考慮する必芁がありたす。QoS ず QoE を効果的に管理するために、事業者は、QoE に぀いおはリバッファリングやビデオ再生の倱敗、QoS に぀いおは HTTP ゚ラヌコヌド、埅ち時間、キャッシュヒットレヌトなど、業界レベルの䞻芁なメトリクスを監芖する必芁がありたす。この継続的な取り組みは、 Amazon CloudFront を䞭心に、OTT 配信の可芳枬性を改善し、QoS の偎面を匷化するこずを目的ずしおいたす。 以前の投皿では、 CMCD の゜リュヌションによる QoE の可芖性の向䞊 に぀いお説明したした。お客様ぞの可芳枬性を向䞊させる取り組みを継続し、この投皿では CloudFront を䜿甚した OTT 配信の QoS 偎面に぀いお深く掘り䞋げたす。 この投皿に぀いお この投皿では、倧芏暡むベントや 24 時間 365 日のリニアストリヌムにおけるアセット配信の可芳枬性を向䞊させるリアルタむムダッシュボヌドの導入に぀いお説明したす。CloudFront のリアルタむム・ロギング機胜を䜿甚しお、この゜リュヌションは配信パフォヌマンス指暙をほがリアルタむムで可芖化したす。これを利甚しお、動画配信コンポヌネントのさたざたな偎面ぞの可芳枬性を拡倧するこずができたす。 CloudFront 動画アセット配信ダッシュボヌドは、ストリヌミング解像床ず動画アセットに関連するメトリクスを取埗したす。このダッシュボヌドは、最も䞀般的に䜿甚される動画解像床を考慮に入れおいたす。各解像床のデヌタを分析するこずで、ダッシュボヌドは、パフォヌマンスの傟向を特定し、芖聎者のアセット配信の党䜓的な品質を向䞊させるこずができるデヌタ駆動型の意思決定を行うのに圹立ちたす。この情報により、お客様はストリヌミング・むンフラを最適化し、芖聎者に最高の芖聎䜓隓を提䟛するこずができたす。 たた、これらのメトリクスをさらにマニフェストずセグメントに分割し、ワヌクフロヌに組み蟌たれたロゞックが 2 ぀の䞀般的なビデオ・フォヌマットである HLS ず MPEG-DASH を考慮しおいたす。 アヌキテクチャヌ この画像に瀺すように、CloudFront 動画アセット配信ダッシュボヌドを構築するために必芁なメトリクスを配信するために、以䞋のアヌキテクチャヌが䜿甚されたす 図 1゜リュヌション党䜓のアヌキテクチャヌ 動画コンテンツをストリヌミングしおいるお客様が動画アセットをナヌザヌに配信する CloudFront ディストリビュヌションをすでに持っおいるずしたす。このこずを念頭に眮いお、ダッシュボヌドを珟圚のメディア配信フロヌにプラグむンし、メトリクスをダッシュボヌドに入力し始めるこずができたす。ダッシュボヌドを構築するアヌキテクチャヌのコンポヌネントを以䞋に瀺したす 1- CloudFront リアルタむムログ  CloudFront が各リク゚ストの詳现をほがリアルタむムで提䟛するために必芁です。生成されるデヌタ量を枛らし、コストずパフォヌマンスを管理するために、この蚭定のフィヌルドは、ダッシュボヌドに入力するために必芁な情報だけを提䟛するように特別に遞択されおいたす。トラブルシュヌティングやその他のナヌスケヌスのためにさらなる情報が必芁な堎合は、 CloudFront 暙準ログ を掻甚するこずをお勧めしたす。さらに、リアルタむムログの蚭定にフィヌルドを远加する必芁がある堎合、 AWS Lambda 関数のコヌドをカスタマむズしお远加のフィヌルドを凊理する必芁がありたす。珟圚䜿甚されおいるフィヌルドは以䞋の通りです timestamp sc-bytes sc-status cs-uri-stem time-taken x-edge-result-type asn 各フィヌルドがログに远加する情報の詳现に぀いおは、CloudFront のドキュメントを参照しおください。 2- Amazon Kinesis Data Streams  これは CloudFront がログをプッシュする最初のサヌビスです。CloudFront 䞊のリアルタむムログの蚭定は、ダッシュボヌドの構築に必芁なフィヌルドず Kinesis Data Streams を宛先ずしお蚭定されおいたす。 3- 倉換甚 Lambda  デヌタは Amazon Kinesis からバッチで受信され、この Lambda はリアルタむムログからデヌタを分解し、ダッシュボヌドに必芁なメトリクスを䜜成するコヌドを実行したす。 4- CloudWatch Logs/メトリクス  より費甚察効果を高めるために、このフロヌは CloudWatch Embedded Metric Format (EMF) を䜿っおメトリクスを公開したす。EMF を䜿甚するこずで、PutMetric API コヌルの実行を避けるこずができるため、節玄になりたす。メトリクスが送信されるログ・グルヌプは、最倧 30 日間デヌタを保持する必芁がありたす。 5- メディア甚 CloudWatch ダッシュボヌド  メディア配信を監芖するメディア配信管理者ず運甚チヌムは、ここでメディアアセット配信のメトリクスを分析およびレビュヌできたす。 前提条件 以䞋の前提条件が必芁ずなりたす。 この゜リュヌションを䜿甚するナヌザヌは、各アセットタむプHD/UHD/nonHDごずに䞀意の識別子を URL に統合する必芁がありたす。ほずんどの堎合、顧客はビデオ資産の解像床に基づいたファむル構造を䜜成したす。さらに、HTTP URL にも同じ構造を適甚したす。たずえば、超高解像床UHDコンテンツをストリヌミングする堎合、URL の䞀郚ずしお「 soccer_match_uhd 」のような䞀意の識別子や「 3840×2160 」のような解像床そのものを䜿甚するこずができたす。この゜リュヌションは URL パヌサヌに基づいおおり、Query String 内の識別子はこの゜リュヌションでは機胜しないこずに泚意しおください。 この゜リュヌションは、お客様の既存の動画ワヌクフロヌずシヌムレスに統合できるように蚭蚈されおいたす。ナヌザヌは、動画ワヌクフロヌの䞀環ずしお、CloudFront ディストリビュヌションを利甚しおアセットを配信する必芁がありたす。 ゜リュヌション・メトリクスの深掘り このセクションでは、利甚可胜なメトリクスずその意味に぀いお説明したす。以䞋の画像は、ダッシュボヌドの動䜜むメヌゞです。 図 2ダッシュボヌドのメトリクスビュヌ 甚語の理解 UHD: UHD は Ultra-High Definition の略で、暙準的な高解像床HDよりも倧幅に高いビデオ解像床を指す。UHD の解像床は通垞 3840×2160 ピクセルです。 FHD/HDHD は High Definition の略で、暙準画質SDビデオの解像床よりも倧幅に高いビデオ解像床を指す。HD の解像床は通垞 1280×720 ピクセル720p。FHD はフルハむビゞョンの 1920×1080 ピクセル1080pを指し、珟圚の業界では、HD は䞡方の解像床を指すために䜿甚されるこずがありたす。そのため、ダッシュボヌドを簡朔にするために、これらの解像床をひずたずめにしたした。 SD: SD は Standard Definition の略で、HD 芏栌よりも䜎いビデオ解像床を指したす。䞀般的には 480p 以䞋の解像床を指したす。 Segment/manifest delivery latency by Stream  芖聎者に配信されるコンテンツの埅ち時間デヌタを提䟛したす。このメトリックは、マニフェストおよびセグメントファむル別、ストリヌム配信タむプ別に分類されたす。こちらは、CloudFront がリク゚ストを受信しおからコンテンツが芖聎者に送り返されるたでのレむテンシの合蚈を瀺しおいたす。 BytesDownloaded per Stream  ストリヌミングされおいるコンテンツが各ストリヌムのタむプ間でどのように分割されおいるかを管理者が理解するためのものです。そしお、芖聎者ベヌスの行動を理解するために䜿甚するこずができたす。たた、異なる利甚ベヌス間で党䜓的な配信品質を向䞊させるために、より倚くの収益を提䟛するコンテンツ品質や、より倚くの泚意が必芁なコンテンツ品質に関するむンプットを提䟛したす。 Latency by Autonomous System Number (ASN)  この指暙は、コンテンツがリク゚ストされ、CloudFront によっお提䟛されるたでの時間を瀺しおいたす。トップ 10 の ASN ず解像床別に分類されおいたす。このメトリクスは、特定の ASN に問題があるかどうかを特定するのに圹立ち、ストリヌミング配信内の埅ち時間の問題を特定するのに圹立ちたす。これらの特定のメトリクスは、ク゚リを通じお提䟛され、過去 3 時間のデヌタのみが衚瀺されたす。 Cache Hit Ratio metrics  マニフェストおよびセグメント・ファむルの配信に関するキャッシュ・ヒット率メトリクスです。これらは、監芖チヌムがこれらのタむプのコンテンツのキャッシュに぀いお改善の可胜性を発芋するのに圹立぀ように蚭蚈されおいたす。通垞、コンテンツが可胜な限りナヌザヌに近いずころから配信されおいるこずを確認するため、より高いキャッシュヒット率でセグメントを確認したいず考えたす。これは、各解像床の配信ごずに分類されおいたす。 4xx/5xx Error Rates per Stream  ストリヌムタむプ別に分類された゚ラヌレヌトを瀺したす。これは、ストリヌムごずのリク゚ストの゚ラヌ発生率を把握するのに圹立ちたす。レヌトが䞊昇した堎合、ストリヌム・タむプに基づいおトラブルシュヌティングを迅速に行うこずができたす。 デプロむ手順 このダッシュボヌドをデプロむするために、必芁なリ゜ヌスをすべおデプロむする CloudFormation テンプレヌトが甚意されおいたす。 ステップ1  CloudFormation コン゜ヌルにアクセスしおテンプレヌトをデプロむしたす。 ステップ2 このCloudFormation テンプレヌトは、ダッシュボヌドに必芁なすべおのリ゜ヌスをデプロむしたす。テンプレヌトをデプロむする際、いく぀かの入力が必芁になりたす CloudFrontRealTimeLogsSamplingRate  CloudFront が提䟛するリク゚ストがリアルタむムログパむプラむンに送られるサンプルレヌトを定矩したす。パむプラむンを流れるデヌタが倚いほど、この゜リュヌションのコストが高くなるため、これによりコストを制埡できたす。 UHDExists, FHDExists, HDExists  これらのパラメヌタでは、このメディア配信フロヌに Ultra HD、Full HD、およびHD ストリヌミングがあるかどうかを指定したす。これらの解像床がメディア配信フロヌに含たれおいない堎合は、falseのたたにしたす。 FHDStreamIdentifier  これは、ナヌザヌが芁求しおいるコンテンツの URI 内のFHD 解像床ストリヌムの䞀意の識別子です。 HDStreamIdentifier  前述の「FHDStreamIdentifier」ず同様、HD ストリヌムの䞀意な識別子です。 UHDStreamIdentifier  前述の「FHDStreamIdentifier」ず同様、Ultra HD ストリヌムの䞀意な識別子です。 図 3CloudFormation のパラメヌタヌ ステップ 3. CloudFormation テンプレヌトが実行され、スタックの党コンポヌネントがデプロむされたら、次のステップはCloudFront  リアルタむムログ蚭定をメディアコンテンツを提䟛する CloudFront ディストリビュヌションにアタッチするこずです。これを行うには、以䞋のサブステップに埓いたす ステップ3.A. CloudFront コン゜ヌルを開き、 ログ > リアルタむム蚭定 を遞択したす。 ステップ3.B. CFMediaDashboardLogs 蚭定を開き、 “ディストリビュヌションにアタッチ” を遞択したす。 ステップ3.C. 次のペヌゞで、メディアコンテンツの配信に䜿甚するディストリビュヌションずキャッシュビヘむビアを遞択したす。次に  “Attach”  ã‚’遞択したす。次の画像のように、メディアアセットマニフェストずセグメントを提䟛するすべおのビヘむビアを遞択しおください。 図 4CloudFront のリアルタむムログ 図 5ディストリビュヌションぞのリアルタむム・ログのアタッチ 蚭定されたディストリビュヌションでラむブトラフィックが実行されおいる堎合、ダッシュボヌドにはメトリクスが入力されおいたす。CloudWatch ダッシュボヌドを開くず、”CloudFrontVideoAssetDeliveryDashboard”ずいう名前のダッシュボヌドを開くこずができたす。 ダッシュボヌドの䜿甚ずコストに関する考察 CloudFront 動画アセット配信ダッシュボヌド゜リュヌションは、耇数のシナリオで䜿甚するこずができたす。さらに、AWS のコストモデルに埓い、この゜リュヌションは埓量課金です。オペレヌタは、必芁性ず䜿甚状況に応じお、ワヌクフロヌからこのダッシュボヌドをい぀でも開始/停止するこずができたす。 この゜リュヌションに関係する䟡栌蚭定は、CloudWatch で凊理されたデヌタ、Kinesis にデヌタが送信されるレヌトず各レコヌドのサむズ、CloudFront リアルタむムログリク゚スト生成されるログ行数に基づいお課金される、Lambda の呌び出し数ずその合蚈時間ずなりたす。これらのディメンションはすべお、CloudFront ぞのリク゚ストレヌトず、゜リュヌションのデプロむ時に遞択したサンプリングレヌトの圱響を受けたす。 ログ構成が CloudFront ディストリビュヌションから切り離されるずすぐに、ログの入力が停止し、コストも停止するこずに泚意しおください。以䞋の画像で、どのように蚭定を切り離すかを確認できたす。 図6リアルタむム・ログの切り離し ダッシュボヌドのクリヌンアップ むンフラをクリヌンアップするためには、リ゜ヌスをデプロむした CloudFormation スタックを削陀しなければいけたせん。 クリヌンアップが適切に機胜するように、2 ぀のステップを螏む必芁がありたす。 1- CloudFront リアルタむムログを CloudFront ディストリビュヌションから切り離す必芁がありたす。そのためには、リアルタむムログ蚭定を開いおディストリビュヌションから切り離したす。 2- 次のステップは、他のすべおのリ゜ヌスを䜜成した CloudFormation スタックを削陀するこずになりたす。スタックの削陀が完了するず、すべおのリ゜ヌスが AWS アカりントから削陀されたす。 たずめ この投皿では、CloudFront を通じおストリヌミング・コンテンツを配信する䌁業が、ストリヌミング配信をより可芖化し、OTT ストリヌミングアセットの QoS を評䟡できるように蚭蚈された新しい゜リュヌションを玹介したした。 この゜リュヌションの導入により、お客様は動画配信コンポヌネントを゚ンドツヌ゚ンドで把握するこずができたす。CloudWatch を䜿甚しお CloudFront 動画アセット配信ダッシュボヌドを掻甚するこずで、䌁業は動画配信ワヌクフロヌのパフォヌマンスをリアルタむムで可芖化するこずができたす。さらに、CMCD ツヌルを䜿甚するこずで、顧客はクラむアント偎のテレメトリヌに関する掞察も埗るこずができ、䌁業が動画配信戊略を回顧するための完党なデヌタセットを提䟛したす。このような゚ンドツヌ゚ンドのアプロヌチによる動画配信パフォヌマンスのモニタリングず分析により、䌁業は十分な情報に基づいた意思決定ず迅速な是正措眮を取るこずができ、䞀貫した QoS で高品質のストリヌミングコンテンツを確実に提䟛するこずができたす。 本蚘事は、「 QoS Observability for OTT Streaming using Amazon CloudFront 」ず題された蚘事の翻蚳ずなりたす。 翻蚳は Solutions Architect の長谷川 玔也が担圓したした。
Amazon QuickSight は、共同䜜業の堎所を問わず、わかりやすいむンサむトを提䟛するこずができるクラりドネむティブのビゞネスむンテリゞェンス (BI) サヌビスです。ナヌザヌはスケゞュヌルされた方法、たたはプログラムされた方法で、 SPICE (Super-fast, Parallel, In-memory Calculation Engine) にデヌタをむンポヌトできたす。 QuickSight デヌタセットの曎新を蚭定する堎合、曎新が倱敗したずきに所有者に電子メヌルを送信できたすが、䞀時的な゚ラヌが原因で曎新が倱敗する可胜性があるため、ネむティブに再詊行する方法はありたせん。 この投皿では、曎新に倱敗したデヌタセットの取り蟌みを自動的に再詊行するために必芁なすべおのリ゜ヌスを AWS CloudFormation を䜿いデプロむする方法を瀺したす。これにより、曎新が正垞に完了したかどうか、障害原因に関する詳现情報がデヌタセット所有者に提䟛されるため、ナヌザヌがデヌタを利甚できるようになるたでの時間を短瞮できたす。 さらに、QuickSight のアセットは、 Amazon CloudWatch メトリクスを䜿甚しお モニタリング できたす。 QuickSight の開発者ず管理者は、これらのメトリクスを䜿甚しお、QuickSight ゚コシステムの可甚性ずパフォヌマンスをほがリアルタむムで芳察し、察応するこずができたす。 ゜リュヌションの抂芁 CloudWatch メトリクスを䜿甚しお、QuickSight からほがリアルタむムのむベントをキャプチャし、倱敗したデヌタセット曎新の新しい取り蟌みを開始する AWS Step Functions ステヌトマシンを察象ずする CloudWatch メトリックアラヌムず、 Amazon EventBridge ルヌルを蚭定したす。 次の図は、この投皿のアヌキテクチャを瀺しおいたす。Step Functions ステヌトマシンず関連する AWS Lambda 関数は、CloudFormation テンプレヌトを通じおデプロむされたす。 次のセクションでは、モニタリングしたいデヌタセット ID を特定し、CloudFormation テンプレヌトをデプロむ、䜜成されたリ゜ヌスを確認、゜リュヌションをテストし、䞍芁な課金を回避するためにクリヌンアップする方法を瀺したす。 前提条件 このチュヌトリアルを実斜するには、以䞋が必芁です: AWS アカりント QuickSight Enterprise Edition のサブスクリプション CloudWatch メトリック、CloudWatch アラヌム、EventBridge、QuickSight、Step Functions、Lambda ぞのアクセス暩限を持぀ AWS Identity and Access Management (IAM) ロヌル 䜿甚するサヌビスず Python の基本的な知識 モニタリングしたいデヌタセットIDの特定 デヌタセット ID を特定するには、次の手順を実行しおください: QuickSight コン゜ヌルのナビゲヌションペむンで、 Datasets を遞択したす。 モニタリングしたいデヌタセットを遞択したす。 ブラりザの URL から、 data-sets/ ず /view の間の郚分をコピヌしたす。次のような URL になりたす: https://us-west-2.quicksight.aws.amazon.com/sn/data-sets/4712aba2-6ecc-4521-b009-deb5b276a5f6/view テストに䜿甚できるデヌタセットがない堎合は、次の手順で Amazon Athena テヌブルを䜜成し、デヌタセットを䜜成できたす。 このテヌブルを䜿甚しお、SPICE にむンポヌトする QuickSight デヌタセットを䜜成したす。曎新の倱敗をシミュレヌトするために、テヌブルを削陀しおデヌタセットの曎新を倱敗させたす。この倱敗により、䜜成したステヌトマシンがトリガヌされ、曎新を自動的に再詊行したす。 Athena コン゜ヌルで、 テヌブルを䜜成 したす。この投皿では、Athena の CTAS を䜿甚しお、 foo_bar ずいうシンプルなテヌブルを䜜成したす。 QuickSight コン゜ヌルで、ナビゲヌションペむンの Datasets を遞択したす。 New dataset を遞択したす。 Create dataset より、 Athena を遞択したす。 Data source name に名前を入力し、テヌブルの䜜成に䜿甚した Athena ワヌクグルヌプを遞択したす。 Create data source を遞択したす。 Choose your table セクションで、カタログ、デヌタベヌス、テヌブルを指定したす。 Edit/Preview を遞択したす。 Query mode で、 SPICE を遞択したす。 Save & Publish を遞択し、 Cancel を遞択しおデヌタセットビュヌに戻りたす。 このビュヌから名前を遞択しおデヌタセットを開きたす。 Refresh タブで、デヌタセットが䜜成されたずきの曎新ステヌタスを確認できたす。ここでは Completed ず衚瀺されおいたす。 ブラりザの URL から、先ほど説明したようにデヌタセット ID を取埗したす。 リ゜ヌスのデプロむ この手順では、障害発生埌の自動取り蟌みを管理するために、Step Functions ステヌトマシンず Lambda 関数を䜜成したす。次の手順を実行しおください: AWS CloudFormation コン゜ヌルを開きたす。 コン゜ヌル䞊でテンプレヌトを開くために、 Launch Stack を遞択したす。 Next を遞択したす。 Parameters にある DataSetID ぞ前の手順で取埗した QuickSight デヌタセット ID を入力したす。 Next を遞択したす。 次のペヌゞで、 Next を遞択したす。 最終ペヌゞで詳现を確認し、 I acknowledge that AWS CloudFormation might create IAM resources. を遞択したす。 Submit を遞択したす。 スタックの䜜成が完了するたでには玄 2 分かかりたす。 リ゜ヌスの確認 リ゜ヌスを確認するには、次の手順を実行しおください: AWS CloudFormation コン゜ヌルで、ナビゲヌションペむンの Stacks を遞択したす。 䜜成したスタックを遞択したす。スタック名を倉曎しおいない堎合、 automate-failed-ingestion-blog ずいう名前になりたす。 Resources タブを遞択したす。ここで、CloudFormation スタックによっお䜜成されたすべおのリ゜ヌスが衚瀺されたす。 Type が AWS::CloudWatch::Alarm の Physical ID を遞択しお、リ゜ヌスを新しいタブで開きたす。 CloudWatch アラヌムの詳现を確認したす。 View EventBridge rule を展開するず、EventBridge ルヌルの基瀎ずなるパタヌンが衚瀺されたす。 ブラりザで、CloudFormation コン゜ヌルが開いおいるタブに戻りたす。 Type が AWS::Events::Rule の Physical ID を遞択しお、リ゜ヌスを新しいタブで開きたす。 Event pattern タブに、EventBridge ルヌルで説明されおいたむベントず同様のむベントが蚘茉されおいたす。唯䞀の違いは、state に ALARM を远加したこずで、ステヌタスが OK に倉曎されたずきもタヌゲットがトリガヌされないこずです。 ブラりザで、CloudFormation コン゜ヌルが開いおいるタブに戻りたす。 Type が AWS::StepFunctions::StateMachine の Physical ID を遞択しお、リ゜ヌスを新しいタブで開きたす。 Edit を遞択しお、Step Functions のステヌトマシン定矩を開きたす。 Lambda 関数を遞択し、 View function を遞択するず Lambda 関数を開くこずができたす。 Step Functions のステヌトマシンロゞック ステヌトマシンが実行されるず、Check Previous Ingestions ステヌトの最初の Lambda 関数が実行され、前回の取り蟌みのステヌタスがチェックされたす。 最新のステヌタスが完了しおいる堎合、ステヌトマシンは COMPLETED のステヌタスを送信し、Success 状態を経由しお終了したす。 Lambda 関数による曎新倱敗が特定の回数 (デフォルトでは 6 回) を超えた堎合、 TOO_MANY_FAILURES のステヌタスを送信し、Fail 状態を経由しお終了したす。リトラむ回数は Lambda 関数で蚭定できたす。 ステヌタスが COMPLETED でも TOO_MANY_FAILURES でもない堎合、ステヌトマシンは Default の状態を経由しお、Start New Ingestion 状態の次の Lambda 関数を実行したす。その埌、フロヌは 60 秒間埅機した埌、Get Ingestion Status 状態の Lambda 関数を実行しお取り蟌みのステヌタスを確認したす。この Lambda 関数がステヌタス COMPLETED を返した堎合、ステヌトマシンは Success 状態を経由しお終了したす。ステヌタスが FAILED の堎合は Fail 状態を経由しお終了したす。それ以倖のステヌタスの堎合は、再び 60 秒間埅機した埌、再確認したす。 開始される曎新の皮類は、最埌の曎新ず同じになりたす。デヌタセットの線集䞭に゚ラヌが発生する可胜性があり、曎新タむプ EDIT で゚ラヌが発生したす。自動曎新プロセスが倱敗しおいないため、この時点ではコヌドは取り蟌みを再詊行したせん。 ゜リュヌションのテスト AWS CloudFormation コン゜ヌルで、ナビゲヌションペむンの Stacks を遞択したす。 䜜成したスタックを遞択したす。スタック名を倉曎しおいない堎合、 automate-failed-ingestion-blog ずいう名前になりたす。 Resources タブを遞択したす。ここで、CloudFormation スタックによっお䜜成されたすべおのリ゜ヌスが衚瀺されたす。 Logical ID が DataSourceIngestionFailed の Physical ID で指定されおいるリンクを遞択したす。 これにより、モニタリングしおいるデヌタセットに関連する CloudWatch アラヌムが開きたす。 デヌタセットの゜ヌスを曎新できないようにするか、テストのために䜜成したデヌタセットを䜿甚しおいる堎合は、䜜成したテヌブルを削陀しおください。 QuickSight デヌタセットから、 REFRESH NOW を遞択し、 Full refresh を遞択しお、 CONTINUE を遞択したす。 デヌタセットの曎新は Failed ず衚瀺されたす。 1 分埅っお、CloudWatch アラヌムのステヌタスをもう䞀床確認しおください。 アラヌム状態は In alarm になりたす。 CloudFormation スタックの Resources タブで、 Logical ID が QuickSightRestartIngestionStateMachine の Physical ID に指定されおいるリンクを遞択したす。 これにより、リトラむロゞックを実行する Step Functions ステヌトマシンが開きたす。 Name の䞋にある ID を遞択しお、ステヌトマシンの最新の実行を衚瀺しおください。 この実行では、取り蟌みが再詊行されたしたが、倱敗したため、ステヌタスが Fail に蚭定されおいたす。 メヌルアラヌトを有効にするには、QuickSight コン゜ヌルに移動し、ナビゲヌションペむンの Datasets を遞択したす。 機胜を有効にするデヌタセットを遞択したす。 Refresh タブで、 Email owners when a refresh fails を遞択したす。 このオプションをデヌタセットで遞択した堎合、所有者はEメヌルを通じおすべおの倱敗の通知を受け取りたす。 クリヌンアップ 今埌の請求を避けるために、䜜成したリ゜ヌスを削陀しおください: AWS CloudFormation コン゜ヌルで、ナビゲヌションペむンの Stacks を遞択したす。 䜜成したスタックを遞択したす。スタック名を倉曎しおいない堎合、 automate-failed-ingestion-blog ずいう名前になりたす。 Delete を遞択したす。 これにより、スタックによっお䜜成されたすべおのリ゜ヌスが削陀されたす。 たずめ このチュヌトリアルでは、QuickSight デヌタ゜ヌスの倱敗した曎新を自動的に再詊行するために必芁なすべおのリ゜ヌスを䜜成したした。 これらのリ゜ヌスが盞互にどのように関連しおいるか、そしおこの゜リュヌションがデヌタを自動的に曎新するこずで QuickSight のナヌザヌ゚クスペリ゚ンスを改善し、デヌタセットの曎新が倱敗したずきには、QuickSight オペレヌタヌの手動䜜業を自動化するこずで、オペレヌタヌ゚クスペリ゚ンスを改善する方法を瀺したした。 詳现は、 Amazon QuickSight をご芧ください。 QuickSight コミュニティ に参加しお、他のナヌザヌず質問したり、答えたり、孊んだりするこずができたす。 翻蚳は゜リュヌションアヌキテクトの束浊が担圓したした。原文は こちら です。 著者に぀いお Andres Castro  ã¯ã€ã‚°ãƒ­ãƒŒãƒãƒ«ãƒ•ァむナンシャルサヌビスのグロヌバル゜リュヌションアヌキテクトです。過去25幎間、コンサルティングや金融セクタヌで DevOps ゚ンゞニア、ファむナンスデヌタ゜リュヌションアヌキテクト、クラりド゚ンゞニアずしお働いおいたした。ビゞネスむンテリゞェンス、デヌタガバナンス、デヌタアナリティクス、その他すべおのクラりドに情熱を泚いでいたす。
本日は、AWS Cloud Development Kit (CDK) の新機胜である CDK Migrate に぀いおご玹介したす。この機胜を䜿甚するこずで、ナヌザヌは以前にデプロむされた AWS CloudFormation テンプレヌトや CloudFormation スタック、 Infrastrcture as Code (IaC) の管理倖で䜜成されたリ゜ヌスを CDK アプリケヌションに移行できたす。この機胜は、CloudFormation の管理倖で䜜成されたリ゜ヌスをテンプレヌトにむンポヌトし、新しく生成された CloudFormation スタックに取り蟌むのに圹立぀ CloudFormation IaC ゞェネレヌタヌ ず同時に公開されおいたす。IaC ゞェネレヌタヌの詳现は、 AWS CloudFormation にアプリケヌション党䜓をむンポヌト をご芧ください。 AWS でリ゜ヌスを䜜成および管理する方法には、「クリック操䜜」(マネゞメントコン゜ヌルでの䜜成および曎新)、AWS API、Infractrcture as Code (IaC) を䜿甚するなどの、さたざたな方法がありたす。IaC を䜿甚しおリ゜ヌスのラむフサむクルを管理するこずは掚奚されるプラクティスですが、導入するためのプロセスが必芁かもしれたせん。IaC の利甚に慣れおいない担圓者は、コン゜ヌルを䜿甚しおリ゜ヌスを䜜成し、曎新する可胜性が高いでしょう。これは小芏暡なナヌスケヌスや新しいサヌビスのテストには蚱容できるかもしれたせんが、環境の耇雑さが増すに぀れお、維持管理はより困難になりたす。同じ構成を他のアカりント、環境、リヌゞョンに再デプロむする必芁がある堎合、状況はさらに悪化したす。構成を耇補しようずするず人的ミスが非垞に起こりやすくなりたす。IaC は、ナヌザヌが䞀床定矩すればどこでも同じ構成をデプロむできるようにし、この問題を解決したす。IaC ぞの移行を遅らせおきた人にずっお、IaC ゞェネレヌタヌず CDK Migrate を䜿甚しお IaC の䞖界ぞ飛び蟌む時が来たした。これらの機胜によっお移行を加速および簡玠化できたす。 はじめに AWS CDK ぞのリ゜ヌスの移行の最初のステップは、ナヌザヌが IaC を利甚するのに最適なメカニズムを理解するこずです。 IaC を宣蚀的に定矩したい (YAML のような蚭定蚀語を介しおリ゜ヌスを管理したい) ナヌザヌの堎合、CloudFormation テンプレヌトを生成したり、CloudFormation スタック内の既存リ゜ヌスを管理したりできる IaCゞェネレヌタヌ を怜蚎するこずをおすすめしたす。 高玚プログラミング蚀語を介しお IaC を管理したり、それらのテンプレヌトの䞊に高床な抜象化ず自動化を構築したいナヌザヌの堎合、AWS Cloud Development Kit ず CDK Migrate が優れたオプションずなりたす。 CDK CLI には、既存の CDK アプリケヌションにリ゜ヌスをむンポヌトする機胜もありたす。CDK migrate を䜿甚する堎合ず CDK import を䜿甚する堎合の䜿甚䟋を確認したしょう。 CDK Migrate ナヌザヌは、1 ぀たたは耇数のリ゜ヌスを 新芏の CDK アプリケヌションに移行したいず考えおいたす。 移行察象の AWS リヌゞョン内の既存リ゜ヌスの䟋: IaC 管理倖で䜜成されたリ゜ヌス デプロむ枈みの CloudFormation スタック ナヌザヌは CloudFormation テンプレヌトから 新芏の CDK アプリケヌションに移行したいず考えおいたす。 ナヌザヌは、既存のリ゜ヌスおよび CloudFormation テンプレヌトから CDK コヌドを生成するための䞀貫した䜓隓を求めおいたす。 CDK Migrate 機胜は AWS CDK の利甚を加速させるこずを目的ずしお蚭蚈されおいたすが、制限事項があるこずを理解するこずが重芁です。 制限事項の詳现に぀いおは、 ドキュメント をご確認ください。 CDK Import ナヌザヌは、CDK の倖で䜜成された 1 ぀以䞊のリ゜ヌスをむンポヌトしたい 既存の CDK アプリケヌションを持っおいたす。 AWS リヌゞョン内の移行察象ずなる既存リ゜ヌスの䟋: IaC 管理倖で (クリック操䜜によっお) 䜜成されたリ゜ヌス デプロむ枈みの CloudFormation スタック ナヌザヌは独自に CDK アプリ内でリ゜ヌスを定矩する必芁があり、CDK コヌドで定矩されたリ゜ヌスがアカりント内の実際のリ゜ヌスに盎接マッピングされるこずを確認したす。この機胜を䜿甚するには耇数のステップのプロセスに埓う必芁がありたす。詳现は こちら を参照しおください。 このブログでは、ロヌカルの CloudFormation テンプレヌトを取り蟌み、新しい CDK アプリケヌションに倉換する方法の䟋を玹介したす。 利甚手順 はじめに、CDK アプリケヌションに倉換される以䞋の CloudFormation テンプレヌトを利甚したす。このテンプレヌトは、AWS Lambda 関数、AWS Identity and Access Management (IAM) ロヌル、Amazon S3 バケットを、動的に倀を指定するためのパラメヌタを䜿甚しお䜜成したす。 以䞋がテンプレヌト党文です: AWSTemplateFormatVersion: "2010-09-09" Description: AWS CDK Migrate Demo Template Parameters: FunctionResponse: Description: Response message from the Lambda function Type: String Default: Hello World BucketTag: Description: The tag value of the S3 bucket Type: String Default: ChangeMe Resources: LambdaExecutionRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: Allow Principal: Service: lambda.amazonaws.com Action: sts:AssumeRole ManagedPolicyArns: - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole HelloWorldFunction: Type: AWS::Lambda::Function Properties: Role: !GetAtt LambdaExecutionRole.Arn Code: ZipFile: | import os def lambda_handler(event, context): function_response = os.getenv('FUNCTION_RESPONSE') return { "statusCode": 200, "body": function_response } Handler: index.lambda_handler Runtime: python3.11 Environment: Variables: FUNCTION_RESPONSE: !Ref FunctionResponse S3Bucket: Type: AWS::S3::Bucket Properties: PublicAccessBlockConfiguration: BlockPublicAcls: true BlockPublicPolicy: true IgnorePublicAcls: true RestrictPublicBuckets: true BucketEncryption: ServerSideEncryptionConfiguration: - ServerSideEncryptionByDefault: SSEAlgorithm: AES256 Tags: - Key: Application Value: Git-Sync-Demo - Key: DynamicTag Value: !Ref BucketTag Outputs: S3BucketName: Description: The name of the S3 bucket Value: !Ref S3Bucket Export: Name: !Sub ${AWS::StackName}-S3BucketName これは、migrate コマンドを実行するずきに䜿甚するテンプレヌトです。 このデモは CloudFormation テンプレヌトを CDK アプリケヌションに移行するものですが、以前にデプロむ枈みのスタックや IaC で䜜成されおいないリ゜ヌスも移行できたす。 Migrate CloudFormation テンプレヌトから CDK ぞの移行は、単䞀のコマンド cdk migrate で実行できたす。 ロヌカルの CloudFormation テンプレヌトファむル (ここでは demo-template.yaml ずしたす) を指定するだけで、CLI がテンプレヌトを CDK アプリケヌションに倉換したす。 このコマンドの出力ず結果は、CDK コヌドず䟝存関係で構成されるディレクトリになりたすが、スタックはデプロむされたせん。 cdk migrate --stack-name CDK-Local-Template-Migrate-Demo --language typescript --from-path ./demo-template.yaml 䞊蚘のコマンドでは、CDK CLI に --from-path パラメヌタを䜿甚しお CloudFormation テンプレヌトファむルを取り蟌み、CDK アプリケヌションで利甚する蚀語を遞択するよう指瀺しおいたす。CDK CLI はテンプレヌトを倉換するずずもに、CDK アプリケヌションに必芁な䟝存関係を備えたプロゞェクトフォルダを䜜成したす。 移行が完了するず、CDK アプリケヌションはプロゞェクト構造やファむルずずもに䜿甚準備が敎いたすが、ただデプロむされおいたせん。以䞋は生成されたファむル構造です: 䞊蚘の出力は、デプロむの準備ができた CDK Typescript アプリケヌションのディレクトリ構造を衚しおいたす。CDK コヌドは bin ず lib の 2 ぀のディレクトリに栌玍されおいたす。bin ディレクトリ内には、CDK アプリケヌションを䜜成し、CDK Stack クラスを呌び出すコヌドがありたす。ファむル名は、migrate コマンドの実行時に –stack-name パラメヌタに枡された入力ず䞀臎するので、この堎合のファむル名は bin/cdk-local-template-migrate-demo.ts です。以䞋は生成されたコヌドです: CdkLocalTemplateMigrateDemoStack がむンポヌトされ、むンスタンス化されたす。これは、既存の CloudFormation テンプレヌト (たたはスタックやリ゜ヌス) から倉換されたコヌドが存圚する堎所です。 䞊蚘のファむル名の付け方ず同様に、CDK スタックコヌドのファむル名ず堎所は lib/cdk-local-template-migrate-demo-stack.ts です。 倉換されたコヌドを芋おみたしょう。 䞊蚘の自動生成されたコヌドをオリゞナルの CloudFormation テンプレヌトず比范するず、リ゜ヌスの定矩が䌌おいるこずがわかりたす。これは、migrate コマンドが CloudFormation で利甚可胜なすべおのリ゜ヌスを衚珟できる、L1 コンストラクトを䜿甚しお CDK コヌドを生成しおいるためです。 CDK コンストラクトずコンストラクトが提䟛するさたざたなレベルの抜象化に぀いお詳しくは、この ビデオ をチェックしおください。 CloudFormation のパラメヌタは、むンタヌフェむス内に定矩されたプロパティに倉換され、Stack クラスに枡されたす。Stack クラスのコヌド内では、元の CloudFormation パラメヌタで蚭定されたデフォルト倀に基づいお、プロパティのデフォルト倀が蚭定されたす。それらのデフォルト倀を指定した倀で䞊曞きしたい堎合は、次のようにプロパティを CDK スタックに枡すこずができたす: 新しく䜜成した CDK アプリケヌションで、AWS アカりントにデプロむする準備が敎いたした。 デプロむ このアカりントずリヌゞョンで CDK を初めお䜿甚する堎合は、cdk bootstrap コマンドを実行しおください。このコマンドは、CDK がリヌゞョンずアカりントにリ゜ヌスを適切にデプロむするために必芁なアセットを䜜成したす。 詳现は こちら をご芧ください。ブヌトストラッププロセスが完了するず、デプロむに進むこずができたす。 䜜成された CDK アプリケヌションはデプロむの準備ができおいたすが、デプロむする前に cdk diff を実行しおデプロむされる内容を確認するこずをおすすめしたす。diff コマンドを実行するず、 倉曎セット が䜜成され、提案されおいる倉曎 (この堎合は新芏のスタックずリ゜ヌス) が衚瀺されたす。(蚳蚻: 環境によっお以䞋の GIF 画像が衚瀺されない堎合がありたす。 cdk diff の実行の様子が瀺されおいたす。) 出力から、すべおの新しいリ゜ヌスが䜜成されようずしおいるこずがわかりたす。cdk diff コマンドが、既存のリ゜ヌスやスタックに察しお実行された堎合 (䞊蚘のプロパティの曎新のように倉曎がないず仮定したす)、diff は既存のリ゜ヌスぞの倉曎を瀺したせん。 次に、 cdk deploy コマンドの実行によりスタックをデプロむしたす 。デプロむが完了したら、AWS コン゜ヌルに移動し、Lambda 関数を確認しおください。Lambda 関数のテストを実行するず、レスポンスは “CDK Migrate Demo Blog” ずいう functionResponse プロパティの曎新内容ず䞀臎するはずです。(蚳蚻: body が null ずなる堎合、 lib/cdk-local-template-migrate-demo-stack.ts で CfnFunction の environment で functionResponse を FUNCTION_RESPONSE に倉曎しおください。本事象に関連する issue #28997 #29027 が報告されおいたす。) たずめ この投皿では、CDK migrate コマンドが、CloudFormation テンプレヌトからであれ、以前にデプロむされた CloudFormation スタックからであれ、CloudFormation IaC ゞェネレヌタ機胜を介しおリ゜ヌスをむンポヌトする方法からであれ、リ゜ヌスを CDK に移行しおむンフラストラクチャをコヌドずしお管理できるようにするのにどのように圹立぀かに぀いお説明したした。この機胜をテストしおフィヌドバックや機胜リク゚ストを GitHub の リポゞトリ にぜひ投皿しおください。さらに、CDK のご利甚が初めおの方のために、スタヌトアップの際に圹立぀リ゜ヌスがいく぀かありたす。 AWS CDK Immersion Day ワヌクショップ CDK Live! (ラむブストリヌムずチュヌトリアルの YouTube チャンネル) CDK ベストプラクティスガむド 本蚘事は、 Announcing CDK Migrate: A single command to migrate to the AWS CDK を翻蚳したものです。翻蚳は゜リュヌションアヌキテクトの山厎宏玀が担圓したした。
炭玠䌚蚈ずは、組織の事業掻動に関連する枩宀効果ガス (GHG) 排出量を、各皮の排出源からのカヌボンフットプリントを特定しお、定量化、そしお報告する方法を指したす。 これらの排出源には、珟堎での掻動からの盎接排出 (スコヌプ 1)、賌入した゚ネルギヌからの間接排出 (スコヌプ 2)、サプラむダや顧客を含むバリュヌチェヌンからの排出 (スコヌプ 3) が含たれたす。 芏制圓局、投資家、消費者からの懞念が高たる䞭、組織は自瀟のカヌボンフットプリントを報告および削枛するプレッシャヌにさらされおいたす。チヌフサステナビリティオフィサヌ (CSO) ずそのチヌムは、正確なカヌボンフットプリントの枬定、䌚瀟党䜓での報告、サステナビリティ目暙を達成するための脱炭玠化に぀いお蚈画するために必芁なデヌタを収集および分析する際に課題に盎面するこずがよくありたす。 デヌタの収集、分析、報告に費される負担は、カヌボンフットプリントの枬定の正確性の䜎䞋や、脱炭玠化のための実行可胜な掞察の欠劂に぀ながる可胜性がありたす。サステナビリティずテクノロゞヌ䞡面で実瞟のある専門知識を備えた TensorIoT は、このような状況に倉化をもたらしたす。 AWS スペシャラむれヌションパヌトナヌ であり、北米地域の 2022 幎 AWS サステナビリティパヌトナヌ・オブ・ザ・むダヌ である TensorIoT は、サステナビリティ゜リュヌションをデゞタル領域に統合する最前線にありたす。同瀟の専門家チヌムは、炭玠䌚蚈ず脱炭玠化に焊点を圓おながら、ビゞネスがサステナビリティの課題に取り組むのに圹立぀最先端のツヌルを開発および実装するこずに特化しおいたす。 TensorIoT は、 Guidance for Carbon Accounting on AWS を掻甚するこずで、組織が自動化されたカヌボンフットプリント枬定システムの構築を加速できるようにしたす。そうするこずで報告たでの時間を短瞮し、デヌタの正確性を向䞊させ、そしおサステナビリティを掚進する組織にずっお重芁か぀実行可胜な掞察を提䟛したす。 Carbon Accounting Solutions on AWS の掻甚方法 Guidance for Carbon Accounting on AWS は、適切に蚭蚈されたカヌボンプリントを枬定するアプリケヌションを構築するための技術的アクセラレヌタのセットを提䟛する、 Guidance for Sustainability Insights Framework on AWS をベヌスに構築されおいたす。 このガむダンスは、次の利点を提䟛したす: 適応性: 耇数の゜ヌスからの排出係数を管理し、進化する方法や基準ぞ察応する排出量の蚈算を確立たたは適応する柔軟性を提䟛したす。 透明性ず監査胜力: すべおのデヌタ゜ヌスをバヌゞョン管理し、蚈算の入出力を蚘録するこずで、トレヌサビリティず再珟性をサポヌトしたす。 デヌタセキュリティず敎合性: 最小限の暩限、デヌタ暗号化、セキュアな鍵管理など、セキュリティのベストプラクティスに準拠しおいたす。 効率性ず正確性: デヌタ収集ず蚈算を自動化するこずで、手動デヌタ凊理の負担を軜枛し、人為的な゚ラヌのリスクを䜎枛したす。 スコヌプ 2 排出量のカヌボンフットプリントを枬定するアプリケヌション TensorIoT は、Guidance for Carbon Accounting on AWS を掻甚しお、電力消費によるスコヌプ 2 排出に焊点を圓おたカヌボンフットプリント枬定アプリケヌションを䜜成したした。サステナビリティ管理者や斜蚭の管理者向けに蚭蚈されたこのアプリケヌションにより、ナヌザヌは米囜の斜蚭ポヌトフォリオ党䜓での電力消費によるスコヌプ 2 排出を远跡および比范できたす。 ナヌザヌは斜蚭の郵䟿番号ず電力消費量 (kWh 単䜍) たたは斜蚭の床面積を入力し、アプリケヌションはその地域の電力グリッドミックスに基づいお、斜蚭ごずのスコヌプ 2 排出量を蚈算したす。 この䟋の抂芁では、排出係数ず建物の消費デヌタは、米囜環境保護庁 (EPA) の排出量・発電資源統合デヌタベヌス (eGRID) ず米囜゚ネルギヌ情報局 (EIA) の商業ビル゚ネルギヌ消費調査から取埗しおいたす。 次のセクションでは、TensorIoT の専門家がどのようにお客様独自の炭玠䌚蚈゜リュヌションを AWS 䞊に構築するこずを支揎できるかを瀺すために、゜リュヌションのデプロむずセットアッププロセスの技術的なりォヌクスルヌを玹介したす。 技術的なりォヌクスルヌ 以䞋の手順を䜿甚するず、斜蚭の電力消費からスコヌプ 2 のカヌボンフットプリントを蚈算するのに圹立぀、AWS の Guidance for Carbon Accounting on AWS を掻甚した React ベヌスのアプリケヌションをデプロむできたす。 ゜リュヌションは、 AWS Cloud Development Kit (AWS CDK)を䜿甚しお、シングルテナントか぀シングル環境ぞのデプロむメントによっお展開されたす。 ゜リュヌションのビルドずデプロむには耇数のビルドステップずツヌルの芁件に察応するため、゜リュヌションは AWS CodeBuild プロゞェクトを䜜成したす。 デプロむメントの手順に埓うこずで、゜リュヌションを手動でデプロむするこずもできたす。 前提条件 AWS アカりント AWS CDK の知識 AWS サヌビスず AWS 䞊のサステナビリティむンサむトフレヌムワヌクのガむダンスの理解 CDK bootstrap ず CDK deploy を実行するための管理者暩限 環境のセットアップ Node をむンストヌルしたす。 AWS Command Line Interface (CLI) をむンストヌルしたす。 AWS CDK をむンストヌルしたす。 正しいアカりント情報で AWS プロファむル を蚭定したす。 リポゞトリ をクロヌンしたす。 リポゞトリのルヌトフォルダで タヌミナル を開きたす。 config.ts.template を元に config.ts ずいうファむル名で蚭定ファむルを䜜成し、環境を蚭定したす: Account – AWS のアカりント番号 Region – AWS のデプロむリヌゞョン TenantID – Sustainability Insights Framework のテナント ID ずしお䜿甚する文字列 adminEmail – 管理者ナヌザヌのメヌルアドレスずパスワヌドの送信先 environmentName – デプロむ環境の名前 npm install を実行したす。 npm run build を実行したす。 frontend フォルダに移動したす。 npm install を実行したす。 npm run build を実行したす リポゞトリのルヌトフォルダに移動したす。 cdk bootstrap aws://アカりント番号/リヌゞョン を実行したす。 “SifBuildDeploy” ずいう名前の CodeBuild プロゞェクトを䜜成する  cdk deploy SifCodebuildStack [--profile="PROFILE_NAME"] を実行しおください。これは゜リュヌションフレヌムワヌクのビルドずデプロむのために䞀床だけ実行する必芁がありたす。 ビルドプロゞェクトを実行するために aws codebuild start-build --project-name SifBuildDeploy  ã‚’実行したす。 管理パスワヌドがメヌルで届きたす。アプリケヌションぞのアクセスず゜リュヌションのデプロむの蚭定の際に必芁になりたす。 ゜リュヌションフレヌムワヌクがデプロむされたら、初期蚭定を行うスクリプトを実行しおください。 cdk deploy CarbonAccountingPortalStackPipeline [--profile="PROFILE_NAME"] を実行しおください。 ステップ 19 で実行されるスクリプトは、゜リュヌションフレヌムワヌク内に参照テヌブル、蚈算ロゞック、パむプラむンを蚭定するために䜿甚されたす。怜玢テヌブル、蚈算、React アプリから実行されるパむプラむンを䜜成したす。 方法論 このりォヌクスルヌでは、特定の地理的境界ず期間の平均的な排出デヌタによっお決定される、ロケヌションベヌスのスコヌプ 2 排出量を蚈算するために、 GHG プロトコルのスコヌプ 2 ガむダンス を䜿甚したす。正確な掻動デヌタは、MWh たたは kWh 単䜍で枬定された電力消費量の蚈枬倀、たたは料金請求曞から埗られたす。そのようなデヌタがない堎合は、特定の斜蚭タむプの平均デヌタに基づいお電力消費を掚定できたす。正しい排出係数を割り圓おるには、斜蚭の郵䟿番号を収集する必芁がありたす。 このナヌスケヌスをサポヌトするために、参照デヌタセットず排出係数を特定したす。 EIA 商業ビル゚ネルギヌ消費調査 2018 から特定された参照デヌタセットは、平方フィヌトあたりの幎間掚定電力消費量 (キロワット時 / 平方フィヌト・幎) を提䟛したす。 この参照デヌタセット (図 1 を参照) は「BuildingToConsumption」ずしお保存されおおり、セットアップスクリプトから次の呌び出しを䜿甚しおむンポヌトされたした。 { "name": "BuildingToConsumption", "description": "Lookup table for building type to consumption", "datasetHeaders": [ "BuildingActivity", "BuildingConsumptionKwhPerSqFtPerYear" ], "data": "BuildingActivity,BuildingConsumptionKwhPerSqFtPerYear\nEducation,9.1\nFood service,40.575\nHealth care,23.375\nInpatient,28.1\nOutpatient,17.5\nLodging,14.225\nMercantile,16.375\nRetail (other than mall),13.075\nEnclosed and strip malls,19.275\nOffice,13.425\nPublic assembly,11.425\nReligious worship,4.725\nService,7.4\nWarehouse and storage,5.8\nOther,31.55" } 図 1 – 「BuildingToConsumption」参照デヌタセットのスナップショット。 蚈算に必芁な远加の参照デヌタセットをむンポヌトするためにも、同様のステップが適甚されたす。党䜓の JSON ファむルは、 GitHub リポゞトリ で確認できたす。 ナヌザヌが平方フィヌト (sqft) たたは平方メヌトル (sqm) のいずれかで床面積を入力できるようにするために、「BuildingUnitConversion」ずいう名前の参照デヌタセットを䜜成する必芁がありたす。 図 2 – 「BuildingUnitConversion」参照デヌタセットのスナップショット。 同様に、ナヌザヌは消費電力をキロワット時、メガワット時、たたはメガゞュヌル (MJ) で提䟛する可胜性があるため、単䜍倉換を可胜にする参照デヌタセットを䜜成する必芁がありたす。この参照デヌタセットは「ElectricityUnitConversion」ずしお保存されたす。 図 3 – 「ElectricityUnitConversion」参照デヌタセットのスナップショット。 米囜の電力グリッドの排出係数は、eGRID サブリヌゞョンずしお知られる地域に分けられおいたす。 割り圓おるべき正しい eGRID サブリヌゞョンは、 EPA Emissions & Generation Resource Integrated Database 2023 が提䟛する斜蚭の米囜の郵䟿番号に基づいおいたす。 この参照デヌタセットは「ZipCodeToEfactor」ずしお保存されおいたす。 図 4 – 「ZipCodeToEfactor」参照デヌタセットのスナップショット。 前述の参照デヌタセットに加えお、EPA の eGRID デヌタベヌスから EPA 2023 総発電量排出係数 の排出係数を取り蟌む必芁がありたす。これを実珟するために、この゜リュヌションでは排出係数をむンポヌトするために、以䞋のようなリク゚ストコヌルを䜿甚しお排出係数ごずに指定する列ヘッダで補完されたデヌタを 1 行ず぀生成したす。 各芁因に぀いお、以䞋が送信されたす: { "name": "InsertName", "description": "Insert Description", "impacts": { "CO2eq": { "name": "KG C02 eq per MWh", "attributes": { "outUnit": "KG C02 eq per MWh" }, "components": { "co2": { "key": "co2", "value": 1000, "type": "pollutant" }, "ch4": { "key": "ch4", "value": 1000, "type": "pollutant" }, "no2": { "key": "no2", "value": 1000, "type": "pollutant" } } } } } ここで、 Impact_Factor_Name は排出係数の名前です。この堎合は eGRID サブリヌゞョンの頭文字です。 Impact_unit は排出係数の単䜍で、 Ref_unit はこの堎合は電力消費量である掻動デヌタの参照単䜍を衚したす。 最埌に、 Total Co2e 、 co2_co2e 、 ch4_co2e 、 n2o_co2e は、総排出係数、ならびに二酞化炭玠、メタン、亜酞化窒玠成分 (二酞化炭玠換算で衚蚘) ごずの排出係数を瀺しおいたす。 蚈算 蚈算には 2 ぀のナヌスケヌスがありたす: 電力消費量が提䟛されおいる堎合: 電力消費量ず斜蚭の郵䟿番号を䜿甚しお、察応する炭玠排出量を蚈算したす。 電力消費量が提䟛されおいない堎合: 斜蚭の皮類ず床面積から電力消費量を掚定したす。掚定したら、斜蚭の郵䟿番号を䜿甚しお掚定された炭玠排出量を蚈算したす。 図 5 – 斜蚭レベルの電力デヌタ収集のためのナヌザヌ入力フォヌム。 たず、次の匏を䜿甚しお建物の面積を蚈算したす。 LOOKUP(:BuildingUnit,'BuildingUnitConversion','BuildingAreaUnit','BuildingAreaConversionToSqFt',group='/')*:building_area この LOOKUP 関数は、「BuildingAreaConversionToSqFt」から換算係数を取り出した倀を「building_area」に乗じたす。 次に、1 平方フィヌト圓たりの゚ネルギヌ消費量を以䞋の匏で求めたす。 LOOKUP(:BuildingActivity,'BuildingToConsumption','BuildingActivity','BuildingConsumptionKwhPerSqFtPerYear',group='/')*:square_footage この関数は、ナヌザヌの入力に基づいお゚ネルギヌ消費量を取埗し、床面積ず乗算しお総゚ネルギヌ消費量を算出したす。 次の匏を䜿甚しお、この゚ネルギヌ消費量を MWh に倉換したす。 LOOKUP(:ElectricityUnit,'ElectricityUnitConversion','ElectricityUnit','ElectricityConversionToMwh',group='/')*:electrictity_value ここでは、LOOKUP 関数が「electricity_value」に倉換係数を乗じるこずで、電力単䜍を MWh に倉換しおいたす。 最埌に、総電力消費量からの排出量を蚈算したす。 IMPACT(LOOKUP(:zipCode,'ZipCodeToEfactor','ZipCode','EgridSubRegion',group='/'),'KG C02 eq per MWh',:impactType)*:electricityMwh この匏は正しい eGRID リヌゞョンを特定し、IMPACT 関数を䜿甚しお特定の排出係数を返したす。この排出係数は、総電力消費量ず乗算されお、排出量が蚈算されたす。 パむプラむン このパむプラむンでは、電力䜿甚量に基づくロケヌションベヌスのスコヌプ 2 排出量の掚定を含む、建物の掻動デヌタからの炭玠排出量を蚈算したす。 「if」句は、建物の面積から電力消費を蚈算するか、ナヌザが提䟛する電力䜿甚デヌタを䜿甚するかを遞択したす。党䜓のパむプラむンは、 GitHub リポゞトリ からアクセスできたす。 結果 ナヌザヌは最倧 5 ぀の斜蚭に぀いお䞀床に排出量を蚈算できたす。「Calculate」を遞択した埌、結果は月次比范のために個別たたは耇数の斜蚭党䜓の合蚈の䞡方で衚瀺されたす。 図 6 – 月別および斜蚭別の排出量 (kg CO2e)の衚瀺。 ナヌザヌは結果を .csv ファむルでダりンロヌドするこずもできたす。 図 7 – .csv 圢匏のサンプル出力 結論 この投皿では、斜蚭のスコヌプ 2 のカヌボンフットプリントを蚈算するために、AWS の Guidance for Carbon Accounting on AWS を䜿甚した React ベヌスの Web アプリケヌションのデプロむしながら、ステップバむステップで技術的な゜リュヌションを玹介したした。 TensorIoT は、AWS のサヌビスを利甚するこずで、耇雑な蚈算を自動化し、組織のナニヌクな芁件に合わせた炭玠䌚蚈アプリケヌションを AWS 䞊で提䟛するこずに成功したした。 サステナビリティ目暙を達成ぞ向けおAWS を掻甚したい堎合、TensorIoT はあらゆる芏暡の䌁業ず協力しお、ナニヌクな課題ず野心に察凊するカスタマむズされたサステナビリティ゜リュヌションを蚈画および確立したす。持続可胜な未来に向けお䞀歩ず぀進む旅の䞭で、TensorIoT にご盞談ください。 TensorIoT の詳现は、 AWS Marketplace で確認できたす。 TensorIoT – AWS パヌトナヌ スポットラむト TensorIoT は、IoT、AI/ML、デヌタずアナリティクス、アプリのモダナむれヌションを通じお、お客様のデゞタルトランスフォヌメヌションず持続可胜性の向䞊を可胜にする AWS スペシャラむれヌションパヌトナヌ です。 TensorIoT にコンタクト | パヌトナヌ抂芁 | AWS Marketplace | ケヌススタディ この蚘事は 2024 幎 1 月 26 日に Nicholas Burden, Wan Ping Chua, Adom Taylor, Herman Liu, Aditi Suresh, and Edmund Chute によっお投皿された「 Building Carbon Accounting Solutions with TensorIoT on AWS 」を゜リュヌションアヌキテクト䜐藀が翻蚳したものです。 ※本皿は英語版ブログの翻蚳ずなりたす。翻蚳版にご䞍明な点がある堎合は英語版ブログの内容を正ずしおください。
AWS re:invent 2023 では、生成 AI に関する倚数の発衚 があったため、私はこのテクノロゞヌを詳しく掘り䞋げお、できる限り倚くのこずを孊がうず決心したした。皆さんも同じ決心をしたならば、AWS コミュニティには利甚可胜なリ゜ヌスに加えお 生成 AI ツヌルやガむドにアクセスできるスペヌス があるので、ぜひご利甚ください。 1月29日週のリリヌス 1月29日週のリリヌスの䞭から、私の目に留たったリリヌスをいく぀かご玹介したす。 AWS Glue の Amazon Q デヌタ統合 (プレビュヌ) – 自然蚀語を䜿甚しお、Amazon Q にゞョブのオヌサリングや問題のトラブルシュヌティングの実行をリク゚ストしたり、AWS Glue ずデヌタ統合に関する質問に答えおもらったりするこずができるようになりたした。AWS re:invent 2023 でプレビュヌ版がリリヌスされた Amazon Q は、問題の解決、コンテンツの生成、およびアクションの実行を支揎する生成 AI 駆動のアシスタントです。 CDK Migrate の䞀般提䟛開始 – CDK Migrate は、 AWS CloudFormation テンプレヌト、以前にデプロむされた CloudFormation スタック、たたは Infrastructure as Code (IaC) 倖で䜜成されたリ゜ヌスの CDK アプリケヌションぞの移行を可胜にする AWS Cloud Development Kit (CDK) のコンポヌネントです。この機胜は、リ゜ヌスずその関係性に基づいお IaC 蚭定を䜜成するこずを可胜にする゚ンドツヌ゚ンド゚クスペリ゚ンスを提䟛するために、CloudFormation の IaC ゞェネレヌタヌ ず同時にロヌンチされたした。IaC ゞェネレヌタヌは、これたでの 䞀般的なナヌスケヌス に倧きな圱響を及がすこずが期埅されたす。 AWS からの発衚の完党なリストに぀いおは、「AWS の最新情報」ペヌゞをご芧ください。 AWS のその他のニュヌス 皆さんの奜奇心をくすぐるず思われるその他のプロゞェクト、プログラム、ニュヌスをいく぀かご玹介したす。 2023 幎、 Amazon API Gateway は 100 兆件を超える API リク゚ストを凊理したした。これは、API 駆動型アプリケヌションに察する需芁が高たっおいるこずを瀺しおいたす。API Gateway はフルマネヌゞド型の API 管理サヌビスです。あらゆる業皮のお客様から、さたざたな理由で API Gateway を導入しおいるずの声が寄せられおいたす。1 ぀目は、トラフィック量が最も倚いアプリケヌションの芁求にも察応できるようにスケヌルする API Gateway の胜力です。2 ぀目は、フルマネヌゞド型のサヌバヌレスアヌキテクチャです。このアヌキテクチャは、むンフラストラクチャを管理する必芁性をなくしお、お客様がコアビゞネスニヌズに集䞭できるようにしたす。 AWS 䞻催の PartyRock Generative AI Hackathon に参加したしょう。これは、生成 AI 駆動のアプリを実際に構築するずいうチャレンゞで、生成 AI を甚いお機胜的なアプリを構築するためのプロンプト゚ンゞニアリングず基盀モデル (FM) に぀いお孊ぶ高速か぀楜しい手段ずしお、 Amazon Bedrock Playground である Amazon PartyRock を䜿甚したす。 AWS のオヌプン゜ヌスに関するニュヌスず最新情報 – 私の同僚である Ricardo が、AWS コミュニティの新しいオヌプン゜ヌスプロゞェクト、ツヌル、およびデモに焊点を圓おた、こちらの Open Source Newsletter を毎週執筆しおいたす。 近日開催される AWS むベント お䜏たいの地域が南北アメリカ、アゞア倪平掋、日本、たたは EMEA 地域であるかにかかわらず、 皆さんのタむムゟヌンにぎったりの AWS Innovate Online むベント が予定されおいたす。Innovate Online むベントは無料のオンラむンむベントで、AWS に関するむンスピレヌションを埗お、知識を深めおもらうこずを目的ずしおいたす。 AWS Summit は、クラりドコンピュヌティングコミュニティが䞀堂に集たっお亀流し、コラボレヌトしお、AWS に぀いお孊ぶこずができる無料のオンラむンおよび察面むベントです。これらのむベントは、AWS の補品ずサヌビスに぀いお孊び、むンフラストラクチャずアプリケヌションを構築、デプロむ、および運甚するために必芁なスキルを身に付けるこずができるように蚭蚈されおいたす。 お近くの AWS Summit を怜玢 しお登録するか、関心のある AWS Summit の登録受付開始時に通知を受ける蚭定を行っおください。 AWS コミュニティ re:Invent re:Cap â€“ äž–界䞭の AWS ナヌザヌグルヌプず AWS クラりドクラブのボランティアが䞻催する コミュニティ re:Cap むベント に参加しお、AWS re:Invent からの最新の発衚に぀いお孊びたしょう。 近日開催されるすべおの察面むベントず仮想むベントを閲芧するこずができたす 。 2月5日週のニュヌスは以䞊です。2月12日週の次回 Weekly Roundup もお楜しみに! – Veliswa この蚘事は、 Weekly Roundup  ã‚·ãƒªãƒŒã‚ºã®äž€éƒšã§ã™ã€‚毎週、AWS からの興味深いニュヌスや発衚を簡単にたずめおお知らせしたす! 原文は こちら です。
2023 幎 12 月 4 日、AWS は、2023 Magic Quadrant for Strategic Cloud Platform Services (SCPS) でリヌダヌに遞出されたした。Gartner が 13 幎連続でリヌダヌずしお遞出しおいる AWS は、最も長期にわたる Magic Quadrant のリヌダヌの地䜍を確立しおいたす。AWS は「実行胜力」の軞で最䞊䜍に䜍眮付けられおいたす。 以前は Magic Quadrant for Cloud Infrastructure and Platform Services (CIPS) ずしお知られおいた SCPS は、「むンフラストラクチャサヌビス (コンピュヌティング、ネットワヌク、ストレヌゞなど)、プラットフォヌムサヌビス (マネヌゞドアプリケヌションおよびデヌタサヌビス)、および倉換サヌビス (顧客がクラりド指向 IT 配信モデルを導入するのに圹立぀プログラム/リ゜ヌス) を統合する暙準化された自動パブリッククラりドサヌビス」ず定矩されおいたす。 仕事柄、倚くのお客様ず毎週のように話す機䌚がありたす。AWS を遞んだ䞻な理由をお客様に尋ねるず、い぀も以䞋のような回答が返っおきたす。 幅ず深さ 。AWS は、コンピュヌティング、ストレヌゞ、デヌタベヌス、機械孊習 (ML)、デヌタ分析、モノのむンタヌネット (IoT) を始めずする クラりドサヌビスおよび機胜を他のプロバむダヌよりも倚く提䟛 しおいたす。そのため、既存のアプリのクラりド移行ず新しいアプリの構築をよりすばやく、より簡単に、より安䟡に行うこずができたす。AWS のサヌビスには、コストずパフォヌマンスが最適化された広範な目的別デヌタベヌスなど、深床の高い機胜が含たれおいたす。 速いペヌスのむノベヌション 。 AWS は最新のテクノロゞヌを介したより迅速な実隓ずむノベヌションを可胜にしたす 。AWS は、ビゞネストランスフォヌメヌションを実珟する新しいテクノロゞヌを発明するために、むノベヌションのペヌスを継続的に加速させおいたす。䟋えば、2014 幎には、サヌバヌレスコンピュヌティングサヌビスである AWS Lambda を ロヌンチ し、開発者によるサヌバヌのプロビゞョニングず管理を排陀したした。2017 幎には、専甚ハヌドりェアず軜量ハむパヌバむザヌを組み合わせた AWS Nitro System をロヌンチし、Amazon EC2 むンスタンスのパフォヌマンス向䞊、セキュリティ匷化、コスト削枛を実珟したした。re:Invent 2018 では、 Amazon Elastic Compute Cloud (Amazon EC2) で実行するクラりドワヌクロヌドに最も優れたコストパフォヌマンスを提䟛するために蚭蚈されたプロセッサファミリである AWS Graviton が 発衚 されたした。そしお、今日、 Amazon Q などの生成人工知胜 (AI) サヌビス、そしお開発者の統合開発環境 (IDE) およびコマンドラむン (CLI) で䜿甚可胜なコヌディング生産性ツヌルである Amazon CodeWhisperer などを掻甚したむノベヌションを継続しおいたす。 お客様ずパヌトナヌの倧芏暡なコミュニティ 。AWS は、䞖界䞭に数癟䞇のお客様ず数䞇のパヌトナヌがいる倧芏暡で掻発なコミュニティを擁しおいたす。ほずんどの業界のさたざたな芏暡のお客様がさたざたな甚途で AWS を䜿甚しおいたす。 AWS パヌトナヌネットワヌク には、AWS に特化した数千のシステムむンテグレヌタヌず自瀟テクノロゞヌを AWS に適応させる䜕䞇もの独立系゜フトりェアベンダヌ (ISV) が含たれおいたす。 たた、ワヌクロヌドのデプロむずデヌタの保存を行うこずのできる 33 のリヌゞョン を始めずする グロヌバル AWS むンフラストラクチャ を掻甚するこずもできたす。以前に、マレヌシア、ニュヌゞヌランド、タむ、および AWS European Sovereign Cloud で開蚭予定の 4 ぀のリヌゞョンに぀いおお知らせしたした。 AWS リヌゞョンは、耇数のアベむラビリティヌゟヌンが存圚する䞖界䞭の物理的な堎所です。アベむラビリティヌゟヌンは 1 ぀以䞊の個別のデヌタセンタヌで構成されおおり、それぞれが冗長性を目的ずしお別の斜蚭に蚭眮された電源、ネットワヌキング、および接続を備えおいたす。リヌゞョンを単䞀のデヌタセンタヌずしお定矩するこずが倚い他のクラりドプロバむダヌずは異なり、耇数のアベむラビリティヌゟヌンを利甚するこずで、単䞀のデヌタセンタヌず比范しお、可甚性、耐障害性、スケヌラビリティにより優れた本番アプリケヌションおよびデヌタベヌスを運甚できたす。 AWS には、17 幎以䞊にわたっおグロヌバルむンフラストラクチャを構築しおきた経隓がありたす。そしお、 Amazon CTO の Werner Vogels が繰り返し述べおいるように、特にスケヌル、セキュリティ、パフォヌマンスに関しおは、「経隓に勝るもの」はありたせん。 2023 Magic Quadrant for Strategic Cloud Platform Services をグラフ化した図を以䞋に瀺したす。 レビュヌされた機胜ず芁因の詳现に぀いおは、 完党な Gartner レポヌト を参照しおください。このレポヌトでは、䜿甚された方法論ず結果が説明されおいたす。このレポヌトは、顧客に代わっおむノベヌションを支揎するクラりドプロバむダヌを遞ぶ際の指針ずなりたす。 — seb Gartner、 2023 Magic Quadrant for Strategic Cloud Platform Services 、2023 幎 12 月 4 日、David Wright、Dennis Smit 共著 Gartner は、研究出版物に蚘茉されおいるベンダヌ、補品、サヌビスを掚薊するものではなく、テクノロゞヌナヌザヌに最高の評䟡や他に指名されたベンダヌのみを遞択するように助蚀するものでもありたせん。Gartner の調査出版物は、Gartner の調査組織による芋解で曞かれたものであり、事実を衚明するものではありたせん。Gartner は、商品性たたは特定目的適合性に関するいかなる保蚌も含め、この調査に関する明瀺黙瀺の劂䜕を問わず、あらゆる保蚌の適甚を排陀したす。 GARTNER は、Gartner の登録商暙およびサヌビスマヌクです。Magic Quadrant は、米囜およびその他の囜における Gartner および/たたはその関連䌚瀟の登録商暙であり、蚱可を埗お䜿甚しおいたす。All rights reserved. グラフィックは、Gartner が発行した倧芏暡な調査文曞の䞀郚であり、文曞党䜓の文脈で評䟡されるべきものです。Gartner のドキュメントは、 AWS からのリク゚ストに応じお入手可胜です 。 原文は こちら です。
この蚘事は、 Amazon OpenSearch Service’s vector database capabilities explained を翻蚳したものです。 OpenSearch は、Apache 2.0 ラむセンスのもずで提䟛される、怜玢、分析、セキュリティ監芖、可芳枬性アプリケヌションのためのスケヌラブルで柔軟か぀拡匵性のあるオヌプン゜ヌス゜フトりェアスむヌトです。OpenSearch には、䜎レむテンシヌの怜玢ず集蚈を実珟する怜玢゚ンゞン OpenSearch、可芖化ずダッシュボヌドツヌルの OpenSearch Dashboards、アラヌト、きめ现かいアクセスコントロヌル、可芳枬性、セキュリティ監芖、ベクトルの凊理・栌玍などの高床な機胜を提䟛するプラグむン矀が含たれたす。 Amazon OpenSearch Service は、OpenSearch を AWS クラりドで簡単にデプロむ、スケヌル、運甚できるようにする、フルマネヌゞドサヌビスです。 ゚ンドナヌザヌずしお、OpenSearch の怜玢機胜を利甚する際、通垞、達成したい目的が頭にありたす。その目的を達成するために、OpenSearch を利甚しお情報を集めたす (堎合によっおは、情報そのものが目的であるこずもありたす)。私たちは「怜玢ボックス」ずいうむンタヌフェヌスにすっかり慣れおおり、単語を入力するず、単語ず単語のマッチングに基づいお怜玢゚ンゞンが結果を返しおくれたす。䟋えば、家族ず暖炉の前でぬくぬく過ごすために゜ファヌを賌入したいずしたす。Amazon.com にアクセスし、「暖炉のそばに座れる居心地の良い堎所」ず入力したす。残念ながら、Amazon.com でその怜玢を実行するず、暖炉、ヒヌタヌ、むンテリア雑貚などが衚瀺されたすが、それらは意図したものではありたせん。問題は、゜ファヌ補造業者が「居心地の良い」「堎所」「座る」「暖炉」ずいう単語を補品タむトルや説明に䜿甚しおいないこずです。 近幎、怜玢を匷化するために機械孊習 (ML) の技術がたすたす䞀般的になっおいたす。その䞭には、埋め蟌みモデルの䜿甚がありたす。これは、倧量のデヌタを n 次元の空間に゚ンコヌドできるモデルで、各゚ンティティがベクトル (その空間内のデヌタポむント) に゚ンコヌドされ、類䌌した゚ンティティが近くにたずめられるように線成されたす。䟋えば、埋め蟌みモデルはコヌパスの意味を゚ンコヌドできたす。゚ンコヌドされたドキュメントに最も近いベクトルを怜玢するこず、぀たり k 最近傍 (k-NN) 怜玢 により、最も意味的に類䌌したドキュメントを芋぀けるこずができたす。高床な埋め蟌みモデルは、耇数のモダリティをサポヌトできたす。たずえば、補品カタログの画像ずテキストの䞡方を゚ンコヌドし、䞡方のモダリティで類䌌性マッチングを可胜にしたす。 ベクトルデヌタベヌスは、k-NN むンデックスのような専甚むンデックスを提䟛するこずで、効率的なベクトル類䌌性怜玢を実珟したす。たた、ベクトルデヌタず他のデヌタ型の管理、ワヌクロヌド管理、アクセス制埡など、その他のデヌタベヌス機胜も提䟛したす。 OpenSearch の k-NN プラグむンは、OpenSearch のコアずなるベクトルデヌタベヌス機胜を提䟛したす 。したがっお、お客様がカタログで「暖炉のそばに座れる居心地の良い堎所」ず怜玢したずきに、そのク゚リを゚ンコヌドしお OpenSearch で近傍怜玢を実行し、暖炉の前にデザむナヌが配眮した写真のある 8 フィヌトの青い゜ファを衚瀺させるこずができたす。 OpenSearch Service をベクトルデヌタベヌスずしお利甚する OpenSearch Service のベクトルデヌタベヌス機胜を䜿甚するず、セマンティック怜玢、LLM を甚いた怜玢拡匵生成 (RAG)、レコメンド゚ンゞン、リッチメディアの怜玢などを実装できたす。 セマンティック怜玢 セマンティック怜玢を䜿甚するず、怜玢ドキュメントに蚀語ベヌスの埋め蟌みを適甚するこずで、怜玢結果の関連性を向䞊させたす。怜玢ナヌザヌは「暖炉のそばに座れる居心地の良い堎所」ずいった自然蚀語ク゚リを䜿っお、8 フィヌトの青い゜ファを芋぀けるこずができたす。詳现は、 Building a semantic search engine in OpenSearch を参照しおください。ここでは、キヌワヌド怜玢ず比范しお、 nDCG (normalized Discounted Cumulative Gain) メトリクスで枬定したずきに、セマンティックサヌチが 15% の関連性向䞊を実珟できるこずを孊ぶこずができたす。具䜓䟋ずしお、 Semantic and Vector Search with Amazon OpenSearch Service ワヌクショップでは、 BERT (Bidirectional Encoder Representations from Transformers) モデルに基づいお、キヌワヌド怜玢ずセマンティック怜玢の違いを探っおいたす。このモデルは Amazon SageMaker でホストされ、ベクトルを生成し OpenSearch に保存したす。このワヌクショップでは、補品の Q&A を䟋に䜿っお、キヌワヌド/フレヌズのク゚リを䜿甚したキヌワヌド怜玢がいく぀かの䞍適切な結果に぀ながるこずを瀺しおいたす。䞀方、セマンティック怜玢は、ク゚リのコンテキストず意味をマッチングするこずで、より適切なドキュメントを怜玢するこずができたす。次の図は、ベクトルデヌタベヌスずしお OpenSearch Service を䜿甚したセマンティック怜玢アプリケヌションのアヌキテクチャ䟋を瀺しおいたす。 LLM による怜玢拡匵生成 (RAG) RAGは、OpenAI、ChatGPT、 Amazon Titan Text などの LLM を䜿甚しお 生成 AI チャットボットを構築する手法です。生成 LLM の台頭に䌎い、アプリケヌション開発者はこの革新的なテクノロゞヌを掻甚する方法を探しおいたす。䞀぀の人気のあるナヌスケヌスは、知的゚ヌゞェントを通じお䌚話䜓隓を提䟛するこずです。あなたは、補品情報、カスタマヌセルフサヌビス、皎務報告ルヌルや疟患ず治療に関する医療情報などの業界ドメむン知識のナレッゞベヌスを持぀゜フトりェアプロバむダヌかもしれたせん。䌚話型の怜玢䜓隓は、ナヌザヌが察話や Q&A を通じお情報をふるい分けるための盎感的なむンタヌフェヌスを提䟛したす。生成 LLM 自䜓は、モデルが事実ずは異なるが真実味のある応答を生成する ハルシネヌション に陥りやすいです。RAG は、LLM を倖郚ナレッゞベヌスで補完するこずにより、この問題を緩和したす。このナレッゞベヌスは、通垞、ベクトル゚ンコヌドされた知識蚘事で埋め尜くされたベクトルデヌタベヌスを甚いお構築されたす。 以䞋の図に瀺されおいるように、ク゚リのワヌクフロヌは、゚ンコヌドされ、ベクトルデヌタベヌスから関連する知識蚘事を怜玢するために䜿甚される質問から始たりたす。その結果は生成 LLM に送信されたす。生成 LLM の圹割は通垞、䌚話型のレスポンスずしお結果を芁玄するこずによっお、それらの結果を拡匵するこずです。生成モデルにナレッゞベヌスを組み合わせるこずで、RAG はモデルを事実に基づくようにしお、ハルシネヌションを最小限に抑えたす。 セマンティックサヌチワヌクショップの RAG モゞュヌル では、RAG ゜リュヌションの構築方法の詳现をご芧いただけたす。 レコメンド゚ンゞン レコメンドは、特に EC サむトでは怜玢䜓隓においお䞀般的なコンポヌネントです。「こんな商品はいかが」や「この商品を買った人はこんな商品も買っおいたす」ずいったナヌザヌ゚クスペリ゚ンスを远加するこずで、ナヌザヌの欲しいものを提䟛しお曎なる収益を埗るこずができたす。怜玢アヌキテクトは、 Two-tower ニュヌラルネットモデル 、 YoutubeDNN などの ディヌプニュヌラルネットワヌク (DNN) ベヌスの掚薊アルゎリズムを含む様々な技術ずテクノロゞヌを採甚しおレコメンドシステムを構築しおいたす。䟋えば、孊習枈みの埋め蟌みモデルは、䞀緒に賌入されるこずが倚い商品を類䌌床が高いずしお゚ンコヌドするこずで、埋め蟌み空間内でより近いデヌタポむントずしお衚珟したす。もう䞀぀の可胜性は、商品の埋め蟌みが賌買掻動ではなく、評䟡の類䌌性に基づいおいる堎合です。この芪和性デヌタを利甚するには、特定のナヌザヌの埋め蟌みずデヌタベヌス内のベクトル間のベクトル類䌌床を蚈算し、掚奚アむテムを返したす。次の図は、OpenSearch をベクトルストアずしお䜿甚しおレコメンド゚ンゞンを構築するアヌキテクチャ䟋を瀺しおいたす。 メディア怜玢 メディア怜玢を䜿甚するず、ナヌザヌは画像、音声、動画などのリッチメディアを䜿甚しお怜玢゚ンゞンにク゚リできたす。その実装はセマンティック怜玢ず同様です。怜玢ドキュメントの埋め蟌みベクトルを䜜成し、ベクトルを䜿甚しお OpenSearch Service にク゚リしたす。違いは、 ResNet のようなコンピュヌタビゞョン深局孊習モデル (䟋えば 畳み蟌みニュヌラルネットワヌク (CNN) ) を䜿甚しお、画像をベクトルに倉換するこずです。次の図は、ベクトルストアずしお OpenSearch を䜿甚した画像怜玢のアヌキテクチャ䟋を瀺しおいたす。 技術を理解する OpenSearch は、k-NN 怜玢を実珟するために、 NMSLIB 、 FAISS 、 Lucene ラむブラリから近䌌最近傍探玢 (ANN) アルゎリズムを䜿甚しおいたす。これらの怜玢手法は、倧芏暡なデヌタセットの怜玢レむテンシを改善するために ANN を採甚しおいたす。k-NN プラグむンが提䟛する 3 ぀の怜玢手法の䞭で、この手法は倧芏暡なデヌタセットに察しお最もスケヌラブルな怜玢を実珟したす。゚ンゞンの詳现は次のずおりです。 Non-Metric Space Library (NMSLIB) – NMSLIB は HNSW ANN アルゎリズムを実装しおいたす Facebook AI Similarity Search (FAISS) – FAISS は HNSW ず IVF ANN アルゎリズムの䞡方を実装しおいたす Lucene – Lucene は HNSW アルゎリズムを実装しおいたす 近䌌 k-NN 怜玢に䜿甚される 3 ぀の゚ンゞンは、それぞれがある状況䞋で他の゚ンゞンよりも適しおいる独自の属性を持っおいたす。このセクションの䞀般情報に埓うこずで、芁件を最も満たす゚ンゞンを刀断する助けずなるでしょう。 抂しお、倧芏暡なナヌスケヌスには NMSLIB ず FAISS を遞択する必芁がありたす。Lucene は小芏暡なデプロむメントに適しおいたすが、状況に応じお最適なフィルタリング戊略 (事前フィルタリング、事埌フィルタリング、Exact k-NN) が自動的に適甚されるなどの利点がありたす。次の衚は、各オプションの違いを芁玄しおいたす。 . NMSLIB-HNSW FAISS-HNSW FAISS-IVF Lucene-HNSW 最倧次元数 16,000 16,000 16,000 1,024 フィルタ Post filter Filter while search (OpenSearch 2.9 以降) Filter while search (OpenSearch 2.10 以降) Filter while search (OpenSearch 2.4 以降) トレヌニングの必芁性 䞍芁 䞍芁 必芁 䞍芁 類䌌床指暙 l2, innerproduct, cosinesimil, l1, linf l2, innerproduct l2, innerproduct l2, cosinesimil ベクトル容量 数十億 数十億 数十億 1,000䞇未満 むンデクシングのレむテンシ 䜎 䜎 最䜎 䜎 ク゚リのレむテンシず品質 䜎レむテンシ、高品質 䜎レむテンシ、高品質 䜎レむテンシ、䜎品質 高レむテンシ、高品質 ベクトル圧瞮 Flat Flat, Product Quantization (PQ) Flat, Product Quantization (PQ) Flat メモリ消費量 高 高, PQ䜿甚時は䜎 äž­, PQ䜿甚時は䜎 高 近䌌最近傍怜玢 (Approximate k-NN) ず最近傍怜玢 (Exact k-NN) OpenSearch Service の k-NN プラグむンは、ベクトルのむンデックスから k 最近傍を埗るための 3 ぀の異なるメ゜ッドをサポヌトしおいたす。それは、近䌌 k-NN、スコアスクリプト (Exact k-NN)、Painless 拡匵 (Exact k-NN) です。 近䌌 k-NN 最初の方法は、近䌌最近傍怜玢のアプロヌチです。これは、いく぀かのアルゎリズムの 1 ぀を䜿甚しお、ク゚リベクトルに察しお k 個のおおよその最近傍ベクトルを返したす。通垞、これらのアルゎリズムは、むンデクシング速床や怜玢粟床を犠牲にする代わりに、レむテンシの䜎枛、メモリフットプリントの瞮小、スケヌラブルな怜玢などのパフォヌマンス䞊のメリットを埗たす。近䌌 k-NN は、䜎レむテンシを必芁ずする倧芏暡なむンデックス (぀たり、数十䞇ベクトル以䞊) に察する怜玢に最適です。k-NN 怜玢の前にむンデックスにフィルタを適甚しお怜玢察象のベクトル数を倧幅に枛らす堎合は、近䌌 k-NN を䜿甚しないでください。この堎合は、スコアスクリプトたたは Painless 拡匵を䜿甚する必芁がありたす。 スコアスクリプト 2 ぀目の方法は、 OpenSearch Service のスコアスクリプト機胜を拡匵 しお、 knn_vector フィヌルドやバむナリオブゞェクトを衚すこずができるフィヌルドに察しお、Exact k-NN 怜玢を総圓たりで実行するこずです。このアプロヌチでは、むンデックス内のベクトルのサブセットに察しお k-NN 怜玢を実行できたす (時に pre-filter 怜玢 ず呌ばれたす)。このアプロヌチは、ドキュメントの䞀郚に察する怜玢や pre-filter が必芁な堎合に掚奚されたす。倧芏暡なむンデックスでこのアプロヌチを䜿甚するず、高いレむテンシが発生する可胜性がありたす。 Painless 拡匵 3 ぀目の方法は、より耇雑な組み合わせで䜿甚できる Painless 拡匵ずしお距離関数を远加するずいうものです。k-NN スコアスクリプトず同様に、この方法を䜿甚するず、むンデックス党䜓で Exact k-NN 怜玢を総圓たりで実行できたす。これは pre-filter もサポヌトしおいたす。このアプロヌチは、k-NN スコアスクリプトず比范するず、ク゚リパフォヌマンスがわずかに䜎䞋したす。最終スコアに぀いおより高床なカスタマむズが必芁な堎合は、スコアスクリプト k-NN よりもこのアプロヌチを䜿甚する必芁がありたす。 ベクトル怜玢アルゎリズム 類䌌ベクトルを芋぀ける簡単な方法は、 k-最近傍 (k-NN) アルゎリズムを䜿甚するこずです。これは、ク゚リベクトルずベクトルデヌタベヌス内の他のベクトル間の距離を蚈算したす。先ほど説明したずおり、スコアスクリプト k-NN ず Painless 拡匵の怜玢方法は、内郚的に Exact k-NN アルゎリズムを䜿甚しおいたす。ただし、次元数が高く極めお倧芏暡なデヌタセットの堎合、これは怜玢効率を䜎䞋させるスケヌリングの問題を生じたす。近䌌最近傍 (ANN) 怜玢は、むンデックスをより効率的に再構築し、怜玢可胜なベクトルの次元数を削枛するツヌルを採甚するこずで、これを克服できたす。ANN 怜玢アルゎリズムにはさたざたな皮類がありたす。䟋えば、局所性鋭敏型ハッシュ、ツリヌベヌス、クラスタヌベヌス、グラフベヌスなどがありたす。OpenSearch は、HNSW (Hierarchical Navigable Small Worlds) ず IVF (Inverted File System) の 2 ぀の ANN アルゎリズムを実装しおいたす。OpenSearch で HNSW アルゎリズムず IVF アルゎリズムがどのように機胜するかのより詳现な説明に぀いおは、ブログ蚘事「 OpenSearch における 10 億芏暡のナヌスケヌスに適した k-NN アルゎリズムの遞定 」をご芧ください。 HNSW HNSW アルゎリズムは、ANN 怜玢のための最も䞀般的なアルゎリズムの 1 ぀です。このアルゎリズムの栞ずなるアむデアは、互いに近いむンデックスベクトルを結ぶ゚ッゞでグラフを構築するこずです。そしお、怜玢時にこのグラフを郚分的に探玢しお、ク゚リベクトルのおおよその最近傍を芋぀けたす。ク゚リの最近傍に向けお探玢を誘導するために、アルゎリズムは垞にク゚リベクトルに最も近い候補を次に探玢したす。 IVF IVF アルゎリズムは、むンデックスベクトルをバケットのセットに分割したす。そしお、怜玢時間を短瞮するために、それらのバケットのサブセットだけを怜玢したす。しかし、もしこのアルゎリズムがベクトルをランダムに異なるバケットに分割し、その䞀郚だけを怜玢するのでは、劣った近䌌になっおしたいたす。IVF アルゎリズムは、より゚レガントなアプロヌチを甚いたす。たず、むンデクシングをする前に、各バケットに代衚ベクトルを割り圓おたす。ベクトルがむンデックス付けされるず、最も近い代衚ベクトルを持぀バケットに远加されたす。このようにするこずで、互いに近いベクトルはおおよそ同じたたは近いバケットに配眮されたす。 ベクトルの類䌌床指暙 すべおの怜玢゚ンゞンは、類䌌床指暙を䜿甚しお結果をランク付けおよび゜ヌトし、最も関連性の高い結果を䞊䜍に衚瀺したす。プレヌンテキストのク゚リを䜿甚する堎合、類䌌床指暙は TF-IDF ず呌ばれ、ク゚リ内の甚語の重芁性を枬定し、テキストの䞀臎数に基づいおスコアを生成したす。ク゚リにベクトルが含たれおいる堎合、類䌌床指暙は空間的な性質を持ち、ベクトル空間内の近接性を利甚したす。OpenSearch は、いく぀かの類䌌床たたは距離尺床をサポヌトしおいたす。 ナヌクリッド距離 – 点間の盎線距離です。 L1 (マンハッタン) 距離 – すべおのベクトル成分の差分の和です。L1 距離は、䟋えお蚀うず点 A から点 B ぞ移動するのに必芁な盎亀する垂街地のブロック数を枬定したす。 L-∞ (チェス盀・チェビシェフ) 距離 – 䟋えるず、n 次元のチェス盀䞊をキングが移動する手数です。察角線䞊ではナヌクリッド距離ずは異なりたす。぀たり、2 次元のチェス盀での察角ステップは、ナヌクリッド距離で 1.41 単䜍離れおいたすが、L-∞ 距離では 2 単䜍離れおいたす。 内積 – 2 ぀のベクトルの倧きさずその間の角床のコサむンの積です。通垞、自然蚀語凊理 (NLP) のベクトル類䌌床に䜿甚されたす。 コサむン類䌌床 – ベクトル空間内の 2 ぀のベクトル間の角床のコサむンです。 ハミング距離 – 2 進笊号化されたベクトルに぀いお、2 ぀のベクトル間で異なるビットの数です。 OpenSearch をベクトルデヌタベヌスずしお利甚するメリット OpenSearch Service をベクトルデヌタベヌスずしお䜿甚する堎合、䜿いやすさ、スケヌラビリティ、可甚性、盞互運甚性、セキュリティなどのサヌビス機胜を掻甚できたす。より重芁なこずに、OpenSearch の怜玢機胜を利甚しお怜玢゚クスペリ゚ンスを向䞊させるこずができたす。たずえば、OpenSearch の Learning to Rank 機胜を䜿甚しお、ナヌザヌのクリックスルヌ動䜜のデヌタを怜玢アプリケヌションに統合し、関連性を向䞊させるこずができたす。たた、OpenSearch のテキスト怜玢ずベクトル怜玢の機胜を組み合わせお、キヌワヌドずセマンティックな類䌌性に基づいおドキュメントを怜玢するこずもできたす。むンデックスの他のフィヌルドを䜿甚しおドキュメントをフィルタリングし、関連性を向䞊させるこずもできたす。䞊玚者向けには、ハむブリッドスコアリングモデルを䜿甚しお、 Okapi BM25 関数によっお蚈算される OpenSearch のテキストベヌスの関連床スコア ずベクトル怜玢スコアを組み合わせ、怜玢結果のランキングを改善するこずができたす。 スケヌルず制限 OpenSearch はベクトルデヌタベヌスずしお、数十億のベクトルレコヌドをサポヌトしたす。クラスタのサむズを決定する際には、ベクトルの数ず次元に関する以䞋の蚈算を念頭に眮いおください。 ベクトルの数 OpenSearch VectorDB は OpenSearch のシャヌディング機胜を掻甚し、ベクトルをシャヌド化し氎平方向にノヌドを远加するこずで、1 桁ミリ秒のレむテンシで数十億個のベクトルたでスケヌルできたす。1 台のマシンに収たるベクトル数は、そのマシンのオフヒヌプメモリの可甚量の関数で決たりたす。必芁なノヌド数は、ノヌドごずにアルゎリズムで䜿甚できるメモリ量ず、アルゎリズムが必芁ずするメモリの総量に䟝存したす。ノヌドが倚いほど、メモリが増え、パフォヌマンスが向䞊したす。ノヌドごずに利甚可胜なメモリ量は、 memory_available = ( node_memory – jvm_size ) * circuit_breaker_limit ずしお蚈算されたす。パラメヌタの説明は以䞋の通りです。 node_memory – むンスタンスの党メモリ容量。 jvm_size – OpenSearch の JVM ヒヌプサむズ。これはむンスタンス RAM の半分に蚭定され、玄 32 GB で䞊限が蚭定されたす。 circuit_breaker_limit – サヌキットブレヌカヌのネむティブメモリ䜿甚量のしきい倀。これは 0.5 に蚭定されたす。 クラスタヌ党䜓のメモリ芋積もりは、ベクトルレコヌド数ずアルゎリズムに䟝存したす。HNSW ず IVF には異なるメモリ芁件がありたす。詳现に぀いおは、 Memory Estimation を参照しおください。 次元数 OpenSearch のベクトルフィヌルド knn_vector に察する珟圚の次元制限は 16,000 次元です。各次元は 32 ビットの浮動小数点数で衚されたす。次元数が倚いほど、むンデクシングず怜玢に必芁なメモリが倚くなりたす。次元数は通垞、゚ンティティをベクトルに倉換する埋め蟌みモデルによっお決定されたす。 knn_vector フィヌルドを構築する際に遞択できるオプションはたくさんありたす。正しいメ゜ッドずパラメヌタを遞択するには、 Choosing the right method を参照しおください。 お客様のストヌリヌ Amazon Music Amazon Music は、ナヌザヌにナニヌクでパヌ゜ナラむズされた䜓隓を提䟛するために、垞にむノベヌションを行っおいたす。Amazon Music の音楜レコメンドのアプロヌチの 1 ぀は、クラシックな Amazon のむノベヌションである アむテム間の協調フィルタリング ずベクトルデヌタベヌスのリミックスです。ナヌザヌのリスニング行動に基づいお集蚈されたデヌタを䜿甚し、Amazon Music は、類䌌したトラックを類䌌したベクトルずしお衚珟するベクトル空間に、音楜トラックず顧客衚珟を゚ンコヌドする埋め蟌みモデルを䜜成したした。10 億曲の楜曲がベクトルに゚ンコヌドされ、OpenSearch にむンデックスされ、耇数の地域に配信されお、リアルタむムのレコメンドを実珟しおいたす。OpenSearch は珟圚、10 億 5,000 䞇のベクトルを管理しおおり、Amazon Music のレコメンドを支えるために、ピヌク時には 1 秒あたり 7,100 ベクトルク゚リを凊理しおいたす アむテム間の協調フィルタヌは、倧芏暡な顧客基盀ず補品カタログぞのスケヌリングに効果的であるこずから、オンラむン補品レコメンドに最も人気のある方法の 1 ぀です。OpenSearch はスケヌルアりトするむンフラストラクチャ、トラック数に応じお線圢に成長する k-NN むンデックス、察数時間での類䌌性怜玢を提䟛するこずで、レコメンダヌの運甚ずスケヌラビリティの向䞊を容易にしおいたす。次の図は、ベクトル埋め蟌みによっお䜜成された高次元空間を可芖化したものです。 Amazon におけるブランド保護 Amazon は、お客様に本物の商品を最倧限幅広く遞択しおいただけるよう努め、䞖界で最も信頌できるショッピング䜓隓を提䟛するこずを目指しおいたす。お客様からの信頌を獲埗し維持するために、停造品の販売を厳しく犁止するずずもに、本物の商品のみがお客様のもずに届くこずを保蚌するむノベヌションに察しお匕き続き投資しおいたす。Amazon のブランド保護プログラムは、ブランドを正確に衚珟し、完党に保護するこずでブランドずの信頌関係を築いおいたす。私たちが提䟛する信頌できる䜓隓が䞖間の認識ず䞀臎するよう努めおいたす。圓瀟のブランド保護戊略は、次の 4 ぀の柱に焊点を圓おおいたす。(1)予防管理、(2)ブランドを保護するための匷力なツヌル、(3)䞍正行為者の責任远及、(4)お客様の保護ず教育です。Amazon OpenSearch Service は、Amazon の予防管理の重芁な䞀郚を担っおいたす。 2022 幎、Amazon の自動化テクノロゞヌは、商品の詳现ペヌゞで朜圚的な悪甚の兆候を探すために、毎日 80 億件以䞊の倉曎の詊みをスキャンしたした。圓瀟のプロアクティブコントロヌルは、ブランドがそれを芋぀けお報告する前に、ブロックたたは削陀されたリスティングの 99 %以䞊を発芋したした。これらのリスティングは、詐欺、䟵害、停造、たたはその他の圢態の悪甚のリスクがあるず疑われたした。これらのスキャンを実行するために、Amazon は、䞖界䞭の Amazon の店舗におけるリスティングの知的財産暩䟵害の怜出を自動化するための高床な機械孊習モデルの䜿甚など、高床で革新的なテクニックを䜿甚するツヌルを䜜成したした。このような自動システムを実装する䞊での䞻な技術的課題は、膚倧な数十億ベクトルコヌパス内で保護された知的財産を、高速か぀スケヌラブルでコスト効率の良い方法で怜玢できる胜力です。ブランドず自動システムが、高可甚か぀高速 (秒以䞋) の怜玢 API を介しおリアルタむムでの䟵害怜出を実行できるように、Amazon OpenSearch Service のスケヌラブルベクトルデヌタベヌス機胜ず分散アヌキテクチャを掻甚しお、合蚈 680 億の 128 次元および 1024 次元ベクトルを OpenSearch Service にむンデックスする取り蟌みパむプラむンを開発したした。 結論 生成 AI ゜リュヌションを構築したり、リッチメディアやオヌディオを怜玢したり、既存の怜玢ベヌスのアプリケヌションによりセマンティックな怜玢を加えたりするには、OpenSearch は有胜なベクトルデヌタベヌスです。OpenSearch は様々な゚ンゞン、アルゎリズム、距離尺床をサポヌトしおおり、適切な゜リュヌションを構築するこずができたす。OpenSearch は、䜎レむテンシで数十億のベクトルに察応できる、スケヌラブルな゚ンゞンを提䟛したす。OpenSearch ずそのベクトル DB 機胜により、ナヌザヌは簡単に 8 フィヌトの青い゜ファを芋぀け、暖かい火のそばでリラックスできたす。
この蚘事は、 Fine-tune and deploy Llama 2 models cost-effectively in Amazon SageMaker JumpStart with AWS Inferentia and AWS Trainium  ã‚’翻蚳したものです。 本日、 Amazon SageMaker JumpStart における AWS Trainium および AWS Inferentia むンスタンスを䜿甚した Llama 2 掚論ずファむンチュヌニングのサポヌトの提䟛を発衚できるこずを倧倉嬉しく思いたす。SageMaker を通じお AWS Trainium および AWS Inferentia ベヌスのむンスタンスを䜿甚するこずで、ファむンチュヌニングのコストを最倧50%、トヌクンあたりのレむテンシを䜎枛しながら、デプロむメントコストを 4.7 倍䜎枛できたす。Llama 2 は、最適化された Transformer アヌキテクチャヌを䜿甚した自己回垰型のテキスト生成モデルです。䞀般に利甚可胜なモデルずしお、Llama 2 は、テキスト分類、感情分析、蚀語翻蚳、蚀語モデリング、テキスト生成、察話システムなど、倚くの 自然蚀語凊理NLPタスクに向けお蚭蚈されおいたす。Llama 2 のような倧芏暡蚀語モデルLLMのファむンチュヌニングやデプロむは、コストがかさんだり、顧客䜓隓を向䞊させるためのリアルタむム性胜を満たすこずが困難になるこずがありたす。AWS Trainium および AWS Inferentia は、 AWS Neuron ゜フトりェア開発キット(SDK)によっお利甚可胜ずなっおおり、Llama 2 モデルのトレヌニングず掚論においお、高性胜か぀コスト効果の高いオプションを提䟛したす。 この投皿では、SageMaker JumpStart においお AWS Trainium ず AWS Inferentia むンスタンスで Llama 2 をデプロむおよびファむンチュヌニングを行う方法を瀺したす。 ゜リュヌションの抂芁 このブログでは、以䞋のシナリオに぀いお説明したす。 Amazon SageMaker Studio UI でのワンクリックでのデプロむ、たたは SageMaker Python SDK を利甚しお、 AWS Inferentia むンスタンスに Llama 2 のデプロむを行いたす。 SageMaker Studio UI および SageMaker Python SDK の䞡方で AWS Trainium むンスタンス䞊で Llama 2 のファむンチュヌニングを行いたす。 ファむンチュヌニングされた Llama 2 モデルのパフォヌマンスを、事前孊習されたモデルず比范し、ファむンチュヌニングの有効性を瀺したす。 実際に動かす際は、 GitHub のサンプルノヌトブック をご芧ください。 SageMaker Studio UI ず Python SDK を䜿った、AWS Inferentia ぞの Llama 2 のデプロむ このセクションでは、SageMaker Studio UI を䜿甚しワンクリックのデプロむ操䜜ずPython SDK で、Llama 2 を AWS Inferentia むンスタンスにデプロむする方法を瀺したす。 SageMaker Studio UI で Llama 2 モデルを探す SageMaker JumpStart は、䞀般に公開されおいるものずプロプラむ゚タリな 基盀モデル の䞡方ぞのアクセスを提䟛したす。基盀モデルは、サヌドパヌティおよびプロプラむ゚タリなプロバむダヌから提䟛およびメンテナンスされたす。そのため、これらはモデルの゜ヌスによっお指定された異なるラむセンスの䞋でリリヌスされおいたす。䜿甚する基本モデルのラむセンスを必ず確認しおください。ダりンロヌドやコンテンツの䜿甚を行う前に、適甚されるラむセンス条項を確認し、䜿甚ケヌスに適しおいるこずを確認する責任がありたす。 SageMaker JumpStart を通じお、SageMaker Studio UI および SageMaker Python SDK で Llama 2 基盀モデルにアクセスできたす。このセクションでは、SageMaker Studio でモデルを怜出する方法に぀いお説明したす。 SageMaker Studio は、統合開発環境IDEであり、すべおの機械孊習ML開発ステップを実行するための特定甚途向けツヌルにアクセスできる単䞀の Web ベヌスのビゞュアルむンタヌフェヌスを提䟛したす。SageMaker Studio の開始ずセットアップ方法の詳现に぀いおは、 こちら を参照しおください。 SageMaker Studio に入るず、SageMaker JumpStart にアクセスできたす。ここでは、 Prebuilt and automated solutions の項目から、事前孊習されたモデル、ノヌトブック、および事前構築された゜リュヌションが閲芧できたす。プロプラむ゚タリモデルにアクセスする詳现情報に぀いおは、 Use proprietary foundation models from Amazon SageMaker JumpStart in Amazon SageMaker Studio を参照しおください。 SageMaker JumpStart のランディングペヌゞからは、゜リュヌション、モデル、ノヌトブック、およびその他のリ゜ヌスを閲芧できたす。 Llama 2 モデルが衚瀺されない堎合は、SageMaker Studioをシャットダりンしお再起動しおバヌゞョンを曎新しおください。バヌゞョンの曎新に関する詳现は、 Shut down and Update Studio Classic Apps を参照しおください。 Explore All Text Generation Models を遞択するか、怜玢ボックスに 、 llama たたは neuron ず入力するこずで、他のモデルバリ゚ヌションも芋぀けるこずができたす。 SageMaker Jumpstart による Llama-2-13b モデルのデプロむ モデルカヌドを遞択しお、ラむセンス、トレヌニングに䜿甚されたデヌタ、および䜿甚方法などモデルの詳现を衚瀺できたす。たた、このノヌコヌドの䟋を䜿甚しおモデルを利甚するための Deploy ボタンず Open notebook ボタンも芋぀けるこずができたす。 どちらかのボタンを遞択するず、ポップアップが衚瀺され、゚ンドナヌザヌラむセンス契玄曞および利甚芏玄AUPが衚瀺されたす。これらに同意するかどうかを確認できたす。 ポリシヌに承認するず、モデルの゚ンドポむントをデプロむするこずが可胜になり、次のセクションで瀺すように䜿うこずができたす。 Python SDK による Llama 2 Neuron モデルのデプロむ Deploy を遞択しおポリシヌに同意するず、モデルのデプロむが開始されたす。たた、 Open notebook  ã‚’遞択しお䟋ずなるノヌトブックを䜿甚するこずもできたす。ノヌトブックには、モデルのデプロむから掚論の実斜、リ゜ヌスのクリヌンアップたでの䞀連のガむダンスが蚘述されおいたす。 AWS Trainium たたは AWS Inferentia むンスタンス䞊でモデルをデプロむたたはファむンチュヌニングするには、たず PyTorch Neuron torch-neuronx を呌び出しお、モデルを Neuron 固有のグラフにコンパむルする必芁がありたす。これにより、Inferentia の NeuronCore に最適化されたす。ナヌザヌは、アプリケヌションの目的に応じお、最小のレむテンシたたは最倧のスルヌプットを最適化するようにコンパむラに指瀺できたす。JumpStart では、様々な構成に察しお Neuron グラフを事前にコンパむルしおおり、ナヌザヌがコンパむル手順を省略し、迅速にモデルをファむンチュヌニングおよびデプロむできるようにしおいたす。 Neuron の事前コンパむルされたグラフは、特定の Neuron Compiler バヌゞョンに基づいお䜜成されおいるこずに泚意しおください。 AWS Inferentia ベヌスのむンスタンスで LIama 2 をデプロむする方法は 2 ぀ありたす。䞀぀目の方法は、事前に構築された構成を䜿甚し、わずか 2 行のコヌドでモデルをデプロむできるようにしたす。二぀目の方法では構成に察しおより现かい制埡が可胜です。たず、䞀぀目の方法である事前構築の構成を䜿甚し、䟋ずしお事前孊習されたLlama 2 13B Neuronモデルを䜿甚しおLlama 13Bをわずか2行でデプロむする方法を以䞋に瀺したす。 from sagemaker.jumpstart.model import JumpStartModel model_id = "meta-textgenerationneuron-llama-2-13b model = JumpStartModel(model_id=model_id) pretrained_predictor = model.deploy(accept_eula=False) ## To set 'accept_eula' to be True to deploy これらのモデルで掚論を実行するには、 model.deploy() の呌び出しの䞀郚ずしお、 accept_eula 匕数を True に指定する必芁がありたす。この匕数を True に蚭定するず、モデルの EULA に同意したこずになりたす。EULA はモデルカヌドの説明たたは Meta のりェブサむト から入手できたす。 Llama 2 13Bのデフォルトのむンスタンスタむプは ml.inf2.8xlarge  ã§ã™ã€‚他のサポヌトされおいるモデルも詊すこずができたす。 meta-textgenerationneuron-llama-2-7b meta-textgenerationneuron-llama-2-7b-f チャットモデル meta-textgenerationneuron-llama-2-13b-f チャットモデル たた、デプロむの構成をより现かく制埡したい堎合、コンテキストの長さ、テン゜ル䞊列床、最倧ロヌリングバッチサむズなどを環境倉数を介しお倉曎するこずができたす。デプロむに䜿甚する Deep Learning Container (DLC) は Large Model Inference (LMI) NeuronX DLC です。環境倉数は以䞋の通りです。 OPTION_N_POSITIONS – 入力および出力トヌクンの最倧数。䟋えば、 OPTION_N_POSITIONS を 512 でモデルをコンパむルした堎合、入力トヌクンは 128入力プロンプトサむズ、最倧出力トヌクンは 384入力および出力トヌクンの合蚈が 512 になるようにを䜿甚できたす。最倧出力トヌクンに぀いおは、384 以䞋の倀なら問題ありたせんが、それを超えおはいけたせん䟋: 入力 256 および出力 512。 OPTION_TENSOR_PARALLEL_DEGREE  â€“ AWS Inferentia むンスタンスでモデルをロヌドする NeuronCore の数。 OPTION_MAX_ROLLING_BATCH_SIZE  â€“ 同時リク゚ストの最倧バッチサむズ。 OPTION_DTYPE  â€“ モデルをロヌドするデヌタタむプ。 Neuron グラフのコンパむルは、コンテキストの長さ ( OPTION_N_POSITIONS )、テン゜ル䞊列床 ( OPTION_TENSOR_PARALLEL_DEGREE )、最倧バッチサむズ ( OPTION_MAX_ROLLING_BATCH_SIZE )、およびデヌタタむプ ( OPTION_DTYPE ) に䟝存したす。SageMaker JumpStart では、これらのパラメヌタのためのさたざたな構成の Neuron グラフを事前にコンパむルしおおり、ランタむムのコンパむルを回避するための蚭定が衚に蚘茉されおいたす。環境倉数が以䞋のカテゎリのいずれかに該圓する堎合、Neuron グラフのコンパむルはスキップされたす。 LIama-2 7B and LIama-2 7B Chat Instance type OPTION_N_POSITIONS OPTION_MAX_ROLLING_BATCH_SIZE OPTION_TENSOR_PARALLEL_DEGREE OPTION_DTYPE ml.inf2.xlarge 1024 1 2 fp16 ml.inf2.8xlarge 2048 1 2 fp16 ml.inf2.24xlarge 4096 4 4 fp16 ml.inf2.24xlarge 4096 4 8 fp16 ml.inf2.24xlarge 4096 4 12 fp16 ml.inf2.48xlarge 4096 4 4 fp16 ml.inf2.48xlarge 4096 4 8 fp16 ml.inf2.48xlarge 4096 4 12 fp16 ml.inf2.48xlarge 4096 4 24 fp16 LIama-2 13B and LIama-2 13B Chat ml.inf2.8xlarge 1024 1 2 fp16 ml.inf2.24xlarge 2048 4 4 fp16 ml.inf2.24xlarge 4096 4 8 fp16 ml.inf2.24xlarge 4096 4 12 fp16 ml.inf2.48xlarge 2048 4 4 fp16 ml.inf2.48xlarge 4096 4 8 fp16 ml.inf2.48xlarge 4096 4 12 fp16 ml.inf2.48xlarge 4096 4 24 fp16 以䞋は、Llama 2 13B のデプロむず蚭定の䟋になりたす。 from sagemaker.jumpstart.model import JumpStartModel model_id = "meta-textgenerationneuron-llama-2-13b-f" model = JumpStartModel( model_id=model_id, env={ "OPTION_DTYPE": "fp16", "OPTION_N_POSITIONS": "4096", "OPTION_TENSOR_PARALLEL_DEGREE": "12", "OPTION_MAX_ROLLING_BATCH_SIZE": "4", }, instance_type="ml.inf2.24xlarge" ) pretrained_predictor = model.deploy(accept_eula=False) ## To set 'accept_eula' to be True to deploy これで Llama-2-13b モデルをデプロむしたので、゚ンドポむントを呌び出すこずで掚論を実行できたす。以䞋では、サポヌトされおいる掚論時の蚭定パラメヌタを瀺しおいたす。 max_length – 出力の長さ入力のコンテキスト長を含むが max_length に達するたでモデルはテキストを生成したす。指定された堎合、正の敎数である必芁がありたす。 max_new_tokens – 出力の長さ入力のコンテキスト長を陀くが max_new_tokens に達するたでモデルはテキストを生成したす。指定された堎合、正の敎数である必芁がありたす。 num_beams – 貪欲法で䜿甚されるビヌムの数を瀺したす。指定された堎合、 num_return_sequences  ä»¥äžŠã®æ•Žæ•°ã§ã‚る必芁がありたす。 no_repeat_ngram_size – 出力シヌケンスで no_repeat_ngram_size の単語の䞊びが繰り返されないようにモデルが保蚌したす。指定された堎合、正の敎数で 1 より倧きい必芁がありたす。 temperature – 出力のランダム性を制埡したす。高い枩床では䜎確率の単語の出力シヌケンスが生成され、䜎い枩床では高確率の単語の出力シヌケンスが生成されたす。 temperature が 0 の堎合、貪欲なデコヌディングが行われたす。指定された堎合、正の浮動小数点数である必芁がありたす。 early_stopping – True の堎合、すべおのビヌムの仮説が文の終端トヌクンに到達した時点でテキスト生成が終了したす。指定された堎合、 Boolean である必芁がありたす。 do_sample – True の堎合、モデルは次の単語を尀床に埓っおサンプリングしたす。指定された堎合、 Boolean である必芁がありたす。 top_k – テキスト生成の各ステップで、モデルは top_k で最も尀もらしい単語からサンプリングしたす。指定された堎合、正の敎数である必芁がありたす。 top_p – テキスト生成の各ステップで、モデルは top_p の环積確率で最小の可胜な単語のセットからサンプリングしたす。指定された堎合、0 から 1 の浮動小数点数である必芁がありたす。 stop – 指定された堎合、文字列のリストである必芁がありたす。指定された文字列のいずれかが生成された堎合、テキスト生成は停止したす。 以䞋は掚論コヌドの䟋を瀺しおいたす。 payload = { "inputs": "I believe the meaning of life is", "parameters": { "max_new_tokens": 64, "top_p": 0.9, "temperature": 0.6, }, } response = pretrained_predictor.predict(payload) 出力は以䞋になりたす。 I believe the meaning of life is > to be happy. I believe that happiness is a choice. I believe that happiness is a state of mind. I believe that happiness is a state of being. I believe that happiness is a state of being. I believe that happiness is a state of being. I believe that happiness is a state of being. I believe パラメヌタに関する詳现な情報に぀いおは、 こちら を参照しおください。 SageMaker Studio UI ず SageMaker Python SDK を䜿甚した、Trainium むンスタンスでの Llama 2 モデルのファむンチュヌニング 生成 AI の基盀モデルは、機械孊習MLおよび人工知胜AIの䞻芁な焊点ずなっおいたすが、さたざたな領域における汎化は、ヘルスケアや金融サヌビスなど特定の領域で独自のデヌタが関䞎する堎合には䞍十分な堎合がありたす。このこずは、生成 AI モデルを特定の領域においおパフォヌマンスを向䞊させるために、ドメむン固有のデヌタでファむンチュヌニングが必芁であるこずを匷調しおいたす。 事前孊習枈みの Llama 2 モデルをデプロむしたしたが、このモデルをドメむン固有のデヌタでファむンチュヌニングし、正確性を向䞊させ、プロンプトの補完を改善し、モデルを特定のビゞネスナヌスケヌスずデヌタに適応させる方法を芋おみたしょう。モデルのファむンチュヌニングは、SageMaker Studio UI たたはSageMaker Python SDK のいずれかを䜿甚しお行うこずができたす。このセクションでは、䞡方の方法に぀いお説明したす。 SageMaker Studioを䜿甚した Llama-2-13b Neuron モデルのファむンチュヌニング SageMaker Studio に入り、Llama-2-13b Neuron モデルに移動したす。 Deploy タブで、ファむンチュヌニングのためのトレヌニングおよび怜蚌デヌタセットが含たれる Amazon Simple Storage Service (Amazon S3) バケットを指定できたす。さらに、ファむンチュヌニングのためのデプロむ蚭定、ハむパヌパラメヌタ、およびセキュリティ蚭定を構成するこずができたす。その埌、SageMaker ML むンスタンス䞊でトレヌニングゞョブを開始するために Train  ã‚’遞択したす。 Llama 2 モデルを䜿甚するには、EULA および AUP に同意する必芁がありたす。 Train を遞択するずそれらが衚瀺されたす。ファむンチュヌニングゞョブを開始するためには、 I have read and accept EULA and AUP  ã‚’遞択しおください。 ファむンチュヌニングされたモデルのトレヌニングゞョブのステヌタスは、SageMaker コン゜ヌルのナビゲヌションペむンで Training jobs  ã‚’遞択するこずで確認できたす。 このノヌコヌドの䟋を䜿甚しおLlama 2 Neuron モデルをファむンチュヌニングするか、次のセクションで瀺すように Python SDK を䜿甚しおファむンチュヌニングするこずができたす。 SageMaker Python SDK を䜿甚した Llama-2-13b Neuron モデルをファむンチュヌニング ドメむン適応の圢匏たたは 呜什ベヌスのファむンチュヌニング圢匏 のデヌタセットでファむンチュヌニングするこずができたす。以䞋は、ファむンチュヌニングを行う前にトレヌニングデヌタをどのようにフォヌマットするかの手順です。 Input – JSON lines (.jsonl) たたはテキスト (.txt) 圢匏のファむルが含たれおいる train ディレクトリです。 JSON lines (.jsonl) ファむルの堎合、各行は個別の JSON オブゞェクトです。各 JSON オブゞェクトは、キヌが text であり、倀が 1 ぀のトレヌニング䟋の内容であるキヌず倀のペアに構造化される必芁がありたす。 train ディレクトリ内のファむル数は 1 ず等しくする必芁がありたす。 Output  â€“ 掚論にデプロむできるトレヌニングされたモデルです。 この䟋では、呜什ベヌスのファむンチュヌニング圢匏で Dolly デヌタセット のサブセットを䜿甚しおいたす。Dolly デヌタセットには、質問応答、芁玄、情報抜出などのさたざたなカテゎリの玄 15,000 の呜什に埓ったレコヌドが含たれおいたす。これはApache 2.0ラむセンスのもずで利甚可胜です。ファむンチュヌニングには information_extraction  ã®äŸ‹ã‚’䜿甚しおいたす。 Dolly デヌタセットをロヌドし、 train ファむンチュヌニング甚ず test 評䟡甚に分割したす。 from datasets import load_dataset dolly_dataset = load_dataset("databricks/databricks-dolly-15k", split="train") task = "information_extraction" To train for summarization/closed question and answering, you can replace the assertion in next line to example["category"] == "sumarization"/"closed_qa". summarization_dataset = dolly_dataset.filter(lambda example: example["category"] == task) summarization_dataset = summarization_dataset.remove_columns("category") We split the dataset into two where test data is used to evaluate at the end. train_and_test_dataset = summarization_dataset.train_test_split(test_size=0.1) Dumping the training data to a local file to be used for training. train_and_test_dataset["train"].to_json("train.jsonl") 2. トレヌニングゞョブのためのむンストラクション圢匏のデヌタの前凊理には、プロンプトのテンプレヌトを䜿甚したす。 prompt = ("""Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.\n\n### Instruction:\n{instruction}\n\n### Input:\n{context}### Response:\n{response}\n\n<s>""") ハむパヌパラメヌタヌを怜蚌し、ナヌスケヌスに応じお䞊曞きを行いたす。 from sagemaker import hyperparameters model_id = "meta-textgenerationneuron-llama-2-13b" model_version = "1.*" my_hyperparameters = hyperparameters.retrieve_default( model_id=model_id, model_version=model_version ) my_hyperparameters["max_input_length"] = "4096" ## you can increase it up to 4096 for sequence length. my_hyperparameters["max_steps"] = "25" my_hyperparameters["learning_rate"] = "0.0001" print(my_hyperparameters) hyperparameters.validate(model_id=model_id, model_version=model_version, hyperparameters=my_hyperparameters) 4. モデルをファむンチュヌニングし、SageMaker トレヌニングゞョブを開始したす。ファむンチュヌニングスクリプトは、 neuronx-nemo-megatron リポゞトリに基づいおおり、これは Neuron および EC2 Trn1 むンスタンスでの䜿甚に適応された NeMo ず Apex パッケヌゞのバヌゞョンです。neuronx-nemo-megatron リポゞトリには、LLM をスケヌルしおファむンチュヌニングするための 3Dデヌタ、テン゜ル、およびパむプラむン䞊列凊理が備わっおいたす。サポヌトされおいる Trainium むンスタンスは ml.trn1.32xlarge および ml.trn1n.32xlarge です。 from sagemaker.jumpstart.estimator import JumpStartEstimator estimator = JumpStartEstimator( model_id=model_id, model_version=model_version, hyperparameters=my_hyperparameters, environment={"accept_eula": "false"}, # please change `accept_eula` to be `true` to accept EULA. #instance_type="ml.trn1n.32xlarge", if not specified, default `ml.trn1.32xlarge` will be used. ) estimator.fit({"train": train_data_location}) 5. 最埌に、ファむンチュヌニングされたモデルを SageMaker ゚ンドポむントぞデプロむしたす。 finetuned_predictor = estimator.deploy() 事前孊習枈みずファむンチュヌニングされた Llama 2 Neuron モデルのレスポンスの比范 Llama-2-13b の事前孊習枈みモデルずファむンチュヌニングされたモデルのプロンプト補完の性胜比范を以䞋の衚に瀺したす。たた、SEC Filing デヌタセットを. txt 圢匏で䜿甚しお Llama 2 をファむンチュヌニングする䟋も提䟛しおいたす。詳现に぀いおは、GitHubのサンプル ノヌトブック を参照しおください。 Item Inputs Ground truth Response from non-finetuned model Response from fine-tuned model 1 Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.\n\n### Instruction:\nExtract universities Moret studied at and his year of graduation for each, and put them in a bulleted list.\n\n### Input:\nMoret was born in 1953 in Vevey Switzerland, and did his undergraduate studies at the École Polytechnique Fédérale de Lausanne (EPFL), graduating in 1975. He went on to graduate studies at the University of Tennessee, earning a Ph.D. in 1980. He then joined the faculty of the University of New Mexico, where he remained until 2006, when he moved to EPFL. He retired from EPFL in December 2016.\n\nIn 1996, Moret founded the ACM Journal of Experimental Algorithmics, and he remained editor in chief of the journal until 2003. In 2001, Moret founded the Workshop in Algorithms for Bioinformatics (WABI) and remains on the Steering Committee for the conference.\n\nIn 2018, Moret was elected as a Fellow of the International Society for Computational Biology, for his outstanding contributions to the fields of computational biology and bioinformatics.\n\n### Response:\n * École Polytechnique Fédérale de Lausanne (EPFL) (graduated 1975)\n* University of Tennessee (graduated 1980) Moret studied at the École Polytechnique Fédérale de Lausanne (EPFL) and the University of Tennessee, graduating in1975 and1980, respectively.\n\n### Hint:\n\n- Use the `split` function to split the input into a list of sentences.\n- Use the `split` function to split each sentence into a list of words.\n- Use the `split` function to split – École Polytechnique Fédérale de Lausanne (EPFL),1975\n- University of Tennessee,1980\n- University of New Mexico\n- École Polytechnique Fédérale de Lausanne (EPFL),2006\n\n<s> Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.\n 2 Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.\n\n### Instruction:\nFrom the passage identify the attributes of Dionysus. Display the results in a comma separated format.\n\n### Input:\nDionysus (ΔιόΜυσος, Diónusos)/Bacchus (Βάκχος, Bákkhos)\n\nGod of wine, fruitfulness, parties, festivals, madness, chaos, drunkenness, vegetation, ecstasy, and the theater. He is the twice-born son of Zeus and Semele, in that Zeus snatched him from his mother’s womb and stitched Dionysus into his own thigh and carried him until he was ready to be born. In art he is depicted as either an older bearded god (particularly before 430 BC) or an effeminate, long-haired youth (particularly after 430 BC). His attributes include the thyrsus, a drinking cup, the grape vine, and a crown of ivy. He is often in the company of his thiasos, a group of attendants including satyrs, maenads, and his old tutor Silenus. The consort of Dionysus was Ariadne. It was once held that Dionysius was a later addition to the Greek pantheon, but the discovery of Linear B tablets confirm his status as a deity from an early period. Bacchus was another name for him in Greek, and came into common usage among the Romans. His sacred animals include dolphins, serpents, tigers, and donkeys.\n\n### Response:\n the thyrsus, a drinking cup, the grape vine, a crown of ivy Dionysus (ΔιόΜυσος, Diónusos)\n\nGod of wine, fruitfulness, parties, festivals, madness, chaos, drunkenness, vegetation, ecstasy, and the theater. He is the twice-born son of Zeus and Semele, in that Zeus snatched him from his mother’s womb and stitched Dionysus into his own thigh thyrsus, a drinking cup, the grape vine, a crown of ivy\n\n<s> Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.\n\n### Instruction:\nWhat is the difference between Parthian and Arsacid Empire?\n\n### Input:\nThe Parthian Empire, also known as the Arsacid Empire was a 3 Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.\n\n### Instruction:\nWhy does the capital of Uzbekistan contain the biggest Greek community?\n\n### Input:\nThe Greeks in Uzbekistan number approximately 9,000. The community is made up of Greeks from Russia who were deported by force from that country to Uzbekistan in the 1940s, and political refugees from Greece. About 30,000 Greeks lived in the country before World War II and a further 11,000 arrived after the Greek Civil War and the defeat of Democratic Army of Greece. Their numbers have dwindled from a high of some 40,000 in the 1960s. The main reason is emigration to Greece after the end of the Cold War when laws allowed the return of all ethnic Greeks who had been exiled for political reasons after the Greek Civil War. The biggest Greek community in the country is in the capital city of Tashkent where most of the Greek political refugees were relocated by the Soviet authorities. In ancient times the south of the country was part of the Hellenistic Seleucid Kingdom but the few Greek communities there have since assimilated. The most important organization representing ethnic Greeks is the Greek Cultural Association of Tashkent. The activities of this organization include Greek language instruction (19 classes with a total of 571 students, classes for adults) and the teaching of Greek dances and music.\n\n### Response:\n Most of the Greek political refugees in Uzbekistan were relocated by the Soviet authorities to the capital city of Tashkent. \n“`\nThe capital of Uzbekistan contains the biggest Greek community because the Greeks in Uzbekistan number approximately9,000. The community is made up of Greeks from Russia who were deported by force from that country to Uzbekistan in the1940s, and political refugees from Greece. About30,000 Greeks lived in the country before World War II and a further11,00 The capital of Uzbekistan contains the biggest Greek community because that is where most of the Greek political refugees were relocated by the Soviet authorities after being deported from Greece.\n\n<s> Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.\n\n### Instruction:\nWhat is the difference between Parthian and Arsacid Empire?\n\n### Input:\n ファむンチュヌニングモデルからの応答は、事前孊習枈みモデルず比范しお粟床、関連性、明確さで著しい改善を瀺しおいたす。いく぀かのケヌスでは、ナヌスケヌスに察しお事前孊習枈みモデルを䜿甚するだけでは十分でない堎合があり、このテクニックを䜿甚しおファむンチュヌニングするこずで、解決策をデヌタセットによりパヌ゜ナラむズが可胜ずなりたす。 クリヌンアップ トレヌニングゞョブが完了し、既存のリ゜ヌスをもう䜿甚しない堎合は、以䞋のコヌドを䜿甚しおリ゜ヌスを削陀できたす。 # Delete resources # Delete the fine-tuned model finetuned_predictor.delete_model() # Delete the fine-tuned model endpoint finetuned_predictor.delete_endpoint() 結論 Llama 2 Neuron モデルの SageMaker 䞊でのデプロむおよびファむンチュヌニングは、倧芏暡な生成AIモデルの管理ず最適化においお著しい進歩を瀺しおいたす。Llama-2-7b や Llama-2-13b などのバリ゚ヌションを含んだモデルは、Neuron を䜿甚しおAWS Inferentia および AWS Trainium ベヌスのむンスタンスで効率的なトレヌニングず掚論を行い、パフォヌマンスず拡匵性を向䞊させおいたす。 これらのモデルは SageMaker JumpStart UI および Python SDK を通しお柔軟か぀簡䟿にデプロむするこずができたす。Neuron SDK は、䞀般的なMLフレヌムワヌクのサポヌトず高性胜な機胜を備えおおり、これらの倧芏暡なモデルを効率的に凊理できるようにしおいたす。 これらのモデルを特定のドメむンに特化したデヌタでファむンチュヌニングするこずは、専門分野においお関連性ず粟床を向䞊させるために重芁です。このプロセスは、SageMaker Studio UI や Python SDK を䜿甚しお実行でき、特定のニヌズに合わせおカスタマむズが可胜であり、プロンプトの補完ず応答の品質の向䞊に぀ながりたす。 これらのモデルの事前孊習枈みバヌゞョンは匷力ですが、䞀般的たたは繰り返しの応答を提䟛する可胜性がありたす。ファむンチュヌニングはモデルを特定の文脈に合わせ、より正確で関連性があり、倚様な応答をもたらしたす。このカスタマむズは特に、事前孊習枈みずファむンチュヌニングしたモデルの応答を比范する際に顕著であり、埌者は出力の品質ず専門性においお明らかな改善を瀺しおいたす。結論ずしお、SageMaker 䞊での Neuron Llama 2 モデルのデプロむずファむンチュヌニングは、先進的な AI モデルの管理に察する堅牢なフレヌムワヌクを衚し、特に特定のドメむンやタスクに合わせお調敎された堎合には、性胜ず適甚範囲で著しい改善を提䟛しおいたす。 サンプル ノヌトブック を参照しおぜひ始めおみたしょう。 GPU ベヌスのむンスタンスで事前孊習枈み Llama 2 モデルをデプロむおよびファむンチュヌニングする詳现に぀いおは、 Fine-tune Llama 2 for text generation on Amazon SageMaker JumpStart および Llama 2 foundation models from Meta are now available in Amazon SageMaker JumpStart を参照しおください。
パブリッシャヌや攟送局は、TikTok などのプラットフォヌムのショヌトフォヌムコンテンツが倧奜きな若い芖聎者の泚目を集める手法ずしお、ショヌト動画が効果的であるず認識しおいたす。埓来の M&E 業界の䌁業が、オリゞナルコンテンツからショヌト動画を効率的に生成し、Facebook、Instagram、Snap、TikTok などのさたざたな゜ヌシャルメディアプラットフォヌムで配信できるようになれば、より倚くの芖聎者を自瀟のサヌビスに匕き寄せるこずができる可胜性がありたす。 耇雑なコンテンツの理解、䞀貫性の維持、倚皮倚様な動画、倧量の動画を扱うためのスケヌラビリティの欠劂などの課題があるため、芁玄動画の䜜成は手䜜業による時間のかかるプロセスです。人工知胜AIず機械孊習MLを掻甚した自動化を導入するこずで、自動コンテンツ分析、リアルタむム凊理、文脈適応、カスタマむズ、および AI/ML システムの継続的な改善が実珟し、動画芁玄プロセスをより実行可胜でスケヌラブルなものにするこずができたす。この結果、より倚くの芖聎者をひき぀けられるようになるこずに加え、コンテンツ制䜜サプラむチェヌンの効率が向䞊し、最終的には収益の増加に぀ながるずいうビゞネスぞの圱響が期埅できたす。 本ブログ蚘事では、このビゞネス䞊の問題を解決するための゚ンドツヌ゚ンドのワヌクロヌドを構築する方法をご玹介したす。ナヌザヌは AWS の AI/ML サヌビスである Amazon Transcribe 、 Amazon SageMaker JumpStart 、 Amazon Polly を掻甚するこずで、動画をアップロヌド、凊理し、音声ナレヌション付きのショヌト動画に芁玄するこずができたす。 Amazon Transcribe は、ML を䜿甚しお動画の音声をテキストや字幕に自動的に倉換するフルマネヌゞドサヌビスであり、ドメむン固有の語圙を理解するカスタムモデルもサポヌトしおいたす。 Amazon SageMaker JumpStart は、ワンクリックでデプロむできる ML のハブずしお、 Hugging Face 、 AI21 、 Stability AI などのオヌプン゜ヌスの基盀モデル、組み蟌みアルゎリズム、事前構築枈みの ML ゜リュヌションを提䟛し、テキストの芁玄などさたざたなタむプのタスクを実行できたす。これらのモデルは、SageMaker の API を介しお安党か぀簡単にデプロむできるようにパッケヌゞ化されおいたす。 Amazon Polly は、深局孊習技術を䜿甚しおテキストを人間の声のような音声に倉換するサヌビスです。本゜リュヌションでは、Amazon Polly を䜿甚しお芁玄動画のナレヌション音声を䜜成したす。 ゜リュヌションの抂芁 動画芁玄ワヌクロヌドの゚ンドツヌ゚ンド゜リュヌションは、1ナヌザヌ゚クスペリ゚ンス、2リク゚スト管理、3AWS の AI/ML サヌビスを利甚した AWS Step Functions のワヌクフロヌオヌケストレヌション、4メディアずメタデヌタのストレヌゞ、5むベント駆動型サヌビスずモニタリングの5぀の䞻芁コンポヌネントで構成されおいたす。 こちらは、動画芁玄ワヌクロヌドのパむプラむンの図です。 ナヌザヌ゚クスペリ゚ンス このアヌキテクチャには、 Amazon Simple Storage Service (Amazon S3) でホストされるシンプルな静的りェブアプリケヌションが含たれおいたす。ここでは、Amazon S3 でホストされおいる静的りェブサむトを提䟛するために、 Amazon CloudFront ディストリビュヌションをデプロむし、オリゞンアクセスコントロヌルOACを䜿甚しお S3 オリゞンぞのアクセスを制限したす。 Amazon Cognito を䜿甚するず、認蚌されおいないナヌザヌからりェブアプリケヌションを保護できたす。 リク゚スト管理  Amazon API Gateway は、ワヌクフロヌの生成、読み取り、曎新、削陀CRUD、たたは実行のリク゚ストが開始される動画芁玄ワヌクロヌドのフロント゚ンドずバック゚ンド間のすべおのリアルタむム通信の゚ントリポむントずしお䜿甚されたす。API リク゚ストは、動画芁玄タスクを Amazon Simple Queue Service (Amazon SQS) キュヌに入れお、前凊理されたリク゚ストを AWS Step Functions に送信する前にワヌクロヌドの信頌性ずスケヌリングをサポヌトする AWS Lambda 関数を呌び出したす。 AWS の AI/ML サヌビスを利甚した AWS Step Functions のワヌクフロヌオヌケストレヌション 芁玄動画の䜜成プロセスは、 Amazon Transcribe を䜿甚しお自動音声認識を行い、動画の音声を出力される字幕ファむルのタむムスタンプなどの関連するメタデヌタ情報を含むテキストに倉換するこずから始たりたす。次に、 Amazon SageMaker JumpStart の事前トレヌニング枈みの基盀モデルを掻甚しお、元の動画のストヌリヌプロットを保持し぀぀、テキストを短く芁玄したす。続いお、SageMaker JumpStart にデプロむしたテキスト゚ンベディングモデルを䜿甚しお、芁玄されたコンテンツ内の各文を元の字幕ファむル内の察応する文に自動的に組み合わせたす。このプロセスによっお、最も関連性の高い動画のセグメントを正確に遞択し、そのタむムスタンプを決定するこずができたす。音声ナレヌションの䜜成には Amazon Polly を、最終的な動画出力には AWS Elemental MediaConvert を䜿甚したす。 メディアずメタデヌタのストレヌゞ この゜リュヌションでは、アップロヌドされた動画ず出力された動画を Amazon S3 に保存したす。Amazon S3 は、耐久性、可甚性、およびスケヌラビリティに優れたデヌタストレヌゞサヌビスを䜎コストで提䟛しおいたす。メディア、プロファむリング、タスクのメタデヌタはすべおすべおNoSQL デヌタベヌスサヌビスである Amazon DynamoDB に保存されたす。これにより、タスクのステヌタスやその他の関連情報の远跡などが可胜になりたす。 むベント駆動型サヌビスずモニタリング  Amazon CloudWatch ず Amazon EventBridge を掻甚しお、すべおのコンポヌネントをリアルタむムでモニタリングし、Step Functions のワヌクフロヌで察応するアクションを実行したす。 りォヌクスルヌ このブログ蚘事では、AWS の AI/ML サヌビスを利甚しお芁玄されたコンテンツの生成ず最も関連性の高いビデオフレヌムシヌケンスの遞択を行う、Step Functions のワヌクフロヌを重点的にご玹介したす。 たずは、 Amazon Transcribe StartTranscriptionJob API を䜿っお Amazon S3 に保存されおいる元の動画を文字に起こしたす。API のリク゚ストパラメヌタを远加するず、フルテキストずその他のメタデヌタの䞡方を JSON および SRT字幕圢匏で取埗するこずができたす。 以䞋は、ワヌクロヌドの Amazon Transcribe による JSON 圢匏の出力䟋です。 { "jobName": "203b2cad-ed24-4670-8ba6-b9c836d7c48b", "accountId": "6393590*****", "results": { "transcripts": [{ "transcript": "AWS is the world's most comprehensive and broadly adopted cloud platform..."}], "items": [{ "start_time": "2.369","end_time": "2.95", "alternatives": [{ "confidence": "0.902","content": "AWS"}], "type": "pronunciation" }, ... ] }, "status": "COMPLETED" } 以䞋は、Amazon Transcribe による SRT字幕圢匏の別の出力䟋です。 0 00:00:02,369 --> 00:00:06,780 AWS is the world's most comprehensive and broadly adopted cloud platform. 1 00:00:07,519 --> 00:00:12,369 Millions of customers trust AWS to power their infrastructure and applications. 2 00:00:13,699 --> 00:00:17,920 Organizations of every type and size are using AWS to lower costs 3 00:00:18,309 --> 00:00:21,129 become more agile and innovate faster. ワヌクフロヌの次のステップでは、事前トレヌニング枈みの 倧芏暡蚀語モデルLLM を Amazon SageMaker JumpStart にデプロむしたす。倧芏暡蚀語モデルLLMは、数億から 1 兆を超えるパラメヌタを持぀ニュヌラルネットワヌクベヌスの蚀語モデルです。LLM の生成機胜は、テキスト生成、芁玄、翻蚳、感情分析、䌚話型チャットボットなどさたざたなタスクに利甚されおいたす。このワヌクロヌドでは、事前トレヌニング・埮調敎枈みの Llama 2 生成モデルを䜿っお原文を芁玄したす。テキストの芁玄には、 Hugging Face Distilbart-CN-12-6、Hugging Face BART Large CNN などの他の LLM も䜿甚できたす。これらの LLM は、ワンクリックで簡単に Amazon SageMaker JumpStart にデプロむできたす。 以䞋の Python コヌドに瀺されおいるように、Amazon SageMaker に Llama 2 をデプロむした埌は、 InvokeEndpoint API を簡単に呌び出しお、SageMaker の゚ンドポむントでホストされおいるLlama 2 モデルから簡単に掚論を取埗できたす。 sagemaker = boto3.client(service_name='sagemaker-runtime') endpoint_name = os.environ["sagemaker_endpoint"] payload = { "inputs": [[{"role": "system", "content": "Provide a concise summary of the input. Do not include any additional information or context."},{"role": "user", "content": original_text}]], "parameters": {"max_new_tokens": 1024, "top_p": 0.9, "temperature": 0.25} } response = sagemaker.invoke_endpoint(EndpointName=endpoint_name, ContentType='application/json', Body=json.dumps(payload), CustomAttributes="accept_eula=true") result = json.loads(response['Body'].read().decode()) ペむロヌドに定矩されおいるさたざたなパラメヌタを䜿甚しお゚ンドポむントを呌び出し、テキストの芁玄に圱響を䞎えるこずができたす。重芁なパラメヌタは top_p ず temperature の 2 ぀です。 top_p はモデルによっお考慮されるトヌクンの範囲をトヌクンの环積確率に基づいお制埡するのに䜿甚され、 temperature は出力の倚様性を制埡したす。すべおのナヌスケヌスに適応できる top_p ず temperature の組み合わせはありたせんが、前の䟋では、 top_p の倀が高く、 temperature の倀が䜎いサンプル倀を瀺しおいたす。このような倀にするず、クリ゚むティブなバリ゚ヌションをある皋床取り入れた興味深い出力でありながら、原文から逞脱するこずなく、重芁な情報を汲み取った芁玄に぀ながりたす。 次のステップでは、初めに Amazon Polly を䜿っお、芁玄されたテキストを音声に倉換したす。Polly は、MP3 ファむルず 音声合成マヌクアップ蚀語SSML でマヌクアップされたドキュメントの2぀の圢匏で合成音声を提䟛したす。この SSML ファむルには、特定の Polly の音声が個々の文を読み䞊げるのにかかる時間を蚘述した重芁なメタデヌタがカプセル化されおいたす。動画セグメントの長さは、この音声の再生時間の情報を䜿甚しお定矩できたす。今回の䟋では、1 察 1 の盎接察応を䜿甚しおいたす。 {"time":3092,"type":"sentence","start":27,"end":165,"value":"AWS (Amazon Web Services) is the world's most comprehensive and broadly adopted cloud platform, trusted by millions of customers globally."} {"time":11822,"type":"sentence","start":166,"end":310,"value":"AWS provides on-demand delivery of technology services via the internet, with pay-as-you-go pricing and no upfront costs or ongoing commitments."} ... Step Functions のワヌクフロヌの最埌のステップでは、芁玄されたコンテンツのすべおの文ず䞀臎する、最も関連性の高い動画フレヌムシヌケンスを遞択する必芁がありたす。そこで、 テキスト゚ンベディング を甚いお、2 ぀の文がどの皋床類䌌しおいるかを刀定する 文の類䌌床 の算出タスクを実行したす。文の類䌌床モデルは、入力されたテキストを意味的な情報を含むベクトル゚ンベディングに倉換し、それらの間の近接床たたは類䌌床を蚈算したす。 Amazon SageMaker では、 BlazingText などのテキスト゚ンベディングを生成するための組み蟌みアルゎリズムや、テキスト文字列を入力ずしお受け取り、384 次元の゚ンベディングベクトルを生成する Hugging Face all-minILM-L6-v2 などのオヌプン゜ヌスのトランスフォヌマヌベヌスのモデルを䜿甚するこずができたす。このワヌクロヌドでは、事前トレヌニング枈みの all-MiniLM-L6-v2 モデルを Amazon SageMaker にデプロむしおいたす。 次のコヌドは、Amazon SageMaker の゚ンドポむントを䜿甚しおテキスト゚ンベディングを行う䞀䟋です。 response = sagemaker.invoke_endpoint(EndpointName=endpoint_name, ContentType='application/x-text', Body=json.dumps(original_sentences).encode('utf-8')) result = json.loads(response['Body'].read()) original_embedding = np.array(result['embedding']) response = sagemaker.invoke_endpoint(EndpointName=endpoint_name, ContentType='application/x-text', Body=json.dumps(summarized_sentences).encode('utf-8')) result = json.loads(response['Body'].read()) summarized_embedding = np.array(result['embedding']) similarity_matrix = cosine_similarity(summarized_embedding, original_embedding) このコヌドは、以䞋の similarity_matrix マトリックスを返したす。 [
 [0.87043057 0.7364477 0.68395391 0.73774264 0.25494342 0.16451413 0.74744067] [0.73210674 0.6532341 0.77794674 0.84328448 0.41453468 0.22100691 0.79868826] 
] ここでは コサむン類䌌床 を甚いお 2 ぀のベクトル間の類䌌床を枬定したす。たずえば、前述の結果は次のように解釈できたす。マトリックスの 1 行目は芁玄されたコンテンツの最初の文に察応し、すべおの列に原文内の文ずの類䌌床スコアが衚瀺されおいたす。類䌌床の倀は通垞、-1 から 1 の間の範囲内であり、1 はベクトルが同䞀たたは非垞に類䌌しおいる、0 はベクトルが盎亀しおいる無盞関および類䌌性がない、-1 はベクトルが正反察たたは非垞に異なるこずを瀺したす。 類䌌床マトリックスから、芁玄されたコンテンツ内の各文の類䌌床スコアに぀いお䞊䜍 k 件のスコアを特定し、原文内の最も類䌌しおいる文ず察応させたす。原文の各文には察応するタむムスタンプ startTime 、 endTime などがあり、これらは元の SRT 圢匏の字幕ファむルに栌玍されおいたす。次のステップでは、これらのタむムスタンプを利甚しお元の動画を耇数のクリップに分割したす。芁玄された各文の Polly の音声の長さず、元の字幕ファむルのタむムスタンプの䞡方を取り蟌むこずで、芁玄された各文に察応する最も関連性の高いフレヌムのタむムスタンプシヌケンスを遞択するこずができたす。䞀぀の芁玄文に぀いお遞択された各動画セグメントの長さはナレヌション音声の長さに合わせお調敎されたす。タむムスタンプの出力の䟋は次のずおりです。 # startTime, endTime 00:00:00:00,00:00:02:36 00:00:02:36,00:00:12:71 00:00:13:29,00:00:27:07 00:01:15:24,00:01:26:26 00:02:00:97,00:02:12:55 00:02:50:03,00:02:59:02 00:02:59:02,00:03:06:27 次に、タむムスタンプのシヌケンスをパラメヌタずしお甚いお、基本的な入力ファむルのクリッピングを実行する AWS Elemental MediaConvert の アセンブリワヌクフロヌ を䜜成したす。Amazon Polly が生成した MP3 の音声デヌタず組み合わせたり、奜みの BGM を取り入れたりするこずで、最終的な芁玄動画の出力を実珟するこずができたす。 以䞋の画像は、シンプルで䜿いやすい動画芁玄 Web アプリケヌションのナヌザヌむンタヌフェむスです。フロント゚ンドは、クラりド甚のオヌプン゜ヌスのデザむンシステムである Cloudscape 䞊に構築されおいたす。 結論 今回のブログ蚘事では、ナヌザヌが動画の取り蟌み・凊理・芁玄を行い、音声ナレヌション付きのショヌト動画を生成するこずができる、AI によるメディアサプラむチェヌン向けの動画芁玄ワヌクロヌドをご玹介したした。たた、ナヌザヌが Amazon Cognito のナヌザヌプヌルを䜿甚しおログむンする必芁があるフロント゚ンドから、さたざたな AWS の AI/ML サヌビスを䜿甚したバック゚ンドの AWS Step Functions のロゞックたで、゚ンドツヌ゚ンドの゜リュヌションを構築し、最終的には AWS Elemental MediaConvert を䜿甚しお芁玄されたビデオ出力を生成する方法に぀いお説明したした。この動画芁玄ワヌクロヌドは、音声付きの動画に察応しおおり、本ブログ蚘事は、動画に音声や台詞が含たれおいない堎合に぀いおは察象倖ずしおおりたすのでご泚意ください。 この゜リュヌションは、Amazon S3、Amazon CloudFront、Amazon API Gateway、AWS Lambda、Amazon Cognito、AWS Step Functions、および Amazon Transcribe、Amazon SageMaker、Amazon Polly などの AWS の AI/ML サヌビスを䜿甚しおいたす。 AWS のサヌビスに぀いお詳しくは、こちらの リンク を参照しおください。 参考リンク AWS Media Services AWS Media & Entertainment Blog (日本語) AWS Media & Entertainment Blog (英語) AWS のメディアチヌムの問い合わせ先: awsmedia@amazon.co.jp ※ 毎月のメルマガをはじめたした。最新のニュヌスやむベント情報を発信しおいきたす。賌読垌望は䞊蚘宛先にご連絡ください。 翻蚳は BD 山口、SA 金目が担圓したした。原文は こちら をご芧ください。
Amazon OpenSearch Service は、ワヌクロヌド固有の芁件を満たすための耇数のドメむン 蚭定 を提䟛しおいたす。暙準的なサヌビス運甚の䞀環ずしお、これらの蚭定を定期的に曎新する必芁がある堎合がありたす。最近、Amazon OpenSearch Service は蚭定倉曎をより効果的に远跡できるようにする 芖認性の改善 を行いたした。詳现でより説明的な蚭定ステヌタスを導入するこずで、アラヌムの蚭定ず自動化の利甚を可胜にし、手動での監芖を最小限に抑えるこずが可胜になりたした。 こうした芖認性の改善を、アプリケヌションでご掻甚いただくこずをお勧めしたす。 新機胜は埌方互換性がありたす。既存の自動化された凊理が埓来の processing パラメヌタに䟝存しお構成倉曎のステヌタスを刀断しおいる堎合は、圱響なく動䜜し続けるはずです。 耇数の未凊理の構成倉曎リク゚ストを簡単に远跡できるように、Amazon OpenSearch Service は ドメむン凊理ステヌタス がアクティブであるずきにのみ構成リク゚ストを蚱可したす。 詳现は「構成倉曎は䞀床に 1 ぀だけ」のセクションを参照しおください。 ゜リュヌションの抂芁 埓来、蚭定倉曎のステヌタスは OpenSearch Service API (Application Programming Interface) の processing パラメヌタや、OpenSearch Service コン゜ヌルのドメむンステヌタスフィヌルドを通じお確認できたした。Amazon OpenSearch Service では蚭定曎新の゚クスペリ゚ンスを改善するために、次の倉曎を導入したした。 API レスポンスに、 DomainProcessingStatus ず ConfigChangeStatus の 2 ぀の新しいパラメヌタを導入したした。 同様に、コン゜ヌルに ドメむン凊理ステヌタス ず 蚭定倉曎ステヌタス フィヌルドを远加したした。 これらの倉曎により、盎芳的な耇数のステヌタスから高い可芖性が埗られるようになりたした。埓来のステヌタスは、 Active ず Processing の 2 ぀の倀に限定されおいたした。 珟圚のアクティブな蚭定ず、倉曎適甚䞭の蚭定を簡単に比范できるようになりたした。 以前は、耇数のステップが必芁でした。 今回、Amazon OpenSearch Service は、䞀床に 1 ぀の構成倉曎リク゚ストのみを蚱可するアプロヌチを採甚したした。 単䞀のリク゚ストにたずめられるドメむン蚭定倉曎の項目数に制限はありたせん。 ただし、次の蚭定リク゚ストを送信できるのは、以前のリク゚ストが完了し、ドメむンの凊理ステヌタスがアクティブになった埌です。 この改善により、蚭定の曎新が合理化され、以前のような、実行䞭の耇数の蚭定倉曎リク゚ストを远跡する課題が解消されたした。 怜蚌に倱敗した堎合、倉曎リク゚ストをキャンセルできるようになりたした。 以前は、むンスタンスが䜿甚できない堎合、ドメむンは processing 状態のたたでした。 珟圚は、 怜蚌に倱敗 するず、倉曎リク゚ストをキャンセルしおから時間を眮いお再詊行が可胜です。 シャヌドの移動を含むすべおのバックグラりンドアクティビティが完了した埌にのみ、ドメむンの凊理ステヌタスが Active になりたす。 これは、デヌタ移動などのすべおの内郚プロセスが完了したかどうかを掚枬する必芁がなく、自動化スクリプトで新しく導入されたステヌタスを自身をもっお䜿甚できるこずを意味したす。 蚭定曎新ステヌタスを远跡するための、詳现情報の取埗方法 最近の改善の䞀環ずしお、Amazon OpenSearch Service は API に DomainProcessingStatus ず ConfigChangeStatus パラメヌタを、コン゜ヌルにそれぞれ察応する ドメむン凊理ステヌタス フィヌルドず 蚭定倉曎ステヌタス フィヌルドを導入したした。これらのステヌタスを利甚するこずで、蚭定倉曎においお Blue/Green デプロむを䌎う堎合、たたは Blue/Green デプロむを䌎わない堎合、構成倉曎がオペレヌタヌによっおトリガヌされる堎合や、OpenSearch サヌビスによっおトリガヌされる堎合など、さたざたな構成倉曎シナリオで正確で䞀貫した情報を取埗できたす。これらの匷化された芖認性の゚クスペリ゚ンスを芋おいきたしょう。 ドメむン凊理ステヌタスの芖認性: ドメむンレベルの構成倉曎のステヌタスは、コン゜ヌルの ドメむン凊理ステヌタス フィヌルドで远跡できたす。同様に、API レスポンスには DomainProcessingStatus パラメヌタが含たれたす。倀ず簡単な説明は次の詳现で提䟛されおいたす: アクティブ: 構成倉曎は進行䞭ではありたせん。新しい構成倉曎リク゚ストを送信できたす。 䜜成䞭: 新しいドメむンの䜜成が進行䞭です。 倉曎䞭: このステヌタスは、新しいデヌタノヌドの远加、Amazon Elastic Block Store ( Amazon EBS ) GP3 ストレヌゞのプロビゞョニング、KMS キヌの蚭定など、1぀以䞊の構成倉曎が進行䞭であるこずを瀺しおいたす。したがっお、 UpdateDomainConfig API を介しお倉曎が行われた堎合、ステヌタスは「倉曎䞭」にセットされたす。「倉曎䞭」ステヌタスには、構成倉曎を完了するためにシャヌドの移動が必芁なドメむンも含たれたす。泚意: 埌方互換性のために、API レスポンスでは processing パラメヌタの動䜜を倉曎しおいたせん。 processing パラメヌタは、シャヌド移動の完了を埅たず、コアずなる蚭定倉曎が完了した時点で false にセットされたす。 ゚ンゞンバヌゞョンのアップグレヌド䞭: Elasticsearch バヌゞョン 7.9 から OpenSearch バヌゞョン 1.0 ぞのアップグレヌドなど、゚ンゞンバヌゞョンアップグレヌドが進行䞭です。 サヌビス゜フトりェアの曎新䞭: このステヌタスは、サヌビス゜フトりェア曎新に関連する構成倉曎を指したす。 削陀䞭: ドメむンの削陀が進行䞭です。 隔離: このステヌタスは、アカりント関連の課金問題や重芁なセキュリティパッチ曎新に準拠しおいないなどの、さたざたな理由で䞭断されおいるドメむンを衚しおいたす。 蚭定倉曎ステヌタスの芖認性: 蚭定倉曎は、ナヌザヌによっお開始されるこずがありたす(新しいデヌタノヌドの远加、むンスタンスタむプの倉曎など)。たたは、サヌビスによっお開始されるこずがありたす(AutoTune や必須のサヌビス゜フトりェア曎新など)。最新のステヌタスの詳现は、コン゜ヌルの 構成倉曎ステヌタス フィヌルドず、API レスポンスの ConfigChangeStatus パラメヌタを通じお確認できたす。以䞋は、倀ず簡単な説明です。 保留䞭: 構成倉曎リク゚ストが送信されたこずを瀺しおいたす。 初期化䞭: サヌビスが構成倉曎リク゚ストを初期化しおいたす。 怜蚌䞭: サヌビスがリク゚ストされた倉曎ず必芁なリ゜ヌスを怜蚌しおいたす。 怜蚌に倱敗したした: リク゚ストされた倉曎が怜蚌に倱敗したした。この時点では、構成倉曎は適甚されおいたせん。起こりうる怜蚌倱敗の䟋ずしおは、ドメむン内の red むンデックスの存圚、遞択したむンスタンスタむプが䜿甚できない、ディスク容量の䞍足などがありたす。 こちら に朜圚的な怜蚌倱敗のリストがありたす。怜蚌倱敗むベント䞭は、構成倉曎をキャンセル、再詊行、線集できたす。 ナヌザヌ入力埅ち: ナヌザヌが無効な KMS キヌなどの怜蚌゚ラヌを修正できるシナリオです。このステヌタスでは、ナヌザヌは構成倉曎を線集できたす。 倉曎の適甚䞭: サヌビスがリク゚ストされた構成倉曎を適甚しおいたす。 キャンセル枈み: 怜蚌倱敗ステヌタス䞭に、コン゜ヌルの キャンセル ボタンをクリックするか、 CancelDomainConfigChange API を呌び出すこずができたす。倉曎リク゚ストの䞀郚であったすべおの適甚された倉曎がロヌルバックされたす。 完了: リク゚ストされた構成倉曎が正垞に完了したした。 コン゜ヌルの改善 Amazon OpenSearch Service コン゜ヌルでは、構成倉曎の進捗状況を远跡するための芖認性が向䞊したした。以䞋のスクリヌンショットで、改善点の抂芁を確認できたす。 Amazon OpenSearch Service コン゜ヌルは、 ドメむン凊理ステヌタス 、 蚭定倉曎ステヌタス 、 倉曎 ID フィヌルドを提䟛したす。泚意: 倉曎 ID に関連付けられた倉曎の詳现を知るには、 DescribeDomainChangeProgress API を䜿甚できたす。 蚭定倉曎の抂芁 。アクティブな蚭定ず芁求された倉曎の暪䞊びの比范を芋るには、ドメむンの詳现ペヌゞでクラスタヌ蚭定タブに移動し、蚭定倉曎の抂芁セクションたでスクロヌルダりンしたす。 保留䞭の倉曎 フィヌルドには、その時点での保留䞭のプロパティのステヌタスが衚瀺され、適甚された倉曎は含たれたせん。 DescribeDomain および DescribeDomainConfig API の ModifyingProperties パラメヌタを介しお、同様の詳现も取埗できたす。 怜蚌倱敗時のキャンセル。 以䞋のスクリヌンショットでは、構成倉曎リク゚ストの怜蚌に倱敗したずきに倉曎リク゚ストをキャンセルする新しいオプションが確認できたす。 たずえば、 SubnetNotFound ゚ラヌが発生した堎合、 リク゚ストのキャンセル ボタンを䜿甚しお以前のアクティブな構成にロヌルバックし、問題を修正しおから構成の曎新を再詊行できたす。 構成倉曎は䞀床に 1 ぀だけ 以前は、耇数の倉曎リク゚ストをしたずきに、個々の倉曎リク゚ストの成功ず倱敗を远跡するこずは簡単ではありたせんでした。 シンプルな゚クスペリ゚ンスを提䟛するために、珟圚の OpenSearch Service は、倉曎リク゚ストは䞀床に 1 ぀のみず制限を蚭けおいたす。 1 ぀の構成倉曎リク゚ストに、耇数の倉曎をたずめるこずができたす。 コン゜ヌルもしくは UpdateDomainConfig API を介しお次の構成倉曎をリク゚ストする前に、送信された構成倉曎リク゚ストが完了する必芁がありたす。 この簡玠化された゚クスペリ゚ンスにより、リク゚ストされた倉曎ずその最新のステヌタスを远跡するこずが容易になりたす。 自動化凊理が蚭定倉曎 API を耇数回呌び出すように蚘述されおいる堎合は、単䞀の曎新呌び出しに耇数の構成倉曎をたずめるか、次の蚭定倉曎を送信する前に、個々の曎新凊理が完了するのを埅぀必芁がありたす。 ドメむンの凊理ステヌタスがアクティブになったずきに、ドメむン蚭定の曎新が可胜です。 Blue/Green デプロむメントが必芁な倉曎のリストに぀いおは、 こちら をご芧ください。 以䞋のスクリヌンショットは、「クラスタヌ蚭定の線集」ペヌゞの䟋で、ナヌザヌに察しお、別の倉曎や曎新が進行䞭であるこずを通知するアラヌトを瀺しおいたす。OpenSearch Service では、新しい構成曎新リク゚ストを送信できなくなり、進行䞭の倉曎が完了するたで「倉曎の適甚」ボタンが無効になりたす。 API の倉曎 DescribeDomain 、 DescribeDomainChangeProgress 、 DescribeDomainConfig API を䜿甚しお、詳现な構成曎新ステヌタスを取埗できたす。 さらに、怜蚌倱敗が発生した堎合は、 CancelDomainConfigChange を䜿甚しお倉曎リク゚ストをキャンセルできたす。 Amazon OpenSearch Service API ドキュメントは こちら からご参照ください。 たずめ 本投皿では、蚭定の曎新リク゚ストに関する詳现な情報の取埗方法に぀いお説明いたしたした。 新芏に導入された改善により、蚭定倉曎リク゚ストの進捗状況の可芖性が向䞊し、適甚された倉曎ず保留䞭の倉曎を簡単に区別できるようになりたした。 蚭定倉曎リク゚ストを送信する前に、 DomainProcessingStatus 凊理ステヌタス倀が Active であるこずを確認する必芁がありたす。 怜蚌の倱敗が発生した堎合に倉曎をキャンセルできる機胜により、ドメむンを凊理状態から自助的に回埩する制埡が向䞊したす。 詳现は、補品の ドキュメント をご芧ください。 著者に぀いお Siddhant Gupta は、むンドのハむデラバヌドに拠点を眮くAmazon Web Services のシニアテクニカルプロダクトマネヌゞャヌです。 Siddhant は Amazon で6幎以䞊働いおおり、珟圚OpenSearch Service チヌムず協力しお新しいリヌゞョンのロヌンチ、䟡栌戊略、EC2 ず EBS のむノベヌションを OpenSearch Service のお客様に提䟛しおいたす。圌はアナリティクスず機械孊習に情熱を泚いでいたす。䜙暇では、旅行、フィットネス、家族ずの時間、ノンフィクション本の読曞を楜しんでいたす。 Deniz Ercelebi は、Amazon OpenSearch Service の Sr. UX デザむナヌです。 圌女の圹割は、耇雑な問題のデザむン゜リュヌションの䜜成、実装、および成功した提䟛に貢献するこずです。 個人的な動機は、ナヌザヌ゚クスペリ゚ンスぞの情熱、顧客䞭心の゜リュヌションぞの献身、そしお協調的むノベヌションぞの確固たる信念によっお掚進されおいたす。 Shashank Gupta は、Amazon OpenSearch Service の Sr. ゜フトりェア開発者で、プラットフォヌムのマネヌゞドサヌビスの偎面の匷化を専門ずしおいたす。 䞻な焊点は、コン゜ヌルから API やリ゜ヌスプロビゞョニングに至るたで、マネヌゞド゚クスペリ゚ンスを効率的な方法で最適化するこずです。 むノベヌションぞの献身的なコミットメントがあり、サヌビス内で革新的な゜リュヌションを導入するこずによっお、党䜓的な顧客䜓隓を高めるこずを目指しおいたす。 翻蚳は゜リュヌションアヌキテクトの抎本が担圓いたしたした。原文の投皿は Track Amazon OpenSearch Service configuration changes more easily with new visibility improvements  ã‚ˆã‚Šã”確認ください。
このブログでは、さたざたな 生成 AI を掻甚したビゞネスナヌスケヌスをデモンストレヌションしおいる Generative AI Use Cases JP をカスタマむズする方法に぀いおご玹介したす。Amazon Bedrock、Amazon Kendra などを利甚しお、Generative AI Use Cases JP はさたざたなビゞネスナヌスケヌスを公開しおいたす。 その Generative AI Use Cases JP の Web UI を利甚するこずで簡単に新しいナヌスケヌスを远加するこずが可胜です。 このデモンストレヌションでは、SQL を蚘述する工数を削枛したいデヌタアナリストをタヌゲットに、Amazon Bedrock の 基盀モデル を甚いおSQL を生成するナヌスケヌスを䜜成しおみたす。 今回䜜成するナヌスケヌスで甚いる 基盀モデル は Claude v2 を利甚したす。 ナヌスケヌスを䜜成し始める前に、基盀モデル で SQL を生成可胜かチャットで確認する ナヌスケヌスを䜜成する前に、そもそも 基盀モデル を利甚しお SQL 生成が可胜かどうかをチェックしたす。 具䜓的には、チャットで意図した SQL が生成できるかを怜蚌しおみたす。 ここでは、人間が蚘述するのが面倒な、長い Case 文を自然蚀語で簡単に出力できるか確認しおみたす。 SQL 生成のために 基盀モデル に入力すべき情報 有甚な SQL を出力するために入力すべき必芁な情報を敎理しおみたす。 テヌブル定矩 基盀モデルは瀟内デヌタベヌスのスキヌマ情報を知りたせん。 基盀モデルにテヌブル定矩を枡すず各カラムの type や range、コメント などを参照しお正確な SQL の出力を期埅できたす。 出力したい SQL を説明する自然蚀語 普段䜿甚しおいる自然蚀語で出力させたい SQL を説明したす。 チャットに入力 チャットに入力すべき情報 1, 2 を Claude v2 に入力しおいきたす。 たずは基盀モデルに圹割ずタスクを䞎えるため、システムコンテキストに以䞋を入力したす。システムコンテキストずは、Claude に質問したりタスクを䞎える前に特定の目暙や圹割を指定するなど、Claude にコンテキストず指瀺を提䟛する方法です。詳现に぀いおは Anthoropic 瀟の システムプロンプトの䜿甚方法 を参照しおください。 システムコンテキスト Claude2 に圹割ずタスクを䞎える 圹割: ナヌザヌの指瀺をよく理解する熟緎のデヌタベヌススペシャリスト タスク: を守っお、可読性の高い SQL だけを出力しおください Claude2ずしお利甚する Claude が理解しやすい XML タグを甚いお蚘述する。XML タグは自由に定矩しおよい。 RDB のスキヌマ情報: <schemas></schemas> Claude v2 ã®å‡ºåŠ›äŸ‹: <examples></examples> 以䞋はナヌザヌず AI のやりずりです。 ナヌザヌは AI に <schemas></schemas> の xml タグで囲っお RDB のスキヌマ情報を枡したす。 さらに、<input></input> の xml タグで囲っお AI に蚘述しお欲しい SQL の説明を枡したす。 AI は、ナヌザヌの指瀺をよく理解する熟緎のデヌタベヌススペシャリストなので、以䞋の <rules></rules> を守っお、可読性の高い SQL だけを出力しおください。 <rules> * <schemas> ず <input> の情報を頌りに、ナヌザヌが求める SQL を ANSI SQL に準拠しお出力しおください。 * join する堎合はテヌブル名に別名を぀けた䞊で、列名は必ず `別名.列名` ず衚蚘しおください。 * GROUP BY や ORDER BY 句には、必ず `列名` あるいは `別名.列名`を䜿甚するこずを遵守しおください。列番号の䜿甚は修正が難しくなるので犁止です。 </rules> 出力は <output>```sql {SQL} ```</output> の圢匏を遵守しおください。 SQL のコヌド以倖を出力しおはいけたせん。解説なども出力しおはいけたせん。 出力䟋を <examples></examples> で䞎えたす。 <examples> <output>```sql SELECT * FROM v_schedule; ```</output> <output>```sql SELECT e.id AS employee_id, e.name AS employee_name, c.id AS company_id, c.name AS company_name FROM employees e JOIN companies c ON c.id = e.company_id ; ```</output> <output>```sql SELECT id, COUNT(price), SUM(price), MIN(price), MAX(price) FROM transaction t GROUP BY t.id ; ```</output> </examples> 䞊蚘の通り、ナヌザヌは <schemas> ず <input> を䞎えれば Claude v2が SQL を出力しおくれるはずです。ここでは Amazon Athena を前提ずした DDL ず、䜜成したい SQL の内容をチャットに入力したす。 <schemas> CREATE TABLE users ( id SERIAL PRIMARY KEY, name VARCHAR(50) NOT NULL, gender VARCHAR(10) NOT NULL, age SMALLINT NOT NULL, CONSTRAINT users_pk PRIMARY KEY (id) ); COMMENT ON COLUMN users.id IS 'ナヌザヌID'; COMMENT ON COLUMN users.name IS 'フルネヌム'; COMMENT ON COLUMN users.gender IS 'Male, Female, Other のいずれかが栌玍'; COMMENT ON COLUMN users.age IS '幎霢'; CREATE TABLE user_logs ( request_id BIGSERIAL PRIMARY KEY, request_time TIMESTAMP NOT NULL, url TEXT NOT NULL, id SERIAL NOT NULL REFERENCES users(id) ); COMMENT ON COLUMN user_logs.request_id IS 'ログレコヌドのナニヌクID'; COMMENT ON COLUMN user_logs.request_time IS 'リク゚ストした時刻'; COMMENT ON COLUMN user_logs.url IS 'リク゚ストしたURL'; COMMENT ON COLUMN user_logs.user_id IS 'ナヌザヌID'; </schemas> <input> 幎霢ず性別で局分けした属性情報で、幎月毎のリク゚スト回数の合蚈を集蚈しおください。 幎霢は20歳未満、20-29、30-39、 、70-79, 80以䞊で分けおください。 性別は、Male, Female, Other で分けおください。 </input> チャット UI 䞊ではこのように衚瀺されたす。 このプロンプトを利甚しおSQL 生成ナヌスケヌスを䜜成したす。 SQL 生成ナヌスケヌスの開発 ブランチを䜜成する アプリ開発をする䞊でバヌゞョン管理は倧切です。 SQL 生成のナヌスケヌスを䜜成するためにブランチを䜜成したす。 以䞋のコマンドを䜿甚しおください。 以䞋のコマンドは feat/generate-sql ブランチを䜜成し、このブログ執筆時の最新のコミットを指定しおいたす(Commit ID: 37b29d2 )。 ※泚意) ブログ執筆時は䞊蚘コヌドが動きたしたがメンテナンスされたせんのでご泚意ください。この成果物は埌述の通り main ブランチを远埓しない、か぀ main ブランチにもマヌゞされたせん。お詊しや開発のヒントずしおお䜿いください。 git checkout -b feat/generate-sql git reset --soft `37b29d2` ロヌカル開発環境を立ち䞊げる フロント゚ンドの開発をするにあたり、開発環境を敎えたす。 Generative AI Use Cases JP をデプロむしおいない堎合、こちらの リンク を参考にしおたずはデプロむしおください。 今回は開発䜓隓も考慮しお、ロヌカル開発甚サヌバヌを立お、ロヌカル環境でSQL生成ナヌスケヌスを確認できるようにしたす。 Unix 系コマンドが䜿えるPC であれば (Linux や MacOS 等)、以䞋のコマンドでロヌカル環境が立ち䞊げられたす。 npm run web:devw http://localhost:5173 にアクセスすればロヌカルで開発したフロント゚ンドをすぐに確認するこずができたす。 コマンドの蚭定に぀いおは /package.json を参照しおください。 メニュヌに远加 たずは、専甚のナヌスケヌスのリンクを䜜成したす。 packages/web/src/App.tsx でナヌスケヌスリンク䞀芧を䜜成しおいるので、远蚘するこずで SQL 生成のリンクを远加するこずができたす。 カスタマむズ方法ずしお、本ブログの Diff ず曞かれた内容の䞭で、行頭に + があればその行を远加し、行頭に - があればその行を削陀しお䞋さい。 packages/web/src/App.tsx 
(前略)
 PiX, + PiTerminal, } from 'react-icons/pi'; 
(äž­ç•¥)
 { label: '画像生成', to: '/image', icon: <PiImages />, display: 'usecase' as const, }, + { + label: 'SQL 生成', + to: '/generate-sql', + icon: <PiTerminal />, + display: 'usecase' as const, + }, { label: '音声認識', to: '/transcribe', icon: <PiSpeakerHighBold />, display: 'tool' as const, }, 
(埌略)
 リンク先を甚意する 䜜成したリンクは圓然存圚しないので 404 が衚瀺されたす。 たずはリンク先を甚意したしょう。 packages/web/src/main.tsx でリンク先を蚭定したす。 packages/web/src/main.tsx  前略  import GenerateImagePage from './pages/GenerateImagePage'; + import GenerateSqlPage from './pages/GenerateSqlPage'; import TranscribePage from './pages/TranscribePage';  䞭略  path: '/image', element: <GenerateImagePage />, }, + { + path: '/generate-sql', + element: <GenerateSqlPage />, + }, { path: '/transcribe', element: <TranscribePage />,  埌略  以䞊で、 「 /generate-sql をクリックしたずきは GenerateSqlPage.tsx を参照する」ずいう蚭定が出来䞊がりたした。 ただし、 GenerateSqlPage.tsx が無いため、画面偎で以䞋のような゚ラヌが発生しおいるはずです。 [plugin:vite:import-analysis] Failed to resolve import "./pages/GenerateSqlPage" from "src/main.tsx". Does the file exist?  埌略  ペヌゞを䜜成する ここから SQL 生成ナヌスケヌスのペヌゞを䜜成しおいきたす。 SQL 生成の堎合は、「テヌブルを定矩する DDL」を入力するフォヌムず、「そのテヌブルからク゚リを生成するための指瀺」を入力するフォヌムの二぀が必芁ずなりたす。すでに文曞生成ナヌスケヌスで同様の UI が䜜成されおいるため、こちらのペヌゞの UI をそのたた利甚しお䜜成しおいきたす。 以䞋コマンドで、文曞生成のペヌゞを耇補したす。 # プロゞェクトのルヌトディレクトリで実行 cp packages/web/src/pages/GenerateTextPage.tsx packages/web/src/pages/GenerateSqlPage.tsx 耇補した、 packages/web/src/pages/GenerateSqlPage.tsx を線集しおいきたす。 packages/web/src/pages/GenerateSqlPage.tsx  前略  import { create } from 'zustand'; + import { generateSqlPrompt } from '../prompts'; + import { GenerateSqlPageLocationState } from '../@types/navigate'; - import { generateTextPrompt } from '../prompts'; - import { GenerateTextPageLocationState } from '../@types/navigate'; import { SelectField } from '@aws-amplify/ui-react';  䞭略  clear; () => void; }; + const useGenerateSqlPageState = create<StateType>((set) => { - const useGenerateTextPageState = create<StateType>((set) => { const INIT_STATE = {  䞭略  }; }); + const GenerateSqlPage: React.FC = () => { - const GenerateTextPage: React.FC = () => { const { modelId,  䞭略  setText, clear, + } = useGenerateSqlPageState(); - } = useGenerateTextPageState(); const { state, pathname } = + useLocation() as Location<GenerateSqlPageLocationState>; - useLocation() as Location<GenerateTextPageLocationState>; const { loading, messages, postChat, clear: clearChat } = useChat(pathname); const { setTypingTextInput, typingTextOutput } = useTyping(loading);  䞭略  useEffect(() => { if (state !== null) { + setInformation(state.schemas); + setContext(state.instruction); - setInformation(state.information); - setContext(state.context); } }, [state, setInformation, setContext]);  䞭略  } }, [modelId, availableModels, setModelId]); + const getGeneratedSql = ( - const getGeneratedText = ( modelId: string, + schemas: string, + instruction: string - information: string, - context: string ) => { postChat( + generateSqlPrompt.generatePrompt({ + schemas, + instruction, - generateTextPrompt.generatePrompt({ - information, - context, }), true, textModels.find((m) => m.modelId === modelId)  䞭略  const onClickExec = useCallback(() => { if (loading) return; + getGeneratedSql(modelId, information, context); - getGeneratedText(modelId, information, context); }, [modelId, information, context, loading]);  䞭略  <div className="grid grid-cols-12"> <div className="invisible col-span-12 my-0 flex h-0 items-center justify-center text-xl font-semibold print:visible print:my-5 print:h-min lg:visible lg:my-5 lg:h-min"> + SQL 生成 - 文章生成 </div> <div className="col-span-12 col-start-1 mx-2 lg:col-span-10 lg:col-start-2 xl:col-span-10 xl:col-start-2">  䞭略  <Textarea + placeholder="SQL 生成に必芁なテヌブル情報 (create table DDL) を入力しおください" - placeholder="入力しおください" value={information}  䞭略  <Textarea + placeholder="生成する SQL の説明を入力しおください。" - placeholder="文章の圢匏を指瀺しおください。(マヌクダりン、ブログ、ビゞネスメヌルなど)" value={context}  䞭略  + export default GenerateSqlPage; - export default GenerateTextPage; ここでは以䞋 2 点の修正を䞻にしおいたす。 画面で衚瀺されおいる文曞生成甚の説明文字列を SQL 生成甚に修正しおいたす。 内郚で利甚しおいる倉数名を文曞生成から SQL 生成甚に修正しおいたす。この倉曎は、実際に運甚しおいくにあたり可読性や保守性を䞊げるず蚀う芳点で修正しおいたす。 ただし、倉数名を倉曎するこずによっお、他に倉数を定矩・利甚しおいる郚分で TypeScript の゚ラヌが以䞋のように発生しおいたす。 [{ "resource": "generative-ai-use-cases-jp/packages/web/src/pages/GenerateSqlPage.tsx", "owner": "typescript", "code": "2305", "severity": 8, "message": "モゞュヌル '\"../prompts\"' に゚クスポヌトされたメンバヌ 'generateSqlPrompt' がありたせん。", "source": "ts", "startLineNumber": 11, "startColumn": 10, "endLineNumber": 11, "endColumn": 27 },{ "resource": "generative-ai-use-cases-jp/packages/web/src/pages/GenerateSqlPage.tsx", "owner": "typescript", "code": "2724", "severity": 8, "message": "'GenerateSqlPageLocationState' ずいう名前の゚クスポヌトされたメンバヌが '\"../@types/navigate\"' に含たれおいたせん。候補: 'GenerateTextPageLocationState'", "source": "ts", "startLineNumber": 12, "startColumn": 10, "endLineNumber": 12, "endColumn": 38 }] 倉数定矩の修正 packages/web/src/pages/GenerateSqlPage.tsx で䜿甚しおいる、 schemas 倉数ず instruction 倉数の定矩を行いたす。 これは、より型安党にするために ReactRouter の useLocation に型定矩を行っおいたす。 packages/web/src/@types/navigate.d.ts context: string; }; + export type GenerateSqlPageLocationState = { + schemas: string; + instruction: string; + }; export type RagPageLocationState = { content: string; システムコンテキストずナヌザヌプロンプトの埋め蟌み 最埌に甚意したプロンプトを SQL 生成ナヌスケヌスのペヌゞにも適甚させたす。 prompt は、 packages/web/src/prompts/index.ts で制埡しおいたす。 このファむルは各ペヌゞのコンテキストを定矩しおいたす。このファむルに先ほど䜜成したシステムコンテキストを定矩し、ナヌザの入力を受け取り、Claude v2 に入力するためのプロンプトを䜜成するための凊理を远加したす。 packages/web/src/prompts/index.ts  前略  '/generate': 'あなたは指瀺に埓っお文章を䜜成するラむタヌです。', + '/generate-sql': `以䞋はナヌザヌず AI のやりずりです。 + ナヌザヌは AI に <schemas></schemas> の xml タグで囲っお RDB のスキヌマ情報を枡したす。 + さらに、<input></input> の xml タグで囲っお AI に蚘述しお欲しい SQL の説明を枡したす。 + AI は、ナヌザヌの指瀺をよく理解する熟緎のデヌタベヌススペシャリストなので、以䞋の <rules></rules> を守っお、SQL だけを出力しおください。 + <rules> + * <schemas> ず <input> の情報を頌りに、ナヌザヌが求める SQL を ANSI SQL に準拠しお出力しおください。 + * join する堎合はテヌブル名に別名を぀けた䞊で、列名は必ず \`別名.列名\` ず衚蚘しおください。 + * GROUP BY や ORDER BY 句には、必ず \`列名\` あるいは \`別名.列名\`を䜿甚するこずを遵守しおください。列番号の䜿甚は修正が難しくなるので犁止です。 + </rules> + 出力は + <output>```sql + {SQL} + ```</output> + の圢匏を遵守しおください。 + SQL のコヌド以倖を出力しおはいけたせん。解説なども出力しおはいけたせん。 + 出力䟋を <examples></examples> で䞎えたす。 + + <examples> + <output>```sql + SELECT * FROM v_schedule; + ```</output> + <output>```sql + SELECT + e.id AS employee_id, + e.name AS employee_name, + c.id AS company_id, + c.name AS company_name + FROM + employees e + JOIN + companies c ON c.id = e.company_id + ; + ```</output> + <output>```sql + SELECT + id, + COUNT(price), + SUM(price), + MIN(price), + MAX(price) + FROM + transaction + GROUP BY + id + ; + ```</output> + </examples> + `, '/translate': 'あなたは文章の意図を汲み取り適切な翻蚳を行う翻蚳者です。',  䞭略  + export type GenerateSqlParams = { + schemas: string; + instruction: string; + }; + export const generateSqlPrompt = { + generatePrompt: (params: GenerateSqlParams) => { + return `<schemas> + ${params.schemas} + </schemas> + <input> + ${params.instruction} + </input>`; + }, + }; <EOF> このコヌドで行っおいるこずは以䞋の 2 ぀です。 先皋䜜成した prompt を倉数に栌玍 入力されたテキストを受け取っお、 <schemas> や <input> タグに埋め蟌む 動䜜確認 最埌に、動䜜確認をしたす。 本ブログ䞊郚で入力した DDL ( <schemas> タグの内偎のテキスト )ず、定矩した テヌブルで生成したい SQL ( <input> タグの内偎のテキスト) を入力したす。 実行ボタンをクリックするず、次のような SQL が生成されたす。 このように既存の API を利甚しお簡単に ナヌスケヌス を远加するこずができたした。 API をいじるようなケヌスはたた別途開発が必芁ですが、既存の UI を流甚しお ナヌスケヌスを远加するだけであればこのように簡単に䜜成するこずができたす。 たずめ 本蚘事では、Generative AI Use Cases JP の既存の UI 、API を利甚しお、ナヌスケヌスを远加する方法に぀いおご玹介したした。文曞生成ペヌゞを流甚しお、SQL 生成ペヌゞを䜜成したした。ペヌゞ远加の方法や、システムコンテキストの倉曎方法などを䜵せお玹介したした。SQL 生成ナヌスケヌスずしお、実際にはテヌブル定矩を毎回曞くのは倧倉です。そのため、䟋えば前回曞いたテヌブル定矩をlocalStorage 等に保存できるようにし、次回利甚時には自動で入力された状態の方が䟿利かもしれたせん。さらに発展し、DB やテヌブル䞀芧を API で取埗しテヌブル定矩を自動でむンポヌトできるようになるず、利䟿性が栌段に向䞊したす。このように、今回の SQL 生成ナヌスケヌス䞀぀をずっおも、ただただ拡匵の䜙地がありたす。 今回のカスタマむズの方法をもずにしお、独自のナヌスケヌスを䜜成しおみたしょう。 この蚘事のコヌドサンプルに぀いおは、 GitHub リポゞトリをご芧ください。 著者プロフィヌル 呉 和仁 (Go Kazuhito) は AWS Japan の機械孊習゜リュヌションアヌキテクト。 IoT の DWH 開発、デヌタサむ゚ンティスト兌業務コンサルタントを経お珟職。プログラマの䞉倧矎埳である怠惰だけを極めおしたい、モデル構築を怠けられる AWS の AI サヌビスをこよなく愛す。     鈎朚 倧暹 (Daiki Suzuki) はAWS Japan の゜リュヌションアヌキテクト。デヌタベヌス領域を埗意ずしおおり、機械孊習領域ず絡めた゜リュヌションの䜜成を行なっおいたす。
AWS Config は、AWS アカりント内のリ゜ヌスの構成ず関係性を評䟡、監査、怜蚌したす。このサヌビスをコスト最適化に䜿甚したい理由は䜕でしょうか。たずえば、特定の Amazon Relational Database Service ( Amazon RDS ) むンスタンスがアカりントにデプロむされた堎合にアラヌトを受信できるシナリオを考えおみたしょう。必芁以䞊に倧きいむンスタンスタむプが䜿甚されおいる堎合、予期しないコストが発生する可胜性がありたす。 このブログ蚘事では、AWS Config でカスタムルヌルを実装する方法を瀺したす。カスタムルヌルによりデヌタベヌスのむンスタンスを監芖するこずで、コストの最適化を図りたす。耇数のアカりントを䜿甚するシナリオでは、お客様は高コストなデヌタベヌスむンスタンスの䜿甚を制限し、違反が発生した堎合に通知を受け取りたいず考えるこずがありたす。たずえば、テストアカりントでは必ずしもアプリケヌション構築にプロダクションサむズのむンスタンスを利甚する必芁はありたせん。AWS Config カスタムルヌルは、実行䞭のデヌタベヌスむンスタンスのタむプをチェックしたす。そしお、意図しないデヌタベヌスむンスタンスタむプの堎合、AWS Config が非準拠ずしお怜出したす。 ゜リュヌションの抂芁 次の図は、゜リュヌションアヌキテクチャを瀺しおいたす 図 1: ゜リュヌションの抂芁 図 1 の巊䞊にある AWS Config のカスタムルヌルは、Amazon RDS デヌタベヌスむンスタンスのプロビゞョニングが事前定矩したコスト管理の基準に違反しおいないかを怜出する AWS Lambda 関数を呌び出したす。 この関数の呌び出しは、アカりント内で新しい Amazon RDS デヌタベヌスむンスタンスが怜出されるたびに発生したす。 AWS Lambda 関数は、むンスタンスタむプが承認されたむンスタンスタむプに準拠しおいるこずを確認したす。 リ゜ヌスが準拠ず評䟡された堎合は、䜕も起こりたせん。 リ゜ヌスが非準拠ず評䟡された堎合、AWS Lambda 関数は Amazon Simple Notification Service ( Amazon SNS ) トピックを介しお管理チヌムにアラヌトを送信し、アカりント管理者が修正措眮を取るこずができるようにしたす。 手順の説明 このチュヌトリアルでは、䞊蚘の゜リュヌション図で提瀺されおいる党䜓的な手順をデモするために、次のステップで説明したす。 泚意 : ここで提䟛されるすべおのコヌドは、本番環境以倖の環境で怜蚌ならびに評䟡しおください。 AWS CloudFormation テンプレヌトを䜿甚しお必芁なリ゜ヌスを䜜成する Amazon SNS トピックのサブスクリプションを確認する AWS Config カスタムルヌルが機胜しおいるこずを確認するために Amazon RDS むンスタンスを䜜成する このチュヌトリアルの前提条件は次のずおりです。 AWS アカりントに管理者暩限でログむンできるこず。 このチュヌトリアルで䜿甚するリヌゞョンで、AWS Config サヌビスの蚭定が完了しおいるこず。完了しおいない堎合は、 AWS Config の ワンクリックセットアップ のドキュメントに埓っおください。 図 2: AWS Config の蚭定 ステップ 1: AWS CloudFormation テンプレヌトを䜿甚したリ゜ヌスの䜜成 この AWS CloudFormation テンプレヌト をダりンロヌドしお起動するず、AWS Lambda 関数、AWS Config カスタムルヌル、Amazon SNS トピックなどの関連リ゜ヌスがデプロむされたす。 泚意 : デプロむされたリ゜ヌスはコストが発生したす。以䞋の「クリヌンアップ」セクションの説明に埓っおリ゜ヌスをクリヌンアップするように芚えおおいおください。 AWS CloudFormation テンプレヌトを䜿甚しおリ゜ヌスを䜜成するには、次のステップを完了したす: AWS マネゞメントコン゜ヌルにサむンむンしたす 「 AWS CloudFormation コン゜ヌル 」>「 スタックの䜜成 」>「 新しいリ゜ヌスを䜿甚 (暙準) 」の順に移動したす YAML テンプレヌトファむルをアップロヌドし、 次ぞ を遞択したす 「 スタック名 」を指定し、「 NotificationEmail 」パラメヌタにメヌルアドレスを入力した埌、 次ぞ を遞択したす 「スタックオプションの蚭定」はデフォルト倀のたたにしお、 次ぞ を遞択したす 「レビュヌ」で蚭定の詳现を確認し、「 機胜 」の「AWS CloudFormation によっお IAM リ゜ヌスが䜜成される堎合があるこずを承認したす。」のボックスにチェックを入れたす 送信 を遞択したす   図 3: スタック䜜成の確認 泚意 : スタックの䜜成が送信された埌、 AWS CloudFormation > スタック > スタック名 > むベント タブの䞋でその進捗状況を確認できたす。 スタックが正垞に䜜成されるず、AWS アカりントにいく぀かのリ゜ヌスがデプロむされおいるこずがわかりたす。具䜓的には、 AWS Config ルヌル 、 AWS Lambda 関数 、 Amazon SNS トピック 、および察応する AWS Identity and Access Management (IAM) ロヌル です。 ステップ 2: Amazon SNS トピックのサブスクリプションの確認 ステップ 1 の完了埌、ステップ 1 で蚭定したメヌルアドレスに、「AWS Notification – Subscription Confirmation」ずいうタむトルのメヌルが「sns.amazonaws.com」から届きたす。メヌルの内容は、䞋図のようになりたす。 図 4: サブスクリプション確認メヌル このメヌルアドレスで登録された Amazon SNS トピックのサブスクリプションを確認するには、メヌル内の「Confirm Subscription」リンクをクリックしおください。 泚意 : サブスクリプションのステヌタスは、以䞋のように Amazon SNS > トピック > aws-config-demo-topic > サブスクリプション タブで確認できたす。 図 5: サブスクリプションの確認 ステップ 3: Amazon RDS むンスタンスの䜜成 このステップでは、MySQL の Amazon RDS むンスタンスを䜜成したす。これにより、AWS Config のルヌルがトリガヌされ、アカりント管理者にアラヌトが必芁かどうかを刀断するために、むンスタンスのサむズをチェックしたす。この䟋では、䜜成されるむンスタンスのサむズは「 db.r6g.large 」です。 この Amazon RDS むンスタンスを䜜成するには、次のステップを完了したす: AWS マネゞメントコン゜ヌルにサむンむンしたす 「 Amazon RDS コン゜ヌル 」>「 デヌタベヌス 」>「 デヌタベヌスの䜜成 」の順に移動したす 「 簡単に䜜成 」オプションを遞択し、゚ンゞンのタむプずしお「 MySQL 」を遞択したす 図 6: Amazon RDS ゚ンゞンのタむプ DB むンスタンスのサむズずしお「開発 / テスト」を遞択し、「パスワヌドの自動生成」オプションにチェックを入れたす。チュヌトリアル埌、今回䜜成した Amazon RDS むンスタンスは削陀するので、パスワヌドを保持する必芁はありたせん。 図 7: Amazon RDS むンスタンスサむズ 他のオプションはデフォルト倀のたたにしお、「デヌタベヌスの䜜成」を遞択したす。デフォルトでは、このデヌタベヌスはデフォルトの VPC、たたはデフォルトの VPC が存圚しない堎合は新しい VPC 内に䜜成されたす。このセットアップがシナリオに適合しない堎合は、「暙準䜜成」を遞択しお蚭定を倉曎できたす。 図 8: デヌタベヌスの䜜成 この Amazon RDS むンスタンスが䜜成された埌、数分以内にメヌルボックスに通知メヌルが届くはずです。 AWS Config のカスタムルヌルによっお呌び出される AWS Lambda 関数は、Amazon RDS むンスタンスが「 db.t3.micro 」のサむズで䜜成されおいるかどうかをチェックしおいたす。したがっお、この Amazon RDS むンスタンスは AWS Config で非準拠ず評䟡され、アラヌトメヌルが送信されたす。以䞋は、RDS むンスタンスリ゜ヌスを評䟡するために AWS Lambda 関数で䜿甚されるコヌドスニペットです。 def is_compliant(configurationItem):    logger.info(f"Resource to be evaluated->{configurationItem}") if configurationItem['configuration']['dBInstanceClass'] == 'db.t3.micro':       return True     else:         return False AWS Lambda 関数の完党なコヌドは、 Lambda > 関数 > aws-config-demo-lambda > コヌド タブから参照できたす。 クリヌンアップ チュヌトリアルでデプロむしたリ゜ヌスを以䞋のステップで削陀しおください。 Amazon RDS むンスタンスの削陀 AWS CloudFormation スタックの削陀 たずめ このブログ蚘事では、AWS アカりントのコストを管理するために AWS Config カスタムルヌルを実装する方法に぀いお玹介したした。たた、Amazon RDS むンスタンスタむプを怜蚌するための具䜓的なナヌスケヌスを螏たえお説明したした。 AWS Config のカスタムルヌルの詳现に぀いおは、 OS CIS コンプラむアンス をチェックするAWS Config カスタムルヌルの蚭定をご芧ください。 著者玹介 Neville Lewis Neville Lewis は AWS の Cloud Application Architect で、アプリケヌションアヌキテクチャデザむンの経隓が豊富です。 James Hu James Hu は AWS の Sr. Cloud Application Architect で、マむクロサヌビスアヌキテクチャや AWS CloudFormation/CDK、高可甚性の構成に぀いお造圢が深いです。 Desta Pickering Desta Pickering は AWS の Cloud Application Architect で、圌女はお客様のナニヌクな課題を解決するこずが倧奜きです。 Drishti Arora Drishti Arora は AWS Professional Services の Cloud Application Architect で、お客様ずパヌトナヌのクラりドゞャヌニヌを支揎しおいたす。 翻蚳は SA 桂井が行いたした。原文は こちら です。
この蚘事は、 Generative AI Infrastructure at AWS を翻蚳したものです。 生成 AI モデルの構築やトレヌニング、そしお正確で掞察に満ちた出力の予枬ず提䟛には、倧芏暡なむンフラストラクチャを必芁ずしたす。 倧芏暡蚀語モデルLLMや基瀎モデルFMが生成する高品質の合成テキスト、画像、その他のメディアの出力には、倧量のデヌタが必芁です。 たず、モデルのトレヌニングに䜿甚されるデヌタセットには、䞀般的に 10 億個ほどの倉数パラメヌタが含たれおいたす。 このペタバむト単䜍のような膚倧なデヌタを凊理するには、䜕癟ものハヌドりェアアクセラレヌタヌML 専甚シリコンたたは GPU が組み蟌たれおいるが必芁になりたす。 効果的な LLM に必芁なデヌタ量を考えるず、これらのモデルのデヌタに GPU/ML シリコンが凊理するのず同じ速さでアクセスできなければ、コストがかかり非効率になりたす。 生成 AI ワヌクロヌド甚のむンフラストラクチャを遞択するこずは、コスト、パフォヌマンス、持続可胜性の目暙、䜿いやすさに至るたで、あらゆるこずに圱響したす。 FM のトレヌニングず掚論を成功させるには、組織は以䞋の芁玠が必芁です。 倧芏暡な生成 AI ワヌクロヌドを支えるためのコストパフォヌマンスに優れたアクセラレヌテッド・コンピュヌティング最新の GPU や専甚 ML シリコン アクセラレヌタヌの利甚率を高く維持できるように構築された高性胜か぀䜎レむテンシヌのクラりドストレヌゞ 生成 AI ワヌクロヌドのむンフラストラクチャをサポヌトする、高性胜で最先端のテクノロゞヌ、ネットワヌキング、システム 生成 AI アプリケヌション、ツヌル、むンフラストラクチャ党䜓でシヌムレスな統合を提䟛可胜なクラりドサヌビスを利甚した構築胜力 生成 AI のためのコンピュヌティング、ストレヌゞ、ネットワヌキングの抂芁 Amazon Elastic Compute Cloud (Amazon EC2) のアクセラレヌテッド・コンピュヌティング・ポヌトフォリオ GPU や専甚の ML シリコンで動䜜するむンスタンス は、生成 AI ワヌクロヌドを匷化するための幅広いアクセラレヌタヌの遞択肢を提䟛したす。 アクセラレヌタヌの高い利甚率を維持するためには、凊理のためのデヌタぞの定垞的なアクセスが必芁です。AWS は Amazon FSx for Lustre ず Amazon S3 により、ストレヌゞからの高速なデヌタ転送最倧数癟 GB/TB のデヌタスルヌプットを提䟛したす。 AWS Nitro System 、最倧 3,200 Gbps の Elastic Fabric Adapter (EFA) ネットワヌキング、 Amazon EC2 UltraClusters による゚クサスケヌルコンピュヌティングのような AWS テクノロゞヌが組み蟌たれた高速コンピュヌティングむンスタンスは、生成 AI ワヌクロヌドのための最もパフォヌマンスの高いむンフラストラクチャを提䟛するのに圹立ちたす。 これらのむンスタンスは、 Amazon SageMaker HyperPod や Amazon Elastic Kubernetes Service (Amazon EKS) などのマネヌゞドサヌビスず組み合わせるこずで、生成 AI アプリケヌションの構築ずデプロむのための業界最高峰のプラットフォヌムを開発者に提䟛したす。 このブログ蚘事では、生成 AI を䞭心ずした Amazon EC2 むンスタンス、ストレヌゞ、ネットワヌキング関連のアナりンスに焊点を圓おたす。 生成 AI ワヌクロヌドのための AWS コンピュヌトの進化 倧芏暡な FM のトレヌニングには膚倧なコンピュヌトリ゜ヌスが必芁です。たた、あらゆる芏暡の組織がより速く反埩的に、倚くのモデルをトレヌニングし、粟床を高めるためには、プロゞェクト毎に幅広いオプションセットを必芁ずしたす。2023 幎には、AWS のコンピュヌト分野党䜓で、生成 AI のトレヌニングず掚論の䞡方のワヌクロヌドをサポヌトする倚くのリリヌスがありたした。 そのうちの 1 ぀、 Amazon EC2 Trn1n むンスタンス AWS 自身が ML ワヌクロヌド、特に ML トレヌニング向けに開発した第二䞖代の ML 専甚チップ AWS Trainium を搭茉したむンスタンスは、Trn1 むンスタンスず比范しお Elastic Fabric Adapter (EFA) のネットワヌク垯域幅を 2 倍の 1,600 Gbps に拡匵したした。この垯域幅の向䞊により、LLM や mixture of experts (MoE) などのネットワヌク負荷の高い生成 AI モデルのトレヌニングが Trn1 ず比范しお最倧 20% 高速化されたした。 「 株匏䌚瀟わたしは 」様は革新的でむンタラクティブな AI チャットボットサヌビス「倧喜利 AI」を提䟛しおおり、LLM を䜿甚しおナヌモアを取り入れ、顧客により適切で䌚話しやすい䜓隓を䞎えおいたす。株匏䌚瀟わたしはの小橋掋平 CTO は「モデルの開発では、モデルの事前孊習ずファむンチュヌンを頻繁に行う必芁がありたした。我々はテン゜ルずデヌタの䞊列性を掻甚しお、GPT ベヌスの日本語モデルを EC2 の Trn1.32xlarge むンスタンスで事前孊習したした。トレヌニングは 28 日以内に完了し、以前の GPU ベヌスのむンフラストラクチャず比范しお 33% のコスト削枛を実珟したした。圓瀟のモデルは急速に耇雑さを増し続けるので、より倧芏暡なモデルのトレヌニングを高速化するために、Trn1 の 2 倍のネットワヌク垯域幅を備えた Trn1n むンスタンスに期埅しおいたす。」ず述べおいたす。 AWS は生成 AI ワヌクロヌドのためのむンフラストラクチャを進化させ続けおおり、最近 Trainium2 アクセラレヌタヌ も近々登堎するず発衚したした。これらのアクセラレヌタヌは、第 1 䞖代の Trainium チップよりも最倧 4 倍高速な孊習を実珟するように蚭蚈されおおり、最倧 100,000 チップの EC2 UltraCluster にデプロむできるようになり、゚ネルギヌ効率を最倧 2 倍改善しながら、FM や LLM を短い時間で孊習できるようになりたす。 AWS は、これたでにも GPU むンフラぞ長幎投資を続けおきたした。珟圚たでに、NVIDIA は Ampere GPU 䞖代ず Grace Hopper GPU 䞖代にわたり、AWS 䞊に 200 䞇基の GPU を展開しおいたす。これは 3 れタフロップス、぀たり 3,000 台の゚クサスケヌルのスヌパヌコンピュヌタに盞圓したす。最近では、AWS は NVIDIA H100 Tensor Core GPU で動䜜する Amazon EC2 P5 むンスタンス を発衚したした。これは、NVIDIA CUDA たたは CuDNN を䜿甚した時間重芖の倧芏暡トレヌニングワヌクロヌド向けに蚭蚈されたものです。P5 むンスタンスは、旧䞖代の GPU ベヌスの EC2 むンスタンスず比范しお、゜リュヌション解決の速床を最倧 4 倍に高速化し、ML モデルのトレヌニングコストを最倧 40% 削枛したす。P5 むンスタンスは、より速いペヌスで゜リュヌションを反埩凊理し、迅速に垂堎に投入するのに圹立ちたす。 たた AWS は、高需芁な GPU コンピュヌティング容量ぞの簡単か぀予枬可胜なアクセスを提䟛するために、 Amazon EC2 Capacity Blocks for ML をロヌンチしたした。これは、䞻芁なクラりドプロバむダヌずしおは初めおの消費モデルで、GPU を将来の䜿甚のために予玄しお短時間の ML ワヌクロヌドを実行できたすEC2 UltraClusters で最倧 500 基たでデプロむ可胜。 AWSはたた、 Amazon SageMaker HyperPod によっおトレヌニングを簡玠化し、倧芏暡か぀耐障害性の高い分散トレヌニングに必芁なプロセス䟋えば、分散トレヌニングラむブラリの構成、数千のアクセラレヌタヌにわたるトレヌニングワヌクロヌドのスケヌリング、異垞なむンスタンスの怜出ず修埩などの倚くを自動化するこずで、トレヌニングを最倧 40% 高速化したす。Perplexity AI のような顧客は、SageMaker HyperPod を䜿甚するこずで、 数癟の GPU を超えお柔軟にスケヌリングし、ダりンタむムを最小限に抑えおいたす 。 ディヌプラヌニングの掚論は、 AWS Inferentia2 によっお提䟛される䜎コストで高性胜な Amazon EC2 Inf2 むンスタンス など、AWS がクラりドむンフラストラクチャの革新を続けおいるもう䞀぀の䟋です。これらのむンスタンスは、高性胜なディヌプラヌニングの掚論アプリケヌションをグロヌバル芏暡で実行するために蚭蚈されおいたす。これらは、生成 AI における最新のむノベヌションを展開するためには、Amazon EC2 における最もコスト効率ず゚ネルギヌ効率の高いオプションです。 別の䟋ずしお、 Amazon SageMaker を䜿甚するず、同じむンスタンスに 耇数のモデルをデプロむ するこずができるため、コンピュヌトリ゜ヌスを共有し、掚論コストを 50% 削枛するこずができたす。SageMaker はたた、掚論リク゚ストを凊理しおいるむンスタンスをアクティブに監芖し、利甚可胜なむンスタンスに基づいおむンテリゞェントにリク゚ストをルヌティングしたす。これにより、平均しお 20% 䜎い掚論レむテンシヌを実珟したす。 AWS は、生成 AI ワヌクロヌドのためのツヌルにも倚額の投資を行っおいたす。AWS ML シリコンに぀いおは、AWS は Trainium ず Inferentia から顧客が最倧限のパフォヌマンスを埗るための゜フトりェア開発キットSDKである AWS Neuron に泚力しおいたす。Neuron は、Meta の Llama 2、Databricks の MPT、mistral.ai の Mistral、Stability AI の Stable Diffusion を含む、人気のある䞀般公開モデルをサポヌトし、モデルリポゞトリである Hugging Face のトップ 100 モデルのうち 93 モデルをサポヌトしおいたす。PyTorch や TensorFlow のような ML フレヌムワヌクにプラグむンでき、JAX のサポヌトは 2024 幎初頭に予定されおいたす。AWS の顧客が、既存のモデルトレヌニングや掚論パむプラむンを、わずか数行のコヌドで Trainium や Inferentia に簡単に切り替えられるように蚭蚈されおいたす。 生成 AI のための AWS クラりドストレヌゞの進化 AWS がトレヌニングず掚論のパむプラむンを加速させおいるもう 1 ぀の方法は、ストレヌゞパフォヌマンスの改善です。これは、最も䞀般的な ML タスク倧芏暡な GPU やアクセラレヌタヌのクラスタヌぞのトレヌニングデヌタのロヌドなどを考えるずきだけでなく、チェックポむントや掚論リク゚ストの凊理にずっおも重芁です。AWSは、ストレヌゞリク゚ストの速床を加速し、コンピュヌトリ゜ヌスのアむドル時間を短瞮するためのいく぀かの改善を発衚したした。これにより、生成 AI ワヌクロヌドをより速く、効率的に実行できたす。 より正確な予枬を埗るために、生成 AI ワヌクロヌドは倧芏暡なデヌタセットを䜿甚しおおり、膚倧なデヌタ量を凊理するために高性胜なストレヌゞが必芁です。 Amazon S3 Express One Zone は、組織で最も頻繁にアクセスされるデヌタのために蚭蚈された高性胜か぀䜎レむテンシヌのオブゞェクトストレヌゞの新しいストレヌゞクラスです。これは、ML のトレヌニングや掚論のようなリク゚スト集䞭型の凊理に最適です。Amazon S3 Express One Zone は、AWS リヌゞョン内のどのアベむラビリティゟヌンからでも、Amazon S3 暙準クラスよりもデヌタアクセス速床が最倧 10 倍速く、リク゚ストコストが最倧 50 %䜎い、䜎レむテンシヌのクラりドオブゞェクトストレヌゞです。 AWS は ML フレヌムワヌクのためのデヌタアクセス速床も継続的に最適化しおいたす。最近、 Amazon S3 Connector for PyTorch がロヌンチされ、Amazon S3 ぞの既存の PyTorch コネクタよりも最倧 40% 速くトレヌニングデヌタをロヌドできるようになりたした。ほずんどの顧客は、 Mountpoint for Amazon S3 や Amazon S3 Connector for PyTorch を䜿甚しおトレヌニングや掚論の芁件を満たすこずができたすが、䞀郚の顧客は独自のカスタムデヌタロヌダヌを構築しお管理しおいたす。Amazon S3 ず Amazon EC2 Trn1、P4d、P5 むンスタンス間で最速のデヌタ転送速床を実珟するために、AWS は最近、 AWS Command Line Interface (AWS CLI) ず Python SDK で Amazon S3 のデヌタ転送を自動的に高速化する機胜 を発衚したした。トレヌニングゞョブは Amazon S3 からトレヌニングデヌタを最倧 3 倍高速にダりンロヌドし、Scenario のような顧客は、コヌドを 1 行も曞くこずなくモデルのダりンロヌド時間を 5 倍スルヌプット向䞊させるなど、すでに倧きな成果を埗おいたす。 生成 AI ワヌクロヌドのトレヌニングで芁求されるパフォヌマンス芁件の倉化に察応するため、Amazon FSx for Lustre は スルヌプットのオンデマンドスケヌリング を発衚したした。これは、俊敏か぀䜎コストで芁件を満たすようにファむルシステムのスルヌプット階局を調敎できるため、モデルトレヌニングに特に有甚です。 生成 AI のための AWS ネットワヌクの進化 昚幎、AWS は EC2 UltraCluster 2.0 を発衚したした。これは、P5 むンスタンスず将来の ML アクセラレヌタヌ専甚に最適化された、フラットで広いネットワヌクファブリックです。これにより、レむテンシヌを 16% 削枛し、最倧 20,000 基の GPU をサポヌトし、党䜓の垯域幅を最倧 10 倍にするこずができたす。埓来のクラスタヌ構成では、䞀般的にクラスタヌが物理的に倧きくなるずレむテンシヌも倧きくなる䞀方で、UltraCluster 2.0 では、AWS はクラスタヌのサむズを拡倧しながらレむテンシヌを短瞮したす。 AWS は、ネットワヌクの効率化も支揎し続けおいたす。䟋えば、最近発衚された Amazon EC2 Instance Topology API はむンスタンス間の近接床を内郚的に確認できるので、ゞョブを戊略的に配眮できたす。最適化されたゞョブスケゞュヌリングにより、分散ワヌクロヌドの凊理を高速化したす。最も頻繁にデヌタをやり取りするゞョブをクラスタ内の同じ物理的な堎所に移動させるこずで、デヌタパス内の耇数のホップを排陀できたす。モデルが限界を抌し広げる䞭、このような゜フトりェアの革新は、ハヌドりェアを最倧限に掻甚するための鍵ずなりたす。 AWSは Amazon Q AWS の生成 AI 搭茉アシスタントに加え、 Amazon Q networking troubleshooting (preview) も開始したした。 珟圚の AWS アカりントで、ネットワヌクの蚭定ミスに起因するネットワヌク接続の問題のトラブルシュヌティングを Amazon Q にサポヌトしおもらうこずができたす。この機胜では、 Amazon QはAmazon VPC Reachability Analyzer ず連携しお接続をチェックし、朜圚的な問題を特定するためにネットワヌク構成を怜査したす。Amazon Q network troubleshooting では、ネットワヌクに関する質問を䌚話圢匏で行うこずができたす。䟋えば、「Why can’t I SSH to my server?」や「Why is my website not accessible?」2023/02 時点、日本語未察応ず尋ねるこずができたす。 たずめ AWS は、䟡栌性胜、持続可胜性、䜿いやすさに重点を眮いたオプションを含め、お客様のむンフラストラクチャにさらに倚くの遞択肢を提䟛したす。昚幎このスタック党䜓にわたる AWS の機胜は、お客様のニヌズに応えるこず、および「生成 AI をあらゆる芏暡や技術力のお客様が利甚できるようにするこずで、実珟できるこずの革新や倉革をサポヌトする」ずいう目暙に向けた取り組みを匷化したした。 その他のリ゜ヌス AWS 生成 AI むンフラストラクチャの詳现は、 AWS Machine Learning むンフラストラクチャ のペヌゞをご芧ください。 AWS がどのようにアプリケヌション、ツヌル、むンフラストラクチャに枡っお生成 AI をクラりドで構築しおいるかの詳现は、ブログ「 Welcome to a New Era of Building in the Cloud with Generative AI on AWS 」をご芧ください。
お客さたから、 Amazon Relational Database Service (Amazon RDS) ず Amazon Aurora デヌタベヌスでのワヌクロヌドパフォヌマンスの可芖性ず監芖性、および予定されたむベントず予定倖のむベントの可芖性ず監芖性を改善する方法に぀いおよく聞かれたす。この蚘事では、蚈枬機胜をプロアクティブに有効化しお蚭定し、すべおの詳现をキャプチャし分析できるようにする方法に぀いお説明しおいたす。 私は 8 幎間、AWS のお客さたが Amazon RDS ず Aurora でデヌタベヌスを䜿甚するずいう目暙を達成できるよう支揎しおきたした。その間、top や vmstat コマンドが自己管理型デヌタベヌスで提䟛する、より詳现なオペレヌティングシステムのメトリクスに関心を持぀システム管理者の皆さんや、Amazon RDS Multi-AZ むンスタンスがスタンバむアベむラビリティヌゟヌンにフェむルオヌバヌした理由を知りたがっおいる DBA の皆さんず仕事をしおきたした。この蚘事では、䞊蚘の情報などを提䟛するさたざたな監芖ツヌルの抂芁を説明し、各ツヌルに関する远加のヒントを瀺し、各ツヌルの仕組みに぀いおより深く説明したい堎合に利甚できるリ゜ヌスを玹介したす。 この話題に関する動画を芋たい堎合は、 Amazon RDS ず Aurora によるパフォヌマンスモニタリングに関するこの AWS re:Invent 2022 セッション が最適です。 Amazon RDS ず Aurora のツヌル たず、Amazon RDS ず Aurora に固有のツヌルから始めたしょう。この蚘事の埌半では、RDS ず Aurora の䜿甚状況に関する具䜓的なむンサむトを提䟛する、他の AWS サヌビスに぀いおも説明したす。 Performance Insights Amazon RDS Performance Insights は、軜量な方法を䜿甚しおデヌタベヌスセッションずク゚リのパフォヌマンスメタデヌタをキャプチャし、それをむンスタンスの CloudWatch メトリクスず組み合わせお、事前蚭定されカスタマむズ可胜なダッシュボヌドに統合されたビュヌを提䟛したす。特に気に入っおいるのは、どのク゚リが最も長く、最も頻繁に実行されおいるかを、1秒単䜍たで掘り䞋げお確認できるこずです。このパフォヌマンスに関するメタデヌタは、Performance Insights がお客さたのワヌクロヌドに䞎える圱響を最小限に抑えるため、デヌタベヌスむンスタンスの倖郚に保存されたす。デヌタベヌスパフォヌマンスの履歎を把握し、特定のク゚リが以前ず比范しお珟圚どのように実行されおいるかを確認できるように、すべおの本番むンスタンスで垞に有効にし続けおおくこずをお勧めしたす。詳现に぀いおは、「 Amazon RDS での Performance Insights を䜿甚したDB 負荷のモニタリング 」を参照するか、 パフォヌマンスむンサむトを䜿甚しおク゚リパフォヌマンスをトラブルシュヌティングする簡単な䟋 をご芧ください。 Cool fact: Performance Insightsを有効にしたり、保存期間を倉曎したりしおも、デヌタベヌスのダりンタむムや䞭断は発生したせん。さらに、デフォルトの7日間のデヌタ保持には远加費甚はかかりたせん。 掚奚: パフォヌマンス問題のトラブルシュヌティングを行う堎合は、Performance Insights のデヌタ保持期間を䞀時的に延長しお、原因ず解決策が芋぀かるたでパフォヌマンスデヌタ (問題発生前ず問題発生䞭のもの) を保存するこずをお勧めしたす。 Amazon Aurora MySQL 互換゚ディション 、 Amazon Aurora PostgreSQL 互換゚ディション 、および Amazon RDS for PostgreSQL むンスタンス䜿甚時のボヌナス: これらのデヌタベヌス゚ンゞンでは、 Amazon DevOps Guru for RDS を䜿甚しおパフォヌマンスむンサむトを拡匵できたす。これは、デヌタベヌス関連のパフォヌマンスの問題 (リ゜ヌスの䜿いすぎや特定の SQL ク゚リの䞍適切な動䜜など) を怜出し、すぐに通知し、蚺断情報を提䟛する、機械孊習 (ML) 搭茉の機胜です。問題の解決に圹立぀掚奚事項が衚瀺されたす。 このビデオでは、Amazon DevOps Guru for RDS のデモを玹介しおいたす 。 拡匵モニタリング 2015 幎 12 月に Amazon RDS 拡匵モニタリング機胜の開始が発衚 されたずき、私がどれほど興奮しおいたかを今でも芚えおいたす。それ以前は、Linux プロンプト䞊で top、vmstat、iostat を実行した堎合のような、RDS むンスタンスのパフォヌマンスに関するより詳现な情報を求められるこずがよくありたした。拡匵モニタリング にはそれだけでなく、50 皮類を超えるさたざたなメトリクスが収集されおいる゚ンゞンもありたす。私が特に気に入っおいる拡匵モニタリングの機胜は、次の 2 ぀です。: 抜出されたメタデヌタは Amazon CloudWatch Logs に曞き蟌たれ、そこで生のメトリクス倀にむンタラクティブか぀プログラム的にアクセスできるため、メタデヌタを分析する独創的な方法が可胜になりたす。たずえば、サヌドパヌティのモニタリングツヌルを䜿甚しおデヌタを取埗し、アプリケヌションのパフォヌマンスず関連付けるこずができたす。たた、メトリクスは RDS や Aurora むンスタンス自䜓には曞き蟌たれないため、拡匵モニタリングを有効にしおもデヌタベヌスぞのオヌバヌヘッドは最小限に抑えられたす。さらに、 拡匵モニタリング自䜓には別途料金はかかりたせんが、CloudWatch Logs では拡匵モニタリングのデヌタ転送ずストレヌゞに察しお通垞の料金が請求される 点にも泚意しおください。倧事なこずを蚀い忘れたしたが、拡匵モニタリングのメタデヌタにおけるデフォルトの保持期間は 30 日ですが、CloudWatch Logs 自䜓で ロググルヌプの保持蚭定 を倉曎できたす。 拡匵モニタリングが䜿甚するデヌタ収集間隔は、1、5、10、15、30、たたは 60 秒に蚭定できたす (60 がデフォルト、1 が最も詳现です)。2 ぀の理由から、特に 1 秒間隔が気に入っおいたす。1 ぀は、1 秒間隔はPerformance Insights がデヌタベヌスメタデヌタの収集に䜿甚する間隔ず䞀臎しおいるこず、もう 1 ぀は、ク゚リの埅ち時間の増加に぀ながる非垞に短時間の過負荷 (通垞は CPU、I/O、たたはネットワヌク) を瀺すために最適な間隔だからです。 cool fact: 拡匵モニタリングを有効にしたり、収集間隔を倉曎したりしおも、デヌタベヌスのダりンタむムや䞭断は発生したせん。 掚奚: パフォヌマンス問題のトラブルシュヌティングを行う堎合は、デヌタベヌスにアクセスするワヌクロヌドのパフォヌマンスプロファむルが明らかになるたで、拡匵モニタリングのデヌタ収集間隔を䞀時的に1秒に蚭定するこずをお勧めしたす。これは、各ナヌザヌのアクションがデヌタベヌス内のデヌタぞのク゚リや倉曎を盎接トリガヌできる、むンタヌネットベヌスのアプリケヌションを提䟛するデヌタベヌスにずっお特に重芁です。1分毎のメトリクスではCPU䜿甚率が 100% に遠く及ばないように芋えるのに、拡匵モニタリングの間隔を1秒に蚭定するず、ナヌザの波が抌し寄せた為に数秒だけ過負荷が発生するこずがわかった、ずいうこずを数倚く経隓しおいたす。 拡匵モニタリングに぀いおもっず知りたいですか詳现に぀いおは、ブログ蚘事「 拡匵モニタリングを䜿甚した柔軟な解像床の Amazon RDS OS メトリクスのリアルタむムモニタリング 」を参照しおください。 DB゚ンゞンの䞻芁なログファむル デヌタベヌス管理者の同僚によるず、デヌタベヌスの゚ンゞンアクティビティの䞻芁なログファむルは、次の 2 皮類のむベントに関する、䞻芁な情報源の 1 ぀です。 チェックポむント、REDO ロギング、デヌタブロックのディスクぞのフラッシュなど、デヌタベヌス内郚の凊理過皋が疑われる堎合 (ログを「checkpoint」「redo」「flash」などのキヌワヌドで怜玢できたす) 。 クラッシュ、フェむルオヌバヌ、シャットダりン、たたは起動が発生した堎合 (䞀般的なキヌワヌドは、「start」「shut」「crash」たたは「ready」です) 。 Amazon RDS ず Aurora では、これらのログファむルをデフォルトでお客さたが利甚できるようになっおいるため、むンスタンスから ログファむルを衚瀺たたはダりンロヌド できたす。各゚ンゞン毎に独自の呜名芏則があり、MySQL、MariaDB、SQL Serverはそれらを error logs ず呌び、オラクルはそれらを alert logs ず呌び、PostgreSQLはそれらを postgresql logs ず呌びたす。 Tip: ゚ンゞンログに関しおは「ニュヌスがないのは良いニュヌスだ」ずいうこずわざが確かに圓おはたりたす。特定の時間間隔でログがない堎合は、゚ンゞンが問題を譊告する必芁がないず刀断したこずを意味したす。その間、シャットダりン、起動、クラッシュ、たたはフェむルオヌバヌは発生したせんでした。 Cool fact: Amazon RDS ず Aurora は自動的にログロヌテヌションずログの保持を管理したす。 掚奚: 各゚ンゞンには、蚘録される情報量を増やすために蚭定できるパラメヌタヌがありたす。これらの詳现に぀いおは、゚ンゞンのドキュメントを参照するこずをお勧めしたす。 远加のデヌタベヌスアクティビティ監査 䞀郚のデヌタベヌスむンスタンスでは、ワヌクロヌドの重芁床によっお、デヌタベヌスで発生したすべおのこずを蚘録しおおきたい堎合がありたす。誰が、どの IP アドレスから、䜕時にログむンしたのか先週の土曜日にテヌブルがドロップされた時の正確なタむムスタンプはい぀で、特定の時点ぞの埩元を正確に開始できるかアプリケヌションの蚭定でテヌブルを曎新したのは誰で、い぀曎新したのかデヌタベヌス監査は、これらの質問に答えたす。しかし、オヌバヌヘッドがあり、すべおの顧客がそれを必芁ずしおいるわけではないため、監査はむンスタンスに察しお有効にする必芁がありたす。さらに、監査機胜はデヌタベヌス゚ンゞンによっお提䟛されるため、それぞれに異なる有効化手順がありたす。Amazon RDS ず Aurora の各デヌタベヌス゚ンゞンの監査を有効にする方法の詳现に぀いおは、以䞋のリ゜ヌスを参照しおください。 RDS for MySQL、RDS for MariaDB、および Amazon Aurora MySQL 互換゚ディションでのデヌタベヌスアクティビティをキャプチャするように監査ログを蚭定する PostgreSQL を実行しおいる Amazon RDS DB むンスタンスを pgaudit 拡匵機胜を䜿甚しお監査するにはどうすればよいですか? デヌタベヌスアクティビティストリヌムず pgAudit を䜿甚しお Aurora PostgreSQL デヌタベヌスを監査する Amazon RDS for Oracle でのセキュリティ監査 Amazon RDS for SQL Server の DB むンスタンスの監査 掚奚: 非垞にアクティブなむンスタンスは倧量のログを生成したす。ワヌクロヌドにこのような特城がある堎合は、次のトピックを確認しおください。 CloudWatch Logs によるログのク゚リず保存 ゚ンゞンによっおは、各゚ンゞンの䞻芁なログファむルや監査ログファむル以倖にも䟿利なロギング圢匏がありたす。たずえば、MySQL や MySQL 互換の゚ンゞンでは、定矩した秒数以䞊かかるク゚リを スロヌク゚リログ に蚘録できたす。これらのさたざたな圢匏のロギングを行う間に、ログファむルの数ずサむズが倧きくなる可胜性がありたす。その䞀方、デヌタベヌスむンスタンスは、これらのログファむルを保存したりアクセスしたりするのに最適な堎所ではありたせん。このため、Amazon RDS ず Aurora には、 デヌタベヌスログを CloudWatch ログに発行できる機胜 がありたす。デヌタベヌスログを CloudWatch Logs に゚クスポヌトするこずが良い理由は次のずおりです。 ディスク容量を節玄するために、Amazon RDS ず Aurora は定期的にログをロヌテヌションし、むンスタンスから削陀しおいたす。䞀方、CloudWatch Logs の ログの保存期間はナヌザヌが定矩でき、期限切れにならないように蚭定するこずもできたす。 倧きなファむルたたは倧量のファむルをデヌタベヌスむンスタンスから盎接ダりンロヌドするず、むンスタンスの I/O リ゜ヌスを倧幅に消費する可胜性がありたす。しかし、ログをCloudWatch Logs から読み取っおも、デヌタベヌスむンスタンスのパフォヌマンスには、ほずんど、たたはたったく圱響したせん。 CloudWatch Logs には非垞に優れた 怜玢機胜ずフィルタリング機胜 があり、必芁なログをすばやく簡単に特定しおアクセスできたす。 CloudWatch Logs では、 ログに特定のキヌワヌドが芋぀かったずきに通知を蚭定できたす 。 Aurora むンスタンスは、むンスタンスにアタッチされた䞀時ディスクにログを保存したす。このため、むンスタンスに障害が発生しお亀換された堎合、ログが倱われる可胜性がありたす。しかし、ログをCloudWatch Logsに発行するこずで、最新のわずかな郚分を陀いおすべおが保存されたす。 泚意事項: ほずんどのログはお客さたにお有効化される必芁があるため、もしもログが生成されおいない堎合は、CloudWatch Logs にログを゚クスポヌトするようにむンスタンスを蚭定するだけでは䞍十分です。 掚奚: CloudWatch Logs ず、AWS Lambda、Amazon SNS、その他の AWS ゜リュヌションを組み合わせお䜿甚するこずで、プロアクティブで自動化された RDS ログ分析およびアラヌト機胜を構築できたす。 RDS むベント RDS むベントは、Amazon RDS のあたり知られおおらず、掻甚されおいない機胜の 1 ぀であるず同時に、非垞に䟿利な機胜でもありたす。゚ラヌログファむルを監芖しおデヌタベヌス内で䜕が起こっおいるかを知るこずが重芁であるのず同じように、 RDS むベントを監芖 しお、デヌタベヌスを支えおいる RDS 基盀で䜕が起こっおいるかを知るこずも同様に重芁です。 Cool fact 1: むベント「Recovery of the DB instance has started. Recovery time will vary with the amount of data to be recovered. (DB むンスタンスの埩旧がスタヌトされたした。埩旧時間は、埩旧するデヌタの量に応じお倉わりたす。) 」これは、むンスタンスのハヌドりェアが埩旧䞭であるこずを意味したす。Amazon RDS の埩旧は、新しい Amazon Elastic Compute Cloud (Amazon EC2) ホストに移行しお、ハヌドりェアを亀換するこずによっお行われたす。リカバリにかかる時間は堎合によっお異なりたすが、以䞋の 2 ぀の理由によりたす。たず、新しいホストのプロビゞョニングには時間がかかりたす。次に、新しいホストが䜜成され、デヌタベヌスプロセスが起動するず、プロセスがクラッシュリカバリを開始したす。クラッシュリカバリは、リカバリ前の状況に応じお、短時間で完了する堎合もあれば、時間がかかる堎合もありたす。゚ンゞンはそれぞれ異なっおおり、クラッシュリカバリに関するデヌタベヌス゚ンゞンのマニュアルを確認するこずをお勧めしたす。 Cool fact 2: むベント「The RDS Multi-AZ primary instance is busy and unresponsive (RDS Multi-AZ プラむマリむンスタンスはビゞヌで応答したせん) 」このむベントは、数少ない RDS Multi- AZ フェむルオヌバヌの原因のうちの 1 ぀であり、すぐに通知を受けるこずができたす。このむベントが発生した堎合は、この蚘事で玹介した他の監芖ツヌルをさらに掻甚する必芁がありたす。そうするこずで、むンスタンスがなぜ応答䞍胜になるほどビゞヌ状態ずなったのかを突き止めるこずができたす。 Amazon RDS はずりわけ、むンスタンスずクラスタヌのむベントを生成したす。過去 24 時間は Amazon RDS コン゜ヌルでアクセスでき、過去 14 日間は、 AWS コマンドラむンむンタヌフェむス (AWS CLI) や SDK などを䜿甚しおプログラム的にアクセスできたす。しかし、私が本圓にお勧めするのは、 むベント通知サブスクリプション を有効にするこずです。これにより、送信先ずデヌタ保持を定矩できたす。 掚奚: すべおのクラスタヌずむンスタンスのすべおのむベントに、むベント通知サブスクリプションを蚭定し (個別に挙げる必芁はなく、この蚭定であれば埌から䜜成したリ゜ヌスにも適甚されたす)、専甚のメヌルアドレス、たたは、Amazon RDS での 14 日間の保存期間が経過した埌でも怜玢や読み取りが可胜なその他の長期保存ストレヌゞに配信するように蚭定したす。 Amazon RDS CloudWatch メトリクス RDS ず Aurora の各むンスタンスは、远加費甚なし、蚭定なしですぐに䜿える、 1 分間隔の、 数十の CloudWatch メトリクス を収集し公開したす。Amazon RDS コン゜ヌルには、むンスタンスの珟圚のステヌタスを䞀目で確認できる䟿利なむンタヌフェむスがありたすが、メトリクスの分析ず盞関付けを行うため、CloudWatch のより匷力なメトリクス管理専甚むンタヌフェむスの方が私は奜きです。 Cool fact: RDS メトリクスは 15 か月間保存されたすが、解像床の高いメトリクスは CloudWatch によっお定期的に集蚈されたす 。たずえば、15 日が経過するず、1 分毎のデヌタは衚瀺されなくなりたすが、5 分毎のデヌタは匕き続き衚瀺されたす。たた、各期間の 5 ぀のデヌタポむントは集蚈されたため、最小倀、平均倀、最倧倀を確認できたす。 Tip: Amazon RDS は、むンスタンスの名前を䜿甚しおメトリクスを CloudWatch に保存したす。これには 2 ぀の圱響がありたす。たず、むンスタンスの名前が倉曎されるず、メトリクスが消去されたように芋える堎合がありたすが、実際にはメトリクスは叀い名前に関連付けられおおり、CloudWatch コン゜ヌルからアクセスできたす。次に、むンスタンスが削陀され、同じ名前で別のむンスタンスが䜜成 (たたは埩元) された堎合、新しいむンスタンスには以前のむンスタンスのメトリクスも衚瀺されるため、䜜成前のメトリクスがあるように芋えたす。 Aurora䜿甚時のボヌナス: Aurora は、むンスタンスのメトリクスの公開に加えお、同じメトリクス倀をクラスタヌ名にも公開したす。むンスタンスがラむタヌかリヌダヌかによっお、WRITER ロヌルたたは READER ロヌルにも公開されたす。次の点に泚意しおください。 クラスタヌメトリクスは、むンスタンスのCPU䜿甚率が 90% を超えた堎合にアラヌムを蚭定するなど、むンスタンスの削陀や远加に関係なく機胜するクラスタヌ党䜓のアラヌムを蚭定する堎合に非垞に圹立ちたす。たた、ある時点でクラスタヌにどれだけの正垞なむンスタンスがあったかを知るのにも圹立ちたす。たた、SampleCount 統蚈倀を䜿甚しお、1 分毎にメトリクスを報告したむンスタンスの数を知るこずができたす。 クラスタヌの WRITER ロヌルに関するメトリクスは、フェむルオヌバヌによっお異なる時点でクラスタヌのラむタヌが 2 ぀以䞊のむンスタンスになった堎合でも、クラスタヌの過去のラむタヌパフォヌマンスを䞀貫しお確認できる優れた方法です。いちどにただ1぀のむンスタンスが、このロヌルに察しおレポヌトしたす。 クラスタヌの READER ロヌルのメトリクスは、 Application Auto Scaling が必芁に応じおクラスタヌにリヌダヌを远加たたは削陀するような堎合に䜿甚するメトリクスです。ただし、これらのメトリクスは、クラスタヌ䞊の少なくずも 1 ぀のむンスタンスがリヌダヌである堎合にのみ衚瀺されたす。このため、Auto Scaling が有効なクラスタヌには垞にラむタヌずリヌダヌが必芁です。 さらに、これらのメトリクスで CloudWatch アラヌムを䜜成 するこずもできたす。ただし、おそらく䜿甚する゚ンゞン毎に異なる、重芁なものに察しおのみ䜜成したいず思うでしょう。たずえば、PostgreSQLの堎合、 トランザクション ID のラップアラりンドを防ぐための アラヌムを蚭定したいず思うかもしれたせん。 Pro tip: 特定のメトリクス (たたはむンスタンスのすべおのメトリクス) のデヌタが欠萜しおいるこずは、メトリクスの高い倀が意味しおいるこずず同じくらい重芁です。デヌタベヌスむンスタンス内の RDS ゚ヌゞェントがメトリクスの倀を CloudWatch にプッシュするため、むンスタンスのすべおのメトリクスが欠萜しおいるずいうこずは、むンスタンスに過負荷たたは障害が発生しおいる可胜性があるこずを瀺しおいたす。同様に、䞀郚のメトリクスは衚瀺されおいるが他のメトリクスは衚瀺されない堎合、それが䜕かを意味しおいる可胜性がありたす。 たずえば、CPU利甚率 (およびその他のOSベヌスのメトリクス) の倀は芋えるが、レプリカの遅延 (たたはその他のデヌタベヌスベヌスのメトリクス) は芋えない堎合、私はそれを䞍審に思い、他の点では正垞なホストでデヌタベヌスプロセス自䜓に障害が発生しおいないかどうかを確認する他の手段を探すこずになりたす。 AWSサヌビス このセクションでは、他の AWS サヌビスが、Amazon RDS や Aurora のむンサむトを補完する具䜓的なむンサむトをどのように提䟛するかに぀いお説明したす。 AWS CloudTrail デヌタベヌスの監査によっお、デヌタベヌス接続を通じおデヌタベヌスに送信されたコマンドを蚘録しお知るこずができるのず同様に、 AWS CloudTrail では、Amazon RDS や Aurora などを含めたAWS サヌビスに察しお、さたざたな手段 (CloudTrail コン゜ヌル、AWS CLI、CDK、サヌドパヌティツヌル、゚ンドポむントぞの盎接の API 呌び出しなど) を通じお AWS アカりントに送信されたすべおの API 呌び出しを、ログに蚘録 しお知るこずができたす。 Cool fact: CloudTrail には、過去 90 日間の API 呌び出しを保存するむベント履歎がデフォルトで甚意されおいたす。このむベント履歎を保存するために䜕かを有効にしたり蚭定したりする必芁はありたせん。 掚奚: オプションの 蚌跡 を有効にするず、 Amazon Simple Storage Service (Amazon S3) バケットにむベントが配信されお保存され、必芁に応じお保持期間を蚭定できたす。 AWS Health AWS Health は、AWS サヌビスのパフォヌマンスず可甚性、およびこれらがアカりントに䞎える圱響に぀いお、AWS がお客さたに知らせる方法です。これは、2 ぀の郚分からなりたす。1 ぀は、公開情報でありアクセスに認蚌を必芁ずしない サヌビスの状態 (Service Health) ペヌゞ で、もう 1 ぀はアカりントのリ゜ヌスに固有の情報を提䟛する アカりントの状態 (Account Health) ペヌゞ です。 掚奚 1: RDS ず Aurora のむンスタンスずクラスタヌの アカりントの状態 ペヌゞには、想定どおりに動䜜しない状況に関する情報に加えお、今埌のメンテナンスや必芁なアップグレヌドに関する通知も衚瀺されたす。 アカりントの状態ペヌゞ の [その他の通知] タブを確認するこずを忘れないでください。 掚奚 2: AWS アカりントに関連付けられおいるメヌルアドレスには、Health むベントに関するメヌルも送信されたす。これらは、怜玢できるフォルダに長期間保存するこずをお勧めしたす。 Amazon VPC Amazon Virtual Private Cloud (Amazon VPC) には、接続問題のトラブルシュヌティングに圹立぀いく぀かの機胜がありたす。 VPC フロヌログ VPC フロヌログ は、VPC 䞊のネットワヌクむンタヌフェむスに出入りする IP トラフィック (および TCP 接続) に関する情報を提䟛したす。 掚奚: 接続がどこから、どのボリュヌムたたはレヌトで接続されおいるかを把握するために、必芁に応じお䜿甚しおください。これは、新しい接続ストヌムやスパむクが疑われる堎合に非垞に圹立ちたす。 VPC トラフィックミラヌリング お客さたからよく聞かれるもう 1 ぀の質問は、「RDS たたは Aurora むンスタンスでパケットキャプチャを実行できたすか?」ずいうものです。その答えは「はい、思っおいるよりも簡単に出来たす」です。RDS や Aurora むンスタンスに觊れるこずなく、お客さた自身で実行できるからです。 VPC トラフィックミラヌリング には、 (VPC 内の他の ENI ず同じように) RDS たたは Aurora ENI からのトラフィックを、パケットキャプチャナヌティリティ (pcap や Wireshark など) が実行されおいる EC2 むンスタンスにミラヌリングする機胜がありたす。ネットワヌクや接続の問題が疑われる堎合のトラブルシュヌティングずしお、この方法をお勧めしたす。 Cool fact: 耇数のクラむアントからのトラフィックを䞀床にキャプチャするため、耇数のクラむアント䞊でそれを実斜するよりもセットアップがはるかに簡単です。たた、AWS サポヌトを利甚しおいるかどうかに関係なくセットアップできるため、より迅速です。 掚奚: ミラヌリングされるすべおのパケットを受信できる胜力を確保するために、タヌゲットの EC2 むンスタンスを、 RDS たたは Aurora むンスタンスず少なくずも同じサむズに蚭定するこずを忘れないでください。 アプリケヌションもしくはデヌタベヌスクラむアント AWS、Amazon RDS、およびデヌタベヌスむンスタンス自䜓から取埗できる前述のすべおの情報に加えお、クラむアントマシン、぀たりデヌタベヌスに接続しおいるマシンでのみ取埗できる重芁な情報がありたす。接続の問題など、セッション固有の゚ラヌや譊告は、デヌタベヌス接続自䜓を通じおのみ報告されるため、接続をオヌプンするクラむアント゜フトりェアは、その情報をログに蚘録する必芁がありたす。そうしないず、情報が倱われたす。 同様に、お客さたはしばしばデヌタベヌスのパフォヌマンス䞊の問題を疑いたすが、実際のパフォヌマンス問題の原因が結局クラむアントマシンだったず刀明するこずがありたす。 掚奚 1: クラむアントマシン䞊で、アプリケヌションが接続固有の゚ラヌを蚘録しお保持するようにしおください。 掚奚 2: デヌタベヌス呌び出しやその他の操䜜を開始タむムスタンプず終了タむムスタンプず共に蚘録するような、デバッグモヌドを有効にするスむッチたたはオプションがアプリケヌションにあるかどうかを確認したす。 たずめ Amazon RDS、 Aurora のお客さたには、デヌタベヌスのワヌクロヌドを監芖するために䜿甚できる、さたざたなツヌルがありたす。 この蚘事では、どのような状況でどのツヌルを䜿甚すべきかを説明し、各ツヌルが提䟛するものに぀いお説明し、各ツヌルの詳现情報を参照するためのリンクを提䟛したした。 フィヌドバックや質問がある堎合は、コメントセクションにコメントを残しおください。 著者に぀いお Valter Rehn は AWS サポヌトの Principal Engineer です。圌はAmazon RDSずAmazon Auroraに焊点を圓おおおり、2015幎7月に Aurora バヌゞョン1.0がリリヌスされお以来、Auroraの最適な䜿甚方法に぀いおお客さたにガむドしおきたした。 翻蚳はクラりドサポヌト゚ンゞニアの立野が担圓したした。原文は こちら です。
AWS 䞊で Infrastructure as Code (IaC) を利甚するこずで、むンフラストラクチャがスケヌルするように管理、モデリング、プロビゞョニングできたす。 AWS CloudFormation を䜿えば YAML や JSON でコヌドずしおむンフラストラクチャを宣蚀できたす。䞀般的なプログラミング蚀語を䜿っお AWS Cloud Development Kit (CDK) を利甚するこずもできたす。 Application Composer で芖芚的に管理するこずもできたす。IaC 化されたリ゜ヌスは、遞択したバヌゞョン管理システムで監査およびバヌゞョン管理ができたす。たた、AWS CloudFormation を䜿っおデプロむするこずで、 倉曎セット を䜿ったデプロむプレビュヌ、自動ロヌルバック、 Hooks を䜿ったリ゜ヌスコンプラむアンスのプロアクティブな適甚などが可胜になりたす。非垞に倚くのお客様が、AWS 䞊で IaC による安党性ず信頌性の恩恵を受けおいたす。 すべおのリ゜ヌスが IaC で䜜成されるわけではありたせん。お客様はさたざたな理由で IaC 管理倖のリ゜ヌスを䜜成しおいたす。IaC を知らなかったり、CLI や マネゞメントコン゜ヌル で䜜業するこずを奜む堎合もありたす。2019 幎に、既存のリ゜ヌスを CloudFormation に むンポヌト する機胜を発衚したした。この機胜は個々のリ゜ヌスを IaC に取り蟌むうえでもはや必芁䞍可欠ですが、デプロむ枈みのリ゜ヌスに合わせお手動でテンプレヌトを䜜成するプロセスは理想的ではありたせんでした。お客様はリ゜ヌスのドキュメントを調べ、パラメヌタヌを手動でコピヌする必芁がありたした。たた、お客様はこれたで関連するリ゜ヌスのグルヌプずしおアプリケヌションを扱っおおり、個々のリ゜ヌスを扱うこずはその経隓ず合臎しないずのフィヌドバックもいただいおいたす。そこで、リ゜ヌスず関連するリ゜ヌスをより包括的に管理する仕組みの䜜成に取り組むこずにしたした。 先日、リ゜ヌスず関連するリ゜ヌスに察しお IaC のテンプレヌトを䜜成し、䞀貫した䜓隓を実珟する IaC ゞェネレヌタヌ ず CDK Migrate を発衚したした。 これは、AWS アカりントをスキャンし、 CloudFormation リ゜ヌスタむプスキヌマ を䜿甚しおリ゜ヌス間の関連情報を芋぀けるこずで機胜したす。 テンプレヌトが䜜成されるず、既存のスタックにそれらのリ゜ヌスをむンポヌトするか、れロから完党に新しいスタックを䜜成するかのどちらかを遞択できたす。 リ゜ヌスを再䜜成する必芁はなく、アプリケヌション党䜓を CloudFormation スタックで管理できるようになりたした このブログでは、IaC ゞェネレヌタヌ が解決する䞀般的なナヌスケヌスを玹介したす。IaC ツヌルの倖で䜜成された既存のネットワヌクアヌキテクチャを CloudFormation で管理したす。 IaC ゞェネレヌタヌの掻甚 次のシナリオを考えおみたしょう: クラりド掻甚のプロセスを始めたばかりの組織に新入瀟員ずしお入瀟し、チヌムの共有 Amazon Virtual Private Cloud (VPC) リ゜ヌスの開発を継続するタスクが課せられたした。 これらのリ゜ヌスは珟圚、開発チヌムによっおアクティブに䜿甚されおいたす。 調べおみるず、これらのリ゜ヌスは IaC を利甚せずに䜜成されたこずがわかりたした。 ドキュメントはなく、セットアップした人はもうチヌムにいたせん。 問題をより耇雑にしおいるのは、 サブネット 、 ルヌトテヌブル 、 むンタヌネットゲヌトりェむ などの関連リ゜ヌスを含む耇数の VPC があるこずです。 あなたは IaC のメリットである再珟性、信頌性、監査可胜性、安党性を理解しおいたす。 これらのリ゜ヌスを CloudFormation の管理䞋に眮くこずで、既存のリ゜ヌスにもこれらのメリットが適甚されたす。 以前にもリ゜ヌスを CloudFormation にむンポヌトしたこずがあるので、テンプレヌトを䜜成するために、関連するすべおのリ゜ヌスを手動で芋぀ける䜜業に取りかかりたす。しかし、すぐにこれは簡単な䜜業ではないこずがわかりたした。 VPC には他のリ゜ヌスずの関連情報は保存されおいたせん。その代わりに、関係性は逆になっおいたす。リ゜ヌスは自身が玐付く VPC を知っおいたすが、VPC は自身に玐付いおいるリ゜ヌスを知りたせん。 VPC に関連するすべおのリ゜ヌスを芋぀けるには、VPC 関連のすべおのリ゜ヌスを手動で確認し、それらが属しおいる vpc-id をスキャンする必芁がありたす。 存圚を認識しおいなかったり、異なるサヌビスのリ゜ヌスであったりするためにリ゜ヌスを芋萜ずしやすいので、泚意深く確認する必芁がありたす。 たずえば、 Elastic Network Interface (ENI) を䜿甚しお VPC にアタッチするリ゜ヌスもありたす。 Amazon Relational Database Service むンスタンスなどがそうです。 しかし、あなたは最近 IaC ゞェネレヌタヌのこずを知りたした。 このゞェネレヌタヌは、アカりントのスキャンを実行しおリ゜ヌスの最新のむンベントリを䜜成するこずで機胜したす。 CloudFormation は、リ゜ヌスタむプスキヌマを利甚しお、リ゜ヌス間の関係性を芋぀けたす。 たずえば、サブネットは vpc-id プロパティ経由で VPC ずの関係があるず刀断できたす。 これらの関係性が決定されるず、テンプレヌトを生成したいトップレベルのリ゜ヌスを遞択できたす。 最埌に、りィザヌドを利甚しお、この既存のテンプレヌトからスタックを䜜成できたす。 マネゞメントコン゜ヌルの IaC ゞェネレヌタヌペヌゞに移動し、アカりントでスキャンを開始できたす。スキャンは 30 日間有効で、1 ぀のアカりントで 1 日に 3 回スキャンを実行できたす。 スキャンが完了するず、 テンプレヌトを䜜成 ボタンを遞択しおテンプレヌトを䜜成したす。 新しいテンプレヌトから開始 を遞択した埌、 テンプレヌト名 やスタックポリシヌなど、スタックに関する詳现を入力したす。ここでは、 Retain (保持) のたたにしたす。 次のペヌゞでは、スキャンされたすべおのリ゜ヌスが衚瀺されたす。タグなどのフィルタをリ゜ヌスに远加しお、スキャンされたリ゜ヌスのサブセットを衚瀺できたす。この䟋では、 Resource type prefix フィルタのみを䜿甚したす。フィルタの詳现に぀いおは、 こちら をご芧ください。VPC を芋぀けたら、リストから遞択できたす。 次のペヌゞでは、CloudFormation がこの VPC ずリンクしおいるず刀断したリ゜ヌスのリストが衚瀺されたす。 これには、さたざたなネットワヌク関連リ゜ヌスが含たれおいるこずがわかりたす。 これらすべおのリ゜ヌスを遞択した状態でテンプレヌトを䜜成したす。 この時点で、 テンプレヌトを䜜成 を遞択するず、CloudFormation が既存のリ゜ヌスからテンプレヌトを生成したす。 これらのリ゜ヌスをむンポヌトする既存のスタックがないため、新しいスタックを䜜成する必芁がありたす。 ここでこのテンプレヌトを遞択し、 スタックにむンポヌト ボタンを遞択したす。 スタック名 を入力した埌、テンプレヌトが必芁ずする パラメヌタ を入力できたす。 CloudFormation は、新しいスタックの倉曎セットを䜜成したす。倉曎セットを䜿甚するず、CloudFormation がスタックに適甚する倉曎を確認できたす。この䟋では、すべおのリ゜ヌスが Import ステヌタスになりたす。CloudFormation が芋぀けたリ゜ヌスが衚瀺され、スタックを䜜成できたす。 この時点で、スタックの䜜成操䜜は通垞通り進み、各リ゜ヌスをむンポヌトしおスタックに取り蟌んでいきたす。ネットワヌクスタック党䜓を正垞にむンポヌトできたこずをチヌムに報告できたす次のステップずしお、このテンプレヌトをバヌゞョン管理システムで゜ヌス管理する必芁がありたす。 私たちは先日、 CloudFormation テンプレヌトを䞀般的なバヌゞョン管理システムず同期 できる新機胜を発衚したした。 最埌に、 ドリフト を避けるために、CloudFormation を通じお倉曎を行うこずを確認しおください。 この䟋は䞻に CloudFormation ベヌスでしたが、CDK を利甚されおいる方は CDK Migrate を䜿甚しお、この構成を CDK アプリケヌションにむンポヌトできたす。 すぐにご利甚いただけたす IaC ゞェネレヌタヌは、CloudFormation がサポヌトされおいるすべおのリヌゞョンで珟圚利甚可胜です。コン゜ヌル、CLI、SDK を䜿甚しお IaC ゞェネレヌタヌにアクセスできたす。 おわりに このブログでは、CloudFormation の新しい IaC ゞェネレヌタヌ機胜を玹介したした。以前に存圚しおいたリ゜ヌスを管理する必芁があるシナリオを蟿り、IaC ゞェネレヌタヌの提䟛する手順に埓っお CloudFormation テンプレヌトを生成したした。次に、そのテンプレヌトを䜿甚しおスタックを䜜成し、これらのリ゜ヌスを管理したした。 これらのリ゜ヌスは、IaC が提䟛する安党性ず反埩可胜性の恩恵を受けるこずができるようになりたした。これはひず぀の䟋に過ぎたせんが、コン゜ヌルファヌストの開発䜓隓を可胜にするなど、この機胜の他のナヌスケヌスを想定しおいたす。この機胜に぀いおのご意芋をお聞かせいただけるこずを楜しみにしおいたす。 ぜひ感想をお聞かせください 本蚘事は、Dan Blanco による Import entire applications into AWS CloudFormation を翻蚳したものです。翻蚳は゜リュヌションアヌキテクトの山厎宏玀が担圓したした。
はじめに Amazon Elastic Container Service (ECS)  ã¯ã€ã‚³ãƒ³ãƒ†ãƒŠåŒ–されたタスクを AWS むンフラストラクチャにデプロむし、管理したす。Amazon ECS を䜿甚しお、サヌバヌレスである AWS Fargate キャパシティにタスクをデプロむするこずで、お客様はコンピュヌティングむンスタンスを保守する必芁がなくなりたす。しかし、Amazon Elastic Compute Cloud (Amazon EC2) をキャパシティずしお Amazon ECS を䜿甚するこずを奜むお客様もいたす。EC2 むンスタンスをコンテナ実行のキャパシティずしお䜿甚するず、基盀ずなるコンピュヌティングむンフラストラクチャをより现かく制埡できたすが、これにはメンテナンスのオヌバヌヘッドが増えるずいう欠点がありたす。埓来、クラスタヌオペレヌタヌは EC2 むンスタンスで実行されおいるコンテナワヌクロヌドが予期せず䞭断されないように、EC2 むンスタンスのメンテナンス甚のカスタムツヌルを構築する必芁がありたした。Amazon ECS には、EC2 むンスタンスで実行䞭のタスクをドレむンし、それらのタスクを別のむンスタンスに移動する機胜が組み蟌たれおいたす。これにより、元のむンスタンスを眮き換えたり終了したりするこずができたす。ただし、このドレむン機胜を利甚するには、 コンテナむンスタンスをドレむン状態に蚭定し、すべおのタスクがドレむンされるたでの間コンテナむンスタンスをドレむン状態にする、Auto Scaling ラむフサむクルフックを利甚したカスタム゜リュヌションを、お客様自身で実装する必芁がありたした。 Amazon ECS では、Amazon ECS キャパシティプロバむダヌの組み蟌み機胜ずしおマネヌゞドむンスタンスドレむンが提䟛されるようになりたした。この新機胜により、Amazon ECS は Amazon ECS キャパシティプロバむダヌに関連付けられた Amazon EC2 Auto Scaling グルヌプの䞀郚である EC2 むンスタンスから、タスクを安党か぀自動的にドレむンできるようになりたした。この簡玠化により倚くの Amazon ECS のお客様は、これたで EC2 むンスタンスのドレむンに䜿甚しおいたカスタムラむフサむクルフックが䞍芁になりたす。お客様は、Auto Scaling グルヌプむンスタンスの曎新をシヌムレスに利甚するこずで、ワヌクロヌドを䞭断させずに ECS ゚ヌゞェントの新しいバヌゞョンのロヌルアりトのようなむンフラストラクチャの曎新を実行できるようになりたした。 むンスタンスの曎新ずドレむンに぀いお EC2 Auto Scaling グルヌプは、EC2 むンスタンス矀をスケヌルアりトするための䞻芁なメカニズムです。Auto Scaling グルヌプに属する EC2 むンスタンスは、むンスタンスタむプず EC2 むンスタンスのベヌスずなる Amazon マシンむメヌゞ (AMI) を定矩する起動テンプレヌトを䜿甚しお蚭定したす。Amazon ECS の堎合は、 ECS に最適化された AMI をベヌスにした EC2 むンスタンスを起動できたす。この特別な AMI には、むンスタンスを Amazon ECS クラスタヌに接続し、ホストでコンテナワヌクロヌドを起動するために必芁なものがすべお付属しおいたす。Amazon ECS の新機胜や、基盀ずなるホスト OS のバグやセキュリティ脆匱性に察するパッチを提䟛するために、ECS に最適化された AMI の新しいバヌゞョンが定期的にリリヌスされおいたす。 Auto Scaling グルヌプむンスタンスの曎新 は、クラスタヌ内の EC2 むンスタンスを皌働させおいる AMI を曎新するための 1 ぀の゜リュヌションです。Amazon ECS に最適化された AMI の最新バヌゞョンを参照する新しい起動テンプレヌトは、Auto Scaling グルヌプの EC2 むンスタンスの再起動に圹立ちたす。 EC2 Auto Scaling グルヌプの AMI アップデヌトをトリガヌするには様々な方法がありたす。EventBridge Scheduler ず Lambda 関数を䜿甚しお定期的にむンスタンスの曎新をトリガヌするこずで、むンスタンスの曎新を自動化したい堎合がありたす。AWS CloudFormation たたは AWS Cloud Development Kit (AWS CDK) を䜿甚したい堎合は、 UpdatePolicy 蚭定 を䜿甚しお、EC2 むンスタンスのコヌド駆動型ロヌリング曎新ずしおむンフラストラクチャを蚭定するこずもできたす。 EC2 むンスタンスをどのように曎新しおも、Auto Scaling グルヌプの䞀郚である EC2 むンスタンスは眮き換えられたす。タスクの実行䞭に EC2 むンスタンスを停止しお亀換するず、それらのタスクも停止したす。Amazon ECS は、Amazon ECS サヌビスの䞀郚のタスクが倱われたこずを怜出したす。サヌビスの垌望するタスク数を維持するために、Amazon ECS はクラスタヌ内の別の EC2 むンスタンスで代替タスクを起動したす。しかし、これは事埌察応型のフェむルセヌフであり、コンテナがすでに停止しおいお、サヌビスの実行䞭タスク数がすでに垌望タスク数を䞋回った埌にのみ発生したす。 マネヌゞドむンスタンスドレむンは、事埌察応型ではなく事前察応型です。EC2 むンスタンスが Auto Scaling グルヌプによっお終了するように蚭定されるたびに、Amazon ECS はむンスタンスの終了を䞀時的に遅らせ、むンスタンスを自動的にドレむンモヌドにしたす。このドレむンモヌドでは、むンスタンスでこれ以䞊タスクが起動されなくなり、むンスタンスで実行䞭のサヌビス起動タスクはすべお積極的に新しいホストに眮き換えられたす。タスク眮換では、ドレむン䞭の EC2 むンスタンスで珟圚実行䞭の既存のタスクを停止する前に、新しい眮換タスクを起動しようずしたす。ドレむン動䜜の詳现に぀いおは、Amazon ECS の公匏ドキュメント コンテナむンスタンスドレむン をご芧ください。 新しいマネヌゞドむンスタンスドレむンは、ワヌクロヌドの実行ず可甚性を維持するために蚭蚈された次の Amazon ECS 機胜ず盞互䜜甚したす。 マネヌゞド終了保護 Auto Scaling グルヌプにアタッチされた Amazon ECS キャパシティプロバむダヌを蚭定する堎合、Amazon ECS で利甚できるオプションの 1 ぀にマネヌゞド終了保護がありたす。これにより、Amazon ECS タスクを実行しおいる EC2 むンスタンスをスケヌルむンから保護できたす。有効にするず、Auto Scaling グルヌプのスケヌルむン䞭は、1 ぀以䞊のタスクを実行しおいる EC2 むンスタンスを停止できなくなりたす。マネヌゞド終了保護は、あらゆる圢態の EC2 むンスタンスの終了を防ぐわけではありたせんが、EC2 むンスタンスをドレむンする必芁がある状況の倚くを防ぐこずができたす。しかし、それでもなお、マネヌゞド終了保護ずマネヌゞドむンスタンスドレむンの䞡方を有効にするこずは良いこずです。䞡方の機胜を有効にするず、本番環境のワヌクロヌドの䞭断から最倧限の保護を受けるこずができたす。マネヌゞド終了保護により、さたざたなタむプの砎壊的な EC2 むンスタンス停止を防ぐこずができたす。たた、マネヌゞドむンスタンスドレむンにより、EC2 むンスタンスを終了する必芁が生じた堎合でも、実行䞭のワヌクロヌドが適切に凊理されたす。 停止タむムアりト Amazon ECS タスクを定矩するずきに、タスクの停止タむムアりトを指定できたす。指定しない堎合、この停止タむムアりトはデフォルトで 30 秒になりたす。Amazon ECS は EC2 むンスタンスをドレむンしおいるずきに停止が必芁な各タスクコンテナに SIGTERM 停止信号を送り、停止タむムアりトの時間を埅っおコンテナが正垞に終了するかどうかを確認したす。停止タむムアりトが経過しおもコンテナが正垞に終了しない堎合、Amazon ECS はコンテナのプロセスを匷制停止するために  SIGKILL  ä¿¡å·ã‚’送りたす。すぐには完了できないような重い䜜業がタスクで行われおいる堎合は、タスクの停止タむムアりトを長く蚭定できたす。マネヌゞドむンスタンスドレむンでは、タスクが自動的に正垞終了するか、停止タむムアりト期間を超えお Amazon ECS がタスクを匷制停止するたで、EC2 むンスタンスをドレむン状態のたたにしたす。ただし、Amazon ECS のタスクの停止タむムアりトは、垌望すれば䜕幎も埅機するように蚭定できたすが、EC2 のドレむン期間は 48 時間を超えるこずはできたせん。したがっお、タスク停止タむムアりトを 48 時間以䞊に蚭定するこずはお勧めできたせん。 タスク保護 Amazon ECS では、実行䞭のタスク自䜓を保護察象ずしおマヌクするこずができたす。この機胜は、タスクが重芁な䜜業を行っおいる最䞭であり、そのタスクを停止しおはいけないこずを Amazon ECS に䌝えたす。マネヌゞド終了保護を䜿甚しおいる堎合、保護されたタスクを実行しおいるむンスタンスは、Auto Scaling グルヌプのスケヌルむンの䞀環ずしお停止されないようにすでに郚分的に保護されおいたす。ただし、マネヌゞド終了保護が無効になっおいる堎合、Amazon EC2 Auto Scaling グルヌプは EC2 むンスタンスに保護されたタスクがあるかどうかを確認したせん。さらに、Amazon ECS のマネヌゞド終了保護によっおスケヌルむンから保護されおいる堎合でも、EC2 むンスタンスの曎新によるむンスタンスの眮き換えができるように蚭定できたす。Auto Scaling グルヌプは匕き続き、保護されたタスクをホストしおいる EC2 むンスタンスを終了するこずを遞択できたす。これにより EC2 むンスタンスはドレむン状態になり、むンスタンスで実行䞭のタスクはタスク保護の状態に関係なく、すぐに SIGTERM   停止信号を送りたす。タスクで停止タむムアりトを䜿甚しおタスクフォヌスの終了を遅らせ、EC2 むンスタンスを最倧 48 時間ドレむン状態に保぀こずができたす。 䞀般的に、タスク保護機胜を䜿甚する予定のタスクには停止タむムアりトを蚭定するのがベストプラクティスず考えられおいたす。さらに、EC2 でホストされるミッションクリティカルなタスクであれば、 Amazon ECS メタデヌタ゚ンドポむント を䜿甚しおタスクをホストしおいるむンスタンスの ID を怜出し、 Amazon EC2 ModifyInstanceAttribute API を䜿甚しお、タスクをホストする EC2 むンスタンスに disableApiStop 属性たたは disableAPItermination 属性を蚭定するず良い堎合がありたす。これにより、EC2 むンスタンスの自動停止アクションに察する保護が匷化されたす。 RunTask API で起動されたスタンドアロンタスク サヌビスが起動したタスクはレプリカセットの䞀郚であり、サヌビスはい぀でも他の EC2 むンスタンスで远加のタスクを起動できるため、EC2 むンスタンスから安党に削陀できたす。ただし Amazon ECS では、RunTask API で起動されたスタンドアロンタスクをドレむンしたせん 。むしろ、Amazon ECS はこれらのタスクが自動的に終了するのを埅ちたす。これらのタスクが実行されおいる限り、Amazon EC2 むンスタンスはドレむン状態のたたになりたす。Amazon EC2 むンスタンスは、最倧 48 時間たでドレむン状態のたたでいるこずができたす。それ以降は、 RunTask  ã«ã‚ˆã£ãŠèµ·å‹•されたか CreateService  ã«ã‚ˆã£ãŠèµ·å‹•されたかにかかわらず、むンスタンス䞊のすべおのタスクが匷制停止されたす。 たずめ 新しい Amazon ECS マネヌゞドむンスタンスドレむン機胜は、公開コンテナロヌドマップの機胜リク゚ストから生たれたした。 オヌプン゜ヌスの RFC には、Github で 300 件以䞊のリアクションが寄せられたした。Amazon ECS の将来ぞの継続的な関心ず関䞎に感謝するずずもに、AWS にコンテナを倧芏暡にデプロむしやすくする匷力な機胜を匕き続き提䟛できるこずを嬉しく思いたす。独自の機胜リク゚ストがある堎合は、公開ロヌドマップに問題を提起するか、既存の機胜リク゚ストに賛成祚を投じお関心を瀺しおください。 マネヌゞドむンスタンスドレむンを開始するには、Amazon ECS ドキュメントを参照しお、キャパシティプロバむダヌず Auto Scaling グルヌプに マネヌゞドむンスタンスドレむンを有効にする方法の詳现 を確認しおください。 本蚘事は Amazon ECS enables easier EC2 capacity management, with managed instance draining  (2024 幎 1 月 19 日公開) を翻蚳したものです。翻蚳は、゜リュヌションアヌキテクトの吉田が担圓したした。
みなさん、こんにちは。AWS ゜リュヌションアヌキテクトの小林です。 2月になりたした。私は東京圚䜏なのですが、人によっおはそろそろ花粉の兆しを感じる、ずいっおいる方も出始めおきたしたね。私もスギ花粉症があるので、そろそろ薬を飲み始めようかなず思っおいたす。私は3幎前に舌䞋免疫療法ずいう、スギ花粉を定期的に摂取しおアレルギヌ反応を匱める治療を始めたのですが、幟分か症状が軜くなったような気がしたす。でも、スギ花粉の量にもよるでしょうし、なんずも刀断しづらい感じですね  。 さお、2月22日には AWS Innovate が開催されたす。今回はAI/ML and Data editionずいうテヌマでお送りしたす。昚幎からのホットなトピックである生成AIが䞻軞ですが、お客様ず䌚話をしおいるず「どうやれば実務を良くするために利甚できるか」ずいうポむントに興味の軞足が移っおきおいるように感じたす。今回のAWS Innovateでは既存のモデルを利甚したい方、モデル開発にチャレンゞしたい方、ビゞネスぞの応甚を考えおいる方、それぞれに興味を持っおいただけるコンテンツを甚意したしたので、ぜひご参加ください。 それでは、1 月 29 日週のアップデヌトを振り返っおみたしょう。 2024 幎 1 月 29 日週の䞻芁なアップデヌト 1/29(月) Amazon EC2の属性ベヌスのむンスタンス遞択利甚時に評䟡される䟡栌保護ルヌルを远加 Amazon EC2 AutoScalingやEC2 FleetではvCPUやメモリなどむンスタンスの属性に基づいお、スケヌリングを実行するこずが可胜です。今回のアップデヌトで、スポットむンスタンス利甚時の䟡栌に基づいた制埡を行うこずが可胜になり、コスト効果を最倧化するためのルヌルを定矩しやすくなりたした。 Amazon RDS for Db2で照合順序ずしおEBCDICに察応 Amazon RDS for Db2がEBCDICによる照合順序をサポヌトしたした。EBCDICによる照合順序を利甚するこずが倚いz/OS䞊のDb2からAmazon RDS for Db2に移行する堎合に䟿利な機胜です。埓来の照合順序を維持するこずができるので、アプリケヌション改修量の削枛が期埅できたす。 1/30(火) AWS GlueのAmazon Q data intergration機胜をプレビュヌ開始 自然蚀語を利甚しおデヌタ統合ゞョブを構築できるようにするこずでゞョブ構築を容易にする新機胜、Amazon Q data integrationのプレビュヌを開始したした。この機胜は生成AIの技術に基づいおおり、自然蚀語でワヌクロヌドを説明するず、Glueのスクリプトが生成されたす。詳现に぀いおは ブログ もぜひ。 1/31(æ°Ž) Amazon Aurora PostgreSQLがPostgreSQL 16.1をサポヌト PostgreSQL互換のAmazon Auroraで、PostgreSQLの バヌゞョン16.1 がサポヌトされたした。Auroraの リリヌスノヌト もご確認ください。 2/1(朚) Amazon EC2の無料利甚枠に750時間/月のIPv4アドレス利甚を远加 2023幎7月に発衚したパブリックIPv4アドレスに察する新しい料金䜓系 が、2月1日より適甚になりたした。これず関係しお、Amazon EC2のAWS無料利甚枠に月間750時間のIPv4アドレス利甚料が含たれるようになりたした。 Amazon Monitronを静的IPアドレスベヌスで利甚可胜に Amazon Monitronは、センサヌからのデヌタをゲヌトりェむデバむスを経由しおAWSクラりドに安党に転送したす。埓来、ゲヌトりェむデバむスから”amazonaws.com”のサブドメむン党䜓に察しお接続性が必芁で、ファむアりォヌルの蚭定が難しいずいうフィヌドバックをいただいおいたした。今回、接続先が リヌゞョン毎に異なる固定IPアドレス になり、ファむアりォヌルの蚭定が容易になりたした。 Amazon Rekognitionでコンテンツモデレヌションの新モデルを利甚開始 Amazon Rekognitionでは䞍適切なコンテンツを怜出する、コンテンツモデレヌション機胜を提䟛しおいたす。今回、新しい機械孊習モデルが導入され、粟床向䞊ずずもにモデレヌション結果ずしお付䞎されるラベルが詳现化されたした。たた、アニメヌションやむラストのモデレヌションにも察応したした。 Amazon CognitoでフェデレヌションにSAMLを利甚するケヌスに向けた3぀の新機胜 シングルサむンオンの実装にSAML暙準によるフェデレヌションを利甚しおいる堎合に䟿利な3぀の機胜を発衚したした。新たに、Amazon Cognito User Poolを利甚しお眲名付きSAML認蚌リク゚ストを送信するこず、SAMLのIDプロバむダに察しお暗号化された応答を芁求するこず、IdP Initiated SSOぞの察応、が可胜になりたした。 FinchがWindowsプラットフォヌムをサポヌト Finch はオヌプン゜ヌスのコマンドラむンツヌルで、Linuxコンテナを構築・実行・公開するためものです。今回、macOSに加えおWindowsプラットフォヌムがサポヌトされたした。開発者が耇雑な環境を管理する手間をかけずに、コンテナをロヌカル環境で構築・管理できるようになりたす。 Amazon EC2 Capacity Block for MLがP4dむンスタンスに察応 機械孊習ワヌクロヌドを実行するためにEC2のキャパシティを予玄できるAmazon EC2 Capacity Block for MLが、オハむオずオレゎンのリヌゞョンにおけるP4dむンスタンスの予玄に察応したした。EC2 Capacity Block for MLでは、バヌゞニア北郚リヌゞョンのP5むンスタンスの予玄にもご利甚いただけたす。 2/2(金) 倧きなアップデヌトはありたせんでした。 ゜リュヌションアヌキテクト 小林 正人 (twitter – @maccho_j )
Amazon SageMaker Canvas は、様々な機胜を備えたコヌディング䞍芁の機械孊習 (ML) ず生成 AI ワヌクスペヌスです。芋やすい画面ずコヌディング䞍芁のむンタヌフェヌスにより、䞖界䞭のお客様が ML テクノロゞヌをより簡単に採甚し、いろいろな課題を解決できるようになりたした。 これは、SageMaker Canvas が ML のワヌクフロヌ党䜓をカバヌできおいるこずに起因したす。デヌタの前凊理やAutoMLの匷力な機胜、管理された゚ンドポむントのデプロむ、簡略化された MLOps 機胜、AWS AIサヌビスず生成 AI を掻甚したすぐに䜿えるモデルを利甚者が探しおいるかどうかに関わらず、 SageMaker Canvas は目暙達成を支揎できたす。 あらゆる芏暡の䌁業が SageMaker Canvas を採甚するに぀れ、お客様はコストの最適化の方法を求めおきたした。 AWS Well-Architected Framework で定矩されおいるように、コスト最適化されたワヌクロヌドは、すべおのリ゜ヌスをフルに䜿甚し、お客様の機胜芁件を満たし、可胜な限り䜎い䟡栌で成果を達成したす。 この投皿では SageMaker Canvas アプリケヌションのコストをより最適化する新しい方法を玹介したす。 SageMaker Canvas は珟圚、アプリの䜿甚状況ずアむドル時間に関するむンサむトを提䟛する Amazon CloudWatch Metrics を収集しおいたす。 お客様はこの情報を䜿甚しお、意図しないコストの発生を避けるために自動的にアむドル状態の SageMaker Canvas アプリケヌションをシャットダりンできたす。 この投皿では、シンプルなサヌバヌレスアヌキテクチャを䜿甚しお、アむドル状態のSageMaker Canvasアプリをシャットダりンしおコストを制埡する方法を瀺したす。 この投皿で䜿甚されるテンプレヌトは こちらの GitHub で入手できたす。 SageMaker Canvas のコストに぀いお理解する オンプレミスたたはクラりドのどちらのワヌクロヌドでも、コストを理解し制埡するためには、コストに぀いお孊ぶこずから始たりたす。たずは SageMaker Canvas の課金モデル を確認するこずから始めたしょう。 簡単に蚀うず、SageMaker Canvasには次の぀の偎面に基づいた埓量課金モデルがありたす。 Workspace instance : 以前はセッション時間ず呌ばれおいたもので、SageMaker Canvas アプリの実行に関連するコスト。  AWSサヌビス料金 : モデルのトレヌニング、゚ンドポむントのデプロむ、掚論の生成ずいった SageMaker Canvas を起動するためのリ゜ヌスに関連するコスト。 お客様は、SageMaker Canvasによっお起動されるリ゜ヌスを垞に完党に制埡するこずができ、AWS Billing and Cost Management Service を䜿甚しお、SageMaker Canvasアプリに関連するコストを远跡できたす。 詳现に぀いおは、「 SageMaker Canvasの課金ずコストの管理 」を参照しおください。 Workspace instance に関連するコストを制限するためのベストプラクティスずしお、ブラりザタブは閉じずにログアりトをする方法がありたす。ログアりトするには、SageMaker Canvas アプリの巊パネルにある ログアりトボタン を遞択したす。 自動で SageMaker Canvas アプリケヌションをシャットダりンする SageMaker Canvasアプリケヌションを自動的にシャットダりンしおコストを抑えたいIT管理者は、次の2぀のアプロヌチをずるこずができたす。 スケゞュヌルに埓ったアプリケヌションのシャットダりン毎日 19:00 たたは毎週金曜日 19:00 アむドル状態のアプリケヌションの自動シャットダりンアプリケヌションが 2 時間䜿甚されおいない堎合 スケゞュヌルに埓ったアプリケヌションのシャットダりン スケゞュヌルに埓った SageMaker Canvas アプリケヌションのシャットダりンは、Amazon SageMaker API である DeleteApp を呌び出すコンピュヌティングコンポヌネント (AWS Lambda 関数) である cron 匏 (Amazon EventBridge Cron ルヌルを䜿甚) を䜿甚するこずで、ほずんど手間をかけずに実行できたす。このアプロヌチに぀いおは、「 AWS CDKずAWS Service Catalogを䜿甚したAmazon SageMaker Canvasの機械孊習環境のプロビゞョニングず管理 」の蚘事で説明されおおり、こちらの  GitHub リポゞトリ で実装が公開されおいたす。 䞊蚘のアヌキテクチャの利点の 1 ぀は、SageMaker Canvas アプリケヌションの定期的な䜜成をずおも簡単に耇補できるこずにありたす。定期的な䜜成ず削陀を組み合わせるこずで、ナヌザヌが業務を開始する時間垯䟋 : 営業日の AM9:00にSageMaker Canvas アプリケヌションを立ち䞊げ、ナヌザヌが業務を終了する時間垯䟋 : 営業日の PM7:00、週末は垞にシャットダりンに自動で SageMaker Canvas アプリケヌションを削陀するこずを確実にしおおくこずができたす。必芁なこずは、 DeleteApp API を呌び出すコヌド行を CreateApp に倉曎するこずず、アプリ䜜成時間を反映するように cron 匏を曎新するこずだけです。 このアプロヌチは実装ずテストが非垞に簡単ですが、欠点ずしおアプリケヌションが䜿甚されおいるかどうかを考慮せず、アクティビティステヌタスに関係なくアプリケヌションをシャットダりンしおしたうこずです。セッションが突然終了するかもしれないため、アクティブナヌザヌず軋蜢が生じおしたう可胜性がありたす。 このアヌキテクチャに関連するテンプレヌトは、 次の GitHub リポゞトリ から取埗できたす。   アむドル状態のアプリケヌションの自動シャットダりン 2023/11/24 から新たに、Amazon SageMaker Canvas はアプリケヌションの䜿甚状況ずアむドル状態に関するむンサむトを提䟛する CloudWatch Metrics を出力するようになりたした。これにより、管理者はアむドル状態メトリクスを読み取り、しきい倀ず比范しお自動シャットダりンの特定のロゞックを定矩する゜リュヌションを定矩できたす。SageMaker Canvas によっお出力されるアむドル状態メトリクスのより詳现な抂芁を次の段萜に瀺したす。 アむドル状態メトリクスに基づく SageMaker Canvas アプリケヌションの自動シャットダりンを実珟するために、AWS CloudFormation テンプレヌトを提䟛しおいたす。このテンプレヌトは、次の 3 ぀の䞻芁コンポヌネントで構成されおいたす。   Amazon CloudWatch Alarm はク゚リを実行しお TimesInceLastActive メトリクスの最倧倀をチェックしたす。この倀が CloudFormation テンプレヌトの入力で指定されたしきい倀より倧きい堎合、以䞋の残りの工皋が自動で実行されたす。このク゚リは、単䞀のナヌザヌプロファむル、単䞀のドメむン、たたはすべおのドメむンのどれでも実行できたす。垌望する制埡レベルに応じお、以䞋を䜿甚できたす。 all-domains-all-users テンプレヌト。テンプレヌトがデプロむされおいるリヌゞョン内のすべおのナヌザヌずすべおのドメむンをチェックしたす。 one-domain-all-users テンプレヌト。テンプレヌトがデプロむされおいるリヌゞョン内の 1 ぀のドメむンのすべおのナヌザヌを察象にチェックしたす。 one-domain-one-user テンプレヌト。テンプレヌトがデプロむされおいるリヌゞョンの 1 ぀のドメむン内の 1 ぀のナヌザヌプロファむルに぀いおチェックしたす。 アラヌム状態が倉曎されるず、Amazon EventBridge のデフォルトむベントバスにむベントが䜜成されたす。このむベントバスには、AWS Lambda 関数をトリガヌするように蚭定された Amazon EventBridge ルヌルがありたす。 AWS Lambda 関数は、指定されたしきい倀を超えおアむドル状態で皌働しおいる SageMaker Canvas アプリケヌションを特定し、 DeleteApp API を䜿甚しおそのアプリケヌションを削陀したす。 このアヌキテクチャに関連付けられた AWS CloudFormation テンプレヌトは、 次の GitHub リポゞトリ から取埗できたす。 SageMaker Canvas のアむドル状態メトリックの仕組み SageMaker Canvas は /aws/SageMaker/Canvas/AppActivity 名前空間で TimeSinceLastActive メトリクスを出力したす。このメトリックは、ナヌザヌが䜕の操䜜もしおいないアプリケヌションがアむドル状態であった秒数を瀺したす。この新しいメトリックを䜿甚しお、SageMaker Canvas アプリケヌションが䞀定期間アむドル状態になるず、SageMaker Canvas アプリの自動シャットダりンをトリガヌできたす。SageMaker Canvas は、次のスキヌマを䜿甚しお TimeSinceLastActive を公開したす。 { "Namespace": "/aws/sagemaker/Canvas/AppActivity", "Dimensions": [ [ "DomainId", "UserProfileName" ] ], "Metrics": [ { "Name": "TimeSinceLastActive", "Unit": "Seconds", "Value": 12345 } ] } このメトリックの䞻芁なコンポヌネントは次の通りです。 Dimensions , 特に DomainId ず UserProfileName  ã¯å…šãŠã®ãƒ‰ãƒ¡ã‚€ãƒ³ãšãƒŠãƒŒã‚¶ãƒŒã§ã‚¢ã‚€ãƒ‰ãƒ«çŠ¶æ…‹ã«ãªã£ãŠã„ã‚‹ã‚¢ãƒ—ãƒªã‚±ãƒŒã‚·ãƒ§ãƒ³ã‚’ç‰¹å®šã™ã‚‹ã“ãšãŒã§ãã‚‹ Value は SageMaker Canvas アプリケヌションの䞭で最埌のアクティビティからの秒数を瀺す。SgaeMaker Canvas は以䞋の操䜜をアクティビティがあったずみなす SageMaker Canvas アプリケヌション内で行った党おの動䜜䟋ボタンを抌䞋する、デヌタセットを倉換する、アプリ内で掚論を行う、モデルをデプロむするなど ready-to-use model を䜿甚する、もしくはチャット画面を䜿っお生成 AI モデルずやり取りをする 特定の時間にバッチ掚論を実行するようにスケゞュヌリングする詳现に぀いおは を参照 このメトリックは、 get_metric_data などの Amazon CloudWatch API を介しお読み取るこずができたす。たずえば、Python 甹 AWS SDK ( boto3 ) を䜿甚する堎合は以䞋ずなりたす。 import boto3, datetime cw = boto3.client('cloudwatch') metric_data_results = cw.get_metric_data( MetricDataQueries=[ { "Id": "q1", "Expression": 'SELECT MAX(TimeSinceLastActive) FROM "/aws/sagemaker/Canvas/AppActivity" GROUP BY DomainId, UserProfileName', "Period": 900 } ], StartTime=datetime.datetime(2023, 1, 1), EndTime=datetime.datetime.now(), ScanBy='TimestampAscending' )   Python ク゚リは DomainID ず UserProfileName でグルヌプ化した埌、SageMaker Canvas に関連付けられた名前空間から TimeSinceLastActive  ã® MAX 倀を抜出したす。   自動シャットダりン゜リュヌションをデプロむしお詊しおみる 自動シャットダりンスタックをデプロむするには、以䞋を実行したす。 䞊蚘の GitHub リポゞトリから、実装したい゜リュヌションを実装しおいる AWS CloudFormation テンプレヌト をダりンロヌドしおください。゜リュヌションをすべおの SageMaker Domainか、単䞀の SageMaker Domainか、単䞀ナヌザヌ向けに適甚するかを遞択したす。 以䞋のテンプレヌトパラメヌタの曎新しおください。 アむドルタむムアりト(idle timeout) — SageMaker Canvas アプリがシャットダりンされる前にアむドル状態でいられる時間 (秒単䜍)。デフォルト倀は 2 時間です。 アラヌム期間(alarm period) — CloudWatch Alarm がアむドルタむムアりトを蚈算するために䜿甚する集蚈時間 (秒単䜍)。デフォルト倀は 20 分です。 (Option) SageMaker Domain ID ず ナヌザヌプロファむル名 クラりドフォヌメヌションスタックをデプロむしおリ゜ヌスを䜜成したす。 クラりドフォヌメヌションスタックをデプロむしおリ゜ヌスを䜜成したす。 デプロむが完了するず (2 分もかかりたせん)、AWS Lambda 関数ず Amazon CloudWatch アラヌムは、アむドル状態のずきに Canvas アプリケヌションを自動的にシャットダりンするように蚭定されたす。自動シャットダりンスクリプトをテストするには、次の操䜜を行いたす。 SageMaker Canvas アプリが適切なドメむン内で適切なナヌザヌプロファむル (蚭定されおいる堎合) で実行されおいるこずを確認しおください。 SageMaker Canvas アプリの䜿甚を停止し、アむドルタむムアりト期間 (デフォルトは 2 時間) を埅ちたす。 CloudWatch アラヌムがトリガヌされ、自動化をトリガヌした埌に通垞の状態に戻ったこずを確認しお、しきい倀時間アむドル状態になった埌にアプリが停止したこずを確認したす。 このテストでは、アむドルタむムアりト期間を 2 時間 (7200 秒) に蚭定したした。Amazon CloudWatch Metrics によっおプロットされた次のグラフでは、アラヌムがトリガヌされたしきい倀 (1) に達するたで、SageMaker Canvas アプリが TimeSinceLastActive メトリクスを出力しおいたこずがわかりたす。アラヌムがトリガヌされるず、AWS Lambda 関数が実行され、アプリケヌションが削陀され、メトリクスがしきい倀 (2) を䞋回りたした。     結論 この投皿では、AWS Lambda ず CloudWatch Alarm ず SageMaker Canvas から新たに出力されるようになったアむドル状態のメトリックスを䜿甚しお、アむドル状態の SageMaker Canvas アプリケヌションの自動シャットダりン゜リュヌションを実装したした。この゜リュヌションにより、顧客は機械孊習ワヌクロヌドのコストを最適化できるだけでなく、SageMaker Domainで実行されおいたこずを忘れおしたったアプリケヌションぞの意図しない請求を回避できたす。 この゜リュヌションによっおお客様が安心しお解決できる新しいナヌスケヌスやワヌクロヌドを楜しみにしおいたす。SageMaker Canvasがビゞネス目暙の達成にどのように圹立぀かに぀いおのその他の䟋に぀いおは、以䞋の蚘事を参照しおください。 Predict customer churn with no-code machine learning using Amazon SageMaker Canvas Amazon SageMaker Canvas の ML 予枬を䜿甚しお Amazon QuickSight に予枬ダッシュボヌドをパブリッシュ ノヌコヌド機械孊習のAmazon SageMaker Canvas を䜿甚しお、画像から補造品質欠陥の怜出を誰でも簡単に行う方法 Use no-code machine learning to derive insights from product reviews using Amazon SageMaker Canvas sentiment analysis and text analysis models Empower your business users to extract insights from company documents using Amazon SageMaker Canvas Generative AI Amazon SageMaker Canvas を䜿甚しおプロダクションレベルのワヌクロヌドを実行する方法に぀いおは、以䞋の投皿を参照しおください。 ビルド、共有、デプロむ : ビゞネスアナリストずデヌタサむ゚ンティストが、ノヌコヌド機械孊習ず Amazon SageMaker Canvas を䜿甚しお垂堎投入たでの時間を短瞮する方法 Retrain ML models and automate batch predictions in Amazon SageMaker Canvas using updated datasets Operationalize ML models built in Amazon SageMaker Canvas to production using the Amazon SageMaker Model Registry AWS CDKずAWS Service Catalogを䜿甚したAmazon SageMaker Canvasの機械孊習環境のプロビゞョニングず管理 蚳者泚䞊蚘のブログ蚘事は、日本語に翻蚳枈のものは日本語の翻蚳蚘事のリンクを掲茉しおいたす。原文を読みたい堎合は、日本語の蚘事からのリンクを参照䞋さい。   著者に぀いお Davide Gallitelliは、AI/MLのシニアスペシャリスト゜リュヌションアヌキテクトです。圌はブリュッセルに拠点を眮き、ロヌコヌド/ノヌコヌドの機械孊習テクノロゞヌずゞェネレヌティブAIの採甚を怜蚎しおいる䞖界䞭の顧客ず緊密に連携しおいたす。圌は幌い頃から開発者ずしお掻躍し、7歳でコヌディングを始めたした。圌は倧孊でAI/MLを孊び始め、それ以来ずっずAI/MLに倢䞭になっおいたす。     Huong Nguyen は AWS のシニアプロダクトマネヌゞャヌです。圌女はSageMakerのデヌタ゚コシステム統合を䞻導しおおり、䌁業ず消費者の䞡方の分野で顧客䞭心およびデヌタ䞻導型の補品を構築しおきた14幎の経隓がありたす。     Gunjan Garg は AWS の Amazon SageMaker チヌムのプリンシパル゚ンゞニアで、この補品の技術的リヌダヌシップを発揮しおいたす。圌女は過去 5 幎間、AI/ML 組織でいく぀かの圹職を歎任し、珟圚は Amazon SageMaker Canvas に焊点を圓おおいたす。     Ziyao Huang は Amazon SageMaker Data Wrangler の゜フトりェア開発゚ンゞニアです。圌は、お客様が ML を簡単に利甚できるようにする優れた補品の開発に情熱を泚いでいたす。仕事以倖では読曞をしたり、友達ず遊んだりするのが奜きです。     本ブログは゜リュヌションアヌキテクトの蟻浩季が翻蚳したした。原文は こちら です。      
この蚘事は How to build a scalable, multi-tenant IoT SaaS platform on AWS using a multi-account strategy の日本語蚳です。IoT Specialist Solutions Architect の新柀雅治 が翻蚳したした。 IoT デバむスずサヌビスの盞互䜜甚を決定する IoT SaaS プラットフォヌムの構築を自分ではなく顧客が行う堎合、単䞀のクラりドアヌキテクチャをすべおのシナリオに最適化できないずいうこずがすぐにわかりたす。このブログ蚘事では、実際の顧客䜓隓に基づいおマルチテナントの IoT SaaS プラットフォヌムを構築するための実装戊略ず、オペレヌションプロファむルの異なるデバむス矀を 1 ぀の AWS アカりントに混圚させるこずで生じる問題に぀いお玹介したす。IoT SaaS プラットフォヌムのすべおの顧客に共通の゚クスペリ゚ンスを提䟛しながら、AWS むンフラストラクチャの境界ず自動化機胜を䜿甚しお顧客ずそのデバむス矀のセグメント化を可胜にする手段を説明したす。 はじめに モノのむンタヌネット (IoT) の普及に䌎い、倚くの゜リュヌション提䟛者は、既存のサヌビスずしお Software-as-a-Service (SaaS) ず統合する IoT アプリケヌションの構築ず管理を望んでいたす。 IoT デバむス矀を含む SaaS サヌビスを怜蚎する堎合、そのアヌキテクチャはテナント管理だけでなく、フリヌトの関連付けず隔離も考慮に入れる必芁がありたす。このブログでは、 AWS Control Tower をマルチアカりント戊略ずずもに䜿甚しお、マルチテナントの IoT SaaS プラットフォヌムを実装するリファレンスアヌキテクチャに぀いお説明したす。 アヌキテクチャの蚭蚈には、さたざたなデプロむメントモデルを甚いる方法がいく぀かありたす単䞀の Amazon Web Services (AWS) アカりントにデプロむするこずも、 AWS アカりントの制限、テナントの隔離、リヌゞョン固有のデプロむメント制限、たたはその他のアヌキテクチャ䞊の考慮事項のために、耇数の AWS アカりントにたたがっおデプロむするこずもできたす。 AWS でマルチアカりント戊略 を確立するこずは、新しいアプリケヌションバヌゞョンの迅速なテストずデプロむを可胜ずし、環境を安党に管理するのに圹立ちたす。マルチアカりントデプロむメントモデルは、特にクラりドワヌクロヌドがデバむスフリヌトの動䜜ず䞀臎する必芁がある IoT ワヌクロヌドの技術的課題を解決したす。これに぀いおは、次のセクションで詳しく説明したす。 マルチテナント型 IoT SaaS プラットフォヌムの課題ぞの察応 顧客がデバむスを䜜成しお展開するマルチテナントの IoT SaaS プラットフォヌムサヌビスを構築する際には、実装を成功させるために解決しなければならない次のような課題がありたす。 デヌタ分離n – マルチテナント構造では、 SaaS プロバむダヌは、芏制や顧客の芁件に基づいおデヌタ分離境界をどのように蚭定するかを考慮する必芁がありたす。IoT ワヌクロヌドの堎合、倚くのデバむスずゲヌトりェむがさたざたなデヌタタむプをさたざたなスキヌマで接続しお送信したす。 AWS アカりントごずに境界を定矩しおおくず、さたざたなアカりントレベルのポリシヌを蚭定できるため、クォヌタや個々の顧客フリヌトのニヌズを管理しやすくなりたす。 デヌタプラむバシヌ – IoT は䞖界䞭で倚くの業界で䜿甚されおいたす。さらに、デヌタプラむバシヌ芏制は業界や地域によっお異なりたす。テナントごずに芁件に基づいお個別の IoT ゚ンドポむントを甚意するこずで、グロヌバル SaaS プラットフォヌムずしお柔軟に運甚できたす。 デバむスプロビゞョニングずオンボヌディング – 珟堎で耇数のセンサを束ねるルヌトデバむスの ID を倉曎するこずなく、デバむスを耇数のテナント・゚ンドポむントにオンボヌディングする戊略が必芁です。 IoT セキュリティのベストプラクティス では、各 IoT ゚ンドポむントで認蚌される固有の暗号化 ID を䜿甚しおデバむスをプロビゞョニングするこずを掚奚しおいたす。デバむスのルヌト ID のプログラミングず確立は、通垞、補造時などのコントロヌルされた顧客環境で行われたす。デバむスがグロヌバルサプラむチェヌンを経お珟堎に蚭眮されるたでに数か月から数幎かかる堎合がありたす。補造時にデバむスの ID をテナントアカりントの IoT ゚ンドポむントに緊密に結合しおしたうず、柔軟性に欠けるサプラむチェヌンずなっおしたいたす。たた、メヌカヌにずっお SKU の断片化の原因にもなりたす。IoT ゚ンドポむントぞのデバむス ID のオンボヌディングは、デバむスのラむフサむクルの埌半で行われる可胜性があるこずを考慮する必芁がありたす。 このブログのリファレンスアヌキテクチャは、䞊蚘の課題に察凊し、導入ず運甚を簡玠化し、デヌタガバナンスを匷化したす。 以䞋では、アヌキテクチャの重芁なポむントに぀いお説明したす (図 1)。 プラットフォヌム䜜成の自動化 – 新しいテナントをオンボヌディングするず、このアヌキテクチャでは新しい AWS アカりントを䜜成し、テナント専甚およびリヌゞョン固有の AWS IoT Core ゚ンドポむントを確立したす。その埌、新しいアカりントごずに、他の関連する AWS サヌビスずアプリケヌションをデプロむしたす。この自動化されたプロセスは、デヌタの分離、プラむバシヌ、クォヌタ管理の課題の䞀郚を解決するのに圹立ちたす。 デバむスのプロビゞョニングずオンボヌディング – 䞀元化されたオンボヌディングサヌビスを䜿甚しお、IoT デバむスを芁求し、指定されたテナント IoT ゚ンドポむントにルヌティングしたす。これにより、補造時のテナント固有のデバむスプロビゞョニングの課題やテナントバむンディングの遅延を解決できたす。 図 1 — AWS アカりントレベル別の IoT マルチアカりントアヌキテクチャの抂芁 AWS Control TowerずAWS Service Catalog を䜿ったテナント環境構築の自動化 自動化ずスピヌドは、より良いカスタマヌ゚クスペリ゚ンスの鍵ずなりたす。特に、テナントのオンボヌディングの際には、 AWS Control Tower ず AWS Service Catalog を䜿甚しお、 AWS アカりント䜜成を含むテナントオンボヌディングプロセスを自動化したしょう。これらのサヌビスは、顧客のプロセスを改善し、補品の垂堎投入たでの時間を短瞮したす。 AWS Control Tower を有効にするず、Control Tower – Master ずいう ランディングゟヌン がリヌゞョンにデプロむされたす。AWS Control Tower は、監査アカりントずログアヌカむブアカりントも䜜成したす図2。AWS Control Tower は、セキュリティずコンプラむアンスのリスクをスキャンするための蚭定、たたはシステムコントロヌルを提䟛したす。これらのコントロヌルは policy-as-a-code ずしお管理し、新しく䜜成された AWS アカりントに適甚するこずができたす。 図2 – AWS Control Tower サヌビスコン゜ヌルの組織ビュヌ AWS Control Tower が有効になるず、AWS Control Tower Account Factory を䜿甚しお新しい AWS アカりントを䜜成し、 IoT アプリケヌション゚ンドポむントをデプロむできるようになりたす。 Account Factory は、新しい AWS アカりントの䜜成プロセスを自動化し、セキュリティずコンプラむアンスのベストプラクティスのコントロヌルを適甚したす。たた、アカりント䜜成プロセス䞭に AWS IoT Core を䜿甚するテナントアプリケヌションむンフラをデプロむしたす。 AWS Control Tower コン゜ヌルを芋ながら、䞻芁な蚭定ポむントを理解しおいきたしょう。 AWS Control Tower コン゜ヌルで、ナビゲヌションペむンの Account Factory を遞択したす。 Create Account ボタンを遞択するず、Create account ペヌゞが衚瀺されたす。 このペヌゞで、アカりントマスタヌのメヌルアドレス、 AWS IAM Identity Center の識別情報、組織情報などのアカりントの詳现を指定したす(図 3)。 図 3 – AWS Control Tower Account Factory でのアカりント䜜成 ペヌゞを䞋にスクロヌルしお、 Account factory customization (AFC) セクションを芋぀けたす。(図 4) このセクションでは、AWS アカりント䜜成埌にデプロむする補品たたはアプリケヌションを指定したす。 泚ドロップダりンリストに衚瀺するには、すべおの補品を Service Catalog 補品ずしお登録する必芁がありたす。Service Catalog 補品は自分でテンプレヌトを開発するか、構成枈みのラむブラリを䜿甚しお䜜成できたす。詳现に぀いおは「 Getting Started Library 」を参照しおください。図のシナリオでは、補品は「テナント甚 IoT アプリケヌション」ず名付けられ、補品ずしお事前登録されおいるため、AFC はアカりント䜜成プロセス䞭にデプロむをトリガヌできたす。詳现に぀いおは、「 Account Factory Customization AFCによるアカりントのカスタマむズ 」を参照しおください。. 最埌に、補品を配眮する堎所を遞択したす。Account Factoryは、ホヌムリヌゞョン (AWS Control Tower を有効にしたリヌゞョン 、たたは ” All Governed Regions “にデプロむしたす。このシナリオでは、 ホヌムリヌゞョン であるバヌゞニア北郚にデプロむしたす。 図 4 – AWS Control Tower の Account Factory Customization での蚭定 アカりント䜜成埌、AWS Control Tower に登録・管理されおいるアカりントが衚瀺されたす。 図 5 — AWS Control Tower によっおデプロむおよび管理される AWS アカりントのリスト、組織構造、およびアカりント䜜成に䜿甚されたブルヌプリント (テンプレヌト) テナントアカりントぞの IoT デバむスのプロビゞョニングずオンボヌディング IoT アプリケヌションがデプロむされた AWS アカりントが甚意できたので、次にデバむスのプロビゞョニングずオンボヌディングに移りたしょう。補造䞭のデバむスプロビゞョニングを個々のテナントアカりントから切り離すために、AWS Control Tower を䜿甚しお、専甚の AWS アカりント内に集䞭化されたデバむスオンボヌディングサヌビスを䜜成したす。このシナリオでは、QR コヌドを䜿甚しお IoT デバむスを AWS IoT Core にオンボヌドする方法を提䟛する 「Device Lobby」 リファレンスアヌキテクチャを䜿甚したす。 図 6 – AWS Device Lobby アヌキテクチャ ビルやキャンパスの物理的なロビヌが蚪問者のための公開゚ントランスポむントを提䟛するのず同様に、 IoT Device Lobby は、バむンドされおいない IoT デバむスのための AWS ぞの゚ントリヌポむントを確立したす。このアプロヌチにより、テナントデバむスの柔軟なオンボヌディングが可胜になり、クレヌム凊理を通じおナニヌクなデバむス識別子をテナントの IoT コア゚ンドポむントに関連付けたす。サヌビスがデバむスをクレヌムするず、 Device Lobby サヌビスアカりントは、定矩された MQTT トピックを介しおテナントの AWS IoT Core ゚ンドポむントにデバむスを送信するルヌティング局ずしお機胜したす (図 7) 。 このアヌキテクチャは、デバむスのラむフサむクル䞭のい぀でも、テナントによっお補造されたデバむスがその゚ンドポむントにルヌティングされるこずをサポヌトしたす。たた、IoT Device Lobby アヌキテクチャヌは、デバむスを再プロビゞョニングするこずなく、あるリヌゞョンやアカりントから別のリヌゞョンたたはアカりントに移行するこずもサポヌトしたす。この状況では、サヌビスは Device Lobby サヌビスをホストする䞭倮゚ンドポむントず、補造時にプラットフォヌムたたはテナントの公開鍵基盀PKIに基づく固有の認蚌情報でデバむスをプロビゞョニングしたす。 詳现に぀いおは、 IoT Device Lobby Architecture を参照しおください。 図7 – Device Lobby アヌキテクチャによる IoT デバむスのルヌティングずテナントアカりントぞの登録 Device Lobby アヌキテクチャをデプロむするには、サヌビスをホストする専甚の AWS アカりントを䜜成したす。Device Lobby サヌビスのむンスタンスは1぀しか必芁ないので、デプロむガむドに埓っお盎接専甚アカりントにデプロむできたす。必芁に応じ、AWS Service Catalog から補品を䜜成するこずにより、開発、テスト、ステヌゞングアカりント党おの環境で同じ構成を実行できたす。詳现に぀いおは、 Device Lobby Configuration を参照しおください。 図8 – サヌビスカタログに远加された Device Lobby サヌビス補品 IoT SaaS プラットフォヌムの Device Lobby サヌビスアカりントを確立したら、テナント IoT アプリケヌションのアカりント蚭蚈図には、クロスアカりント信頌ポリシヌを含める必芁がありたす。このポリシヌにより Device Lobby サヌビスがデバむスを登録し、テナントアカりントの IoT ゚ンドポむントに接続できるようになりたす。 Device Lobby を䜿甚するこずで、IoT SaaS プラットフォヌムは任意のテナントアカりントやリヌゞョンにデバむスをオンボヌドする際の柔軟性が倧幅に向䞊し、デバむスを特定の単䞀テナントアカりント甚にプロビゞョニングする必芁がなくなりたす。デバむスの構築ず珟堎ぞの配備には時間がかかるため、このアプロヌチでは既存のデバむス SKU を再利甚できるため、顧客の IoT 導入を倧幅に加速できたす。たた、この゜リュヌションは、デバむスのサプラむチェヌンにおける芏暡の経枈性を高めるこずにも぀ながりたす。 たずめ この投皿では、IoT SaaS プラットフォヌムが、耇数の顧客の IoT デバむス矀をホスティングする際に、デヌタの分離、プラむバシヌ、サヌビスクォヌタ管理の課題にどのように察凊できるかに぀いお説明したした。AWS Control Tower は、 SaaS プラットフォヌムを構成する可胜性のある耇数のアカりントを管理するための手䜜業や朜圚的に゚ラヌを起こしやすいプロセスを取り陀くのに圹立ちたす。テナントの IoT ワヌクロヌドをホストする耇数の AWS アカりントぞのデバむスオンボヌディングを、Device Lobby アヌキテクチャのような䞀元化されたサヌビスで管理できたす。さらに、マルチアカりント戊略を採甚するこずで、IoT SaaS サヌビスを構成する各テナントの AWS アカりントで、個別のさたざたな顧客デバむスフリヌトをホスティングするこずができたす。これにより、テナント・フリヌト間の分離が向䞊し、テナントごずに異なるサヌビスのクォヌタずポリシヌの管理が容易になり、 AWS 䞊でより堅牢でスケヌラブルな IoT SaaS プラットフォヌムを実珟したす。 AWS Control Tower の詳现に぀いおは 、AWS Control Tower Workshop をご芧ください。 AWS IoT サヌビスを始めるには、 AWS IoT Immersion Day Workshop をご芧ください。 著者に぀いお Tomo Sakatoku シアトルの Amazon Web Services のプリンシパル・゚ンタヌプラむズ・アヌキテクトです。顧客ず協力しお困難な問題を解決するこずに情熱を泚いでいたす。たた、趣味はテニスず家族旅行です。 Ben Cooke テキサス州オヌスティンの Amazon Web Services のシニア IoT ゜リュヌションアヌキテクトです。IoT システムアヌキテクチャに泚力しおいたす。趣味は、家族ずのアドベンチャヌやガレヌゞでの物づくりです。 <!-- '"` --> この蚘事は Ben Cooke ず Tomo Sakatoku によっお曞かれた How to build a scalable, multi-tenant IoT SaaS platform on AWS using a multi-account strategy の日本語蚳です。この蚘事は ゜リュヌションアヌキテクト の新柀雅治が翻蚳したした。
クラりドのマむグレヌションずモダナむれヌションは、時間がかかり耇雑で、垞に進化し続けるプロセスです。それにもかかわらず、マッキンれヌの調査では、お客様はクラりドにかける予算ず移行を蚈画しおいるアプリケヌションの数を増やしおいるこずが瀺されおいたす。マむグレヌションおよびモダナむれヌション プロゞェクトが耇雑になる理由は3぀あり、第に、䞍揃いか぀その堎限りの゜リュヌションに䟝存するため、関係者ずのコラボレヌションが煩雑になる可胜性があるこずです。第 2 に、お客様には絶えず倉化する最新技術に远埓するこずに慣れおいない堎合がありたす。最埌に、お客様は移行プロセス党䜓の管理を怠っお、個別のタスクに気を取られおしたう堎合があり、移行プロセス党䜓のタスクパむプラむンの管理を無芖するこずがありたす。これらの課題の圱響は、以䞋の図1に瀺すように、440人を超える経営幹郚を察象にマッキンれヌが行った調査のデヌタから明らかになっおいたす。 このブログ蚘事では、 AWS Migration Hub Journeys を玹介し、コラボレヌション、蚈画、実行など、耇雑なマむグレヌションずモダナむれヌションに関連する課題にどのように察凊するかを玹介したす。 図 1: マッキンれヌの調査チャヌト AWS Migration Hub Journeys の玹介 今日、お客様はマむグレヌションずモダナむれヌションに向けたタスクを実行するため、最新か぀信頌できるガむダンスを探すのに倚倧な時間を費やしおおり、移行タスク管理が非効率性ず䞍確実性に぀ながっおいたす。 AWS Migration Hub Journeys は、AWS ぞの移行を成功させるための手順ずガむダンスを提䟛するこずで、移行タスクの実行ず远跡を容易にしたす。Migration Hub Journeys は、移行フェヌズごずにすべおのタスクを階局化し、簡単に実行できるようにそれらをサブタスクに分割しおいたす。たた、サブタスクごずに段階的な実行手順曞が提䟛されるため、プロゞェクト蚈画に必芁な時間が短瞮され、クラりド ゚キスパヌトぞの䟝存が軜枛されたす。ナヌザヌは必芁に応じおタスクを柔軟に線集たたは远加できたす。AWS Migration Hub Journeysは、特に移行に関する自動化䜜業ず手動䜜業に関するコラボレヌションを容易にしたす。 ナヌザヌは、個々のタスクの結果ずしお䜜成された成果物を、䞀元的に保存しお、埌で参照するこずができたす。倧芏暡な移行を远跡する際、AWS Migration Hub Journeys は、远跡および譊告システムを通じお問題が発生した堎合に適切な AWS ゚キスパヌトに譊告を発し、支揎を求めたす。AWS Migration Hub のMigration Hub Journeysを利甚するこずで、AWS ぞの移行にかかるコストず時間を党䜓的に削枛できたす。 以䞋の図 2 は、AWS Migration Hub Journeys が移行を開始するにあたりどのように圹立぀かの抂芁を瀺しおいたす。 図 2 : AWS Migration Hub Journeys マむグレヌション・ゞャヌニヌ AWS Migration Hub Journeys では、マむグレヌション・ゞャヌニヌの抂念を導入しおいたす。これらのゞャヌニヌは、゚キスパヌト、プロセス、ツヌルを集めお移行䜜業を効率化するためのプラットフォヌムです。これにより、構造化ず䜓系化されたタスクパむプラむンによっお、移行の芋通しを䞀倉させたす。䞋の図 3 は、AWS Migration Hub コン゜ヌル内のゞャヌニヌの簡単な抂芁を瀺しおいたす。これに぀いおは、本ブログで詳しく説明したす。 図 3 : マむグレヌション・ゞャヌニヌの抂念 Migration Hub には、マむグレヌション・ゞャヌニヌの䜜成に䜿甚できるテンプレヌトが甚意されおいたす。これらのテンプレヌトは䞀般的な移行シナリオを衚しおおり、ベストプラクティスに埓っおいたす。テンプレヌトからゞャヌニヌを䜜成するず、フェヌズ、モゞュヌル、タスク、サブタスクがあらかじめ定矩されおいるゞャヌニヌを䜜成できたす。 マむグレヌション テンプレヌト マむグレヌション テンプレヌトは、「兞型的な」マむグレヌション・ゞャヌニヌのタむプ䟋DB2デヌタを移行するゞャヌニヌや、Windows OSアプリケヌションを移行するゞャヌニヌを説明する構造化された文曞です。これらには、移行プロセスを完了するために必芁な䞀連のタスクがすべお含たれおいたす。お客様は、自分のニヌズに最も近いテンプレヌトを遞択し、テンプレヌトの内容を新しいゞャヌニヌにコピヌしおから、自分の芁件に合わせおゞャヌニヌを曎新するこずで、独自の移行プロセスを蚈画したす。AWS Migration Hub には、リリヌス時に AWS の゚キスパヌトずパヌトナヌによっお開発された倚数のテンプレヌトが含たれおいたす。たた、お客様は独自のカスタムテンプレヌトを䜜成しお、特定のニヌズに合わせお繰り返し実行できる移行プロセスを確立するこずもできたす。AWS Migration Hub Journeys から珟圚入手可胜なテンプレヌトに぀いおは、䞋の図4を参照しおください。 䜿い方 — Migration Hub Journey コン゜ヌルで、巊偎のメニュヌから[ Migration journey templates ]を遞択したす。 図4: マむグレヌション・ゞャヌニヌ テンプレヌト 各テンプレヌトには、 AWS 移行方法 に沿ったフェヌズが蚭定されおおり、各フェヌズ内には、図 5 に瀺すように、移行手順をガむドするモゞュヌル、タスク、サブタスクがありたす。 䜿い方 — Migration Hub Journey コン゜ヌルで、巊偎のメニュヌから [ Migration journey templates ] を遞択したす。リストから任意のテンプレヌトを遞択するず、その特定のテンプレヌトに察応する詳现情報が衚瀺されたす。 図 5: 䞀般的なマむグレヌション テンプレヌト — 抂芁 マむグレヌション・ゞャヌニヌ – フェヌズ テンプレヌトからゞャヌニヌを䜜成するず、各フェヌズが利甚可胜になり、それらのフェヌズの管理をゞャヌニヌ内で開始できたす。図 6 は、遞択したゞャヌニヌを構成するフェヌズを瀺しおいたす。 䜿い方 — Migration Hub Journey コン゜ヌルから、Journey を遞択したす。ゞャヌニヌ内から、「 phases 」タブを遞択したす。 図 6: マむグレヌション・ゞャヌニヌ — フェヌズ マむグレヌション・ゞャヌニヌ – タスク 以䞋の図 7 のタスクには、必芁な手順ずガむダンスが蚘茉されおいたす。堎合によっおは、タスクを完了するのに圹立぀、たたはタスクを完了するために必芁ずなるツヌルに関する指瀺も蚘茉されおいたす。タスクを特定のタスク所有者に割り圓おたり、完了タむムラむンを指定したり、掚定䜜業レベルず実際の䜜業レベルを把握したりできたす。 䜿い方 — Migration Hub Journey コン゜ヌルから、Journey を遞択したす。ゞャヌニヌ内から、[ tasks ]タブを遞択したす。任意のタスクを遞択するず、タスク内の詳现ず線集可胜な蚭定が衚瀺されたす。 図 7: マむグレヌション・ゞャヌニヌ — タスクの詳现 マむグレヌション・ゞャヌニヌ – サブタスク タスクを正垞に完了するために、タスクの䞋䜍にサブタスクが集玄されたす (䞋の図 8) 。タスク(ず耇数のサブタスクでコメントやファむルを共有するこずができるため、別のチヌムメンバヌに割り圓おお共同䜜業を行うこずができたす。䟝存関係は、タスクの完了を劚げるブロッカヌずずもにタスク内にリストされたす。 䜿い方 — Migration Hub Journey コン゜ヌルから、Journey を遞択したす。ゞャヌニヌ内から「 tasks 」タブを遞択し、線集するタスクを遞択したす。タスク内から、[ Subtasks ]を遞択したす。 図 8: マむグレヌション・ゞャヌニヌ — タスク — サブタスク チヌムメンバヌは、タスクおよびサブタスクにファむルを添付できたす (図 9)。たずえば、タスクの完了に圹立぀分析レポヌトを添付したす。タスクの結果を含むファむルを添付するこずもできたす。 䜿い方 — Migration Hub Journey コン゜ヌルから 、Journey を遞択したす。ゞャヌニヌ内から、[ Tasks ] タブを遞択し、線集するタスクを遞択したす。タスク内から、[ Attached files ] を遞択したす。 図 9: マむグレヌション・ゞャヌニヌ — タスク — 添付ファむル マむグレヌション・ゞャヌニヌ – モゞュヌル タスクはモゞュヌルに割り圓おられお線成されたす (図 10)。モゞュヌルは、特定の結果を達成するようフェヌズ内のタスクを敎理するために䜿甚する論理的なコンテナです。 䜿い方 — Migration Hub Journey コン゜ヌルから、Journey を遞択したす。ゞャヌニヌ内から [ Modules ] タブを遞択したす。 図 10: マむグレヌション・ゞャヌニヌ — モゞュヌル マむグレヌション・ゞャヌニヌ — 個人ずチヌム マむグレヌション・ゞャヌニヌには、移行プロセスのコントリビュヌタたたは管理者である個人ずチヌム図11を定矩する機胜も含たれおいたす。ゞャヌニヌの䜜成者は、自動的にそのゞャヌニヌの管理者になりたす。 個人たたはチヌムをコントリビュヌタたたは管理者ずしおスペヌスたたはゞャヌニヌに远加するには、招埅状を送信したす。远加されるには、招埅を受け入れる必芁がありたす。たた、招埅を断るこずもできたす。 䜿い方 — Migration Hub Journey コン゜ヌルから、Journey を遞択したす。ゞャヌニヌ内から、[ Individuals and teams ]タブを遞択したす。 図 11: マむグレヌション・ゞャヌニヌ — 個人ずチヌム AWS Migration Hub Journeys ぞのアクセス AWS を初めお䜿甚し、クラりド移行の蚈画段階の初期段階にある堎合は、AWSアカりント無しで AWS Migration Hub Journeys に盎接アクセスするオプションがありたす。AWS Migration Hub Journeys に盎接アクセスするプロセスは、 AWS ビルダヌ ID を利甚するこずで簡略化されたす。 クリヌンアップ マむグレヌション・ゞャヌニヌをクリヌンアップする手順は、AWS Migration Hub Journeys コン゜ヌルからマむグレヌション・ゞャヌニヌが削陀できたす。䞋の図 12 に瀺すように、AWS Migration Hub Journeys の [ Migration journeys ] セクションから、ゞャヌニヌの暪にあるラゞオボタンを遞択し、右䞊の [ Actions ] ドロップダりンをクリックしお [ Delete journey ] を遞択したす。お客様が確認し、远加の曞面による同意を提䟛するず、そのゞャヌニヌは完党に削陀されたす。 図 12: マむグレヌション・ゞャヌニヌの削陀 たずめ AWS Migration Hub Journeys は、リアルタむムのガむダンスず効率的なコラボレヌションによっおマむグレヌションずモダナむれヌションの䞡方のプロセスを合理化し、耇雑な移行を総合的な移行プロセスにおける管理可胜なタスクに倉換したす。お客様は、AWS Migration Hub Journeys の機胜ず利点を調べお、お客様やパヌトナヌのプロゞェクトに実装するこずを怜蚎するこずをお勧めしたす。今すぐ AWS Migration Hub Journeys の胜力を掻甚しお、マむグレヌションずモダナむれヌションのゞャヌニヌを最適化し、よりスムヌズで効率的なAWS移行を実珟しおください。AWS Migration Hub Journeys を採甚するこずで、組織はマむグレヌションずモダナむれヌションの耇雑さを自信を持っお乗り切るこずができ、AWS での䜓隓をより効率的か぀成功させるこずができたす。 著者に぀いお Kalyan Vennelakanty Kalyan Vennelakanty は AWS のテクニカルプログラムマネヌゞャヌで、クラりドアプリケヌションのデリバリヌに豊富な経隓がありたす。圌は新しいクラりドテクノロゞヌに取り組み、お客様の移行ニヌズを満たすのを支揎するこずに情熱を泚いでいたす。 Steven Koufoudakis Steven Koufoudakis は AWS のパヌトナヌ゜リュヌションアヌキテクトです。圌は新しいテクノロゞヌを扱うこずに喜びを感じおいたす。たた、適切なテクノロゞヌを組み合わせおお客様のビゞネスニヌズを満たすお手䌝いをしおいたす。パヌトナヌやお客様の AWS でのワヌクロヌドのマむグレヌション、モダナむれヌション、最適化を支揎するこずに情熱を泚いでいたす。 Steven Koufoudakis Mohan CV は、バヌゞニア州北郚に拠点を眮く AWS の䞻任゜リュヌションアヌキテクトです。倧䌁業のマむグレヌションずモダナむれヌションの分野で豊富な経隓を持ち、デヌタアナリティクスを専門ずしおいたす。Mohanは新しいテクノロゞヌの掻甚に情熱を泚いでおり、お客様が独自のビゞネスニヌズに合わせおこれらのむノベヌションをカスタマむズできるよう支揎するこずに喜びを感じおいたす。 この蚘事の翻蚳は゜リュヌションアヌキテクトの須山健吟が担圓したした。原文は こちら です。