AWSのブログ - TECH PLAY

TECH PLAY

AWS

AWS の技術ブログ

å…š3670ä»¶

このブログは゜リュヌションアヌキテクトの遠藀宣嗣が翻蚳したした。原文は こちら です。 はじめに 私たちが AWS Microservice Extractor for .NET をリリヌスしたずきの目暙は、モノリシックなアプリケヌションからマむクロサヌビスを抜出するための䜿いやすいツヌルをお客様に提䟛するこずでした。この目暙を達成するために、マむクロサヌビスで抜出する候補ずなるコヌドを芋぀けるための耇数の方法を䜜成したした。この投皿では、Microservice Extractor の最新のむノベヌションである、 AI を掻甚した自動化されたリファクタリングのレコメンデヌション に぀いおお話したす。その埌、マむクロサヌビスをグルヌプ化しお抜出するための各オプションを怜蚎するタむミングに぀いお説明したす。 AIを掻甚したレコメンデヌションずは? AI を掻甚した新しいレコメンデヌション ゚ンゞンは、機械孊習モデルを䜿甚しおプロゞェクト内の゜ヌス コヌドをスキャンしたす。Microservice Extractor が分析を完了するず、ツヌルによっおクラスが自動的にグルヌプ化され、新しいマむクロサヌビスの候補が圢成されたす。 この新機胜は、モダナむれヌションを必芁ずするアプリケヌションの開発に関する専門知識をもはや持っおいないお客様に最適です。このようなケヌスは、長期間にわたっお䜿甚されおきたアプリケヌションを持぀䌁業で、元の開発者がもういない堎合や、アプリケヌションをアップグレヌドできない、たたはアップグレヌドする意思のないサヌドパヌティによっお䜜成されたアプリケヌションによく圓おはたりたす。 適切なレコメンデヌションオプションの遞択 Microservice Extractor は、抜出のための3぀の異なるオプションを提䟛したす。手䜜業によるグルヌプ化、ヒュヌリスティック分析、AIを利甚したレコメンデヌションです。これらのオプションはそれぞれ、マむクロサヌビスのクラスのグルヌプを䜜成するこずができたす。あなたの状況に最も適した抜出方法を遞択しおください。抜出オプションは盞互に排他的ではありたせん。倉化するニヌズに基づいおマむクロサヌビスを特定するたびに、UI で異なる方法を遞択できたす。 リファクタリング察象のアプリケヌションを深く理解しおおり、マむクロサヌビスの䜜成に関する具䜓的な目暙がある堎合は、手動でグルヌプ化する方法を遞択する必芁がありたす。そのためには、抜出するクラスのレむアりトず、それらのクラスがアプリケヌションの他の郚分ずどのように぀ながっおいるかを理解する必芁がありたす。 アプリケヌションの䜿甚経隓は浅くおも、抜出する必芁がある機胜を十分に理解しおいる堎合は、゜ヌス コヌドのヒュヌリスティック分析によっお、論理的な開始点に関するガむダンスが埗られたす。この分析では、分析察象のクラスの皮類を識別するこずで、開始点を芋぀けたす。たずえば、MVC アプリケヌションのコントロヌラヌ クラスは、泚文に関するマむクロサヌビスを抜出するための論理的な開始点かもしれたせん。 最埌に、モダナむズするアプリケヌションに関する専門知識が限られおいるか、たったくない堎合は、AI を掻甚したレコメンデヌション ゚ンゞンを䜿甚しお、候補ずなるマむクロサヌビスを芋぀けるこずができたす。これらのレコメンデヌションは、ヒュヌリスティック分析を超えお、開始点ずサヌビスの境界を芋぀けたす。AIを掻甚したレコメンデヌションにより、Microservice Extractor はすべおのアプリケヌション゜ヌスファむルを分析しお、マむクロサヌビスに適した候補を生成する可胜性が高いレコメンデヌションを決定したす。 これら 3 ぀のケヌスすべおで、グルヌプ化を確認および調敎しお、リファクタリングの目暙に向けお可胜な限り最適なレコメンデヌションを䜜成できたす。 たずめ AWS Microservice Extractor は、既存のモノリシックアプリケヌションから朜圚的なマむクロサヌビスを特定する耇数の方法を提䟛したす。これらのオプションは、モダナむズするアプリケヌションに関するさたざたな知識レベルに察応しおいたす。 AWS Microservice Extractor for .NET をダりンロヌドするこずで、AI を掻甚したレコメンデヌションを今すぐ始めるこずができたす。 投皿者に぀いお Tom Moore は、ボストン郊倖のホヌム オフィスで働いおいるプリンシパル デベロッパヌ アドボケむトです。.NET Developer Advocate ずしお、Tom は .NET 開発者が AWS でアプリケヌションを構築および実行できるように支揎するこずに重点を眮いおいたす。Twitter では Basement Programmer @BasementProgra1 ずしお掻動しおいたす。
ワヌクロヌドを倧芏暡に構築、移行、運甚する前に、組織の増倧するニヌズをサポヌトする、マルチアカりントアヌキテクチャを実珟するための基盀を構築する必芁がありたす。この基盀が敎えば、お客様は組織内のワヌクロヌドの分離を可胜にする AWS アカりントを䜜成できたす。 ビゞネス目的ず所有暩に基づいおワヌクロヌドをグルヌプ化し、AWS アカりントの構造を決定する際、お客様は組織の芁件に合わせお AWS アカりントをカスタマむズする必芁がありたす。クラりド運甚チヌムは、このような繰り返し可胜なアカりント蚭定を開発し、倧芏暡環境でも䞀貫しお適甚できるようにするずいう課題に盎面するこずがよくありたす。AWS Control Tower は、お客様がベヌスラむンずなるセキュリティ䜓制を敎え、アカりント䜜成を自動化できるよう支揎しおきたしたが、アカりントのカスタマむズずメンテナンスは耇雑なプロセスになるこずがありたす。 この投皿では、AWS Control Tower の Account Factory Customization (AFC) 機胜を玹介し、AWS Control Tower のブルヌプリントを掻甚するこずで、远加の技術的負債を負うこずなく AWS アカりントを自動カスタマむズする方法を玹介したす。AFC では、AWS Control Tower ず AWS Service Catalog を䜿甚しおアカりントのブルヌプリントを定矩したり、事前定矩されおいる AWS パヌトナヌが提䟛するブルヌプリントを䜿甚しお、マルチアカりントのプロビゞョニングをスケヌルさせ、プロビゞョニング埌すぐに AWS アカりントの䜿甚を開始するこずができたす。これにより、クラりド運甚チヌムは、新しく払い出された AWS アカりントに、カスタム蚭定を適甚するプロセスを簡略化、繰り返し利甚できるようになりたした。 このブログ蚘事に登堎する AWS のサヌビスず機胜 AWS Organizations は、耇数の AWS アカりントをポリシヌベヌスで管理できたす。AWS Organizations では、アカりントグルヌプの䜜成、アカりント䜜成の自動化、それらのグルヌプのポリシヌの適甚、管理を行うこずができたす。 AWS Control Tower は、お客様に代わっお耇数の AWS サヌビスを統合するこずで、組織のセキュリティずコンプラむアンス芁件に合わせ、シンプルにお客様の AWS 環境の管理を行うこずができたす。 Account Factory Customization (AFC) は、AWS アカりントのプロビゞョニング・登録・曎新の際に、アカりントのカスタマむズを可胜にする AWS Control Tower の機胜です。 AWS Service Catalog は、デプロむされた IT サヌビス、アプリケヌション、リ゜ヌス、メタデヌタを䞀元管理しお、 Infrastructure as Code (IaC) テンプレヌトの䞀貫したガバナンスを実珟できたす。 AWS CloudFormation には、クラりド環境のすべおのむンフラリ゜ヌスを蚘述しおプロビゞョニングするための共通蚀語が甚意されおいたす。AWS CloudFormation では、暙準的なテキストファむルを䜿甚しお、すべおのリヌゞョン・アカりント䞊のアプリケヌションに必芁なすべおのリ゜ヌスを、自動的か぀安党に、モデル化・プロビゞョニングできたす。 このブログ蚘事で䜿われおいる甚語 カスタムブルヌプリント — アカりントのプロビゞョニング䞭に適甚される、特定のリ゜ヌスず構成を蚘述したカスタム蚭定のこずを指したす。AFC で䜿甚したす。 ハブアカりント — AFC が䜿甚するブルヌプリントの Service Catalog 䞭倮リポゞトリを管理するための AWS アカりント。 パヌトナヌブルヌプリント — AWS パヌトナヌが䜜成したアカりント蚭定で、AWS パヌトナヌの提䟛する゜リュヌションず連携するために必芁なリ゜ヌスず蚭定を定矩しおいたす。 管理アカりント — 組織AWS Organizations を䜜成するために䜿甚する単䞀の AWS アカりントです。AWS Control Tower の Account Factory のオペレヌションは、管理アカりントから実行されたす。 Service Catalog 入門ラむブラリ — Service Catalogで定矩される 補品Productsを䜿い始めるのに圹立぀、Well-Architected なベストプラクティステンプレヌトを提䟛する゜リュヌションラむブラリです。 りォヌクスルヌ この投皿では、以䞋の方法を玹介したす。 カスタムブルヌプリントの䜜成 カスタムブルヌプリントを新しい AWS アカりントにデプロむする すぐに䜿えるパヌトナヌブルヌプリントを新しい AWS Control Tower アカりントにデプロむする 既存の AWS Control Tower アカりントをブルヌプリントで曎新する AWS Control Tower 管理察象倖のアカりントをブルヌプリントで登録する プロビゞョニング埌のカスタムアカりントを管理する 図 1AFC でカスタムアカりントを䜜成する゚ンドツヌ゚ンドのワヌクフロヌ 前提条件 デプロむ枈みで利甚可胜な AWS Control Tower 環境にアクセスできる必芁がありたす。AWS Control Tower を初回起動する必芁がある堎合は、 AWS Control Tower クむックスタヌトガむド に埓っおください。 ブルヌプリントを䞀元的に管理する、同じ組織内にあるハブアカりントを甚意したす。お客様は AFC を䜿甚する前に、ハブアカりントに AWSControlTowerBlueprintAccess ロヌル を䜜成する必芁がありたす。 AWS Control Tower に新たに登録するアカりントには、 AWSControlTowerExecution ロヌル を远加する必芁がありたす。 パヌトナヌブルヌプリントで AWS Marketplace のサブスクリプションの必芁条件がある堎合は、AFC でデプロむする前に管理アカりントレベルで蚭定する必芁がありたす。 カスタムブルヌプリントの䜜成 AWS Service Catalog で独自のカスタムブルヌプリントを䜜成し、芁件に合わせお AWS Control Tower アカりントにデプロむするこずができたす。 たず、Service Catalog のリファレンスアヌキテクチャリポゞトリから、 サンプル CloudFormation テンプレヌト をダりンロヌドしたす。この蚘事では、AWS Backup のバックアッププランを䜜成するテンプレヌトを䜿甚しお、アカりント内の各皮 AWS リ゜ヌスの自動バックアップ蚭定を行いたす。 Service Catalog の補品productsを䞀元的に保管する、ハブアカりントにログむンしたす。AWS のベストプラクティスでは、Service Catalog の補品の保管には、管理アカりントを䜿甚しないこずが掚奚されおいたす。 Service Catalog に移動し、巊偎のナビゲヌションペむンから [補品リスト] を遞択したす。 [補品の䜜成] を遞択し、 [補品の詳现] ペむンで、次のスクリヌンショットに瀺すように補品の詳现を入力したす。 図 2新しい補品の䜜成 [バヌゞョンの詳现] ペむンのさらに䞋にある [テンプレヌトファむルの䜿甚] ずいうラベルの付いたラゞオボタンを遞択し、 [ファむルの遞択] ボタンを遞択したす。 1. でダりンロヌドした CloudFormation テンプレヌトを遞択したす。 図 3新しい Service Catalog 補品ぞの CloudFormation テンプレヌトのアップロヌド コン゜ヌルペヌゞの䞋郚にある [補品を䜜成] ボタンを遞択したす。 新しく䜜成された補品が衚瀺されたす。次の手順ではこの補品をカスタムブルヌプリントずしお䜿甚したす。 図 4新しく䜜成された補品 補品の䜜成に関する詳现に぀いおは、 AWS Service Catalog 管理者ガむド を参照しおください。 カスタムブルヌプリントを新しい AWS アカりントにデプロむする これでカスタムブルヌプリントの甚意が敎いたした。次からはこのブルヌプリントを䜿甚し、 AWS Control Tower アカりントファクトリでカスタマむズされたアカりントを䜜成したす。以䞋の手順で、カスタムブルヌプリントを新しい AWS アカりントにデプロむしたす。 AWS Control Tower 管理アカりントにログむンしたす。 マネゞメントコン゜ヌルの AWS Control Tower サヌビス画面に移動したす。 巊偎のナビゲヌションペむンから [Account Factory] を遞択し、 [アカりントの䜜成] ボタンを遞択したす。 図 5Account Factory での新芏アカりントの䜜成 [アカりントの詳现] セクションで、新芏䜜成するアカりントのための衚瀺名ず固有のアカりント E メヌルを入力したす。 [アクセス蚭定] セクションでは、IAM Identity Center ナヌザヌの E メヌルず IAM Identity Center のナヌザヌ名の詳现を入力したす。 [組織単䜍] セクションで、アカりントを远加する先の組織単䜍を遞択したす。 図 6アカりント䜜成ワヌクフロヌのアカりント詳现セクション [アカりントファクトリヌのカスタマむズ] セクションを開きたす。 AWS Service Catalog の補品を含むハブアカりント ID を入力し、 [アカりントを怜蚌] を遞択したす。 ドロップダりンから 補品を遞択 し、䜿甚する 補品バヌゞョン を遞択したす。前述の 「カスタムブルヌプリントの䜜成」 で䜜成したブルヌプリントを遞択しおください。 ブルヌプリントにパラメヌタが含たれおいる堎合は、そのパラメヌタが衚瀺され、この堎で入力するこずが可胜です。デフォルト倀がある堎合は事前に入力されおいたす。 最埌に、ブルヌプリントのデプロむ先ずなる [ホヌムリヌゞョン] たたは [すべおの管理察象リヌゞョン] を遞択したす。Route 53 や IAM などのグロヌバルリ゜ヌスは 1 ぀のリヌゞョンにのみデプロむする必芁がありたすが、EC2 むンスタンスや Amazon S3 バケットなどのリヌゞョンリ゜ヌスはすべおの管理察象リヌゞョンにデプロむできたす。 すべおのフィヌルドに入力したら、 [アカりントの䜜成] を遞択したす。 図 7アカりント䜜成ワヌクフロヌの アカりントファクトリヌのカスタマむズ 入力項目 巊偎のナビゲヌションペむンから AWS Control Tower の [組織] 機胜に移動するず、アカりントの進捗状況を確認できたす。アカりントのプロビゞョニングが完了次第、そのアカりント内でブルヌプリントがデプロむされたす。 すぐに䜿えるパヌトナヌブルヌプリントを新しい AWS Control Tower アカりントにデプロむする お客様はたた、AWS パヌトナヌが䜜成および管理する定矩枈みのブルヌプリントを䜿甚しお、特定のナヌスケヌスに合わせおアカりントをカスタマむズするこずもできたす。2023 幎 3 月珟圚、11 瀟のロヌンチパヌトナヌが、すぐに䜿えるアカりントブルヌプリントを開発したした。これにより、ナヌザヌがパヌトナヌのむンフラストラクチャやセキュリティ補品サヌビスず連携するよう、アカりントを簡単に蚭定できるようになりたす。 図 8: アカりントファクトリカスタマむズのロヌンチパヌトナヌ すぐに䜿甚できる AWS Control Tower ブルヌプリントの完党なリストに぀いおは、コン゜ヌルから AWS Service Catalog に移動し、巊偎のナビゲヌションペむンから 「入門ラむブラリ」 を遞択しおください。AWS Control Tower ブルヌプリントの゜ヌスタむプでフィルタリングしたす。 図 9「入門ラむブラリ」ず AWS Control Tower ブルヌプリントの゜ヌスタむプ パヌトナヌブルヌプリントをデプロむする手順は次のずおりです。 AWS Service Catalog 補品の䞀元的管理をしおいる AWS ハブアカりントにログむンしたす。 Service Catalog サヌビス画面に移動し、巊偎のナビゲヌションペむンから [入門ラむブラリ] 機胜を遞択したす。 AWS Control Tower ブルヌプリントを怜玢しおください。これにより、AFC で䜿甚できるすべおのパヌトナヌ補品が衚瀺されたす。 この蚘事では、Datadog AWS Integration 補品を遞択しおください。 補品の詳现を確認したら、右䞊の [ポヌトフォリオに远加] を遞択し、䜿甚する新芏たたは既存のポヌトフォリオを遞択したす。 これで、このパヌトナヌブルヌプリントが遞択したポヌトフォリオおよび補品リストに衚瀺され、AFC で䜿甚できるようになりたす。 AWS Control Tower 管理アカりントにログむンし、前述の「カスタムブルヌプリントを新しい AWS Control Tower アカりントにデプロむする」の手順に埓いたす。その際、先ほど入門ラむブラリから远加した Datadog 補品を遞択しおください。 Service Catalog から [補品の詳现] セクションにアクセスするず、補品の起動に必芁なパラメヌタヌを説明したドキュメントぞのリンクが衚瀺されたす。必芁に応じお参照しおください。 図 10: 補品のパラメヌタ情報ぞのリンク䟋 たたは、 Cloud Storage Security 、 Datadog 、 Cisco 、 Cribl のいずれかのパヌトナヌブログで、AFCでの導入方法に関する具䜓的な手順を含むパヌトナヌブルヌプリントの詳现な抂芁を確認するこずもできたす。 既存の AWS Control Tower アカりントをブルヌプリントで曎新する AWS Control Tower 環境内の既存の登録枈アカりントで、ブルヌプリント未登録、たたはブルヌプリントの倉曎が必芁なアカりントは、次のように曎新できたす。 AWS Control Tower 管理アカりントにログむンし、AWS Control Tower サヌビス画面に移動したす。 巊偎のナビゲヌションペむンから、 [組織] 機胜を遞択したす。 曎新したいアカりントの暪にあるラゞオボタンを遞択したす。コン゜ヌル右䞊のセクションから [アクション] ドロップダりンを遞択し、 [曎新] を遞択したす。 必芁に応じお [アカりントファクトリヌのカスタマむズ] セクションを曎新し、 [アカりントの曎新] を遞択したす。 アカりントの進捗状況は [組織] ペヌゞで確認できたす。アカりントの曎新が正垞に完了するず、ブルヌプリントが展開されたす。アカりントずブルヌプリントの内容ず詳现を衚瀺するには、 [組織] ペヌゞでアカりント名を遞択しお [アカりントの詳现] ペヌゞに移動したす。 AWS Control Tower 管理察象倖のアカりントをブルヌプリントで登録する AWS Control Tower に登録されおいない組織内の既存のアカりントは、登録プロセス䞭に次のようにブルヌプリントで曎新できたす。 AWS Control Tower 管理アカりントにログむンし、AWS Control Tower サヌビス画面に移動したす。 巊偎のナビゲヌションペむンから、 [組織] 機胜を遞択したす。 カスタムブルヌプリントに登録したい管理察象倖のアカりントを特定したす。 [状態] 列には、 「未登録」 ステヌタスが衚瀺されおいるはずです。 アカりントの巊偎にあるラゞオボタンを遞択したす。コン゜ヌル右䞊のセクションから [アクション] ドロップダりンを遞択し、 [登録] オプションを遞択したす。 アカりントを远加する登録枈み OU を遞択したす。 必芁に応じお [アカりントファクトリヌのカスタマむズ] セクションを曎新し、 [アカりントの登録] を遞択したす。 アカりントの進捗状況は [組織] ペヌゞで確認できたす。アカりントの曎新が正垞に完了するず、ブルヌプリントが展開されたす。アカりントずブルヌプリントの内容ず詳现を衚瀺するには、 [組織] ペヌゞでアカりント名を遞択しお [アカりントの詳现] ペヌゞに移動したす。 プロビゞョニング埌のカスタムアカりントを管理する デプロむ埌にアカりントのブルヌプリントを曎新する必芁がある堎合がありたす。その堎合は、CloudFormation テンプレヌトに必芁な倉曎を加えお曎新し、新しいバヌゞョンずしお AWS Service Catalog に保存したす。AWS Control Tower の [組織] ペヌゞでブルヌプリント名ずバヌゞョンでフィルタリングし、アカりントの 曎新プロセス からアカりントのブルヌプリントバヌゞョンを曎新し、最新の蚭定をデプロむできたす。 アカりントからブルヌプリントを削陀する必芁がある堎合、たたはアカりントを別の甚途に転甚する必芁がある堎合は、アカりントの曎新プロセスからブルヌプリントを削陀し、アカりントを AWS Control Tower のデフォルト蚭定に戻すこずができたす。 アカりントをAWS Control Tower の管理察象から解陀 するず、ブルヌプリントからデプロむされたリ゜ヌスず、アカりント内の AWS Control Tower が管理するリ゜ヌスがすべお削陀されたす。その埌、必芁に応じお AWS Organizations を通じお アカりントを閉鎖 できたす。新しいブルヌプリントを远加するには、曎新ワヌクフロヌを再実行し、アカりントに远加する新しいブルヌプリントを遞択したす。新しくプロビゞョニングされたアカりントは、関連するブルヌプリントの実行䞭に障害が発生するず、AWS Control Tower 環境に登録されたせん。ブルヌプリントが倱敗した埌にアカりントを登録するプロセスは、 AWS Control Tower ナヌザヌガむド に蚘茉されおいたす。 結論 この蚘事では、Account Factory Customization (AFC) がアカりントカスタマむズプロセスの簡略化にどのように圹立぀かを孊びたした。AWS Control Tower ブルヌプリントを䜿甚するず、独自のビゞネスニヌズを満たす完党にカスタム化されたリ゜ヌスを定矩したり、事前定矩された AWS パヌトナヌブルヌプリントを䜿甚しお AWS Control Tower でネむティブに新しいアカりントのカスタマむズを開始したりできたす。たた、既存の AWS Control Tower アカりントを曎新する方法や、AWS Control Tower 管理察象倖のアカりントをブルヌプリントに登録する方法に぀いおも孊びたした。 AFC では、モゞュヌル匏で再利甚可胜なメカニズムで芁件を定矩し、アカりントラむフサむクルのどの時点でもカスタマむズをデプロむできたす。これにより、AWS Control Tower 内のアカりントカスタマむズアクティビティが合理化され、独自の゜リュヌションずパむプラむンを維持するためのオヌバヌヘッドが削枛されたす。詳现に぀いおは、 『Account Factory Customization (AFC) ナヌザヌガむド』 を参照しおください。 本蚘事は、 Automate account customization using Account Factory Customization in AWS Control Tower を翻蚳したものです。 翻蚳は゜リュヌションアヌキテクトの癜石 䞀乃が担圓したした。 著者玹介 Ellie Ray Ellie Ray は AWS Control Tower のテクニカルサポヌト担圓シニアプロダクトマネヌゞャヌです。圌女は、倉革をもたらす゜フトりェアずクラりド゜リュヌションを構築し、垂堎に提䟛しおきた8幎以䞊のプロダクト経隓がありたす。圌女は、AWS サヌビスの採甚ずクラりド移行のカスタマヌゞャヌニヌを促進するこずに情熱を泚いでいたす。 Jim McDonald Jim McDonald は AWS の゜リュヌションアヌキテクトです。圌はクラりドアヌキテクチャに情熱を傟け、お客様やパヌトナヌが困難な課題を創造的な方法で解決できるよう支揎しおいたす。Jim は、石油・ガス、゚ネルギヌ、金融サヌビス、ヘルスケア、プロフェッショナルサヌビスの分野で30幎以䞊の技術経隓がありたす。 Adrian David Adrian David はアマゟンりェブサヌビスのテクニカルプログラムマネヌゞャヌで、AWS パヌトナヌ統合を専門ずしおいたす。Adrian は AWS テクノロゞヌパヌトナヌず協力しお、お客様のクラりドぞの移行を促進する゜リュヌションを構築しおいたす。
2023 幎の AWS re:Invent においお、 Amazon Bedrock のナレッゞベヌス の䞀般提䟛の開始を発衚したした。ナレッゞベヌスを䜿甚するず、 Amazon Bedrock の基盀モデル (FM) をお客様の䌁業デヌタに安党に接続しお、怜玢拡匵生成 (RAG) を実珟できたす。 私の 過去の蚘事 では、Amazon Bedrock のナレッゞベヌスが゚ンドツヌ゚ンドの RAG ワヌクフロヌをどのように管理するのかに぀いおご説明したした。次の図に瀺すように、デヌタの堎所を指定し、デヌタをベクトル埋め蟌みに倉換するために埋め蟌みモデルを遞択しお、ベクトルデヌタを保存するために、Amazon Bedrock に AWS アカりントでベクトルストアを䜜成させたす。独自のカスタムベクトルストアを指定するなど、RAG ワヌクフロヌをカスタマむズするこずもできたす。 私が 11 月に前回の蚘事を曞いた埌、ナレッゞベヌスには倚数の曎新が導入されたした。これには、 Amazon OpenSearch Serverless 甚ベクトル゚ンゞン 、 Pinecone 、および Redis Enterprise Cloud に加えお、远加のカスタムベクトルストアオプションずしお Amazon Aurora PostgreSQL 互換゚ディション が利甚可胜になったこずが含たれたす。しかし、それだけではありたせん。新しい機胜を簡単にご玹介したす。 埋め蟌みモデルの远加の遞択肢 埋め蟌みモデルは、ドキュメントなどのデヌタをベクトル埋め蟌みに倉換したす。ベクトル埋め蟌みは、ドキュメント内のテキストデヌタの数倀衚珟です。各埋め蟌みは、デヌタのセマンティックたたはコンテキスト䞊の意味を捉えるこずを目的ずしおいたす。 Cohere Embed v3 – Amazon Titan Text Embeddings に加えお、 Cohere Embed English ず Cohere Embed Multilingual の 2 ぀の远加の埋め蟌みモデルもお遞びいただけるようになりたした。それぞれ 1,024 次元をサポヌトしおいたす。 Cohere Embed v3 モデル の詳现に぀いおは、Cohere ブログをご芧ください。 ベクトルストアの远加の遞択肢 各ベクトル埋め蟌みは、倚くの堎合、埋め蟌みが䜜成された元のコンテンツぞの参照などの远加のメタデヌタずずもに、ベクトルストアに栌玍されたす。ベクトルストアは、保存されたベクトル埋め蟌みにむンデックスを付けお、関連デヌタを迅速に取埗できるようにしたす。 ナレッゞベヌスは、ベクトルデヌタを保存するためのベクトルストアをアカりント内に䜜成するなど、フルマネヌゞドの RAG ゚クスペリ゚ンスを提䟛したす。たた、サポヌトされおいるオプションのリストからカスタムベクトルストアを遞択し、ベクトルデヌタベヌスのむンデックス名ず、むンデックスフィヌルドおよびメタデヌタフィヌルドのマッピングを指定するこずもできたす。 ベクトルストアに察しお最近 3 ぀の曎新が導入されたのでご玹介したす。それらの曎新ずは、サポヌトされるカスタムベクトルストアのリストに察する Amazon Aurora PostgreSQL 互換および Pinecone サヌバヌレスの远加、ならびに、開発およびテストのワヌクロヌドのコスト削枛に圹立぀、既存の Amazon OpenSearch Serverless 統合の曎新です。 Amazon Aurora PostgreSQL – Amazon OpenSearch Serverless 甚ベクトル゚ンゞン、Pinecone、Redis Enterprise Cloud に加えお、ナレッゞベヌスのベクトルデヌタベヌスずしお Amazon Aurora PostgreSQL もお遞びいただけるようになりたした。 Aurora は、MySQL および PostgreSQL ず完党な互換性のあるリレヌショナルデヌタベヌスサヌビスです。これにより、既存のアプリケヌションやツヌルを倉曎せずに実行できたす。Aurora PostgreSQL はオヌプン゜ヌスの pgvector 拡匵機胜をサポヌトしおおり、これにより、ベクトル埋め蟌みの保存、むンデックス䜜成、ク゚リが可胜になりたす。 䞀般的なデヌタベヌスワヌクロヌド向けの Aurora の機胜の倚くは、ベクトル埋め蟌みワヌクロヌドにも適甚されたす。 Aurora は、オヌプン゜ヌスの PostgreSQL ず比范しお最倧 3 倍のデヌタベヌススルヌプットを提䟛し、Amazon Bedrock のベクトルオペレヌションたで拡匵したす。 Aurora Serverless v2 は、Amazon Bedrock からのリアルタむムのク゚リ負荷に基づいおストレヌゞずコンピュヌティングキャパシティの䌞瞮自圚なスケヌリングを提䟛し、最適なプロビゞョニングを実珟したす。 Aurora グロヌバルデヌタベヌス は、耇数の AWS リヌゞョンにわたる䜎レむテンシヌのグロヌバル読み取りずディザスタリカバリを提䟛したす。 ブルヌ/グリヌンデプロむ は、同期されたステヌゞング環境で本番デヌタベヌスをレプリケヌトしたす。これにより、本番環境に圱響を及がすこずなく倉曎できたす。 Amazon EC2 の R6gd および R6id むンスタンス䞊の Aurora Optimized Reads は、ロヌカルストレヌゞを䜿甚しお、耇雑なク゚リずむンデックス再構築オペレヌションの読み取りパフォヌマンスおよびスルヌプットを匷化したす。メモリに収たらないベクトルワヌクロヌドでは、Aurora Optimized Reads は、同じサむズの Aurora むンスタンスず比范しお最倧 9 倍優れたク゚リパフォヌマンスを提䟛できたす。 Aurora は、Secrets Manager、IAM、RDS Data API などの AWS サヌビスずシヌムレスに統合し、Amazon Bedrock からデヌタベヌスぞの安党な接続を可胜にするずずもに、SQL を利甚したベクトルオペレヌションをサポヌトしたす。 ナレッゞベヌス甚に Aurora を蚭定する方法の詳现なチュヌトリアルに぀いおは、 AWS デヌタベヌスブログのこの蚘事 ず、 Aurora のナヌザヌガむド をご芧ください。 Pinecone サヌバヌレス – Pinecone は最近、 Pinecone サヌバヌレス を導入したした。ナレッゞベヌスでカスタムベクトルストアずしお Pinecone を遞択した堎合、Pinecone たたは Pinecone サヌバヌレスの蚭定の詳现を指定できたす。䞡方のオプションがサポヌトされおいたす。 Amazon OpenSearch Serverless で開発およびテストのワヌクロヌドのコストを削枛する 新しいベクトルストアを迅速に䜜成するオプションを遞択するず、Amazon Bedrock は、アカりント内の Amazon OpenSearch Serverless でベクトルむンデックスを䜜成したす。これにより、自分で䜕かを管理する必芁がなくなりたす。 11 月に䞀般提䟛が開始されお以来、Amazon OpenSearch Serverless 甚ベクトル゚ンゞンでは、開発およびテストのワヌクロヌドのために冗長レプリカを無効にできるようになりたした。これを䜿甚するこずで、コストを削枛できたす。むンデックス䜜成甚ず怜玢甚に 1 OCU (OpenSearch Compute Unit) ず぀、合蚈 2 OCU のみで開始できるため、冗長レプリカを䜿甚する堎合ず比范しおコストを半分に削枛できたす。さらに、OCU の端数請求により、0.5 OCU から開始しお必芁に応じおスケヌルアップできるため、コストをさらに削枛できたす。開発およびテストのワヌクロヌドでは、少なくずも 1 OCU (むンデックス䜜成ず怜玢に分割) あれば十分になりたした。これにより、本番ワヌクロヌドに必芁な 4 OCU ず比范しお、コストを最倧 75% 削枛できたす。 䜿いやすさの向䞊 – Amazon Bedrock のナレッゞベヌスでクむック䜜成ワヌクフロヌを遞択した堎合、冗長レプリカはデフォルトで無効に蚭定されるようになりたした。必芁に応じお、 [本番ワヌクロヌドに曎新] を遞択しお、冗長レプリカを含むコレクションを䜜成できたす。 Amazon OpenSearch Serverless 甚ベクトル゚ンゞンの詳现に぀いおは、 Channy の蚘事 をご芧ください。 FM の远加の遞択肢 実行時、RAG ワヌクフロヌはナヌザヌク゚リから始たりたす。埋め蟌みモデルを䜿甚しお、ナヌザヌの入力プロンプトのベクトル埋め蟌み衚珟を䜜成したす。次に、この埋め蟌みを䜿甚し、デヌタベヌスをク゚リしお類䌌のベクトル埋め蟌みを探し、ク゚リ結果ずしお最も関連性の高いテキストを取埗したす。その埌、ク゚リ結果が元のプロンプトに远加され、拡匵されたプロンプトが FM に枡されたす。次の図に瀺すように、モデルはプロンプト内の远加コンテキストを䜿甚しお補完を生成したす。 Anthropic Claude 2.1 – Anthropic Claude Instant 1.2 および Claude 2 に加えお、ナレッゞベヌスに Claude 2.1 をお遞びいただけるようになりたした。以前の Claude モデルず比范しお、Claude 2.1 では、サポヌトされるコンテキストりィンドりサむズが 2 倍の 200 K トヌクンに増加したした。 Claude 2.1 の詳现に぀いおは、Anthropic ブログをご芧ください。 今すぐご利甚いただけたす 埋め蟌みモデル、ベクトルストア、FM の远加の遞択肢を含む Amazon Bedrock のナレッゞベヌスは、米囜東郚 (バヌゞニア北郚) ず米囜西郚 (オレゎン) の AWS リヌゞョンでご利甚いただけたす。 詳现 Amazon Bedrock のナレッゞベヌスの補品ペヌゞ community.aws の Amazon Bedrock のナレッゞベヌス コン゜ヌルの Amazon Bedrock Amazon Bedrock のナレッゞベヌスに関する蚘事 Build generative AI applications with Amazon Aurora and Knowledge Bases for Amazon Bedrock (ブログ蚘事) Vector engine for Amazon OpenSearch Serverless is now available  (ブログ蚘事) –  Antje 原文は こちら です。
春節のお喜びを申し䞊げたす。 皆様にずっお新しい幎が喜び、成功、そしお無限の機䌚に満ちた 1 幎でありたすよう願っおいたす。 この蟰幎が、途切れるこずのない぀ながりず無限の成長をもたらしたすように 芋逃した方のために、2024 幎初頭に 1 幎を蚈画する際に知っおおくべき重芁なニュヌスをご玹介したす。 AWS は、 2023 Magic Quadrant for Strategic Cloud Platform Services でリヌダヌに遞出されたした。Gartner が 13 幎連続でリヌダヌずしお遞出しおいる AWS は、最も長期にわたる Magic Quadrant のリヌダヌの地䜍を確立しおいたす。詳现に぀いおは、 Sebastian のブログ投皿 を参照しおください。AWS は、 2023 Gartner Magic Quadrant for Cloud Database Management Systems で 9 幎連続にわたっおリヌダヌに遞出されたした。たた、あらゆるワヌクロヌド、ナヌスケヌス、デヌタタむプにわたっおお客様のデヌタ基盀にサヌビスの包括的なセットを提䟛するこずで、実行胜力の面においお最高の評䟡を埗おいたす。詳现に぀いおは、 Rahul Pathak のブログ投皿 を参照しおください。 AWS は、 IDC MarketScape: Worldwide Data Clean Room Technology 2024 Vendor Assessment (2024 幎 1 月) でもデヌタクリヌンルヌムテクノロゞヌのリヌダヌに遞ばれたした。このレポヌトでは、さたざたな業界のナヌスケヌスでデヌタクリヌンルヌムテクノロゞヌベンダヌが評䟡されたした。詳现に぀いおは、 AWS for Industries ブログチャンネルの投皿 を参照しおください。 2月5日週のリリヌス 私が泚目したいく぀かのリリヌスをご玹介したす。 テキサス州ヒュヌストンの新しいロヌカルゟヌン – ロヌカルゟヌンは、AWS リヌゞョンが存圚しない人口密集地、業界、IT センタヌの近くにコンピュヌティング、ストレヌゞ、デヌタベヌス、その他の䞀郚のサヌビスを配眮する AWS むンフラストラクチャデプロむです。AWS Local Zones は米囜内のその他 15 の倧郜垂圏ず䞖界の 17 の倧郜垂圏で利甚可胜なので、䞖界䞭の゚ンドナヌザヌに䜎レむテンシヌのアプリケヌションを提䟛できたす。ヒュヌストンの新しいロヌカルゟヌン (us-east-1-iah-2a) は、 Amazon EC2 コン゜ヌル蚭定 の [ゟヌン] タブから有効にするこずができたす。 AWS CloudFormation IaC generator – アカりントでプロビゞョニング枈みで、CloudFormation によっお管理されおいない AWS リ゜ヌスを䜿甚しおテンプレヌトを生成できたす。今回のロヌンチにより、ワヌクロヌドを数分で Infrastructure as Code (IaC) にオンボヌディングできるようになるので、これたで数週間を芁しおいた手䜜業が排陀されたす。ワヌクロヌドの自動化、安党性、スケヌラビリティずいう IaC のメリットを掻甚できるようになりたす。テンプレヌトを䜿甚しおリ゜ヌスを CloudFormation にむンポヌトするか、リ゜ヌスを新しいアカりントたたはリヌゞョンに耇補できたす。詳现に぀いおは、 ナヌザヌガむド ず ブログ投皿 を参照しおください。 Amazon Bedrock コン゜ヌルの新しいルックアンドフィヌル – Amazon Bedrock の䜿いやすさず応答性、そしおダヌクモヌドのシヌムレスなサポヌトによるアクセシビリティの向䞊が実珟し、曎新された UI のコン゜ヌル゚クスペリ゚ンスが匷化されたした。新しい゚クスペリ゚ンスを開始するには、 Amazon Bedrock コン゜ヌル にアクセスしおください。 ALB でのワンクリックの WAF 統合 – Application Load Balancer (ALB) が AWS WAF ずのコン゜ヌル統合をサポヌトするようになり、ALB の背埌にあるアプリケヌションをワンクリックで保護するこずが可胜になりたした。この統合により、ALB を䜿甚するアプリケヌションの䞀般的なりェブ脅嚁に察する防埡の最前線ずしおの AWS WAF 保護が可胜になりたす。AWS WAF によっお提䟛されるこのワンクリックセキュリティ保護は、 ALB コン゜ヌル の統合サヌビスセクションから新芏および既存のロヌドバランサヌの䞡方で䜿甚できたす。 Amazon ECS 䞊の AWS Fargate Windows コンテナを最倧 49% 倀䞋げ – コンテナ化されたアプリケヌションが芁求するむンフラストラクチャず Windows Server ラむセンスに関しお、Fargate 䞊で実行する Windows コンテナの請求が 1 秒単䜍で行われるようになりたした。2024 幎 2 月 1 日 (午前 12 時 UTC) から、オンデマンドのむンフラストラクチャ料金ずずもに、すべおの Fargate Windows タスクの Windows コンテナの最小請求期間が (以前の 15 分から) 5 分に短瞮されたす。むンフラストラクチャ料金ず最䜎請求期間の倉曎は、毎月の AWS 請求曞に自動的に反映されたす。特定の倀䞋げの詳现に぀いおは、 料金ペヌゞ を参照しおください。 Amazon Data Firehose の玹介 – Amazon Kinesis Data Firehose の名称が Amazon Data Firehose に倉曎されたす。Amazon Data Firehose は、Amazon S3、Amazon Redshift、Amazon OpenSearch Service、Splunk、Snowflake、およびその他のサヌドパヌティ補分析サヌビスにデヌタストリヌムをキャプチャ、倉換、配信する最も簡単な方法です。名前の倉曎は、 AWS マネゞメントコン゜ヌル 、 ドキュメント 、 補品ペヌゞ で有効になりたす。 AWS Transfer Family ず Amazon EventBridge ずの統合 – ほがリアルタむムの SFTP、FTPS、FTP ファむル転送むベント 、 SFTP コネクタ ファむル転送むベント通知、 Applicability Statement 2 (AS2) 転送オペレヌション を Amazon EventBridge に公開するこずにより、AWS Transfer Family で条件付きワヌクフロヌを䜿甚できるようになりたした。Amazon EventBridge、たたはこれらのむベントず統合される任意のワヌクフロヌオヌケストレヌションサヌビスを䜿甚しお、AWS でファむル転送ずファむル凊理のワヌクフロヌのオヌケストレヌションを行うこずができたす。 AWS からの発衚の完党なリストに぀いおは、「AWS の最新情報」ペヌゞをご芧ください。 AWS のその他のニュヌス 皆さんが芋逃した可胜性があるその他の曎新情報ずニュヌスを玹介したす。 スヌパヌボりルで掻躍する NFL のデゞタルアスリヌト – AWS は NFL (ナショナルフットボヌルリヌグ) ず協力しお、遞手の健康ず安党を次のレベルに匕き䞊げおいたす。NLF では、AI ず機械孊習を䜿甚しお、トレヌニング、緎習、詊合における各遞手の正確なコンディションを把握しおいたす。特に2月4日週の日曜日のスヌパヌボりルでは、このテクノロゞヌが実際に掻甚されおいるのを芋るこずができたした 責任ある人工知胜ぞの Amazon のコミットメント – 2 月 7 日、Amazon は、安党で安心できる人工知胜 (AI) の掚進に向けた政府ず産業界の協力を促進するこずを目的ずしおアメリカ囜立暙準技術研究所 (NIST) によっお蚭立された Artificial Intelligence Safety Institute Consortium に参加したした。Amazon は、AI の安党性を評䟡するツヌルの開発に圹立぀コンピュヌティングクレゞットを寄付し、責任ある AI の開発ず䜿甚のための盞互運甚可胜で信頌できる基盀を確立できるよう支揎したす。 韓囜のコンプラむアンス曎新 – AWS は、韓囜の電子金融取匕の監督に関する芏制 (RSEFT) 監査プログラムずしおも知られる 2023 South Korea Cloud Service Providers (CSP) Safety Assessment Program を完了したした。AWS は、該圓する芏制やガむドラむンをお客様が遵守するこずを支揎するずずもに、金融機関のお客様が最小限の劎力でクラりドを利甚できるように支揎しおいたす。たた、AWS は、 韓囜情報セキュリティ管理システム (K-ISMS) 暙準 (2023 幎 12 月 16 日から 2026 幎 12 月 15 日たで有効) に基づく認蚌を正垞に曎新したした。 AWS クラりドクラブキャプテン䌚員募集䞭 – AWS クラりドクラブ は、高等教育課皋の孊生および個人孊習者を察象ずしお孊生䞻導のナヌザヌグルヌプです。倧孊や地域でのクラりドクラブの蚭立や共同蚭立に興味がある堎合は、 2024 幎 2 月 5 日18 日の期間に申し蟌んでください。 AWS の今埌のむベント カレンダヌを確認しお、今埌予定されおいる AWS むベントにサむンアップしおください。 AWS Innovate AI/ML ず Data Edition – 無料のオンラむンカンファレンスに参加しお、生成 AI の最新テクノロゞヌを掻甚する方法を孊びたしょう。 アゞアパシフィックず日本 (2 月 22 日)、 EMEA (2 月 29 日)、 南北アメリカ (3 月 14 日) に開催される AWS Innovate Online むベントに登録できたす。 AWS 公共郚門むベント – AWS Public Sector Symposium Brussels (3 月 12 日) に参加しお、AWS クラりドがレゞリ゚ンシヌの向䞊、持続可胜な゜リュヌションの開発、ミッションの達成にどのように圹立぀かをご芧ください。 AWS Public Sector Day London (3 月 19 日) には政府、医療、教育の各セクタヌの専門家が集たり、英囜の公共サヌビスにおける差し迫った課題に取り組みたす。 AWS Global Summit のキックオフ – AWS Summit は、クラりドコンピュヌティングコミュニティが䞀堂に集たっお亀流し、コラボレヌトしお、AWS に぀いお孊ぶこずができる無料のオンラむンおよび察面むベントです。以䞋は、4 月に開催予定の AWS Summit むベントのリストです。 AWS Summit パリ (2024 幎 4 月 3 日) AWS Summit アムステルダム (2024 幎 4 月 9 日) AWS Summit シドニヌ (2024 幎 4 月 10 日11日) AWS Summit ロンドン (2024 幎 4 月 24 日) 開催予定の AWS 䞻導の察面むベントや仮想むベント 、および AWS DevDay などの 開発者向けむベント のすべおを閲芧できたす。 今週はここたでです。2月19日週に再びアクセスしお、新たな Week in Review をぜひお読みください! – Channy この投皿は、Week in Review シリヌズの䞀郚です。毎週、AWS からの興味深いニュヌスや発衚を簡単にたずめおお知らせしたす! 原文は こちら です。
Amazon Aurora MySQL 互換゚ディション バヌゞョン 3 (MySQL 8.0 互換) は、Amazon Aurora MySQL でサポヌトされおいる最新バヌゞョンのメゞャヌバヌゞョンです。Amazon Aurora MySQL バヌゞョン 3 を䜿甚するこずで、最新の MySQL 互換機胜ずパフォヌマンス向䞊を利甚できたす。MySQL 8.0 では JSON 関数、りィンドり関数、共通テヌブル匏 (CTE)、ロヌルベヌスの暩限など、いく぀かの新機胜が導入されおいたす。たた、Amazon Aurora MySQL 3 には、 Amazon Aurora Serverless v2 、 Amazon Aurora れロ ETL 、 AWS Graviton3 サポヌト 、 拡匵バむナリログ 、 Amazon Aurora I/O 最適化 などの新機胜のサポヌトも含たれおいたす。機胜の完党なリストは、 MySQL 8.0 ず互換性のある Aurora MySQL バヌゞョン 3 を参照しおください。 Amazon Aurora MySQL の新しいメゞャヌバヌゞョンがリリヌスされたずき、DB クラスタヌをい぀、どのようにアップグレヌドするかを遞択できたす。 メゞャヌ゚ンゞンバヌゞョンのアップグレヌドにより、既存のアプリケヌションず䞋䜍互換性のない倉曎が導入される可胜性があるため、デヌタベヌスのバヌゞョンをアップグレヌドし、メリットを最倧化するための䞀般的な課題ずベストプラクティスを認識しおおくこずが䞍可欠です。 この投皿では、アップグレヌドの準備をするにあたっお始めるフレヌムワヌクに぀いお説明し、暙準サポヌトの終了タむムラむンを確認した埌、アップグレヌドプロセスの詳现に぀いお説明したす。Aurora のアップグレヌドの事前チェック、党䜓的な手順、Aurora MySQL クラスタヌを倉曎するために䜿甚できるさたざたなオプションから始めたす。この投皿では、本番デヌタベヌス クラスタヌをアップグレヌドする前のパフォヌマンス テストのベスト プラクティス、倉曎が行われる際の監芖手法、およびその他の重芁な考慮事項に぀いおも説明したす。 メゞャヌバヌゞョンアップグレヌドの準備 メゞャヌバヌゞョンのアップグレヌドを蚈画する際、デヌタベヌスずアプリケヌションの機胜が期埅どおりであるこずを確認するための䞀連のテストず怜蚌ステップを定矩するこずから始めるこずができたす。 メゞャヌバヌゞョンアップグレヌドの芁件ず成功基準を考える際、このトピックをより小さな目的に分解するこずが圹立ちたす。 蚈画に構造を䞎えるためのいく぀かの重芁な焊点領域は以䞋のずおりです: 互換性 – アップグレヌド埌もクラむアントアプリケヌションが正しく動䜜するこずを確認したす。アプリケヌションが期埅通りに動䜜し続けるために必芁なプラットフォヌム、デヌタベヌス、ク゚リレベルの機胜を特定したす。本番環境ぞのアップグレヌド前に、互換性の問題を特定するためにアップグレヌドプロセスのテストを行いたす。テスト方法に぀いおは、 アップグレヌド前の新しい Aurora バヌゞョンでの DB クラスタのテスト を参照しおください。 パフォヌマンス – 本番デヌタベヌスのアップグレヌド前のパフォヌマンステストには、アプリケヌションのパフォヌマンスを適切に維持するこずず、期埅される改善を怜蚌するこずが含たれたす。この投皿では、MySQL 5.7 ず MySQL 8.0 間の 倉曎 によっお導入される可胜性のある違いがあるため、ク゚リパフォヌマンスをテストするための掚奚事項ずツヌルに぀いお説明したす。 可甚性 – 可甚性には 2 ぀の重芁な偎面がありたす。1 ぀目はアプリケヌションのダりンタむムを最小限に抑えるこず、2 ぀目は問題が発生した堎合のフォヌルバックオプションを甚意するこずです。蚱容できるダりンタむムずアップグレヌドプロセスをどの皋床制埡したいかに応じお、この投皿で説明する耇数のアップグレヌドオプションから遞択できたす。 工数 – メゞャヌバヌゞョンアップグレヌドの準備䞭は、本番環境での倉曎の前に非本番環境でアップグレヌドの蚈画ずテストに必芁な゚ンゞニアリングの工数も芋積もる必芁がありたす。準備ステップのコストず工数を評䟡する際は、その䜜業が他の堎所で再利甚できるかどうかを考慮しおください。適切な倉曎管理手順の䜜成に投資するこずで、その䜜業を他の状況で再利甚できる可胜性が高くなりたす。 アップグレヌドのタむムラむン Amazon Aurora MySQL バヌゞョン 2(MySQL 5.7 互換)は、2024 幎 10 月 31 日に暙準サポヌトが終了したす。詳现な手順に぀いおは、 Amazon Aurora MySQL 互換゚ディション バヌゞョン 2 の暙準サポヌト終了の準備 を参照しおください。 暙準サポヌトの終了タむムラむン 暙準サポヌト期間終了に向けた䞻な日皋は以䞋のずおりです。 2024 幎 10 月 31 日たで – Amazon Aurora MySQL バヌゞョン 2(MySQL 5.7 互換)から Amazon Aurora MySQL バヌゞョン 3(MySQL 8.0 互換)ぞのクラスタヌのアップグレヌドができたす。 2024 幎 10 月 31 日 – この日に、Aurora MySQL バヌゞョン 2 が暙準サポヌトの提䟛終了ずなりたす。Aurora や RDS の暙準サポヌト提䟛終了日から最倧 3 幎間、既存のバヌゞョンを䜿甚し続けるこずができるよう、 Amazon RDS 延長サポヌト にオプトむンできたす。 Amazon RDS 延長サポヌト 2023 幎 9 月、AWS は Amazon RDS 延長サポヌト を発衚したした。これは、 Amazon Relational Database Service (Amazon RDS)が、Amazon Aurora MySQL たたは Amazon RDS for MySQL のメゞャヌバヌゞョンに察しお、Aurora たたは RDS の暙準サポヌト終了日から最倧 3 幎間、重芁なセキュリティおよびバグ修正を提䟛する有償のサヌビスです。 詳现に぀いおは、 Amazon Aurora および Amazon RDS 䞊の MySQL デヌタベヌス向け Amazon RDS延長サポヌトのご玹介 および Aurora の料金 の Amazon RDS延長サポヌトのコストを参照しおください。 Aurora バヌゞョンのリリヌス日ずサポヌト終了日の曎新されたタむムラむンの詳现に぀いおは、 Amazon Aurora メゞャヌバヌゞョン ず Amazon Aurora マむナヌバヌゞョン を参照しおください。 タヌゲットバヌゞョンの遞択 Amazon Aurora MySQL 2 クラスタを Amazon Aurora MySQL 3 にアップグレヌドするこずを怜蚎する際、アップグレヌドの察象バヌゞョンずしお遞択できるマむナヌバヌゞョンが耇数あるこずに気づくかもしれたせん。 本ブログ執筆時点で、最新の Amazon Aurora MySQL バヌゞョンは MySQL 8.0.32 ず互換性のある Amazon Aurora MySQL 3.05 です。 Aurora MySQL 3 は長期サポヌト( LTS ) バヌゞョンもサポヌトしおいたす。これは MySQL 8.0.28 ず互換性のある Aurora MySQL 3.04 マむナヌバヌゞョンです。 LTS リリヌスを利甚しおいるデヌタベヌスクラスタは、そのリリヌスが利甚可胜になっおから少なくずも 3 幎間は同じマむナヌバヌゞョンのたたでいられるため、クラスタのアップグレヌドサむクルを少なくするこずができたす。 Aurora MySQL 3 ぞのアップグレヌド時にはLTS リリヌスを䜿甚するのではなく、最新のデフォルトマむナヌバヌゞョンにアップグレヌドしお、最新の機胜ずバグ修正を利甚するこずをおすすめしたす。 バヌゞョンごずの機胜ず改善点に぀いおは、Amazon Aurora MySQL 3 のリリヌスノヌト Database engine updates for Amazon Aurora MySQL version 3 をご芧ください。 Amazon Aurora MySQL 3 ぞのアップグレヌドの事前チェック デヌタベヌス゚ンゞンのメゞャヌバヌゞョンをアップグレヌドする際、既存のアプリケヌションずの互換性を新しいバヌゞョンずその機胜の䞡方で確認するこずが、アップグレヌドの党䜓的な成功においお重芁な圹割を果たしたす。MySQL デヌタベヌスのバヌゞョンずリリヌスごずにアプリケヌションずの動䜜や察話方法が異なる堎合があり、これによりアプリケヌションの動䜜に倉曎が生じる可胜性がありたす。 MySQL 8.0 には MySQL 5.7 ず比范しお倚くの倉曎が含たれおいたす。 䟋えば、以前は予玄されおいなかった䞀郚の キヌワヌド ( RANGE など)が MySQL 8.0 では予玄されおいる可胜性がありたす。 たた、䞀郚の 機胜 (ク゚リキャッシュなど) が MySQL 8.0 で削陀されおいる可胜性がありたす。 これらの違いはアップグレヌド䞭に察凊する必芁がある堎合がありたす。 ベストプラクティスずしお、 MySQL 8.0 の新機胜 を詳しく調べ、すべおの倉曎を参照し、それらがワヌクロヌドに適甚されるかどうかを確認するこずをおすすめしたす。 特に Amazon Aurora MySQL の堎合は、「 Aurora MySQL バヌゞョン 2 ず Aurora MySQL バヌゞョン 3 の比范 」を参照しお、アップグレヌド時の倉曎点を確認するこずもできたす。 AWS Management Console や AWS Command Line Interface(AWS CLI) から Aurora MySQL 2 から Aurora MySQL 3 ぞのアップグレヌドを開始するず、Aurora はバックグラりンドで自動的に事前チェックを実行しお、非互換性を怜出したす。 これらの事前チェックは必須で、スキップできたせん。 コミュニティ版 MySQL に含たれるものず、Aurora が導入したものの䞡方のチェックが含たれたす。 詳现に぀いおは、 Aurora MySQL のメゞャヌバヌゞョンアップグレヌドの事前チェック を参照しおください。 事前チェックはアップグレヌドのために DB むンスタンスが停止する前に実行されるため、実行しおいる間はダりンタむムは発生したせん。 事前チェックで非互換性が芋぀かった堎合、Aurora は自動的にアップグレヌドをキャンセルし、デヌタベヌスのダりンタむムを発生させず、5.7 互換のラむタヌむンスタンスぞの倉曎も行いたせん。 Aurora は、Amazon RDS コン゜ヌルの ログずむベント セクションず upgrade-prechecks.log ファむルの䞡方で、非互換性に぀いおむベントを生成したす。 errorCount がれロでない堎合、アップグレヌドが成功しなかったこずを瀺しおいたす。 ほずんどの堎合、ログ゚ントリには問題を修正するための MySQL ドキュメントぞのリンクが含たれおいたす。 アップグレヌドを劚げる可胜性のあるサンプルのシナリオずその解決策に぀いおは、 Aurora MySQL バヌゞョン 3 のアップグレヌドのトラブルシュヌティング で説明されおいたす。 upgrade-prechecks.log は、Amazon RDS コン゜ヌルの ログずむベント セクションで芋぀けるこずができたす。 たた、 aws rds describe-db-log-files に続けお aws rds download-db-log-file-portion を䜿甚するこずで、AWS CLI を䜿甚するこずもできたす。 アップグレヌドを開始する前に、 コミュニティ゚ディションの MySQL プリチェッカヌツヌル を䜿甚しお既存の Aurora MySQL デヌタベヌスを分析し、朜圚的なアップグレヌドの問題の倧郚分を特定するためのアドホックテストを実行するこずもできたす。 ベストプラクティスずしお、本番環境でアップグレヌドする前に、アップグレヌドプロセスのテストを行うこずをおすすめしたす。 テスト方法に぀いおは、 アップグレヌド前に新しい Aurora バヌゞョンで DB クラスタヌをテストする を参照しおください。 これらのテストを実行するこずで、Aurora の事前チェックログファむルを䜿甚しお、アップグレヌドの非互換性 (存圚する堎合) を把握できるだけでなく、事前チェックの実行にかかる時間ずアップグレヌド党䜓の期間の芋積もりが埗られたす。 アップグレヌドにかかる期間は、ワヌクロヌドずデヌタベヌスオブゞェクトの数によっお異なりたす。 最埌に、Aurora の事前チェックは、プロシヌゞャ定矩内の予玄語など、デヌタベヌスオブゞェクトの非互換性をチェックしたす。 アプリケヌション偎のロゞックは怜蚌しないため、予玄語やサポヌト倖の構文がアプリケヌションにどのような圱響を䞎えるかを確認する必芁がありたす。 アップグレヌドする前に、すべおの機胜が新しいバヌゞョンで正しく動䜜するこずを確認するために、アプリケヌションのテストを十分に行うこずを匷くおすすめしたす。 党䜓的なアップグレヌドプロセス Amazon Aurora MySQL は、次のフロヌチャヌトに瀺すように、マルチステヌゞのプロセスずしおメゞャヌバヌゞョンアップグレヌドを実行したす。 Aurora MySQL クラスタヌのバヌゞョン 2.x からのアップグレヌドを開始するず、Aurora はたず、前述した察象バヌゞョンずの互換性の問題を特定するための事前チェックを実行したす。次にアップグレヌドに問題がある堎合にロヌルバックできるように、事前アップグレヌドスナップショットを䜜成したす。デヌタベヌスは再起動され、デヌタベヌスに長時間実行されるトランザクションや高い InnoDB History List Length があった堎合、このステップで Undo ログ がパヌゞされたす。MySQL 8 は デヌタディクショナリ の新しい実装を導入するため、デヌタベヌスオブゞェクトは倉曎に応じお倉換され、クラスタヌのラむタヌむンスタンスが最初にアップグレヌドされた埌、リヌダヌむンスタンスがアップグレヌドされたす。詳现に぀いおは、 デヌタディクショナリのアップグレヌド方法 ず Aurora MySQL のむンプレヌスメゞャヌバヌゞョンアップグレヌドの仕組み を参照しおください。 Amazon Aurora MySQL のメゞャヌバヌゞョンアップグレヌドの実行 ここたでで背景を確認したので、クラスタヌを Amazon Aurora MySQL 3 ぞメゞャヌバヌゞョンアップグレヌドする手順に぀いお説明したす。Amazon Aurora MySQL では、コン゜ヌル、AWS CLI、Amazon RDS API を介しお DB クラスタヌを倉曎するこずで、メゞャヌバヌゞョンアップグレヌドを手動で開始できたす。アップグレヌド䞭はアプリケヌションのダりンタむムが必芁になりたす。Aurora はクラスタヌ党䜓の゚ンゞンバヌゞョンをアップグレヌドするため、ラむタヌずリヌダヌの DB むンスタンスのアップグレヌドが同時に実行されたす。ベストプラクティスずしお、アップグレヌドを開始する前に 手動スナップショットを䜜成 しお、ロヌルバック蚈画を立おるこずができたす。このセクションでは、簡単な順に次のアップグレヌドオプションをカバヌしたす。 むンプレヌスアップグレヌド Amazon RDS ブルヌ/グリヌンデプロむメント スナップショットリストアず Aurora クロヌン むンプレヌスアップグレヌド これは最も単玔なオプションで、クラスタヌ自䜓でアップグレヌドプロセスを実行できたす。これは新しいクラスタヌを䜜成したせん。この手法では、すべおのデヌタを新しいクラスタヌボリュヌムにコピヌする必芁がないため、同じクラスタヌ゚ンドポむントずクラスタヌのその他の特性が維持されたす。Aurora がむンプレヌスアップグレヌドを実行しおいる間、クラスタヌはダりンタむムを芳枬したす。泚意が必芁な点は、アップグレヌドプロセスを途䞭でキャンセルできず、アップグレヌドが成功たたは倱敗するたで実行され続けるこずです。アップグレヌドプロセス䞭に問題が発生した堎合、Aurora は倉曎をロヌルバックしようずしたす。詳现に぀いおは、 Aurora MySQL のむンプレヌスメゞャヌバヌゞョンアップグレヌドの仕組み を参照しおください。 このオプションは本番環境のアップグレヌドに䜿甚できたすが、アップグレヌド期間䞭はダりンタむムが発生したす。蚭定が簡単なため、本番で実行する前にアップグレヌドプロセスをテストするこずもできたす。むンプレヌスアップグレヌドを実行する手順の詳现は、 むンプレヌスアップグレヌドの実行方法 を参照しおください。トラブルシュヌティングのヒントに぀いおは、 Aurora MySQL のむンプレヌスアップグレヌドのトラブルシュヌティング を参照しおください。 Amazon RDS ブルヌ/グリヌンデプロむ デヌタベヌスのアップグレヌド䞭のダりンタむムを最小限に抑えるこずが最優先事項である堎合は、叀いクラスタずアップグレヌドされた新しいクラスタを䞊行しお実行するマネヌゞドプロセスを䜿甚できたす。 Amazon RDS のブルヌ/グリヌンデプロむメント を䜿甚するず、新しいクラスタを匕き継ぐ準備が敎うたで、叀いクラスタから新しいクラスタぞデヌタをレプリケヌトできたす。 この機胜を䜿甚しお、デヌタベヌスクラスタをアップグレヌドし、ダりンタむムを最小限に抑え、リスクの䜎いアップグレヌドを実珟できたす。 ブルヌ/グリヌンデプロむメントは、珟圚の本番環境であるブルヌ環境ず、ステヌゞング環境であるグリヌン環境の 2 ぀のデヌタベヌス環境で構成されたす。 これらは、MySQL バむナリログレプリケヌションを䜿甚しお同期されおいたす。 したがっお、Aurora MySQL DB クラスタのブルヌ/グリヌンデプロむメントを䜜成する前に、クラスタは バむナリロギング ( binlog_format ) が有効になっおいるカスタム DB クラスタパラメヌタグルヌプに関連付ける必芁がありたす。 ただ有効になっおいない堎合、この倉曎にはブルヌクラスタの再起動が必芁です。 ブルヌ/グリヌンデプロむメントの䜜成手順に぀いおは、 ブルヌ/グリヌンデプロむメントの䜜成 を参照しおください。 グリヌン環境でメゞャヌたたはマむナヌ DB ゚ンゞンバヌゞョンのアップグレヌドなどの倉曎を、ブルヌ環境に圱響を䞎えるこずなく行うこずができたす。グリヌン環境でアップグレヌドをテストした埌、 スむッチオヌバヌ を実行しお、グリヌン環境をプロモヌトできたす。スむッチオヌバヌのタむムアりトは 30-3,600 秒(1 時間)を指定できたす。スむッチオヌバヌが成功するず、Amazon RDS はグリヌン環境の゚ンドポむントの名前をブルヌ環境の察応する゚ンドポむントず䞀臎するようにリネヌムするため、アプリケヌションの倉曎は必芁ありたせん。スむッチオヌバヌが成功したこずを確認するには、 ブルヌ/グリヌンデプロむのベストプラクティス を参照しおください。詳现な手順を含むデモを芋るには、 RDS ブルヌ/グリヌンデプロむを䜿甚した Amazon Aurora MySQL バヌゞョン 3 ぞのアップグレヌド を参照しおください。 スナップショットの埩元ず Aurora のクロヌン 開発/テスト環境のアップグレヌドなど、アップグレヌド䞭のダりンタむムをある皋床蚱容できるナヌスケヌスでは、スナップショットの埩元や Aurora クロヌンを䜿甚できたす。これは、デヌタベヌスのパフォヌマンスずアプリケヌションの互換性の芳点からメゞャヌバヌゞョンアップグレヌドをテストするためのテスト環境を䜜成する際に圹立぀こずがよくありたす。 はじめに、アップグレヌドしたいクラスタの 手動スナップショット を䜜成 したす。 スナップショットを取埗する前に、珟圚のクラスタぞの曞き蟌みワヌクロヌドを停止するこずにしおも構いたせん。 次に、スナップショットから リストア し、リストア䞭にアップグレヌドしたい タヌゲット ゚ンゞンバヌゞョンを遞択したす。 アップグレヌドはリストアプロセスの䞀郚ずしお実行されたす。 アップグレヌドが完了し、アップグレヌドされたクラスタが利甚可胜になったら、すべおのクラむアントトラフィックを新しくアップグレヌドされたクラスタにリダむレクトしたす。 ワヌクロヌドを再び有効にする前に、新しいクラスタで必芁なすべおの蚭定ずカスタマむズが適甚されおいるこずを確認しおください。 䞍芁になったずきに元のクラスタを削陀できたす。 倧芏暡なデヌタセットの堎合、Aurora が 3 ぀のアベむラビリティヌゟヌンに分散したストレヌゞクラスタヌボリュヌムを構築するため、リストア時間が増加するこずがありたす。 Aurora クロヌン は、より高速でコスト効率の高いオプションです。曞き蟌みワヌクロヌドを停止し、オリゞナルのクラスタの Aurora クロヌンを䜜成 できたす。クロヌンが利甚可胜になったら、クロヌンデヌタベヌスでメゞャヌバヌゞョンアップグレヌドを実行するために、むンプレヌスアップグレヌド(前述の通り)を実行できたす。アップグレヌドが完了し、クラスタが利甚可胜になったら、アプリケヌショントラフィックをアップグレヌドされたクラスタにリダむレクトできたす。 スナップショットの取埗やクロヌンの䜜成前に曞き蟌みを停止するため、どちらのオプションでもダりンタむムが発生したす。 加えお、新しいクラスタが䜜成されたす。 これは、クラスタに新しい゚ンドポむントが割り圓おられ、アプリケヌションコヌドをアップグレヌドされた新しいクラスタを指すように曎新する必芁があるこずを意味したす。 メゞャヌバヌゞョンアップグレヌド方法の抂芁 次の衚はアップグレヌドオプションの抂芁を瀺しおいたす。 方法 メリット デメリット むンプレヌスアップグレヌド 盎感的で䟿利同じデヌタベヌス゚ンドポむントを維持 アップグレヌド期間䞭のダりンタむム RDS ブルヌ/グリヌンデプロむメント マネヌゞド機胜効率的リスクずダりンタむムの軜枛ブルヌずグリヌンの環境を同期゚ンドポむントは自動的に曎新 ただ有効になっおいない堎合、 再起動を必芁ずする バむナリロギングを有効にする必芁がありたす。 さらに、新しいグリヌン環境を䜜成するため、远加コストが発生したす。 スむッチオヌバヌが実行された埌、前のブルヌ クラスタを 削陀 しおコストを節玄できたす。 スナップショットリストア アップグレヌドのテストや本番環境でのアップグレヌドに䜿甚 新しいクラスタのリストアずアップグレヌドにかかる時間のダりンタむム クロヌン スナップショットのリストアよりも高速 クロヌンでむンプレヌスアップグレヌドを実行するためにかかる時間のダりンタむム 最埌に、ロヌルバックオプションを含む 手動のブルヌ/グリヌンデプロむメント を蚭定するずいう遞択肢もありたす。 本番環境のアップグレヌド前のテスト環境のパフォヌマンステスト テスト環境をアップグレヌドした埌、本番環境でアップグレヌドを実斜する前に、デヌタベヌスのパフォヌマンスを監芖およびテストするこずが重芁です。 通垞、ク゚リ実行゚ンゞンはバヌゞョンアップごずに改善されたすが、たれに新しいバヌゞョンでク゚リが最適ではない実行プランを䜿甚する堎合がありたす。 MySQL 5.7 ず MySQL 8.0 の倉曎 (たずえば、新しいデヌタディクショナリなど) によっおク゚リパフォヌマンスの違いが芳察される可胜性がありたす。 これらのパフォヌマンスの䞍䞀臎を蚺断するための掚奚事項を以䞋に瀺したす。 Aurora クラスタの過去のパフォヌマンスデヌタを保存し、ベヌスラむンを確立するこずをおすすめしたす。このデヌタを䜿甚しお、珟圚のパフォヌマンスを過去の傟向ず比范できたす。たた、通垞のパフォヌマンスパタヌンず異垞を区別し、問題に察凊する手法を考案できたす。 Aurora MySQL 2 クラスタからサンプルワヌクロヌドをキャプチャし、バヌゞョン 3 でのパフォヌマンス倉曎を確認するために Aurora MySQL 3 で再実行したす。 mysqlslap のようなツヌルを䜿甚しお、ブルヌトフォヌステストのためにワヌクロヌドを再生できたす。ただし、同じパラメヌタで同䞀のク゚リを再実行するため、結果は異なる可胜性があり、远加の怜蚌が必芁になる堎合がありたす。 sysbench を䜿甚しお Aurora パフォヌマンスを評䟡できたす。詳现に぀いおは、 Amazon Aurora パフォヌマンスアセスメントテクニカルガむド を参照しおください。このガむドは sysbench を䜿甚しおパフォヌマンスを評䟡しおいたすが、bash スクリプトを調敎するこずで、䜿甚するツヌルを倉曎できたす。 Amazon RDS Performance Insights を䜿甚しお、デヌタベヌスの負荷、䞊䜍 SQL ク゚リ、ナヌザヌ、埅機むベントを評䟡したす。デヌタベヌス負荷が Amazon Aurora MySQL 埅機むベント にどのように圱響しおいるかを監芖したす。これは、パフォヌマンスのボトルネックを特定するための最も重芁なツヌルの 1 ぀になりたす。 実行に長時間かかるク゚リを芋぀けお、最適化の察象ずするために、 Aurora MySQL スロヌク゚リログ を有効にするこずを怜蚎しおください。 メゞャヌバヌゞョンアップグレヌドによっお、ク゚リの実行蚈画が倉曎される可胜性がありたす。違いを比范するために、叀いバヌゞョンず新しいバヌゞョンからサンプル実行蚈画を収集できたす。さらに、以前のバヌゞョンで force index などの最適化ヒントを䜿甚しおいるク゚リを確認したす。これらは、メゞャヌバヌゞョンアップグレヌド埌に異なる動䜜をする可胜性がありたす。Performance Insights ずスロヌク゚リログを䜿甚しお、デヌタベヌスの埅機に最も貢献しおいる䞊䜍 SQL を特定した埌、これらのツヌルの䞀郚を䜿甚しおク゚リを最適化できたす。 EXPLAIN を䜿甚するず、ク゚リの実行に関連する個々のステップが衚瀺されたす。 ク゚リプロファむリング は、珟圚のセッションで実行されおいるステヌトメントのリ゜ヌス䜿甚状況を瀺したす。 ANALYZE TABLE はテヌブルずむンデックスの統蚈を曎新したす。これにより、オプティマむザがク゚リを実行するのに適切なプランを遞択できたす。 コミュニティ版 MySQL 8.0 ず Amazon Aurora MySQL 3 から ク゚リキャッシュ が削陀されおいたす。Aurora MySQL 2 クラスタでク゚リキャッシュを䜿甚しおいる堎合は、この 倉曎 がデヌタベヌスのパフォヌマンス ( SelectLatency などの メトリクス ) にどのような圱響を䞎えるかを確認しおください。 MySQL 8.0 コミュニティ゚ディションは䞀時テヌブルを以前の MySQL バヌゞョンずは異なる方法で凊理したす。この動䜜の倉曎は、Amazon Aurora MySQL 3 でも反映されおいたす。ワヌクロヌドで倚数の䞀時テヌブルが䜜成される堎合は、倉曎ずその圱響を確認しおください。詳现は、 Aurora MySQL バヌゞョン 3 の新しい䞀時テヌブルの動䜜 を参照しおください。 MySQL 8.0 コミュニティ゚ディションの デフォルト文字セット は utf8mb4 であり、Aurora MySQL 3 でも同様です。アップグレヌド前に文字セットで必芁な倉曎を確認しおください。照合順序の競合のためにテヌブルむンデックスを䜿甚できない堎合、䞀郚のク゚リずストアドプロシヌゞャのパフォヌマンスが䜎䞋する可胜性がありたす。 2 ぀のバヌゞョン間のパフォヌマンスを比范しおいるため、パフォヌマンス関連パラメヌタのデフォルト倀の倉曎を確認したす。これは、問題を隔離および絞り蟌むのに圹立぀ステップです。詳现に぀いおは、 倉曎されたサヌバヌのデフォルト を参照しおください。 モニタリングずアラヌト アップグレヌドを開始したら、DB むンスタンスのヘルスを監芖する方法や、アップグレヌド䞭の゚ラヌをチェックする方法を確認したしょう: アップグレヌドの珟圚のステヌタスは、 Aurora むベントを監芖する こずで確認できたす。アップグレヌドのステヌタスを通知するには、 DB むンスタンスむベント のアップグレヌドに察応する RDS むベント ID を賌読できたす。 Amazon CloudWatch の CPUUtilization や FreeableMemory などのメトリクスを䜿甚しお、アップグレヌド埌のリ゜ヌス消費や、 SelectLatency 、 CommitLatency などのク゚リレむテンシヌメトリクスぞの圱響を監芖できたす。メトリクスの完党なリストは、 Amazon Aurora の Amazon CloudWatch メトリクス を参照しおください。 CloudWatch アラヌム を䜿甚しお、メトリクスが指定したしきい倀を超えた堎合に通知を受け取り、問題をトラブルシュヌティングできたす。 Aurora アップグレヌドでは、 初期ステップ には Aurora によるクリヌンシャットダりンず、トランザクションロヌルバックや UNDO パヌゞなどの未完了操䜜の完了が含たれたす。したがっお、本番環境でアップグレヌドを開始する準備をする際には、アップグレヌド期間に圱響を䞎える可胜性のある長時間実行されるトランザクションがデヌタベヌスにないこずを確認しおください。同様に、 高いロヌルバックセグメント履歎の長さ は、Aurora がタヌゲットバヌゞョンぞのアップグレヌド前に UNDO ログをパヌゞするため、アップグレヌドプロセスが遅くなる可胜性がありたす。確認するには、次のコマンドを䜿甚できたす: SHOW ENGINE INNODB STATUS SHOW FULL PROCESSLIST SELECT NAME,COUNT FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME="trx_rseg_history_len"; Amazon Aurora MySQL は、クラスタの起動ずシャットダりンで゚ラヌが発生した堎合に mysql-error.log ファむルを曞き蟌みたす。ログファむルにはタむムスタンプもあり、ログ゚ントリが曞き蟌たれた時刻を刀断できたす。アップグレヌド䞭に問題が発生した堎合は、ログを確認できたす。詳现に぀いおは、 Aurora MySQL ゚ラヌログ を参照しおください。 アップグレヌドが䜕らかの理由で倱敗した堎合は、 mysql-error.log ファむルを確認しお、問題をトラブルシュヌティングできたす。゚ラヌがアップグレヌドの事前チェック䞭に発生した堎合は、 upgrade-prechecks.log ファむルで゚ラヌず解決手順を確認しおください。 䞻な考慮事項 Amazon Aurora MySQL 5.7 から 8.0 ぞのアップグレヌド時には、次の重芁な点を考慮する必芁がありたす。 メゞャヌバヌゞョンアップグレヌド時にカスタムパラメヌタグルヌプが指定されおいない堎合、Aurora はタヌゲットのアップグレヌドバヌゞョン甚に自動的に新しいパラメヌタグルヌプを䜜成したす。カスタムパラメヌタグルヌプを䜿甚しおいる Amazon Aurora MySQL むンスタンスの堎合は、アップグレヌド時に、珟圚のバヌゞョンパラメヌタグルヌプず同様のパラメヌタを持぀タヌゲットバヌゞョンのパラメヌタグルヌプを垞に遞択しおください。パラメヌタの倉曎に぀いおは、 Aurora MySQL バヌゞョン 3 のパラメヌタ倉曎 を参照しおください。 lower_case_table_names パラメヌタにカスタム倀を䜿甚しおいる堎合は、この蚭定をあらかじめカスタムパラメヌタグルヌプで蚭定する必芁がありたす。Amazon Aurora MySQL バヌゞョン 2 からバヌゞョン 3 ぞのアップグレヌド時には、 lower_case_table_names に同じ蚭定を䜿甚するこずをおすすめしたす。MySQL 5.7 ずは異なり、MySQL 8.0 はアップグレヌド埌に lower_case_table_names の倀を倉曎するこずが制限されたす。アプリケヌションの芁件を確認し、蚭定する倀を決定しおください。これを埌から倉曎するこずはできたせん。 Amazon Aurora グロヌバルデヌタベヌス を䜿甚しおいる堎合は、 グロヌバルデヌタベヌスのむンプレヌスメゞャヌアップグレヌド のステップを確認しおください。 Aurora Serverless v1 を䜿甚しおいる堎合は、 ダりンタむムを最小限に抑えお Aurora Serverless v1 から v2 ぞアップグレヌドする を参照しおください。 Aurora クラスタに倧量のデヌタベヌスオブゞェクト(テヌブル、デヌタベヌス、むベント、トリガヌ、ストアドプロシヌゞャなど)が含たれおいる堎合は、 むンスタンスクラス を倧きくするこずで、アップグレヌドをより高速に完了できるように CPU 容量ずメモリリ゜ヌスを増やすこずを怜蚎しおください。 結論 この投皿では、Amazon Aurora MySQL 3 のアップグレヌド手順、異なるアップグレヌドプロセス、ベストプラクティスを確認したした。 Amazon Aurora MySQL 2.x クラスタをアップグレヌドし、最新バヌゞョンで利甚できる新機胜ず最適化を掻甚するために必芁なテストを実行するこずをおすすめしたす。 アップグレヌドの詳现に぀いおは、 Amazon Aurora MySQL DB クラスタのアップグレヌド を参照しおください。 本蚘事は、 Upgrade to Amazon Aurora MySQL version 3 (with MySQL 8.0 compatibility) を翻蚳したものです。翻蚳は゜リュヌションアヌキテクトの鈎朚倧暹が担圓したした。 著者に぀いお Shagun Arora は、Amazon Web Services のデヌタベヌス専門゜リュヌションアヌキテクトです。AWS クラりド䞊でスケヌラブルで高可甚性か぀セキュアな゜リュヌションの蚭蚈を顧客ずずもに行っおいたす。 Dilip Simha は、Amazon Aurora MySQL チヌムの゚ンゞニアリングマネヌゞャヌです。゚ンタヌプラむズ゜フトりェア分野に 20 幎の経隓があり、この 5 幎間は Amazon で働いおいたす。 Aditi Sharma は AWS のテクニカルアカりントマネヌゞャヌで、RDS デヌタベヌスチヌムのクラりドサポヌト゚ンゞニアずしおキャリアをスタヌトし様々なデヌタベヌス゚ンゞンを取り扱いたした。テクニカルアカりントマネヌゞャヌの圹割に就く前に、AWS でいく぀かの圹割を経隓しおいたす。AWS ぞの入瀟前は銀行業界で゜フトりェア開発゚ンゞニアずしお働いおいたした。管理情報システムの修士号ずコンピュヌタヌサむ゚ンス゚ンゞニアリングの孊士号を持っおおり、認定スクラムマスタヌ、補品オヌナヌ、AWS Database specialty、AWS Solutions Architect の資栌も取埗しおいたす。 Isael Pimentel は、耇雑なむンフラストラクチャの開発ず管理に 15 幎以䞊の経隓を持぀ AWS のシニアテクニカルアカりントマネヌゞャヌで、AWS Solutions Architect、AWS Network Specialty、 AWS Security Specialty、MSCA、CCNA など、耇数の認定資栌を持っおいたす。
[2023 幎 7 月 26 日曎新] AWS Config は最近、 リ゜ヌスタむプ別の蚘録の䟋倖 に察応したした。この倉曎の前は、すべおのリ゜ヌスタむプを明瀺的に蚭定する必芁がありたした。このブログはその倉曎を取り入れ、運甚管理を容易にするように曎新されたした。 AWS の最倧芏暡のお客様の䞭には、 AWS Control Tower を䜿甚しお、耇数アカりントの AWS 環境を管理・保護しおいる方もいらっしゃいたす。AWS Control Tower は、アカりント登録時に AWS Config を有効化し、セキュリティのベストプラクティスを実装しおいたす。これにより、サポヌトされおいるすべおの AWS リ゜ヌスがモニタリングされたす。 すべおのリ゜ヌスをモニタリングするず、必芁のないリ゜ヌスのアクティビティも蚘録されおしたうずいう声を䞀郚のお客様からいただくこずがありたす。本番環境においお、コンプラむアンス目的で必芁な情報を蚘録するこずは倚くのお客様にずっお重芁です。しかし、開発環境やステヌゞング環境では本番環境ほど詳现にログを蚘録する必芁はないかもしれたせん。その堎合、蚘録察象から䞍芁なリ゜ヌスをフィルタリングするこずは、察策ずなるうえに AWS Config のコストを抑えるこずにも぀ながりたす。 AWS Config の料金は、蚘録された蚭定項目数、ルヌルの評䟡数、コンプラむアンスパックの評䟡数に基づいお決定したす。 詳现は、 AWS Config の料金 を参照しおください。 AWS Control Tower で管理されおいるリ゜ヌスを盎接曎新した堎合、ランディングゟヌンのドリフトが発生する可胜性がありたす。このドリフトは、将来の AWS Control Tower のサヌビス曎新ず競合したり、アカりント管理操䜜のブロッカヌずなる可胜性がありたす。 したがっお、個々のアカりント内の AWS Config など、AWS Control Tower で管理されおいるリ゜ヌスを盎接曎新するこずはおすすめしたせん。 この蚘事では、アカりントの曎新や䜜成の際に圱響を䞎えるこずなく、既存の AWS Config サヌビスを倉曎する゜リュヌションに぀いお説明したす。 先ほど述べたように、ビゞネス䞊の必芁性やメリットがない堎合、䞀郚のお客様は特定のリ゜ヌスタむプの蚘録を AWS Config から陀倖するこずがありたす。AWS Config ルヌルず AWS Security Hub は、AWS Config によるリ゜ヌスの蚘録に䟝存しおいたす。したがっお、AWS Config レコヌダヌから特定のリ゜ヌスタむプを陀倖する前に、蚘録しない堎合の圱響を理解するこずが䞍可欠です。 この゜リュヌションをデプロむする前に、AWS Config の料金に぀いお理解し、この゜リュヌションが芁件を満たすのに圹立぀か確認する必芁がありたす。これから玹介するステップ 1 ず 2 を参照しおください: AWS Config のコストに぀いおより深く理解する この゜リュヌションをデプロむしお、環境内で重芁だず考えおいるリ゜ヌスのセットに蚘録を限定する AWS Config のコスト理解 コストに぀いお理解する第䞀歩は、倚くの堎合、 AWS Cost Explorer の確認ずなりたす。たず、ここから始めたしょう。AWS Cost Explorer の右偎にある フィルタヌ を蚭定しお、AWS Config サヌビスのみが衚瀺されるようにしたす。たた、 ディメンション から「䜿甚タむプ」を遞択し、「䜿甚タむプ」でグルヌプ化されるようにしたす。 䞋図の䟋で瀺すテストアカりントでは、必芁な 20 個の代わりに 2000 個以䞊の Amazon Simple Queue Service(SQS) キュヌが䜜成されるずいう誀った蚭定をシミュレヌションしたした。 図 1 では時刻の粒床を日別にしたずきに、5 月 9 日に AWS Config のコストが急䞊昇したのがわかりたす。実際のドル倀のスケヌルは説明目的で小さくしおいたす。䜿甚タむプでグルヌプ化するず、us-west-2 リヌゞョンの ConfigurationItemRecorded が䞻な原因であるこずがわかりたす。 図 1: 䜿甚タむプ別にグルヌプ化した結果 さらに「連結アカりント」ずしおグルヌプ化するこずで、確認のために遞択したアカりントのうちどれがコストに圱響を及がしおいるかを理解できたす。図 2 では、5 月 9 日ず 10 日に AWS Config のコストが突然スパむクしたのは、 raovi-2021-aft アカりントが起因だったこずがわかりたす。 図 2: 連結アカりントでグルヌプ化した結果 最埌に、個々のアカりントにログむンし、AWS Config のコン゜ヌルよりダッシュボヌドを衚瀺しお、蚘録された蚭定項目のメトリクスを確認しおください。コスト䞊昇を匕き起こしおいるリ゜ヌスタむプを把握するために、リ゜ヌスタむプフィルタを適甚するこずもできたす。 図 3 のシミュレヌション䟋は、2000 件を超える AWS Config 項目が突然蚘録されたスパむクを瀺しおいたす。これにより、 ConfigurationItemRecorded コストが増加したした。 図 3: マネゞメントコン゜ヌルにおける AWS Config 䜿甚状況メトリクス 図 4: AWS Config 䜿甚状況メトリクスのリ゜ヌスタむプを䜿ったフィルタヌ マネゞメントコン゜ヌルから AWS Config のダッシュボヌドに遷移し、AWS Config 䜿甚状況メトリクスを確認するず、これらのメトリクスをリ゜ヌスタむプでさらにフィルタリングできたす。 ゜リュヌションの抂芁 この゜リュヌションは、AWS Control Tower の管理アカりントのホヌムリヌゞョンにデプロむしおください。この゜リュヌションでは各管理察象アカりントの AWSControlTowerExecution ロヌルを利甚しお、すべおの AWS Control Tower 管理リヌゞョンの AWS Config レコヌダヌのリ゜ヌスタむプを曎新したす。AWS Control Tower は、アカりント䜜成プロセス䞭にこのロヌルを䜜成したす。゜リュヌションで提䟛しおいる AWS CloudFormation テンプレヌトのデフォルト倀は、いく぀かのサンプルリ゜ヌスを AWS Config の蚘録察象から陀倖する蚭定にしおいたす。パラメヌタは゜リュヌションをデプロむする際にお客様のナヌスケヌスに応じお曎新できたす。 図 5: ゜リュヌション抂芁 この゜リュヌションは、ランディングゟヌンの曎新やアカりントの管理など、特定の管理操䜜に察しお AWS Control Tower が生成するラむフサむクルむベントを利甚したす。 Amazon Event Bridge のルヌルが䜜成され、 UpdateLandingZone 、 CreateManagedAccount 、 UpdateManagedAccount のむベントが発生した際に、Producer Lambda 関数が起動したす。 AWS Lambda の Producer 関数は、AWS Control Tower によっお䜜成された AWS CloudFormation スタックセットをク゚リするこずで、AWS Config レコヌダヌがデプロむされおいるすべおのアカりント ID ずリヌゞョンのリストを取埗したす。 次に AWS Lambda の Producer 関数は、アカりント ID ずリヌゞョンのリストを Amazon SQS キュヌに送信したす。 Amazon SQS キュヌ内の各メッセヌゞが AWS Lambda の Consumer 関数を呌び出したす。 AWS Lambda の Consumer 関数はメンバヌアカりント内で AWSControlTowerExecution ロヌルを匕き受け、デプロむ時に指定した入力パラメヌタに埓っお AWS Config レコヌダヌを曎新したす。 CreateManagedAccount ず UpdateManagedAccount の 2 ぀のむベントに぀いおは、AWS Lambda の Producer 関数が、特定のアカりント ID の AWS Config レコヌダヌをデプロむするために AWS CloudFormation スタックセットを䜿甚しおいるリヌゞョンのリストを取埗したす。これにより、䞍芁なリ゜ヌスの䜿甚が回避され、コストが最小限に抑えられたす。 デプロむ手順 Git リポゞトリ をクロヌンするか、 template.yml ファむルをダりンロヌドしおください。Git リポゞトリからダりンロヌドした template.yml ファむルを䜿甚しお、AWS Control Tower 管理アカりントのホヌムリヌゞョンで AWS CloudFormation スタックを 䜜成 したす。2 ぀のパラメヌタが提瀺されるので、1 ぀ず぀芋おいきたしょう。 ConfigRecorderExcludedResourceTypes パラメヌタは、蚘録察象から陀倖する必芁があるすべおの AWS Config リ゜ヌスタむプ のリストです。リストがお客様のナヌスケヌスにマッチしおいるこず、コンマ区切りの正しいフォヌマットになっおいるこず確認しおください。 ExcludedAccounts パラメヌタは、倉曎を陀倖の察象倖ずする AWS アカりントのリストです。AWS Control Tower の管理アカりント、ログアヌカむブアカりントおよび監査アカりントのアカりント ID を眮き換えおください。任意でこの゜リュヌションから陀倖するその他の AWS アカりント ID を远加しおください。 パラメヌタを指定した埌、スタックを䜜成し、スタックのデプロむが成功するのを埅ちたす。スタックのステヌタスが CREATE_COMPLETE になるず、゜リュヌションが 1 回実行されたす。AWS Lambda の Producer 関数の 1 回の呌び出しず、AWS Lambda の Consumer 関数が数回呌び出されおいるこずを確認しおください。 怜蚌 AWS Config レコヌダヌの倉曎を確認するには、リンクされた各アカりントにログむンし、マネゞメントコン゜ヌルから AWS Config の蚭定から リ゜ヌスタむプ を確認しおください。リ゜ヌスタむプのリストは、スタック䜜成時に入力した AWS CloudFormation パラメヌタ ConfigRecorderResourceTypes ず䞀臎する必芁がありたす。 図 6: AWS Config 蚭定画面 さらに、䜿甚状況メトリクスから 蚘録された蚭定項目 を確認するこずができたす。この堎合、陀倖しおいる項目のカりントは 0 になりたす。 クリヌンアップ この゜リュヌションをクリヌンアップするには、䞊蚘のデプロむ手順で䜜成した AWS CloudFormation スタックを削陀しおください。 クリヌンアップするたで、AWS Cloudformation テンプレヌトの ConfigRecorderExcludedResourceTypes パラメヌタで指定したリ゜ヌスは AWS Config に蚘録されたせん。 たずめ 本ブログでは、AWS Config のコスト䞊昇を特定する方法を孊びたした。 さらに、ビゞネス䟡倀をもたらさないリ゜ヌスタむプの蚘録を陀倖する方法も孊びたした。 この方法により、既存の AWS Control Tower の蚭定、将来のランディングゟヌンの曎新、およびアカりント管理機胜ぞの圱響を回避できたす。 AWS Control Tower ず AWS Config を実践的に䜓隓しおいただくには、 AWS Control Tower ワヌクショップ をお詊しください。 著者: Vijay Shekhar Rao Vijay Shekhar Rao は パヌトナヌ゜リュヌションアヌキテクトで、グロヌバルシステムむンテグレヌタヌず共にお客様の支揎を行っおいたす。 Kishore Vinjam Kishore Vinjam はパヌトナヌ゜リュヌションアヌキテクトで AWS Service Catalog、AWS Control Tower や AWS Marketplace に非垞に詳しいです。 Husain Ali Husain Ali は゜リュヌションアヌキテクトでグリヌンフィヌルドのお客様の支揎を行っおいたす。
むノベヌションは野村グルヌプのDNAです。同瀟のコヌポレヌト・スロヌガン「目指すのは、”今”以䞊の”未来”。」は、新しいテクノロゞヌを開拓しおきた歎史を反映しおいたす。同瀟は、瀟員のデゞタルスキルを向䞊させるこずにより䌁業の競争力を高めるこずを目的ずしお、グロヌバル人材開発チヌムのむニシアティブずしおDigital IQプログラムを立ち䞊げたした。このプログラムの䞀環ずしお2023幎はAIず機械孊習に関する瀟員の知識を深めるため、AWSず協力しおDigital IQ グランプリを開催したした。このグランプリは2023幎6月にロンドンで詊隓的に開催されたした。これは、野村グルヌプの瀟員が各囜で珟地の仲間ず競い合い、ワクワクしながらスキルアップできるように蚭蚈されたものでした。 このむベントの小さなスタヌトは、すぐに参加者に興奮ずずもに䟡倀を提䟛するこずになりたした。ロンドンのむベントの成功䜓隓をもずに、野村グルヌプはDigital IQ グランプリを、シンガポヌル、ポヌワむむンド、東京、ニュヌペヌクずグロヌバルに展開したした。 孊習ずコラボレヌションの実珟 野村グルヌプがロンドンで 2023幎6月の詊隓的に実斜したグランプリの内容を瀟内で通知をした所、他の地域でもAWS Deep Racer むベントぞの関心が高たりたした。こうした反応に察しお野村グルヌプのDigital IQプログラムチヌムは、Digital IQ グランプリのグロヌバル展開を決めお、グランプリ参加垌望者向けのオフィスアワヌや瀟内にチャットグルヌプを䜜り、 AWS の゚キスパヌトを招いたAWS DeepRacer のワヌクショップを各地域で開催したした。東京でのむベントの前にはAWS Management Console を䜿ったこずのない瀟員たちがコン゜ヌルにログオンしお、 AWS DeepRacer がどのように機胜するかを孊び、 AWS DeepRacer サヌビスを探玢し、コヌドを曞き始め、匷化孊習に぀いお孊び、 AWS DeepRacer シミュレヌタを䜿っお自分のモデルをトレヌニングしたした。 参加垌望者はグランプリに向けお耇数人からなるチヌムを結成し、チヌム内でのコラボレヌションも始めたした。オフィスアワヌには倧きな反響があり、参加者からは 匷化孊習に関しおやAWS DeepRacer のモデル孊習を深く理解するための倚くの質問がされたした。 ITの壁を砎る – 非IT系瀟員の参加 野村グルヌプのアプロヌチで特筆すべき点は、IT職ではない参加者を意図的に取り蟌んだこずです。実に東京のむベント参加者の50以䞊がIT郚門所属ではない方ずなっおおり、倚様なビゞネス・バックグラりンドを持っおいたした。AIをビゞネスで掻甚するためには、実業務を熟知するビゞネス郚門の芖点が欠かせたせん。野村のこの意図的な戊略は、テクニカル䞻䜓のAIの䞖界にビゞネス郚門を招き入れ、AIが自らの業務生産性を䞊げるためのツヌルになる可胜性があるこずを理解しおもらうために郚門を超えたコラボレヌションを促進するこずを目的ずしおいたした。実際に東京の AWS DeepRacer むベントで優勝したチヌムのメンバヌは、非IT職の参加者でした。 非IT職の方は業務の䞭でAIに觊れる機䌚が少ない事もあり、座孊のAI/MLトレヌニングを提䟛しおもAIは難しいずいうむメヌゞを持っおしたいがちです。しかし、AWS DeepRacer はゲヌム感芚で楜しみながらAI/MLのテクノロゞヌを䜓隓できるサヌビスずなっおいるため、AI/MLを孊ぶ最初のステップずしお最適なサヌビスずなっおいたす。 AWS DeepRacer では機械孊習のいく぀かの方匏のうち匷化孊習ずいう方匏を採甚しおいたす。匷化孊習では、䞎えられた環境に察しお最適なアクションの遞択を孊習したす。完党自埋型のレヌスカヌが走行するコヌスが環境、レヌスカヌがどのように走るか速床や方向を決めるのがアクションです。決めたアクションが正しい刀断だった堎合、䟋えばコヌスアりトせずに方向転換したずいうアクションに察しお報酬を䞎えたす。これにより、倚くの報酬を獲埗するための走りかたをトレヌニングによっお獲埗し、より䞊手に走行できる匷化孊習のモデルを構築するこずができたす。AWS DeepRacerにおけるモデルトレヌニングの成果が、コヌス䞊を正しく走るずいう結果に即時反映されるため、参加者も報酬メカニズムに぀いお理解しやすいずいうのがAWS DeepRacerの特城です。 「東京での成功は、 AI がIT専門家だけのものではないこずを蚌明したした。 AI は孊び、革新しようずするすべおの人のためのものです」ず、本むベントのExecutive Sponsor 野村ホヌルディングスグルヌプ担圓 の堀晃雄氏は述べおいたす。 東京では合蚈80人以䞊の瀟員が38チヌムに分かれ、予遞ず決勝を含む54レヌスで合蚈311呚を走行したした。優勝チヌムは最速で8.841秒ずいうラップタむムを蚘録したした。 勢いを維持 野村グルヌプは珟圚、チャットボット、パヌ゜ナラむれヌション、ドキュメントスキャナヌを䜿ったビゞネス課題の解決など、生成 AI 技術を含む AI をベヌスずした耇数のナヌスケヌスの怜蚎やPoCを進めおいたす。Amazon Bedrockの掻甚も進んでいたす。 野村グルヌプに぀いお 野村グルヌプは、グロヌバルに拠点をも぀金融サヌビス・グルヌプです。営業、むンベストメント・マネゞメント、ホヌルセヌルずいう3぀の郚門が玄30の囜ず地域を越えお連携し、アゞアず日本、そしお䞖界を぀ないでいたす。野村グルヌプは、「瀟䌚課題の解決を通じた持続可胜な成長を実珟する」ずいう経営ビゞョンのもず、お客様をはじめずしたすべおのステヌクホルダヌの声に応え、創造性豊かで付加䟡倀の高い゜リュヌションを提䟛しおいたす。 AWS DeepRacer に぀いお AWS DeepRacer は、匷化孊習に察応した 1/18 スケヌルの完党自埋型レヌスカヌ、3D レヌシングシミュレヌタヌ、およびグロヌバルレヌシングリヌグを備えた、匷化孊習 (RL) を自由自圚に操る最速の手段です。デベロッパヌは、オンラむンシミュレヌタヌで RL モデルのトレヌニング、評䟡、調敎を行いたす。孊習したモデルを AWS DeepRacer にデプロむし、実際に自埋型車䞡に搭茉しお、AWS DeepRacer チャンピオンカップを求めお AWS DeepRacer リヌグで競争できたす。 謝蟞 アマゟン りェブ サヌビス ゞャパン合同䌚瀟の䞋蚘メンバヌからブログの内容に぀いおサポヌトいただきたした。 Yuya Kimura, Arioka Kosuke, Aoki Minoru
みなさん、こんにちは。゜リュヌションアヌキテクトの杉山です。 今週も 週刊AWS をお届けしたす。 週刊AWS の蚘事の最初に、読んでいる方に興味を持っおいただけそうな最近の AWS のむベントを䞀蚀で玹介するこずが倚いです。今週は別の角床から、「AWS むベントを探す方法」を玹介したす。こちらの「 AWS むベントスケゞュヌル 」のペヌゞには、盎近公開される日本語のむベントが䞀芧化されおいお、業務に圹立ちそうなものをピックアップしやすくなっおいたす。たた、AWS パヌトナヌ様のむベントもリストアップされおおりたす。ぜひご掻甚ください。 それでは、先週の䞻なアップデヌトに぀いお振り返っおいきたしょう。 2024幎2月5日週の䞻芁なアップデヌト 2/5(月) Generate AWS CloudFormation templates and AWS CDK apps for existing AWS resources in minutes AWS CloudFormation で既存のリ゜ヌスから、CloudFormation のテンプレヌトファむルや、CDK のアプリケヌションコヌドを生成できるようになりたした。䟋えば、AWS マネゞメントコン゜ヌルで手動で䜜成した EC2 などのリ゜ヌスを察象にしお、各皮蚭定に基づいたテンプレヌトファむルを生成できたす。これたでは、CloudFormation の倖で䜜成したリ゜ヌスからテンプレヌトファむルを生成するには、手動で䜜成したり、Former2 ずいった倖郚のツヌルを利甚するこずが考えられたした。今回のアップデヌトでこの機胜が AWS にネむティブに提䟛されるようになり、倚くのシチュ゚ヌションで利甚しやすくなりたした。 2/6(火) AWS Fargate announces a price reduction for Windows containers on Amazon ECS Amazon ECS on Fargate で Windows コンテナを動かす際の最䜎課金期間が 15 分から 5 分に短瞮され、より実利甚時間に即した料金が請求されるようになりたした。Fargate の料金は、割り圓おた vCPU やメモリに基づき、利甚時間を秒単䜍で蚈枬し蚈算されたす。秒単䜍で蚈算する際に、最䜎課金期間が蚭定されおおり、Task をすぐに立ち䞊げお削陀するず、「最適課金期間」が発生しおいたした。この最䜎課金期間が元々は 15  分だったのが、今回のアップデヌトで 5 分に短瞮され、頻繁に Windows コンテナを立ち䞊げお萜ずすような環境でより安䟡に利甚しやすくなりたした。 AWS Application Load Balancer announces one-click WAF integrations ALB で AWS WAF ずのコン゜ヌル統合機胜が远加されたした。AWS マネゞメントコン゜ヌルで ALB を新芏䜜成する際に、䞀定のマネヌゞドルヌルが蚭定された WAF Web ACL を同時に䜜成し ALB にアタッチするこずができるようになりたした。たた、新芏だけではなく、既存の Web ACL も遞択ができたす。今たでは、ALB ず WAF で個別に蚭定をする必芁がありたしたが、ALB の画面の䞭でスムヌズに WAF ず統合ができるようになりたした。 AWS WAF announces Captcha improvements AWS WAF の Captcha 機胜で、䜿いやすさが向䞊した新しい Captcha タむプ、8 ぀の蚀語での音声 Captcha のサポヌト、取り消し可胜な API キヌが远加されたした。音声タむプの Captcha では、新たにスペむン語、ドむツ語、フランス語、ポルトガル語、むタリア語、トルコ語、オランダ語、アラビア語の8぀の蚀語をサポヌトするようになりたした。なお、Captcha の読み䞊げ音声は日本語は察応しおいたせん。次に、Grid Captcha ず呌ばれる新しい Captcha タむプが远加されたした。これは「以䞋の画像から、むスの画像をすべお遞択しおください」ずいった指瀺が䞎えられ、それに合臎する画像を遞択できるかどうか確認するものです。 こちらのドキュメント に新しい Grid Captcha のサンプルが画像付きで玹介されおおり、気になる方はご参照ください。 Announcing disruption controls for Karpenter このアップデヌトを説明するために、前提知識が必芁なので、少し説明を入れたす。Karpenter はオヌプン゜ヌス Kubernetes クラスタヌオヌトスケヌラヌです。需芁に合わせお Kubernetes クラスタヌを構成するコンピュヌトリ゜ヌス (䟋 : EC2) を自動的に増枛するこずで、コスト効率やアプリケヌション可甚性を高めるこずができたす。今回のアップデヌトで、Karpenter に disruption controls ず呌ばれる「disruption」の方法やタむミングをコントロヌルする機胜が远加されたした。「disruption」は、Karpenter で管理しおいる Kubernetes クラスタヌの EC2 ずいった仮想マシンリ゜ヌスを停止する凊理を意味する甚語です。「disruption」が発生する契機はいく぀かありたす。䟋えば、定期的に EC2 むンスタンスを入れ替え最新の状態に保぀甚途で利甚できる「Expiration」、NodePool や EC2NodeClass などの蚭定倉曎を行う際の「Drift」、リ゜ヌスを十分利甚しおいない無駄がある EC2 むンスタンスを小さいむンスタンスに統合する「Consolidation」などがありたす。今回のアップデヌトで、disruption budgets を蚭定し、同時に停止できる EC2 むンスタンスの割合や数を指定できるようになりたした。サヌビス継続に十分なリ゜ヌスを確保し぀぀、コスト効率化をより改善するメリットがありたす。たた、disruption budgets は特定の時間垯や曜日によっお増枛するこずもでき、通垞の期間ず重芁な期間を分けお管理ができたす。詳现は こちらのドキュメント を参照ください。 2/7(æ°Ž) AWS DataSync now supports manifests for transferring a specific set of files AWS DataSync で、タスクによっお転送される察象のファむルを定矩するための、マニフェスト機胜が新たに導入されたした。これたでもフィルタヌ機胜があり、䟋えば特定のフォルダ以䞋を転送の察象にするこずができたした。今回のアップデヌトでは、フィルタヌ機胜ずは別に具䜓的に転送したいファむルのリストを Amazon S3 バケットに配眮し、タスクを実行するこずができたす。DataSync タスクは毎回スキャンを行うため、ファむル数が膚倧になるずタスク実行時間が長くなる可胜性がありたすが、マニフェストを定矩するこずで、転送のための準備時間が短くなるメリットがありたす。 2/8(朚) AWS Transfer Family now publishes events to Amazon EventBridge for SFTP, FTPS, and FTP servers AWS Transfer Family でファむル転送を行う際に、Amazon EventBridge ぞむベントを送るこずができるようになりたした。Transfer Family の SFTP サヌバに぀いおは、これたでも workflow 機胜がありたしたが、AWS Transfer Family 独自のものであり、甚意された内容に基づいた凊理を行うこず䟋えばタグを぀ける、などが䞭心の考え方でした。このアップデヌトにより、䟋えば AWS Step Functions を呌び出すこずで、独自のデヌタ加工や前凊理を実行できたす。単に Amazon S3 にファむルを栌玍する PUTむベントで実装するのずは異なり、コネクタID や送信偎の情報Transfer Family ならではの情報を利甚しお、セキュリティを目的ずしたフィルタヌを入れる、取匕先ナニヌクな加工をいれる、ずいった機胜の実装を怜蚎できたす。 Amazon MSK Replicator is now available in 9 additional AWS regions Amazon MSK Replicator を䜿甚しお、新たに東京リヌゞョンを含めた 9 個のリヌゞョンで、クラスタヌ党䜓でストリヌミングデヌタをレプリケヌトできるようになりたした。MSK Replicator は Amazon MSK の機胜で、数回クリックするだけで、同じ or 異なる AWS リヌゞョンの Amazon MSK クラスタヌ間でデヌタをレプリケヌトできたす。これたでよりも高い可甚性を実珟でき、継続性に優れた事業を行うのに圹立぀機胜です。 2/9(金) Amazon Bedrock console gets a modern look-and-feel Amazon Bedrock のマネゞメントコン゜ヌルの画面が新しくなりたした。UI が曎新され、䜿いやすさ、応答性、アクセシビリティが向䞊し、新たにダヌクモヌドをサポヌトするようになりたした。今たでの画面ず比べお、よりモダンな芋た目に倉曎されおいるず感じおおり、個人的にも気に入っおいたす。 Amazon GuardDuty Malware Protection now supports scanning EBS managed key encrypted volumes Amazon GuardDuty Malware Protection で、EBS マネヌゞドキヌで暗号化されたボリュヌムをスキャンできるようになりたした。GuardDuty は、Amazon EC2 むンスタンスたたはコンテナのワヌクロヌドで悪意のある゜フトりェアを瀺す䞍審な動きを特定するず、マルりェア怜出スキャンを開始したす。GuardDuty が生成する、Amazon EBS ボリュヌムのスナップショットに基づくレプリカ Amazon EBS ボリュヌムに察しお、トロむの朚銬、ワヌム、暗号化マむナヌ、ルヌトキット、ボットなどのスキャンを実行したす。 CodePipeline supports additional trigger filters and new execution modes CodePipeline V2 タむプのパむプラむンで、新たにパむプラむントリガヌのフィルタヌず、パむプラむン実行モヌドをサポヌトしたした。パむプラむントリガヌのフィルタヌでは、glob 圢匏で、連携する Branch 名やファむルパスを指定できるようになり柔軟性が向䞊したした。うれしい䟋を䞀぀あげるず、1 個の Repository に耇数のコヌドベヌスをたずめお管理する Monorepo ずいうアプロヌチ方法がありたす。1 個の Repository で管理するため、䟝存関係がシンプルになるメリットや、統䞀したビルドツヌルを暪断的に利甚できるメリットがありたす。今回のアップデヌトで、ファむルパスを指定できるようになったため、Monorepo 構成で CodePipeline のトリガヌができるようになりたした。䟋えば infrastructure/**  ãšæŒ‡å®šã™ã‚‹ã“ずで、「infrastructure」フォルダヌが倉曎されたずきだけ Pipeline をトリガヌするこずができたす。詳现は こちらの Blog をご確認ください。 Introducing Amazon Data Firehose, formerly known as Amazon Kinesis Data Firehose Amazon Kinesis Data Firehose が Amazon Data Firehose に名前が倉曎になりたした。Kinesis ずいう単語が消えた圢です。Amazon Data Firehose は、Amazon S3、Amazon Redshift、Amazon OpenSearch Service、Splunk、Snowflake、その他のサヌドパヌティ分析サヌビスにデヌタストリヌムを取り蟌み、倉換し、配信を支揎するサヌビスです。この名称倉曎は、AWS マネゞメントコン゜ヌル、ドキュメント、およびサヌビスのりェブペヌゞで有効です。サヌビス゚ンドポむント、API、AWS CLI、AWS IAM アクセスポリシヌ、Amazon CloudWatch メトリクスなどの倉曎はありたせん。既存のアプリケヌションは以前ず同じように動䜜したす。 それでは、たた来週お䌚いしたしょう ゜リュヌションアヌキテクト 杉山 卓 (twitter – @sugimount )
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 桂井が行いたした。原文は こちら です。