TECH PLAY

AWS

AWS の技術ブログ

å…š3023ä»¶

2023 幎 7 月に公開された AWS Black Belt オンラむンセミナヌの資料及び動画に぀いおご案内させお頂きたす。 動画はオンデマンドでご芖聎いただけたす。 たた、過去の AWS Black Belt オンラむンセミナヌの資料及び動画は「 AWS サヌビス別資料集 」に䞀芧がございたす。 YouTube の再生リストは「 AWS Black Belt Online Seminar の Playlist 」をご芧ください。 Amazon Personalize 基瀎線 レコメンドを機械孊習の専門知識無しで利甚できる Amazon Personalize の䜿い方を玹介したす 資料 PDF  | 動画 YouTube  察象者 レコメンドの導入を怜蚎されおいる方 本 BlackBelt で孊習できるこず Amazon Personalize がなぜ必芁なのかず基本的な䜿い方 スピヌカヌ 近藀健二郎 ゜リュヌションアヌキテクト Amazon Neptune ではじめるグラフデヌタベヌス入門 近幎泚目を集めおいるグラフデヌタベヌスに぀いお、 Amazon Neptune の䟿利機胜や簡単なク゚リの実行結果を亀えながらご玹介したす。 資料 PDF  | 動画 YouTube  察象者 デヌタベヌスに関する基本的な知識を持っおいる方 デヌタベヌスに関連する開発や運甚経隓を持っおいる方 グラフデヌタベヌスに興味を持っおいる方 Amazon Neptune に興味を持っおいる方 本 BlackBelt で孊習できるこず グラフデヌタベヌスの抂念やナヌスケヌス グラフデヌタベヌスのク゚リ基瀎知識 Amazon Neptune の抂芁 グラフデヌタベヌスの孊習方法 スピヌカヌ 朚村達也 ゜リュヌションアヌキテクト DX の加速に向けた AWS クラりド導入フレヌムワヌク (AWS CAF) の掻甚 AWS クラりド導入フレヌムワヌク (AWS CAF) は、AWS の経隓ずベストプラクティスを掻甚しおおり、AWS の利甚によるデゞタルトランスフォヌメヌション (DX) ずビゞネスの成果の加速を促すフレヌムワヌクです。本セミナヌでは、AWS CAF を掻甚しおいただくために、そのホワむトペヌパヌを読み解くための、コツやポむントを玹介したす。 資料 PDF  | 動画 YouTube  察象者 DX 掚進の斜策を怜蚎䞭の システム / DX 郚門の方 クラりド掻甚を䜓系的に進めたい IT 担圓者、たたは CCoE の方 オンプレミスずクラりドの考え方の違いを確認したいシステム郚門の方 本 BlackBelt で孊習できるこず AWS クラりド導入フレヌムワヌク (AWS CAF) の読み解く方法を孊習でき、クラりドを掻甚したデゞタルフォヌメヌションDXの進め方を孊ぶこずができたす。 スピヌカヌ 釈迊郡䞀郎 カスタマヌ゜リュヌションマネヌゞャヌ モダナむれヌションプロゞェクト立ち䞊げに向けたポむント ここ数幎でモダナむれヌションずいう蚀葉が浞透し、実際に取り組たれおいる事䟋が増えおいたす。䞀方で、抜象的なために党容が把握しずらい、怜蚎したが関係者の共通認識がはかれないたた進めた結果頓挫しおしたった、どこから手を぀ければいいか分からない、ずいった声も聞くようになっおきたした。本セッションでは、モダナむれヌションプロゞェクトの立ち䞊げに向けお、事前に怜蚎・考慮すべきポむントに぀いおお話したす。 資料 PDF  | 動画 YouTube  察象者 モダナむれヌションに取り組むうえで、䌁画フェヌズでの怜蚎内容に関心があるリヌダヌ、責任者の方 システムのモダナむれヌションに取り組もうずしおいるが、その察象遞定や方針策定のポむントを確認したい方 本 BlackBelt で孊習できるこず モダナむれヌションプロゞェクト立ち䞊げ前に怜蚎・考慮すべきポむント モダナむれヌションに取組む䞊での察象遞定や方針策定の進め方 スピヌカヌ 平岩梚果 ゜リュヌションアヌキテクト Modernize Enterprise Java Application ゚ンタヌプラむズにおける Java アプリケヌションをモダナむれヌションするポむントやアプロヌチに぀いお、AWS の各皮サヌビスの組み合わせ方を玹介しながら理解を深めたす。 資料 PDF  | 動画 YouTube  察象者 Java アプリケヌションのモダナむれヌションに関心のある、IT アヌキテクトや゜フトりェア゚ンゞニア Java アプリケヌションの維持運甚に課題を感じおいる方 本 BlackBelt で孊習できるこず ゚ンタヌプラむズの Java アプリケヌションの構成芁玠や凊理方匏に察し、AWS の各皮サヌビスを組み合わせるこずでどのようなモダナむれヌションが実珟できるのか、どのようなメリットがあるのか、に぀いお理解を深めるこずができたす。 スピヌカヌ 倉元貎䞀 ゜リュヌションアヌキテクト AWS CDK 抂芁 (Basic #1) AWS Cloud Development Kit (AWS CDK) の抂芁から開発の流れたでをご玹介したす。AWS CDK で Amazon VPC をデプロむするデモも含んでいたす。 資料 PDF  | 動画 YouTube  察象者 むンフラ構築の手間や䜜業ミスにお悩みの方 むンフラを含めたアプリ党䜓を玠早くデプロむしたい゚ンゞニア プログラミングの知識がある、あるいはこれから孊ぶ方 本 BlackBelt で孊習できるこず Infrastructure as Code の基瀎から、AWS CDK のコンセプトや誕生ストヌリヌ、開発の流れたでを抂芳できたす。 スピヌカヌ 高野賢叞 ゜リュヌションアヌキテクト AWS CloudFormation#1 基瀎線 AWS CloudFormation は、むンフラストラクチャをコヌドずしお扱うこずで、AWS およびサヌドパヌティヌのリ゜ヌスをモデル化、プロビゞョニング、管理するこずができたす。 本セミナヌは、AWS CloudFormation に぀いお解説するシリヌズの初回である基瀎線です。 資料 PDF  | 動画 YouTube  察象者 AWS CloudFormation をこれから孊ぶ方、抂芁をお知りになりたい方 本 BlackBelt で孊習できるこず AWS CloudFormation を扱う䞊で必芁になる甚語や、基本機胜に぀いお解説しおいたす。 AWS CloudFormation の基本的な䜿い方に぀いお孊習いただけたす。 スピヌカヌ 犏井敊 パヌトナヌ゜リュヌションアヌキテクト Amazon GameLift FlexMatch マルチプレむダヌゲヌム甚のマネヌゞドなマッチメむキングサヌビス Amazon GameLift FlexMatch に぀いお網矅的に解説したす 資料 PDF  | 動画 YouTube  察象者 マッチメむキングの導入を怜蚎されおいる方 珟行のマッチメむキングの仕組みに課題を感じおいる方 本 BlackBelt で孊習できるこず Amazon GameLift FlexMatch の抑えおおきたい抂念ず仕組みに぀いお網矅的に孊習できたす スピヌカヌ 秋山呚平 ゜リュヌションアヌキテクト 今埌の Black Belt オンラむンセミナヌ たた、珟時点で予定されおいる今埌の Black Belt オンラむンセミナヌに぀いおは以䞋の通りです。 公開月 タむトル 登壇予定者 2023-08 AWS Cloud Development Kit (CDK) 開発の基瀎 ゜リュヌションアヌキテクト 高野 賢叞 2023-08 AWS Control Tower 基本線 ゜リュヌションアヌキテクト 桂井俊朗 2023-08 AWS Control Tower 手順線 既存 Organizations での有効化 クラりドサポヌト゚ンゞニア 倧西朔 2023-08 Amazon CloudFront ( レポヌト / モニタリング / ロギング線 ) ゜リュヌションアヌキテクト 長谷川玔也 2023-08 Amazon Personalize 応甚線 ゜リュヌションアヌキテクト 近藀健二郎 2023-09 AWS Batch HPC スペシャリスト゜リュヌションアヌキテクト 小林広志 2023-09 Amazon Managed Grafana ゜リュヌションアヌキテクト 倧井友䞉 2023-09 Amazon Kinesis Video Streams 基瀎線 ゜リュヌションアヌキテクト 宇䜐矎雅玀 2023-09 Amazon Kinesis Video Streams 応甚線 IoT スペシャリスト゜リュヌションアヌキテクト 䞉平悠磚 2023-09 AWS SimSpace Weaver コンセプト線 ゜リュヌションアヌキテクト 阿南麻里子 2023-09 Virtual Andon on AWS ゜リュヌションアヌキテクト 山田航叞 2023-09 ミニチュア工堎デモ : AWS IoT によるデヌタ集玄ず可芖化 ゜リュヌションアヌキテクト 鈎朚健吟 2023-09 AWS Key Management Service セキュリティ゜リュヌションアヌキテクト 平賀敬博 2023-09 AWS Secrets Manager ゜リュヌションアヌキテクト 抌川什 2023-09 Amazon GameLift FleetIQ ゜リュヌションアヌキテクト 安藀怜倮  
アバタヌ
デゞタルの力で地域掻性化を目指すデゞタル田園郜垂囜家構想に基づき、それぞれの地域の瀟䌚課題の解決や、その地域の匷みや特色を掻かしたデゞタルトランスフォヌメヌションDXが加速しおいたす。たた2021幎9月のデゞタル庁発足埌、ガバメントクラりドの導入が各自治䜓で本栌的に進み始めおいたす。䞀方でそれを掚進すべきデゞタル人材の䞍足は倧きな課題です。 2006幎に他瀟に先駆けおサヌビスを開始しお以来、䞖界で最も包括的か぀幅広く採甚されたクラりドサヌビスを提䟛するアマゟン りェブ サヌビス以䞋、AWSは、クラりドサヌビスの提䟛にずどたらず、デゞタル人材の育成支揎にも取り組んでおり、最新のデゞタルテクノロゞヌやグロヌバルの知芋の提䟛などを通じお、地域経枈掻性化や地域創生に向けたDXの加速を支揎しおいたす。 アマゟン りェブ サヌビス ゞャパン合同䌚瀟以䞋、AWSゞャパンでは、党囜の自治䜓や地域行政におけるむノベヌションを支揎し、より良い瀟䌚ず垂民生掻の実珟に貢献すべく、様々な自治䜓、関係団䜓ずの連携を図っおいたす。2022幎9月には぀くば垂ず研究開発型スタヌトアップの成長加速に向けた連携協定、たた、同幎同月に浜束垂ずデゞタル・スマヌトシティ浜束の実珟に向けた連携協定、2023幎5月には新期県ず地域産業の掻性化に向けた包括的な連携協定を締結したした。そしおこのたび、地域創生に向けた自治䜓におけるDXの加速を支揎するため、AWSゞャパンは2023幎8月17日に北九州垂ず連携協定を締結したした。 アマゟン りェブ サヌビス ゞャパン合同䌚瀟 執行圹員 パブリックセクタヌ 統括本郚長 宇䜐芋 朮は次のように述べおいたす。「北九州垂は『デゞタルで快適・䟿利な幞せなたち』ずいうミッションの実珟を目指しお、垂の行政および地域産業党䜓でデゞタルトランスフォヌメヌションDXに取り組たれおいたす。たた、同垂は地域のポテンシャルや匷みを生かした独自の戊略を打ち出し、“バックアップ銖郜構想”の実珟や宇宙産業の掚進に力を入れおいたす。これらを支揎する今回のむニシアチブは、デゞタル田園郜垂囜家構想が目指す地域創生の垃石ずなるこずでしょう。北九州垂ずの連携を通じお AWS のクラりドテクノロゞヌず倚様な支揎プログラムを提䟛し、北九州の目指すミッションに向けお䌎走できるこずを心から嬉しく思いたす」   写真巊AWSゞャパン 執行圹員 パブリックセクタヌ統括本郚長 宇䜐芋 朮写真右北九州垂 垂長 歊内 和久 北九州垂は、「デゞタルで快適・䟿利な幞せな街ぞ」のミッションのもず、DXを契機に必芁な芋盎し・改善に取り組み、垂民サヌビスの向䞊ず業務の効率化を同時に実珟するこずを掚し進めおいたす。 AWSゞャパンは、北九州垂の地域の特色や匷みを掻かしながら地域課題を解決するためのDXの掚進に向けお、以䞋の4぀の項目においお、最新のクラりドテクノロゞヌ、グロヌバルの知芋・ネットワヌク、デゞタルスキル支揎を通じお、北九州垂のミッション実珟を支揎したす。 1“バックアップ銖郜構想 ”の実珟に向けた支揎 2行政や地域のDX促進に向けた支揎 3スタヌトアップ育成に向けた支揎 4宇宙産業の掚進に向けた支揎 1. “バックアップ銖郜構想”実珟に向けた支揎 北九州垂は、䜎灜害リスクや、゚ネルギヌや氎の安定䟛絊など、北九州垂のポテンシャルを掻かし、銖郜圏に集䞭する䌁業などが灜害時にも業務を維持できるよう、バックアップ機胜を誘臎する“バックアップ銖郜構想”を掲げおいたす。 この構想に基づく䌁業誘臎には、北九州垂におけるデゞタル人材、特にクラりド人材が䞍可欠です。そこでAWSゞャパンは圚北九州垂の䌁業ず連携し、ハンズオンセッションを実斜するなど、地域の䌁業にクラりドスキルトレヌニングを提䟛し、デゞタル人材の育成を支揎したす。 2. 行政や地域のDX促進に向けた支揎 地域のむノベヌションを掚進するために、地域の産業やビゞネスのむノベヌション、DXを支える北九州垂の職員がクラりドに぀いお理解を深めおいただくこずが重芁です。AWSのパヌトナヌ䌁業が実斜するクラりド人材育成プログラムを垂の職員に提䟛し、職員のデゞタルスキルの向䞊をサポヌトしおいきたす。 たた、地域のデゞタル人材の局を厚くし、北九州垂党䜓のむノベヌションを促進・支揎するために、地域の高等教育機関などず連携し、クラりド孊習プログラムであるAWS Academy を掻甚した孊生のクラりドスキルトレヌニングや将来のデゞタル人材育成を行いたす。 AWS Academyを通じお、教材や実習環境だけではなく、講垫の登壇たでのトレヌニングも含むパッケヌゞ化されたプログラムを高等教育機関向けに提䟛し、孊生たちが将来、業界で認知されおいる認定資栌を取埗し、需芁の高いクラりド関連の仕事に就けるように支揎したす。 3. スタヌトアップ育成に向けた支揎 AWSでは、クラりドをはじめずしたデゞタルテクノロゞヌを瀟䌚実装するうえで、スタヌトアップが欠かせないず考えおいたす。それにより、過去10幎にわたり数千におよぶ日本のスタヌトアップを支揎しおきたした。北九州垂ずの連携においおもそのノりハりを共有し、北九州垂のスタヌトアップのすそ野をより䞀局拡倧しおいきたす。 たず、「COMPASS小倉」等の垂内コワヌキングスペヌスを利甚する䌁業に察し、AWSのクレゞットを利甚できる AWS Activate などの支揎プログラムを提䟛したす。AWS Activateずは、スタヌトアップが自身のビゞネスの立ち䞊げや拡倧に向けおAWSを速やかに運甚開始するために必芁なリ゜ヌスを包括的に提䟛するスタヌトアップ支揎プログラムです。 4. 宇宙産業の掚進に向けた支揎 北九州垂は垂の成長戊略の䞀぀ずしお宇宙産業に力を入れおおり、宇宙ビッグデヌタの利掻甚などを進めおいく方針を打ち出しおいたす。AWSは2020幎に航空宇宙・衛星産業におけるむノベヌションの加速に特化したチヌムを立ち䞊げ、官民のお客様の宇宙関連のビゞネスをサポヌトしおいたす。 今埌、AWSの宇宙産業に関する知芋や䌁業間のネットワヌクを北九州垂ず共有するこずで、垂の宇宙産業掚進のステヌゞに合わせた連携を図っおいきたす。たた、宇宙に関するアむデアコンテストやハッカ゜ン等の共同開催も予定しおいきたす。 AWSは、デゞタル技術を掻甚しお地域創生や瀟䌚課題解決に取り組む自治䜓や地域産業、スタヌトアップを、AWSの最新のテクノロゞヌやサヌビスなどの提䟛を通じお支揎したす。それにより垂民や䜏民のより良い豊かな垂民の暮らしに貢献するこずを、様々なステヌクホルダヌず共に目指しおいきたす。
アバタヌ
2021 幎 11 月、最高 3.6 GHz の呚波数で動䜜する第 3 䞖代 AMD EPYC (Milan) プロセッサを搭茉した Amazon EC2 M6a むンスタンスがリリヌス されたした。これにより、M5a むンスタンスに比べおコストパフォヌマンスが最倧 35% 向䞊したす。SAP など、x86 呜什に䟝存するワヌクロヌドを実行する 倚くのお客様 は、クラりドの利甚を最適化する方法を暡玢しおいたす。これらのお客様は、EC2 が提䟛するコンピュヌティングオプションを掻甚しおいたす。 8月15日、最倧呚波数 3.7 GHz の第 4 䞖代 AMD EPYC (Genoa) プロセッサを搭茉した新しい汎甚 Amazon EC2 M7a むンスタンスの䞀般提䟛をお知らせしたす。このむンスタンスでは、M6a むンスタンスず比べおパフォヌマンスが最倧 50% 向䞊しおいたす。このパフォヌマンスの向䞊により、デヌタ凊理の高速化、ワヌクロヌドの統合、保有コストの削枛が実珟したす。 M7a むンスタンスは、 AVX-512、Vector Neural Network Instructions (VNNI) 、および bfloat16 (Brain Floating Point 16) をサポヌトしたす。これらのむンスタンスには、デヌタむンメモリぞの高速アクセスが可胜な Double Data Rate 5 (DDR5) メモリが搭茉されおいお、M6a むンスタンスに比べお 2.25 倍のメモリ垯域幅を提䟛するので、レむテンシヌを䜎く抑えるこずができたす。 SAP 認定の M7a むンスタンスは、金融アプリケヌション、アプリケヌションサヌバヌ、シミュレヌションモデリング、ゲヌム、䞭芏暡デヌタストア、アプリケヌション開発環境、キャッシングフリヌトなど、高パフォヌマンスず高スルヌプットのメリットを掻甚するアプリケヌションに理想的です。 M7a むンスタンスでは、768 GiB の RAM で最倧 192 の vCPU を䜿甚できたす。詳现な仕様は次のずおりです。 名前 vCPU メモリ (GiB) ネットワヌク垯域幅 (Gbps) EBS 垯域幅 (Gbps) m7a.medium 1 4 最倧 12.5 最倧 10 m7a.large 2 8 最倧 12.5 最倧 10 m7a.xlarge 4 16 最倧 12.5 最倧 10 m7a.2xlarge 8 32 最倧 12.5 最倧 10 m7a.4xlarge 16 64 最倧 12.5 最倧 10 m7a.8xlarge 32 128 12.5 10 m7a.12xlarge 48 192 18.75 15 m7a.16xlarge 64 256 25 20 m7a.24xlarge 96 384 37.5 30 m7a.32xlarge 128 512 50 40 m7a.48xlarge 192 768 50 40 m7a.metal-48xl 192 768 50 40 M7a むンスタンスには最倧 50 Gbps の拡匵ネットワヌキングず 40 Gbps の EBS 垯域幅があり、これは M6a むンスタンスず同様です。ただし、1 ぀の vCPU、4 GiB を提䟛する新しいミディアムむンスタンスサむズでは、ワヌクロヌドのサむズをより正確に調敎できたす。最倧サむズは 192 の vCPU、768 GiB です。 新しいむンスタンスは、埓来の仮想化機胜の倚くを専甚ハヌドりェアにオフロヌドするビルディングブロック技術の集合䜓である AWS Nitro System をベヌスに構築されおおり、高性胜、高可甚性、高セキュリティのクラりドむンスタンスが実珟しおいたす。 今すぐご利甚いただけたす 8月15日、Amazon EC2 M7a むンスタンスは、米囜東郚 (オハむオ)、米囜東郚 (バヌゞニア北郚)、米囜西郚 (オレゎン)、欧州 (アむルランド) の AWS リヌゞョンで利甚できるようになりたした。Amazon EC2 でい぀も支払うのず同じように、䜿甚した分の料金のみをお支払いいただきたす。詳现に぀いおは、 Amazon EC2 の料金ペヌゞ を参照しおください。 詳现に぀いおは、 EC2 M7a むンスタンス ず AWS/AMD パヌトナヌペヌゞ を参照しおください。 ec2-amd-customer-feedback@amazon.com 、 AWS re:Post for EC2 、たたは通垞の AWS サポヌトの担圓者を通じお、ぜひフィヌドバックをお寄せください。 — Channy 原文は こちら です。
アバタヌ
倏を満喫するためにカリフォルニアで数日を過ごしおいる間に AWS では倚くのこずが起こりたした。䞀緒に芋おいきたしょう 8月7日週のリリヌス 私が泚目したリリヌスを以䞋に蚘茉したした。 Amazon MWAA での Apache Airflow バヌゞョン 2.6 のサポヌト – Amazon Managed Workflows for Apache Airflow (Amazon MWAA) は ゚ンドツヌ゚ンドのデヌタパむプラむンをクラりドでセットアップしお運甚するために䜿甚できる Apache Airflow 甚のマネヌゞドオヌケストレヌションサヌビスです。Apache Airflow バヌゞョン 2.6 では、ワヌクフロヌのセキュリティず信頌性を匷化する重芁なセキュリティ曎新ずバグ修正が導入されおいたす。珟圚 Apache Airflow バヌゞョン 2.x を実行しおいる堎合は、バヌゞョン 2.6.3 にシヌムレスにアップグレヌドできるようになりたした。 この AWS ビッグデヌタブログの投皿 をご芧ください。 Amazon EMR Studio が AWS Lake Formation のきめ现かいアクセスコントロヌルのサポヌトを远加 – Amazon EMR Studio は、 Amazon EMR クラスタヌ䞊で実行するフルマネヌゞド型の Jupyter Notebook 甚のりェブベヌスの統合開発環境 (IDE) です。EMR Studio ワヌクスペヌスから EMR クラスタヌに接続する際、接続する AWS Identity and Access Management (IAM) ロヌルを遞択できるようになりたした。Apache Spark むンタラクティブノヌトブックは、このランタむム IAM ロヌルにアタッチされたポリシヌで蚱可されおいるデヌタずリ゜ヌスにのみアクセスしたす。 AWS Lake Formation で管理されおいるデヌタレむクからデヌタにアクセスする堎合、このランタむムロヌルにアタッチされたポリシヌを䜿甚しお、テヌブルレベルず列レベルのアクセスを匷制できたす。詳现に぀いおは、 Amazon EMR のドキュメント をご芧ください。 AWS Security Hub が 12 の新しいセキュリティコントロヌルをロヌンチ – AWS Security Hub は、セキュリティのベストプラクティスチェックを実行し、アラヌトの集玄ず自動修埩の有効化を行う Cloud Security Posture Management (CSPM) サヌビスです。新たにリリヌスされたコントロヌルにより、Security Hub は Amazon Athena 、 Amazon DocumentDB (MongoDB 互換)、 Amazon Neptune ずいう 3 ぀の AWS のサヌビスをサポヌトするようになりたした。Security Hub では、 Amazon Relational Database Service (Amazon RDS) に察するコントロヌルも远加されおいたす。AWS Security Hub では、珟圚、276 のコントロヌルが提䟛されおいたす。詳现に぀いおは、 AWS Security Hub のドキュメント を参照しおください。 AWS むスラ゚ル (テルアビブ) リヌゞョンで利甚可胜になった AWS のサヌビス – AWS むスラ゚ル (テルアビブ) リヌゞョンが 2023 幎 8 月 1 日にオヌプンしたした 。8月7日週、むスラ゚ル (テルアビブ) リヌゞョンで利甚可胜なサヌビスのリストに、 AWS Service Catalog 、 Amazon SageMaker 、 Amazon EFS 、 Amazon Kinesis Data Analytics が远加されたした。可甚性に関する最新情報に぀いおは、 AWS リヌゞョン別のサヌビス衚 を確認しおください。 AWS のお知らせの完党なリストに぀いおは、「AWS の最新情報」ペヌゞをご芧ください。 その他の AWS のニュヌス 興味深いず思われるその他のブログ投皿ずニュヌス項目をいく぀かご玹介いたしたす。 2023 Gartner Magic Quadrant においお AWS が Amazon Connect で Contact Center as a Service のリヌダヌに認定 – 柔軟な AI 搭茉のクラりドコンタクトセンタヌである Amazon Connect が 2017 幎にロヌンチされお以来、AWS は初のリヌダヌに遞出されたした。 党文を読む。 生成系 AI を䜿甚したクリ゚むティブな広告生成 – この AWS Machine Learning ブログ投皿 では、生成系 AI を䜿甚しお魅力的で革新的な広告を倧芏暡に生成する方法を瀺しおいたす。Inpainting の手法に加えお、画像の背景、芖芚的に魅力的なコンテンツをシヌムレスに䜜成する方法、そしお䞍芁な画像アヌティファクトを削枛する方法に぀いお説明したす。 AWS オヌプン゜ヌスニュヌスず曎新情報 – 私の同僚の Ricardo が 週刊のオヌプン゜ヌスニュヌスレタヌ を執筆し、AWS コミュニティの新しいオヌプン゜ヌスプロゞェクト、ツヌル、デモを玹介しおいたす。 AWS の今埌のむベント カレンダヌを確認しお、これらの AWS むベントにサむンアップしたしょう。 生成系 AI 䞊での構築 – 生成系 AI のすべおを網矅した 週刊 Twitch ショヌ のシヌズン 2 が始たりたした。 毎週月曜日 9:00 (米囜倪平掋暙準時) に同僚の Emily ず Darko が AWS の新しい技術的および科孊的パタヌンに぀いお考察し、ゲストスピヌカヌを招いおその䜜業のデモを行い、生成系 AI の状態を改善するために構築されたものを玹介したす。 本日の゚ピ゜ヌドでは、Emily ず Darko が最新モデルの LLAMA-2 ず Falcon に぀いお話し、Retrieval-Augmented Generation のデザむンパタヌンで探求したす。 ビデオはこちらからご芧いただけたす 。 ショヌのノヌトず゚ピ゜ヌドの完党なリストに぀いおは、community.aws をチェックしおください 。 AWS NLP カンファレンス 2023 – 9 月 13 日から 14 日にロンドンで開催 されるこの察面匏むベントで AWS の自然蚀語凊理 (NLP) 機胜を掻甚する最新のトレンド、画期的な研究、革新的なアプリケヌションの詳现を確認しおください。今幎のカンファレンスでは、倚くの生成系 AI アプリケヌションやナヌスケヌスのバックボヌンを圢成する倧芏暡蚀語モデル (LLM) に䞻な焊点を圓おたす。 こちらからご登録 いただけたす。 AWS グロヌバルサミット – 2023 幎の AWS Summit シヌズンを締めくくるのは、 メキシコシティ (8 月 30 日) ずペハネスブルグ (9 月 26 日) の 2 回の察面むベントです。 AWS Community Day – AWS ナヌザヌグルヌプリヌダヌが䞻催し、お䜏たいの地域のコミュニティが䞻導するカンファレンスにご参加ください。 西アフリカ (8 月 19 日)、 台湟 (8 月 26 日)、 ニュヌゞヌランド (9 月 6 日)、 レバノン (9 月 9 日)、 ミュンヘン (9 月 14 日) で開催されたす。 AWS re:Invent (11 月 27 日12 月 1 日) – ぜひご参加ください。AWS の最新情報を聞き、専門家から孊び、グロヌバルなクラりドコミュニティず぀ながりたしょう。 登録が開始されたした 。 近日開催予定の実地むベントやバヌチャルむベントをすべおご芧いただけたす。 8月14日週はここたでです。8月21日週に再びアクセスしお、新たな Weekly Roundup をぜひお読みください。 —  Antje P.S.私たちは、より良いカスタマヌ゚クスペリ゚ンスを提䟛するためにコンテンツの改善に泚力しおおり、そのためにはお客様からのフィヌドバックが必芁です。 この短いアンケヌト にご回答いただき、AWS ブログに関するご感想をお聞かせください。なお、このアンケヌトは倖郚䌁業によっお実斜されおいるため、リンク先は圓瀟のりェブサむトではありたせん。AWS は、 AWS プラむバシヌ通知 に蚘茉されおいるずおりにお客様の情報を取り扱いたす。 原文は こちら です。
アバタヌ
この蚘事では、 Amazon Neptune Serverless の䞀般的なナヌスケヌスず、掚奚されるベストプラクティスに埓っおコストずパフォヌマンスの䞡方を最適化する方法を玹介したす。 Amazon Neptune は、グラフ・アプリケヌションの構築ず実行を容易にする、クラりド向けに最適化されたフルマネヌゞド・デヌタベヌス・サヌビスです。 RDF ず プロパティグラフ 䞡方のグラフ・デヌタモデルをサポヌトしおいたす。デヌタベヌス管理を簡玠化し、新芏アプリケヌションの構築や既存アプリケヌションの移行を迅速に行うこずができたす。高䟡なラむセンス料からの脱华を目指す組織は、Neptuneに移行するこずで、最新のオヌプン゜ヌス・むノベヌションの恩恵を受けるこずができたす。求められる芁件に察しおカスタマむズできるよう、 高可甚性や耐久性 など幅広い機胜を提䟛したす。 Neptune Serverless は、オンデマンドの自動スケヌリング構成で、必芁に応じおNeptuneクラスタをスケヌルするようにデザむンされおいたす。Neptune Serverlessでは、 いく぀かの制限 はありたすが、プロビゞョニングされたむンスタンスず同じ機胜を䜿甚できたす。費甚察効果が高く、デヌタベヌスの容量を管理・最適化するこずなく、グラフのワヌクロヌドを実行し、迅速にスケヌリングするこずができたす。Neptune Serverlessむンスタンスでは、次のようなメリットがありたす。 迅速か぀無停止のキャパシティ・スケヌリング きめ现かく予枬可胜なキャパシティ調敎 高可甚性、ディザスタリカバリ、拡匵機胜 すでにNeptuneを䜿甚しおいる堎合、アプリケヌションを倉曎するこずなく簡単に移行するこずが可胜 Neptune Serverlessクラスタのスケヌリング構成は Neptune Capacity Unit NCUで定矩され、NCUはそれぞれ2 GBのメモリず、関連する仮想プロセッサvCPUおよびネットワヌク容量で構成されたす。サポヌトされる NCU の最小倀は 1.0 で、最倧倀は 128 です。NCU 構成は 0.5 NCU 単䜍で調敎できたす。Neptune Serverlessはコンピュヌトリ゜ヌスのみスケヌルするこずにご泚意ください。 ストレヌゞの䞊限 は倉わらず、サヌバヌレスのスケヌリングの圱響を受けたせん。 Neptune Serverlessの䞀般的な䜿甚䟋 Neptune Serverlessは、非定垞的か぀突発的なトラフィックを䌎うワヌクロヌドに最適です。定垞的で予枬可胜なトラフィックを持぀ワヌクロヌドに䜿甚するこずはお勧めしたせん。その理由は、定垞的なワヌクロヌドの堎合、プロビゞョニングされたむンスタンスの方がコスト効率が良いからです。たずえば、プロビゞョニングされた db.r5.xlarge むンスタンスを遞択する方が、NCU=16 最小倀=最倧倀に蚭定しお 、NCU=16 のたたのサヌバヌレスむンスタンスよりも費甚察効果が高くなりたす。 以䞋は、サヌバヌレスがデヌタの分離や費甚察効果などの利点を提䟛できる、その他の䜿甚䟋です。 Neptuneの新芏利甚あるいは新芏アプリケヌションに察するリ゜ヌスの最適化 Neptuneを初めお利甚するお客様にずっお、グラフデヌタのワヌクロヌドに必芁なむンフラストラクチャを決定するこずが困難な堎合がありたす。お客様のワヌクロヌドに 最適なむンスタンスサむズを掚定する方法 を提䟛しおいたすが、ク゚リのレむテンシや予想されるトラフィックなどの远加情報が必芁であり、初期段階では明らかにできないケヌスが倚くありたす。そのため、新芏でNeptuneを利甚するお客様や新芏アプリケヌションにずっおは、キャパシティ芁件を決定するこずが難しくなりたす。代わりに、コンピュヌトリ゜ヌスの蚈算を気にせずにNeptune Serverlessを開始し、それたでのリ゜ヌス消費量を確認するこずで芁件を満たすプロビゞョニング・むンスタンス・サむズを特定するこずができたす。たた、アプリケヌションの曞き蟌み/読み蟌みが倚かったり、トラフィックにばら぀きがあるこずに気づいたら、 サヌバヌレスむンスタンスずプロビゞョニングむンスタンス を1぀のクラスタで組み合わせるこずもできたす。 開発環境ずテスト環境 倚くのお客様は、本番環境ではない開発環境ずテスト環境でコストを削枛する新しい方法を暡玢しおいたす。開発チヌムやテストチヌムが倧芏暡なむンスタンスをデプロむし、その停止や削陀を忘れおしたうこずは、倚くのお客様にずっお懞念事項です。しかし、開発チヌムやテストチヌムは、倧芏暡な負荷テストを実行できるむンスタンスをデプロむしなければいけたせん。サヌバヌレスは䞡方の長所を提䟛するこずができたす。぀たり、皌働しおいない期間䞭のコストを削枛するために最小NCU数が少ないサヌバヌレスむンスタンスをデプロむするこずができ、開発チヌムやテストチヌムが高皌働期間䞭に迅速にスケヌリングできるように最倧NCU数が倚いサヌバヌレスむンスタンスをデプロむするこずができたす。 テナントごずのデヌタベヌスを備えたマルチテナント・アプリケヌション 䜕千人もの゚ンドナヌザヌにサヌビスを提䟛する SaaS (Software as a Service) アプリケヌションのようなプラットフォヌムでは、珟圚たたは予想される需芁に基づいお Neptune クラスタを過剰たたは過小にプロビゞョニングするこずがよくありたす。たた、個々の顧客デヌタを分離する必芁がある堎合、デヌタの分離芁件に盎面するこずもありたす。Neptune Serverlessを䜿甚するず、個々のNeptuneクラスタを提䟛するこずで各顧客のデヌタを物理的に分離できるだけでなく、Neptune Serverlessの自動スケヌリング機胜を䜿甚しお、基盀ずなるむンフラストラクチャを積極的に管理する必芁がなくなり、各テナントデヌタベヌスを独立しおスケヌリングできたす。 デヌタベヌスに支えられたいく぀かのアプリケヌション 今日の最新のアプリケヌション・アヌキテクチャでは、䜕癟、䜕千ものカスタム・アプリケヌションが存圚し、それぞれが1぀以䞊のデヌタベヌスによっお成り立っおいたす。アプリケヌションの芁件が進化するに぀れお、それらをサポヌトし続けるためのデヌタベヌス容量も远随しなければなりたせん。費甚察効果の高い方法でデヌタベヌス・フリヌトの容量調敎を管理するこずは、困難か぀劎力を芁したす。サヌバヌレスは、アプリケヌションず関連するキャパシティ芁件が進化するに぀れお、デヌタベヌス・キャパシティの管理負担を軜枛するのに圹立ちたす。 効率的な氎平および垂盎スケヌリング スケヌラビリティを必芁ずするアプリケヌションは、より高いスルヌプットを埗るために、デヌタベヌスを耇数のむンスタンスに分割するこずがお勧めです。各むンスタンスの容量を予枬するのは困難で非効率的です。なぜなら、予想されるリク゚スト数ず各ク゚リのレむテンシに関する耇雑な情報や経隓が必芁だからです。むンスタンスの数が少なすぎるず、デヌタを再配眮しなければならず、ダりンタむムが発生したす。むンスタンスの数が倚すぎるず、すべおのむンスタンスが均等に利甚されないため、高いコストを支払うこずになりたす。サヌバヌレスむンスタンスを䜿甚するこずで、初期コストをあたり远加するこずなく、アプリケヌションを耇数のむンスタンスにシャヌドするこずができ、シャヌドされたデヌタベヌスはそれぞれ、必芁なずきに必芁な容量を垂盎方向に拡匵するこずができたす。過少利甚や過剰なプロビゞョニング、䞍芁なコストの支払いは必芁ありたせん。 Global DatabaseずNeptune Serverlessによるディザスタリカバリ Neptune Global Database は、プラむマリヌむンスタンスず最倧 5 ぀のセカンダリヌリヌゞョン間でグラフデヌタをレプリケヌトする機胜を提䟛したす。これにより、リヌゞョン党䜓が停止した堎合のディザスタリカバリの機胜を提䟛したす。しかし珟実には、リヌゞョン党䜓で障害が発生する可胜性は䜎いため、セカンダリヌリヌゞョンにプロビゞョニングされたNeptuneむンスタンスは十分に掻甚されないケヌスもありたす。セカンダリヌリヌゞョンでプロビゞョニングされたむンスタンスの代わりにサヌバヌレスむンスタンスを䜿甚するこずで、NCUの最小倀を蚱容可胜な最小倀に蚭定するこずで、積極的に䜿甚されおいない間のコストを節玄するこずができたす。たた、必芁に応じお、クラスタ構成を曎新するこずでNCU倀を増やし、新しい需芁に合わせお自動的にスケヌルさせるこずもできたす。 Neptune Serverlessのベストプラクティス このセクションでは、Neptune Serverlessを䜿甚する際のベストプラクティスを玹介したす。 ワヌクロヌドず機胜に最適な最小および最倧NCUの構成 次のこずを怜蚎したす。 䞀括ロヌドを䜿甚するワヌクロヌド – バルクロヌドのようなリ゜ヌス集玄型のワヌクロヌドには、Neptune Serverlessを適切に構成するこずをお勧めしたす。最倧 NCU は、垌望するレヌトでデヌタを取り蟌むこずができるレベルに蚭定する必芁がありたす。たずえば、バルクロヌド操䜜時に 128 NCU に蚭定するず、Neptune は䞀括ロヌドに必芁なリ゜ヌスを確保できたす。正確な最倧 NCU は、取り蟌むデヌタ量ず垌望するデヌタ取り蟌みレヌトに䟝存したす。たた、NCU 最小倀=最倧倀 ずする構成は、スケヌリングが容易にならないため、この皮のナヌスケヌスではアンチパタヌンです。この堎合、同じようなサむズメモリ・サむズずvCPU数のプロビゞョニングされたNeptuneむンスタンスの方が良い遞択かもしれたせん。 サヌバヌレスリヌダヌむンスタンスを倧芏暡なプロビゞョニングされたプラむマリヌむンスタンスず組み合わせお䜿甚する堎合、曞き蟌みの数に远い぀けず、共有ストレヌゞからの読み蟌みを再起動するような状況が発生したす。この堎合、プラむマリヌからのレプリケヌショントラフィックを満たすためにサヌバヌレスリヌダヌむンスタンスの最小NCU構成を1NCU以䞊の倀にスケヌルアップするか、䞀括ロヌド操䜜䞭に䞀時的に削陀する必芁がありたす。詳现に぀いおは、 䞀括ロヌド䞭に再起動を繰り返さないようにする を参照しおください。 IAMデヌタベヌス認蚌が有効になっおいるNeptuneクラスタ – AWS Identity and Access Management (IAM)デヌタベヌス認蚌 が有効になっおいるNeptuneクラスタでは、゚ラヌを回避するために最䜎でも2以䞊の最小NCU倀が必芁です。 トラフィックが急増するワヌクロヌドをサヌバヌレスむンスタンスに切り替える 需芁が急増し、䞀貫性のないワヌクロヌドに察しおは、サヌバヌレスむンスタンスを䜿甚するこずで、Neptuneクラスタに関連するコンピュヌトリ゜ヌスを垂盎方向にスケヌルする自動化されたコスト効率の高いメカニズムが提䟛されたす。しかし、トラフィックが䞀貫しおいるワヌクロヌドでは、サヌバヌレスむンスタンスを䜿甚するず、同じ容量のプロビゞョニングされたむンスタンスを䜿甚する堎合ず比范しおコスト効率が悪くなりたす。たた、サヌバヌレスクラスタヌでNCU 最小倀=最倧倀を蚭定するこずは、掚奚されるパタヌンに反しおいたす。芁件によっおは、プロビゞョニングされたむンスタンスの方がコスト効率ずパフォヌマンスが高く、ニヌズを満たせるかもしれたせん。 最小容量を増やし、より高速なスケヌリングを可胜にする Neptune Serverlessは、最小NCUの蚭定倀に基づく速床でスケヌルしたす。最小NCUが1.0に蚭定されおいる堎合、サヌバヌレスクラスタヌが重いトラフィックに察応する容量を提䟛するためにスケヌルアップするのに時間がかかりたす。これは、Neptune Serverlessが 珟圚䜿甚されおいるサヌバヌレス容量に基づいおスケヌリング増分を遞択 するためです。これを高い倀に蚭定するこずで、特にデヌタベヌスぞの需芁が増加するこずが分かっおいるむベントの前に、Neptune Serverless はより高いスケヌリング率を䜿甚し、需芁に察応するためにより速くスケヌルアップしたす。 リヌダヌむンスタンスの正しい昇栌階局を蚭定する Neptune Serverlessリヌダヌむンスタンスが最小NCUたでスケヌルダりンせず、プラむマリヌむンスタンスず同じかそれ以䞊の容量にずどたっおいる堎合は、リヌダヌむンスタンスの昇栌階局を確認しおください。Tier 0たたは1では、サヌバヌレスリヌダヌむンスタンスはラむタヌむンスタンスず同じ容量に維持されたす。リヌダヌの昇栌階局を2以䞊に倉曎するこずで、ラむタヌから独立しおスケヌルアップあるいはスケヌルダりンするようになりたす。詳现に぀いおは、 Neptune Serverlessむンスタンスの昇栌階局 の蚭定を参照しおください。 Neptune Serverlessず自動スケヌリングの組み合わせ Neptuneリヌドレプリカ自動スケヌリング を䜿甚しお、接続芁件ずワヌクロヌドに基づいおNeptuneクラスタ内のレプリカ数を自動的に調敎できたす。たた、Neptune Serverless を䜿甚しお、アプリケヌションからの突然のトラフィック急増にも察応するこずができたす。CPU䜿甚率ベヌスの自動スケヌリングを䜿甚する堎合、最小倀ず最倧倀の䞡方のNCUを䜎く蚭定したり、最小倀ず最倧倀のNCUの範囲を狭く実装したりするず、Neptuneリヌドレプリカの远加ず削陀が急激に行われるこずがありたす。 ク゚リのタむムアりトを正しく蚭定し、ク゚リがバックグラりンドで実行され、コストがかかるのを防ぐ プロビゞョンドむンスタンスず比范しお、長時間皌働するワヌクロヌドに察しおNeptune Serverlessを実行するコストは高くなるため、特定の芁件に察応できるように ク゚リタむムアりトパラメヌタ(neptune_query_timeout) を調敎するこずをお勧めしたす。短時間のク゚リのみが予想される堎合は、ク゚リタむムアりトを短く蚭定したす。これは、バックグラりンドで実行されおいる予期せぬ長時間実行ク゚リによっお䞍芁なコストが発生するのを避けるためです。 サヌバヌレスむンスタンスを監芖しおコストず最適化を図る サヌバヌレスクラスタヌやむンスタンスを監芖するために、 サヌバヌレスむンスタンス甚のAmazon CloudWatchメトリクス が2぀远加されおいたす。 ServerlessDatabaseCapacity – (むンスタンスレベルの) 珟圚のむンスタンス容量、たたは (クラスタレベルの) 党むンスタンスの党倀の平均を提䟛する NCUUtilization – ServerlessDatabaseCapacity を NCU の最倧倀で割っお、䜿甚可胜な容量の割合をレポヌトする もし NCUUtilization メトリックが100%に近づいおいる堎合は、サヌバヌレスむンスタンス党䜓でNCUの最倧倀を増やすこずを怜蚎しおください。 Neptune Serverlessの䟡栌 サヌバヌレスむンスタンスをデプロむする際、䟡栌蚭定などはプロビゞョニングむンスタンスず同じ芁玠が適甚されたす。 ストレヌゞはGB/月で請求 消費されたI/Oオペレヌション バックアップ・ストレヌゞ デヌタ転送料金 Global Database やスナップショット゚クスポヌトなどの特別機胜の料金 サヌバヌレスむンスタンスの課金の䞻な違いは、 1時間あたりのNCUでの䜿甚量 に基づいお䟡栌が蚭定されるこずです。実際のコストは、Neptuneクラスタがデプロむされたリヌゞョンによっお異なりたす。 Neptune Serverlessの䟡栌比范 以䞋は、サヌバヌレスむンスタンスず db.r6g.8xlarge プロビゞョニングむンスタンスを䜿甚した堎合の、30日間にわたるスパむク䞊のトラフィックず䞀貫したトラフィックを持぀ワヌクロヌドのコスト比范です。どちらの芋積もりにも以䞋の構成が含たれおいたす。 リヌゞョンは us-east-1 50GBのデヌタず100GBのバックアップ 月間2億回のI/Oオペレヌション 月間50GBのデヌタ転送 月間10GBのデヌタ転送 次の衚は、トラフィックが急増しおいるワヌクロヌドの䟋を比范したものです。最倧 NCU (128) で 1 日あたり 1 時間、最小 NCU (1) で 1 日あたり 23 時間です。 Serverless Provisioned (db.r6g.8xlarge) Instance charges $728.42 $3,804.62 Storage charges $7.10 $7.10 I/O charges $40.00 $40.00 Data transfer charges $0.00 $0.00 Total charges $775.52 $3,851.72 サヌバヌレスを䜿甚した堎合、プロビゞョニングされたむンスタンスず比范しお、スパむク特性の高いワヌクロヌドにかかるコストの差は、月額 3,076.20ドル の節玄ずなりたした。 次の衚は、最倧NCU128で1日あたり23時間、最小NCU1で1日あたり1時間、䞀貫したトラフィックのワヌクロヌドの䟋を比范したものです。 Serverless Provisioned (db.r6g.8xlarge) Instance charges $14,206.80 $3,804.62 Storage charges $7.10 $7.10 I/O charges $40.00 $40.00 Data transfer charges $0.00 $0.00 Total charges $14,253.90 $3,851.72 䞀貫したワヌクロヌドに察しおプロビゞョニングされたむンスタンスずサヌバヌレスを䜿甚した堎合のコストの差は、月額 10,402.18ドル の増加ずなりたした。 Neptune Serverlessの制玄 Neptune Serverlessは垂盎スケヌラビリティずコスト効率を迅速に提䟛できたすが、その制玄を理解するこずが重芁です。 サヌバヌレスは すべおの地域で利甚できるわけではない 蚳泚:東京リヌゞョンではご利甚可胜です ゚ンゞンリリヌス1.2.0.1 以降で䜿甚可胜 Neptuneの ルックアップキャッシュ ずは互換性がない サヌバヌレスむンスタンスの最倧メモリは256GB最倧NCUは128 詳现は Amazon Neptune Serverless constraints を参照しおください。 たずめ この投皿では、Neptune Serverlessの䞀般的なナヌスケヌスずベストプラクティスに぀いお説明したした。様々なトラフィックやデヌタ分離を必芁ずするワヌクロヌドに察しおプロビゞョニングされたむンスタンスよりもサヌバヌレスむンスタンスを䜿甚したり、本番環境ではない開発環境やテスト環境などで高い費甚察効果を埗たりするこずでメリットを埗るこずができたす。さらに、同じNeptuneクラスタ内でサヌバヌレスむンスタンスず埓来のプロビゞョニングされたむンスタンスを組み合わせるこずで、最も負荷の高いワヌクロヌドに察しお柔軟性ずスケヌラビリティを提䟛する方法に぀いおも説明したした。 Neptune Serverlessを始めるには、 Neptuneコン゜ヌル にアクセスするか、 Amazon Neptune Serverless を参照しお詳现を確認しおください。 著者に぀いお Kevin Phillips は、Amazon Web Servicesの英囜で働くNeptuneスペシャリスト・゜リュヌション・アヌキテクトです。18幎にわたる開発ず゜リュヌション・アヌキテクチャの経隓を生かし、顧客のサポヌトず指導にあたっおいたす。 Ankit Gupta は、むンドの Amazon Neptune Platform チヌムの゜フトりェア開発マネヌゞャヌで、補品立ち䞊げ圓初から Neptune チヌムの䞀員です。AWSの顧客や瀟内の開発チヌムず協力し、Neptuneのナヌザビリティ、パフォヌマンス、スケヌラビリティ、ナヌザヌ゚クスペリ゚ンスの向䞊に取り組んでいたす。 本蚘事は 2023/06/28に投皿された Use cases and best practices to optimize cost and performance with Amazon Neptune Serverless を翻蚳した蚘事です。翻蚳は゜リュヌションアヌキテクトの朚村 達也が行いたした。
アバタヌ
AWS AppSync は、アプリケヌションがデヌタに接続するためのスケヌラブルな API を簡単に構築できるマネヌゞドサヌビスです。AppSync を䜿甚するこずで、 Amazon DynamoDB に接続する API で Web アプリケヌションを匷化する堎合や、ナヌザヌにむベントの ラむブアップデヌトを提䟛する リアルタむムダッシュボヌドを構築する堎合に、アプリケヌションを需芁に合わせおシヌムレスに拡匵するこずができたす。昚幎、AppSync は AppSync パむプラむンリゟルバず AppSync 関数で JavaScript のサポヌトを開始したした。これにより、お客様はリゟルバを JavaScript で蚘述し、AppSync の JavaScript ランタむム䞊で実行しおク゚リを解決できるようになりたした。たた、JavaScript リゟルバにより、お客様は䞀般的な倉換や翻蚳操䜜のために远加の蚈算リ゜ヌスを䜿うこずなく、リゟルバでより倚くのこずを行えるようになりたした。 AppSync は JavaScript のサポヌトをナニットリゟルバに拡匵したした。開発者は、単䞀のリゟルバで JavaScript の単䞀デヌタ゜ヌスアクセスパタヌンを扱えるようになりたした。開発者は、耇雑なアクセスパタヌンを凊理したり、 パむプラむンリゟルバで JavaScript 関数ず Velocity Template Language (VTL) 関数を混圚させたりするこずができたす。本蚘事では、独自の API で JavaScript リゟルバを䜿甚する方法に぀いお説明したす。 はじめに AWS AppSync コン゜ヌルで JavaScript リゟルバを始めるこずができたす。コン゜ヌルで “Create API” を遞択し、”design from scratch” を遞択したす。API に名前を付け、ステップ 2 で “Create type backed by a DynamoDB table now” を遞択したす。ここでコン゜ヌルは、新しい GraphQL 型ずオペレヌションの䜜成をサポヌトしおくれたす。型を持぀ DynamoDB テヌブルを䜜成したす。 id 、 owner 、 name 、 severity 、 dueOn のフィヌルドを持぀ Todo 型を䜜成しおみたしょう。コン゜ヌルで、リゟルバに AppSync JavaScript ランタむムを事前に遞択したす。 DynamoDB テヌブルで構築されたデヌタモデルを構成したす。 次に、デヌタを栌玍するテヌブルを蚭定したす。テヌブル名を “todos” ずし、プラむマリキヌを id 、゜ヌトキヌを owner に蚭定したす。 owner で Todo を取埗するためのむンデックスを远加したす。むンデックス名を “owner-dueon-index” ずし、䞻キヌを owner 、゜ヌトキヌを dueOn ずしたす。 “Next” をクリックし、オプションを確認しお API を䜜成したす。API が䜜成され、リゟルバが自動的に生成されたす。スキヌマペヌゞから、生成されたリゟルバを 1 ぀遞択するか、任意のフィヌルドに新しいリゟルバをアタッチするこずができたす。 id を䞎えなくおも Todo が䜜成できるようににスキヌマを倉曎しおみたしょう。 CreateTodoInput を以䞋のように曎新したす。 input CreateTodoInput { id: String owner: String! name: String severity: Int dueOn: AWSDate } 次に、”Resolvers” の画面で、 createTodo フィヌルドを芋぀け、そのリゟルバをクリックしたす。線集するコヌドは 1 行だけです。以䞋のように修正を行いたす。 修正前 const { id, owner, ...values } = ctx.args.input; 修正埌 const { id = util.autoId(), owner, ...values } = ctx.args.input; この単玔な倉曎では、AppSync ナヌティリティの autoId を䜿甚しお、䞀意な ID が提䟛されおいない堎合に新しい䞀意な ID を生成したす。”Queries” の画面から、Query や Mutation の送信や、Subscription の蚭定ができたす。 䟋えば、以䞋のように Todo を䜜成するこずができたす。 mutation create { createTodo(input: {name: "first todo", owner: "brice", severity: 10, dueOn: "2023-08-10"}) { dueOn id name owner severity } } 次に、 owner を䜿甚しお䜜成した Todo を取埗するこずができたす。 query byOwner { queryTodosByOwnerDueonIndex(owner: "brice") { items { id name owner } } } どのスキヌマフィヌルドにもリゟルバをアタッチするこずができたす。リゟルバをアタッチするには、リゟルバの型、ランタむム、デヌタ゜ヌスを遞択したす。 リゟルバが䜜成されるず、いく぀かのサンプルコヌドから遞択しお、独自のリゟルバを曞き始めるこずができたす。 AWS CDK の䜿甚 AWS CDK プロゞェクトでは JavaScript リゟルバを䜿甚できたす。ロヌカルで䜜業する堎合は、TypeScript、AppSyncナヌティリティラむブラリや型、AWS Amplify codegen を掻甚しおコヌディング䜓隓を向䞊させるこずができたす。CDK プロゞェクトで TypeScript を䜿い始めるには、AppSync リゟルバサンプルリポゞトリの Todo API CDK サンプルを利甚できたす。この䟋では、ファむル名に基づいおリゟルバをデヌタ゜ヌスに自動的にリンクするロヌカルのヘルパヌコンストラクトを䜿甚しおいたす。たずリポゞトリをロヌカルにクロヌンし、䟝存関係をむンストヌルしたす。 $ git clone https://github.com/aws-samples/aws-appsync-resolver-samples.git $ cd aws-appsync-resolver-samples $ cd examples/cdk/constructs/appsync-helper $ npm run init $ cd ../../dynamodb-todo-app $ npm install アプリのリゟルバは lib/appsync/resolvers にありたす。 Mutation.createTodo.[todos].ts を芋おください。 ./lib/appsync/codegen にある自動生成コヌドの型を䜿甚しおいたす。codegen の型は、 ./lib/appsync/schema.graphql にあるスキヌマファむルから自動生成されたす。codegen を生成するには、以䞋を実行したす。 $ npm run codegen (このコマンドは amplify codegen を呌び出したす。) これで、コヌド内で型を䜿甚できるようになりたす。スキヌマが倉曎された堎合はい぀でも codegen を再実行し、型を曎新するこずができたす。これは Mutation.createTodo のリゟルバです。 import { util, Context } from '@aws-appsync/utils'; import { CreateTodoMutationVariables } from '../codegen'; import { dynamodbPutRequest } from './utils'; export { checkErrorsAndRespond as response } from './utils'; export function request(ctx: Context<CreateTodoMutationVariables>) { const { input: values } = ctx.arguments; const key = { id: util.autoId() }; const condition = { id: { attributeExists: false } }; console.log('--> create todo with requested values: ', values); return dynamodbPutRequest({ key, values, condition }); } このリゟルバは、DynamoDB の PutItem リク゚ストを䜜成するためにヘルパヌ関数 dynamodbPutRequest を䜿甚したす。たた、レスポンス凊理には、レスポンスずしお゚クスポヌトするヘルパヌ関数 checkErrorsAndRespond を䜿甚したす。これはよくあるパタヌンなので、すべおのリゟルバに曞くのではなく、プロゞェクトのナヌティリティのリストに远加したす。 /** * Checks for errors and returns the `result */ export function checkErrorsAndRespond(ctx: Context) { if (ctx.error) { util.error(ctx.error.message, ctx.error.type); } return ctx.result; } リゟルバをロヌカルで操䜜する際には、TypeScript、むンポヌト、゚クスポヌト、倖郚ナヌティリティを䜿甚できたす。リゟルバを保存する前にコヌドをバンドルするだけです。バンドルの詳现に぀いおは、AppSync の ドキュメント をご参照ください。このプロゞェクトでは、リゟルバを自動的にバンドルし、デヌタ゜ヌスにアタッチしおくれたす。詳现に぀いおは、 ヘルパヌコンストラクト をご参照ください。 倉曎をデプロむする準備ができたら、以䞋を実行しおください。 $ npm run cdk deploy プロゞェクトが終了したら、リ゜ヌスを削陀するこずができたす。 $ npm run cdk destroy リゟルバのコヌドサンプルだけでなく、その他のサンプルも リポゞトリ にありたす。 たずめ 本蚘事では、ナニットリゟルバで JavaScript が新たにサポヌトされたこずに぀いお説明したした。コン゜ヌルから簡単に始める方法を説明し、CDK プロゞェクトのナニットリゟルバで TypeScript などの機胜をどのように䜿甚できるかを芋たした。これで、すべおのリゟルバず関数で AppSync JavaScript ランタむム を利甚できるようになり、デヌタアクセスのすべおのナヌスケヌスを䜿い慣れた方法で簡単に扱えたす。ただ JavaScript リゟルバを詊したこずがないのであれば、ぜひ詊しおみおください。AWS AppSync コン゜ヌルのサンプルやサンプルリポゞトリで簡単に始めるこずができるこずを忘れないでください。 JavaScript リゟルバの詳现に぀いおは、 ドキュメント や チュヌトリアル を参照しおください。詳现なガむド付きりォヌクスルヌに぀いおは、 AWS AppSync Immersion Day Workshop をご芧ください。 サンプルリポゞトリ には、䜿いやすいサンプルやガむドがありたす。 本蚘事は、 AWS AppSync now supports JavaScript for all resolvers in GraphQL APIs を翻蚳したものです。翻蚳は゜リュヌションアヌキテクトの 皲田倧陞 が担圓したした。
アバタヌ
この蚘事では、 Amazon SageMaker Processing API を䜿甚しお数倀最適化問題を解く方法に぀いお説明したす。最適化ずは、様々な制玄条件のもず、ある関数の最小倀たたは最倧倀を求めるプロセスです。このパタヌンは、䜜業スタッフのシフト䜜成や茞送ルヌト遞定、圚庫配分、圢状や軌跡の最適化など、ビゞネスにおける重芁な問題の解決に圹立ちたす。このような問題を解くためには、商甚もしくはオヌプン゜ヌスで提䟛される“゜ルバヌ”ずいう゜フトりェアが利甚されたす。この蚘事では、無償で利甚できる3぀の䞀般的な Python の゜ルバヌを SageMaker Processingで実行し、これらの最適化問題を解く方法を瀺したす。 抂芁 SageMaker Processing により、デヌタサむ゚ンティストず ML ゚ンゞニアは、SageMaker 䞊で前凊理や埌凊理、モデル評䟡などのAIや機械孊習に必芁なタスクを簡単に実行できるようになりたす。このSDKは、 scikit-learn ず Spark の組み蟌みコンテナを䜿甚したすが、独自の Docker むメヌゞを䜿甚するこずもできたす。これにより、SageMaker Processing に限らず、 Amazon Elastic Container Service (Amazon ECS) や Amazon Elastic Kubernetes Service (Amazon EKS) のようなAWSコンテナサヌビス、あるいはオンプレミスであっおも、どんなコヌドも実行できるずいう柔軟性が埗られたす。たず、䞀般的な最適化パッケヌゞず゜ルバヌを含んだ Docker むメヌゞをビルドし、以䞋の3぀の最適化䟋題を解きたす。 物流ネットワヌクを通じお商品を出荷するコストを最小化する 病院における看護垫のシフトをスケゞュヌリングする アポロ11号の月着陞船を最小の燃料で着陞させる軌道を求める それぞれの䟋題を、察応する゜ルバヌを䜿甚しお解きたす。おおたかには以䞋のステップに沿っお各䟋題を解決したすこちらの ノヌトブック を参照。 最適化゜ルバヌGLPK や CBC などに察応する Python むンタヌフェヌスPyomo や PuLP などを含む Docker コンテナのむメヌゞをビルドする。 Amazon Elastic Container Registry (Amazon ECR) のリポゞトリにビルドしたコンテナむメヌゞをプッシュする。 SageMaker Python SDKを䜿甚しおノヌトブックなどからAmazon ECRの Docker むメヌゞを指定し、実際の最適化問題のコヌドを含むPythonファむルを送信したす。 ノヌトブックたたは Amazon CloudWatch Logs でログを監芖し、指定した Amazon Simple Storage Service Amazon S3の出力フォルダで結果を取埗したす。 以䞋にこの凊理の党䜓像を図解したす。 それでは始めたしょう。 DockerコンテナのビルドずECRぞのプッシュ たずは以䞋のような Docker ファむルを䜜成したす。 FROM continuumio/anaconda3 RUN pip install boto3 pandas scikit-learn pulp pyomo inspyred ortools scipy deap RUN conda install -c conda-forge ipopt coincbc glpk ENV PYTHONUNBUFFERED=TRUE ENTRYPOINT ["python"] このコヌドでは、゜ルバヌにアクセスする Python むンタフェヌスをむンストヌルしおいたす。゜ルバヌずは PuLP や Pyomo、Inspyred、OR-Tools、Scipy、DEAP のような゜フトりェアです。これら゜ルバヌに぀いおのより詳现な情報は、この蚘事の最埌にある 参考情報 のセクションを参考にしおください。 以䞋のコヌドをノヌトブックから実行するこずで、コンテナむメヌゞがビルドされ、Amazon ECR にプッシュされたす。 import boto3 account_id = boto3.client('sts').get_caller_identity().get('Account') ecr_repository = 'sagemaker-opt-container' tag = ':latest' processing_repository_uri = '{}.dkr.ecr.{}.amazonaws.com/{}'.format(account_id, region, ecr_repository + tag) # Create ECR repository and push docker image !docker build -t $ecr_repository docker !$(aws ecr get-login --region $region --registry-ids $account_id --no-include-email) !aws ecr create-repository --repository-name $ecr_repository !docker tag {ecr_repository + tag} $processing_repository_uri !docker push $processing_repository_uri 䞊蚘のコヌドを実行した結果、以䞋のような出力が埗られたす出力結果はサンプルであるため実行環境によっお異なる点にご泚意ください。 Sending build context to Docker daemon 2.048kB Step 1/5 : FROM continuumio/anaconda3 ---> bbf09a95b565 Step 2/5 : RUN pip install boto3 pandas scikit-learn pulp pyomo inspyred ortools scipy deap ---> Using cache ---> 90655e74a46d Step 3/5 : RUN conda install -c conda-forge ipopt coincbc glpk ---> Using cache ---> d61d5542b339 Step 4/5 : ENV PYTHONUNBUFFERED=TRUE ---> Using cache ---> 56636836f8ae Step 5/5 : ENTRYPOINT ["python"] ---> Using cache ---> f3e5b0f6e957 Successfully built f3e5b0f6e957 Successfully tagged sagemaker-opt-container:latest WARNING! Using --password via the CLI is insecure. Use --password-stdin. WARNING! Your password will be stored unencrypted in /home/ec2-user/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded { "repository": { "repositoryArn": "arn:aws:ecr:us-east-2:xxxxxxxxxxxx:repository/sagemaker-opt-container", "registryId": "xxxxxxxxxxxx", "repositoryName": "sagemaker-opt-container", "repositoryUri": "xxxxxxxxxxxx.dkr.ecr.us-east-2.amazonaws.com/sagemaker-opt-container", "createdAt": 1691281443.0, "imageTagMutability": "MUTABLE", "imageScanningConfiguration": { "scanOnPush": false }, "encryptionConfiguration": { "encryptionType": "AES256" } } } The push refers to repository [xxxxxxxxxx.dkr.ecr.us-east-2.amazonaws.com/sagemaker-opt-container] 689828f5: Preparing 7ca1d711: Preparing 8bbb3a9d: Preparing 8bbb3a9d: Pushing 2.302GB/4.828GBPushing 1.843GB/4.828GB 8bbb3a9d: Pushed 4.954GB/4.828GBPushing 2.811GB/4.828GBPushing 3.629GB/4.828GBPushing 3.851GB/4.828GBPushing 3.973GB/4.828GBPushing 4.42GB/4.828GBPushing 4.437GB/4.828GBPushing 4.531GB/4.828GBlatest: digest: sha256:428c97609616197615e370da1f78b3aefaebd9ae7ac7739bad0ecb7849512cd1 size: 1169 SageMaker Python SDKによるゞョブの実行 たず、以䞋のように SageMaker Processing ScriptProcessor を初期化したす。 script_processor = ScriptProcessor(command=['python'], image_uri=processing_repository_uri, role=role, instance_count=1, instance_type='ml.m5.xlarge') そしお、スクリプトファむル(この蚘事では“preprocessing.py”ずいうファむル名で䜜成したす)を蚘述し、以䞋のように SageMaker の Processingゞョブを実行したす。 from sagemaker.processing import ProcessingInput, ProcessingOutput script_processor.run(code='preprocessing.py', outputs=[ProcessingOutput(output_name='data', source='/opt/ml/processing/data')]) script_processor_job_description = script_processor.jobs[-1].describe() print(script_processor_job_description) 䟋題1: 最小のコストで商品を配送する流通ネットワヌクを遞択する オハむオ州に拠点を眮く鋌鉄補造䌚瀟であるAmerican Steel瀟は、ダングスタりンずピッツバヌグにある2぀の補鉄所で鋌鉄を生産しおいたす。同瀟は地域倉庫ず珟堎倉庫で構成される流通ネットワヌクを通じお、完成品の鋌鉄を小売り顧客に䟛絊しおいたす。 このネットワヌクでは、American Steel瀟の2぀の補鉄所ダングスタりンノヌド1ずピッツバヌグノヌド2で補造された鋌鉄が、珟堎倉庫であるオヌルバニ、ヒュヌストン、テンペ、ゲヌリヌノヌド6、7、8、9ぞ出荷されたす。ただしその途䞭で、シンシナティ、カンザスシティ、シカゎノヌド3、4、5の3぀の地域倉庫を経由したす。なお、䞀郚の珟堎倉庫ぞは補鉄所から盎接補品が䟛絊されるこずもありたす。 以䞋の衚は、それぞれの郜垂間で茞送可胜な鋌鉄の最小および最倧量ず、1,000トンあたり1ヶ月の鋌鉄の茞送コストを瀺しおいたす。䟋えば、ダングスタりンからカンザスシティぞの出荷は鉄道䌚瀟によっお行われたすが、最小出荷量が1,000トン/月の契玄を結んでいたす。ただし、鉄道䌚瀟の車䞡数の制限により1ヶ月に5,000トン以䞊を出荷するこずができたせん。 発地 着地 コスト 最小茞送量/月 最倧茞送量/月 Youngstown Albany 500 – 1000 Youngstown Cincinnati 350 – 3000 Youngstown Kansas City 450 1000 5000 Youngstown Chicago 375 – 5000 Pittsburgh Cincinnati 350 – 2000 Pittsburgh Kansas City 450 2000 3000 Pittsburgh Chicago 400 – 4000 Pittsburgh Gary 450 – 2000 Cincinnati Albany 350 1000 5000 Cincinnati Houston 550 – 6000 Kansas City Houston 375 – 4000 Kansas City Tempe 650 – 4000 Chicago Tempe 600 – 2000 Chicago Gary 120 – 4000 䞀般的な転送問題ず同様、American Steel瀟の目的はネットワヌクを通じお商品を出荷するコストを最小限にするこずです。 本䟋題では、次の流入保存制玄に埓う必芁がありたす。補品を補造する”補鉄所“には「䟛絊」が定矩されおおり、ここから流出する商品は「䟛絊」量以䞋である必芁がありたす。たた、消費地に近い”珟堎倉庫“には「需芁」が定矩されおおり、「需芁」量以䞊の商品が流入される必芁がありたす。たた、各ノヌドぞの流入量は流出量以䞊である必芁がありたす。 この問題は以䞋のようにコヌド化されたす。 %%writefile preprocessing.py import argparse import os import warnings """ The American Steel Problem for the PuLP Modeller Authors: Antony Phillips, Dr Stuart Mitchell 2007 """ # Import PuLP modeller functions from pulp import * # List of all the nodes Nodes = ["Youngstown", "Pittsburgh", "Cincinatti", "Kansas City", "Chicago", "Albany", "Houston", "Tempe", "Gary"] nodeData = {# NODE Supply Demand "Youngstown": [10000,0], "Pittsburgh": [15000,0], "Cincinatti": [0,0], "Kansas City": [0,0], "Chicago": [0,0], "Albany": [0,3000], "Houston": [0,7000], "Tempe": [0,4000], "Gary": [0,6000]} # List of all the arcs Arcs = [("Youngstown","Albany"), ("Youngstown","Cincinatti"), ("Youngstown","Kansas City"), ("Youngstown","Chicago"), ("Pittsburgh","Cincinatti"), ("Pittsburgh","Kansas City"), ("Pittsburgh","Chicago"), ("Pittsburgh","Gary"), ("Cincinatti","Albany"), ("Cincinatti","Houston"), ("Kansas City","Houston"), ("Kansas City","Tempe"), ("Chicago","Tempe"), ("Chicago","Gary")] arcData = { # ARC Cost Min Max ("Youngstown","Albany"): [0.5,0,1000], ("Youngstown","Cincinatti"): [0.35,0,3000], ("Youngstown","Kansas City"): [0.45,1000,5000], ("Youngstown","Chicago"): [0.375,0,5000], ("Pittsburgh","Cincinatti"): [0.35,0,2000], ("Pittsburgh","Kansas City"): [0.45,2000,3000], ("Pittsburgh","Chicago"): [0.4,0,4000], ("Pittsburgh","Gary"): [0.45,0,2000], ("Cincinatti","Albany"): [0.35,1000,5000], ("Cincinatti","Houston"): [0.55,0,6000], ("Kansas City","Houston"): [0.375,0,4000], ("Kansas City","Tempe"): [0.65,0,4000], ("Chicago","Tempe"): [0.6,0,2000], ("Chicago","Gary"): [0.12,0,4000]} # Splits the dictionaries to be more understandable (supply, demand) = splitDict(nodeData) (costs, mins, maxs) = splitDict(arcData) # Creates the boundless Variables as Integers vars = LpVariable.dicts("Route",Arcs,None,None,LpInteger) # Creates the upper and lower bounds on the variables for a in Arcs: vars[a].bounds(mins[a], maxs[a]) # Creates the 'prob' variable to contain the problem data prob = LpProblem("American Steel Problem",LpMinimize) # Creates the objective function prob += lpSum([vars[a]* costs[a] for a in Arcs]), "Total Cost of Transport" # Creates all problem constraints - this ensures the amount going into each node is at least equal to the amount leaving for n in Nodes: prob += (supply[n]+ lpSum([vars[(i,j)] for (i,j) in Arcs if j == n]) >= demand[n]+ lpSum([vars[(i,j)] for (i,j) in Arcs if i == n])), "Steel Flow Conservation in Node %s"%n # The problem data is written to an .lp file prob.writeLP('/opt/ml/processing/data/' + 'AmericanSteelProblem.lp') # The problem is solved using PuLP's choice of Solver prob.solve() # The status of the solution is printed to the screen print("Status:", LpStatus[prob.status]) # Each of the variables is printed with it's resolved optimum value for v in prob.variables(): print(v.name, "=", v.varValue) # The optimised objective function value is printed to the screen print("Total Cost of Transportation = ", value(prob.objective)) この䟋題を PuLP ずそのデフォルトの゜ルバヌである CBC を script_processor.run で実行したす。この最適化ゞョブは以䞋のログを出力したす。 Status: Optimal Route_('Chicago',_'Gary') = 4000.0 Route_('Chicago',_'Tempe') = 2000.0 Route_('Cincinatti',_'Albany') = 2000.0 Route_('Cincinatti',_'Houston') = 3000.0 Route_('Kansas_City',_'Houston') = 4000.0 Route_('Kansas_City',_'Tempe') = 2000.0 Route_('Pittsburgh',_'Chicago') = 3000.0 Route_('Pittsburgh',_'Cincinatti') = 2000.0 Route_('Pittsburgh',_'Gary') = 2000.0 Route_('Pittsburgh',_'Kansas_City') = 3000.0 Route_('Youngstown',_'Albany') = 1000.0 Route_('Youngstown',_'Chicago') = 3000.0 Route_('Youngstown',_'Cincinatti') = 3000.0 Route_('Youngstown',_'Kansas_City') = 3000.0 Total Cost of Transportation = 15005.0 䟋題2: 病院における看護垫のシフトをスケゞュヌリングするナヌススケゞュヌリング この䟋題では、4人の看護垫の3日間の勀務スケゞュヌルを䜜成したす。ただし、勀務衚の䜜成にあたっおは以䞋の条件を満たす必芁がありたす。 1日のスケゞュヌルは 8 時間の 3 ぀のシフトで構成されたす。 1日の䞭で 1 人の看護垫が割り圓おられるシフトは1぀です。耇数のシフトを勀務するこずはできたせん。 各看護垫は 3 日間の期間䞭に少なくずも 2 ぀のシフトに割り圓おられたす。 このスケゞュヌリング問題に぀いおさらに詳しい情報は こちら をご参照ください。 この䟋題は以䞋のようにコヌド化されたす。 %%writefile preprocessing.py from __future__ import print_function from ortools.sat.python import cp_model class NursesPartialSolutionPrinter(cp_model.CpSolverSolutionCallback): """Print intermediate solutions.""" def __init__(self, shifts, num_nurses, num_days, num_shifts, sols): cp_model.CpSolverSolutionCallback.__init__(self) self._shifts = shifts self._num_nurses = num_nurses self._num_days = num_days self._num_shifts = num_shifts self._solutions = set(sols) self._solution_count = 0 def on_solution_callback(self): if self._solution_count in self._solutions: print('Solution %i' % self._solution_count) for d in range(self._num_days): print('Day %i' % d) for n in range(self._num_nurses): is_working = False for s in range(self._num_shifts): if self.Value(self._shifts[(n, d, s)]): is_working = True print(' Nurse %i works shift %i' % (n, s)) if not is_working: print(' Nurse {} does not work'.format(n)) print() self._solution_count += 1 def solution_count(self): return self._solution_count def main(): # Data. num_nurses = 4 num_shifts = 3 num_days = 3 all_nurses = range(num_nurses) all_shifts = range(num_shifts) all_days = range(num_days) # Creates the model. model = cp_model.CpModel() # Creates shift variables. # shifts[(n, d, s)]: nurse 'n' works shift 's' on day 'd'. shifts = {} for n in all_nurses: for d in all_days: for s in all_shifts: shifts[(n, d, s)] = model.NewBoolVar('shift_n%id%is%i' % (n, d, s)) # Each shift is assigned to exactly one nurse in the schedule period. for d in all_days: for s in all_shifts: model.Add(sum(shifts[(n, d, s)] for n in all_nurses) == 1) # Each nurse works at most one shift per day. for n in all_nurses: for d in all_days: model.Add(sum(shifts[(n, d, s)] for s in all_shifts) <= 1) # min_shifts_per_nurse is the largest integer such that every nurse # can be assigned at least that many shifts. If the number of nurses doesn't # divide the total number of shifts over the schedule period, # some nurses have to work one more shift, for a total of # min_shifts_per_nurse + 1. min_shifts_per_nurse = (num_shifts * num_days) // num_nurses max_shifts_per_nurse = min_shifts_per_nurse + 1 for n in all_nurses: num_shifts_worked = sum( shifts[(n, d, s)] for d in all_days for s in all_shifts) model.Add(min_shifts_per_nurse <= num_shifts_worked) model.Add(num_shifts_worked <= max_shifts_per_nurse) # Creates the solver and solve. solver = cp_model.CpSolver() solver.parameters.linearization_level = 0 # Display the first five solutions. a_few_solutions = range(5) solution_printer = NursesPartialSolutionPrinter(shifts, num_nurses, num_days, num_shifts, a_few_solutions) solver.SearchForAllSolutions(model, solution_printer) # Statistics. print() print('Statistics') print(' - conflicts : %i' % solver.NumConflicts()) print(' - branches : %i' % solver.NumBranches()) print(' - wall time : %f s' % solver.WallTime()) print(' - solutions found : %i' % solution_printer.solution_count()) if __name__ == '__main__': main() この䟋題を OR-Tools ず゜ルバヌのCP-SATを䜿うよう、 script_processor.run で実行したす。この最適化ゞョブは以䞋のログを出力したす。 Solution 0 Day 0 Nurse 0 does not work Nurse 1 works shift 0 Nurse 2 works shift 1 Nurse 3 works shift 2 Day 1 Nurse 0 works shift 2 Nurse 1 does not work Nurse 2 works shift 1 Nurse 3 works shift 0 Day 2 Nurse 0 works shift 2 Nurse 1 works shift 1 Nurse 2 works shift 0 Nurse 3 does not work Solution 1 Day 0 Nurse 0 works shift 0 Nurse 1 does not work Nurse 2 works shift 1 Nurse 3 works shift 2 Day 1 Nurse 0 does not work Nurse 1 works shift 2 Nurse 2 works shift 1 Nurse 3 works shift 0 Day 2 Nurse 0 works shift 2 Nurse 1 works shift 1 Nurse 2 works shift 0 Nurse 3 does not work Solution 2 Day 0 Nurse 0 works shift 0 Nurse 1 does not work Nurse 2 works shift 1 Nurse 3 works shift 2 Day 1 Nurse 0 works shift 1 Nurse 1 works shift 2 Nurse 2 does not work Nurse 3 works shift 0 Day 2 Nurse 0 works shift 2 Nurse 1 works shift 1 Nurse 2 works shift 0 Nurse 3 does not work Solution 3 Day 0 Nurse 0 works shift 0 Nurse 1 does not work Nurse 2 works shift 1 Nurse 3 works shift 2 Day 1 Nurse 0 works shift 2 Nurse 1 works shift 1 Nurse 2 does not work Nurse 3 works shift 0 Day 2 Nurse 0 works shift 2 Nurse 1 works shift 1 Nurse 2 works shift 0 Nurse 3 does not work Solution 4 Day 0 Nurse 0 does not work Nurse 1 works shift 0 Nurse 2 works shift 1 Nurse 3 works shift 2 Day 1 Nurse 0 works shift 2 Nurse 1 works shift 1 Nurse 2 does not work Nurse 3 works shift 0 Day 2 Nurse 0 works shift 2 Nurse 1 works shift 1 Nurse 2 works shift 0 Nurse 3 does not work Statistics - conflicts : 37 - branches : 41231 - wall time : 0.367511 s - solutions found : 5184 䟋題3: アポロ11号の月着陞船を最小の燃料で着陞させる軌道を求める この䟋題では、 Pyomo によるシンプルな宇宙ロケットのモデルを䜿甚しお、月面着陞のための制埡ポリシヌを蚈算したす。 ここで䜿甚しおいるパラメヌタは、1969幎7月20日のアポロ11号月着陞船の月ぞの降䞋時のものです。高床 h で垂盎飛行䞭の質量 m のロケットの堎合、運動量バランスにより次のモデルが埗られたす。 このモデルでは、 u は掚進剀の質量流量、ve はロケットに察する排気の速床を衚しおいたす。モデリングず制埡のこの最初の詊みでは、燃料の燃焌によるロケットの質量の倉化を無芖したす。 燃料消費量は以䞋の匏で算出されたす。 さらに以䞋で燃料消費量が最小ずなるような軌道を求めたす。 この䟋題は以䞋のようにコヌド化されたす。 %%writefile preprocessing.py import numpy as np from pyomo.environ import * from pyomo.dae import * #Define constants ... # lunar module m_ascent_dry = 2445.0 # kg mass of ascent stage without fuel m_ascent_fuel = 2376.0 # kg mass of ascent stage fuel m_descent_dry = 2034.0 # kg mass of descent stage without fuel m_descent_fuel = 8248.0 # kg mass of descent stage fuel m_fuel = m_descent_fuel m_dry = m_ascent_dry + m_ascent_fuel + m_descent_dry m_total = m_dry + m_fuel # descent engine characteristics v_exhaust = 3050.0 # m/s u_max = 45050.0/v_exhaust # 45050 newtons / exhaust velocity # landing mission specifications h_initial = 100000.0 # meters v_initial = 1520 # orbital velocity m/s g = 1.62 # m/s**2 m = ConcreteModel() m.t = ContinuousSet(bounds=(0, 1)) m.h = Var(m.t) m.u = Var(m.t, bounds=(0, u_max)) m.T = Var(domain=NonNegativeReals) m.v = DerivativeVar(m.h, wrt=m.t) m.a = DerivativeVar(m.v, wrt=m.t) m.fuel = Integral(m.t, wrt=m.t, rule = lambda m, t: m.u[t]*m.T) m.obj = Objective(expr=m.fuel, sense=minimize) m.ode1 = Constraint(m.t, rule = lambda m, t: m_total*m.a[t]/m.T**2 == -m_total*g + v_exhaust*m.u[t]) m.h[0].fix(h_initial) m.v[0].fix(-v_initial) m.h[1].fix(0) # land on surface m.v[1].fix(0) # soft landing def solve(m): TransformationFactory('dae.finite_difference').apply_to(m, nfe=50, scheme='FORWARD') SolverFactory('ipopt').solve(m, tee=True) solve(m) この連続時間の軌道最適化問題を解決するため、 Pyomo ず非線圢最適化゜ルバヌ Ipopt を䜿甚したす。 実行結果は以䞋のように ScriptProcessor.run のログに出力されたす。 Ipopt 3.12.13: ****************************************************************************** This program contains Ipopt, a library for large-scale nonlinear optimization. Ipopt is released as open source code under the Eclipse Public License (EPL). For more information visit http://projects.coin-or.org/Ipopt ****************************************************************************** This is Ipopt version 3.12.13, running with linear solver mumps. NOTE: Other linear solvers might be more efficient (see Ipopt documentation). Number of nonzeros in equality constraint Jacobian...: 448 Number of nonzeros in inequality constraint Jacobian.: 0 Number of nonzeros in Lagrangian Hessian.............: 154 Error in an AMPL evaluation. Run with "halt_on_ampl_error yes" to see details. Error evaluating Jacobian of equality constraints at user provided starting point. No scaling factors for equality constraints computed! Total number of variables............................: 201 variables with only lower bounds: 1 variables with lower and upper bounds: 51 variables with only upper bounds: 0 Total number of equality constraints.................: 151 Total number of inequality constraints...............: 0 inequality constraints with only lower bounds: 0 inequality constraints with lower and upper bounds: 0 inequality constraints with only upper bounds: 0 iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 0 9.9999800e-05 5.00e+06 9.90e-01 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0 1r 9.9999800e-05 5.00e+06 9.99e+02 6.7 0.00e+00 - 0.00e+00 4.29e-14R 4 2r 2.1397987e+02 5.00e+06 4.78e+08 6.7 2.14e+05 - 1.00e+00 6.83e-05f 1 3r 2.1342176e+02 5.00e+06 1.36e+08 3.2 4.37e+04 - 7.16e-01 6.16e-01f 1 4r 1.7048263e+02 4.99e+06 4.67e+07 3.2 1.60e+04 - 9.85e-01 4.16e-01f 1 5r 1.5143799e+02 4.99e+06 2.50e+07 3.2 3.57e+03 - 5.88e-01 7.62e-01f 1 6r 1.3041897e+02 4.99e+06 2.08e+07 3.2 1.89e+03 - 2.75e-01 8.14e-01f 1 7r 1.1452223e+02 4.99e+06 3.17e+04 3.2 1.97e+03 - 9.78e-01 8.18e-01f 1 8r 1.1168709e+02 4.99e+06 2.72e+05 3.2 3.36e-01 4.0 9.78e-01 1.00e+00f 1 9r 1.0774716e+02 4.99e+06 1.66e+05 3.2 4.28e+03 - 9.36e-01 9.70e-02f 1 iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 10r 8.7784873e+01 5.00e+06 5.08e+04 3.2 3.69e+03 - 8.74e-01 7.24e-01f 1 11r 7.9008215e+01 5.00e+06 1.88e+04 2.5 1.09e+03 - 1.22e-01 8.35e-01h 1 12r 1.1960245e+02 5.00e+06 4.34e+03 2.5 1.81e+03 - 6.76e-01 1.00e+00f 1 13r 1.2344166e+02 5.00e+06 1.35e+03 1.8 1.66e+02 - 8.23e-01 1.00e+00f 1 14r 2.0065756e+02 4.99e+06 6.85e+02 1.1 4.28e+03 - 4.26e-01 1.00e+00f 1 15r 3.0115879e+02 4.99e+06 4.78e+01 1.1 9.69e+03 - 7.64e-01 1.00e+00f 1 16r 3.0355974e+02 4.99e+06 5.30e+00 1.1 4.92e+00 - 1.00e+00 1.00e+00f 1 17r 3.0555655e+02 4.99e+06 6.83e+02 0.4 7.49e+00 - 1.00e+00 1.00e+00f 1 18r 4.4494526e+02 4.97e+06 2.28e+01 0.4 2.17e+04 - 8.05e-01 1.00e+00f 1 19r 3.9588385e+02 4.97e+06 3.77e+00 0.4 4.73e+00 - 1.00e+00 1.00e+00f 1 iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 20r 4.0158949e+02 4.97e+06 7.79e-02 0.4 5.70e-01 - 1.00e+00 1.00e+00h 1 21r 4.0076180e+02 4.97e+06 9.88e+02 -1.0 1.80e+00 - 1.00e+00 1.00e+00f 1 22r 5.4964501e+02 4.95e+06 7.59e+02 -1.0 1.57e+05 - 2.48e-01 2.32e-01f 1 23r 5.5056601e+02 4.95e+06 7.57e+02 -1.0 1.21e+05 - 1.00e+00 3.02e-03f 1 24r 5.5057553e+02 4.95e+06 7.57e+02 -1.0 1.09e+05 - 8.13e-01 3.34e-05f 1 25r 5.5898777e+02 4.95e+06 7.00e+02 -1.0 3.82e+04 - 1.00e+00 7.48e-02f 1 26r 6.0274077e+02 4.96e+06 3.93e+02 -1.0 3.53e+04 - 1.00e+00 4.39e-01f 1 27r 6.0301192e+02 4.96e+06 3.90e+02 -1.0 1.98e+04 - 1.00e+00 7.83e-03f 1 28r 6.0301418e+02 4.96e+06 3.89e+02 -1.0 1.61e+04 - 1.00e+00 9.62e-05f 1 29r 5.9834909e+02 4.96e+06 3.71e+02 -1.0 3.63e+03 - 1.00e+00 1.85e-01f 1 iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 30r 5.7601446e+02 4.95e+06 1.67e+00 -1.0 2.96e+03 - 1.00e+00 1.00e+00f 1 31r 5.6977301e+02 4.95e+06 6.41e-02 -1.0 1.22e+00 - 1.00e+00 1.00e+00h 1 32r 5.7024128e+02 4.95e+06 9.05e-05 -1.0 4.89e-02 - 1.00e+00 1.00e+00h 1 33r 5.6989454e+02 4.95e+06 6.84e+02 -2.5 9.30e-02 - 1.00e+00 1.00e+00f 1 34r 5.7613459e+02 4.94e+06 5.38e+02 -2.5 5.65e+04 - 4.67e-01 2.13e-01f 1 35r 5.7617358e+02 4.94e+06 5.37e+02 -2.5 4.45e+04 - 1.00e+00 9.52e-04f 1 36r 6.6264177e+02 4.90e+06 3.78e+01 -2.5 4.45e+04 - 6.62e-01 9.30e-01f 1 37r 7.5101828e+02 4.90e+06 7.59e+01 -2.5 3.12e+03 - 1.25e-02 1.00e+00f 1 38r 7.5705424e+02 4.90e+06 8.60e-02 -2.5 7.04e-01 - 1.00e+00 1.00e+00h 1 39r 7.5713736e+02 4.90e+06 2.85e-05 -2.5 9.02e-03 - 1.00e+00 1.00e+00h 1 iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 40r 7.5713093e+02 4.90e+06 4.90e+02 -5.7 6.76e-03 - 1.00e+00 9.99e-01f 1 41r 1.0909809e+03 4.78e+06 4.67e+02 -5.7 2.54e+06 - 6.15e-02 4.62e-02f 1 42r 1.0909867e+03 4.78e+06 4.67e+02 -5.7 2.42e+06 - 1.00e+00 9.55e-07f 1 43r 1.5672936e+03 4.59e+06 8.15e+03 -5.7 2.42e+06 - 3.36e-03 7.69e-02f 1 44r 1.7598365e+03 4.50e+06 8.17e+03 -5.7 2.24e+06 - 4.43e-08 4.23e-02f 1 45r 5.7264420e+03 2.36e+06 4.60e+03 -5.7 2.14e+06 - 7.07e-02 1.00e+00f 1 46 4.3546591e+03 2.35e+06 1.50e+01 -1.0 2.51e+08 - 3.52e-03 2.97e-03f 1 47 3.7700543e+03 2.16e+06 1.94e+01 -1.0 2.87e+06 - 3.27e-01 8.10e-02f 1 48 3.9963720e+03 1.02e+06 7.97e+00 -1.0 3.70e+05 - 3.47e-01 5.26e-01h 1 49 4.0601733e+03 5.28e+05 5.09e+00 -1.0 1.57e+06 - 5.24e-03 4.85e-01h 1 iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 50 4.0596593e+03 5.27e+05 3.53e+00 -1.0 4.32e+06 - 7.60e-01 1.81e-03h 1 51 4.1577305e+03 9.40e+04 7.32e-01 -1.0 4.01e+05 - 9.09e-01 8.22e-01h 1 52 4.1754490e+03 1.27e+01 4.74e-02 -1.0 5.08e+04 - 8.32e-01 1.00e+00h 1 53 4.1752565e+03 7.78e-02 8.68e-07 -1.0 1.49e+04 - 1.00e+00 1.00e+00h 1 54 4.1704409e+03 1.60e+00 3.18e-05 -2.5 1.16e+04 - 1.00e+00 1.00e+00f 1 55 4.1704236e+03 6.98e-04 2.83e-08 -2.5 1.41e+03 - 1.00e+00 1.00e+00h 1 56 4.1702897e+03 1.15e-03 2.31e-08 -3.8 2.98e+02 - 1.00e+00 1.00e+00f 1 57 4.1702823e+03 3.63e-06 5.75e-11 -5.7 1.67e+01 - 1.00e+00 1.00e+00h 1 58 4.1702822e+03 1.28e-09 1.62e-14 -8.6 2.04e-01 - 1.00e+00 1.00e+00h 1 Number of Iterations....: 58 (scaled) (unscaled) Objective...............: 4.1702822027548118e+03 4.1702822027548118e+03 Dual infeasibility......: 1.6235231869939369e-14 1.6235231869939369e-14 Constraint violation....: 1.2805685400962830e-09 1.2805685400962830e-09 Complementarity.........: 2.5079038009909822e-09 2.5079038009909822e-09 Overall NLP error.......: 2.5079038009909822e-09 2.5079038009909822e-09 Number of objective function evaluations = 63 Number of objective gradient evaluations = 16 Number of equality constraint evaluations = 63 Number of inequality constraint evaluations = 0 Number of equality constraint Jacobian evaluations = 60 Number of inequality constraint Jacobian evaluations = 0 Number of Lagrangian Hessian evaluations = 58 Total CPU secs in IPOPT (w/o function evaluations) = 0.682 Total CPU secs in NLP function evaluations = 0.002 EXIT: Optimal Solution Found. たずめ この蚘事では、SageMaker Processing を䜿甚しお数倀最適化問題を解決するために、様々なフロント゚ンドツヌルや゜ルバヌを詊したした。さらに、Scipy.optimize やDEAP、Inspyred を䜿甚しお他の䟋題を詊しおみおください。自瀟におけるビゞネス問題を SageMaker Processing を䜿甚しお解決する際には、次のセクションの参考文献や他の䟋題を参照しおください。もし珟圚、機械孊習プロゞェクトで SageMaker API を䜿甚しおいる堎合、最適化を実行するために SageMaker Processing を䜿甚するこずは、シンプルな方匏です。ただし、最適化問題の解決のためにこれらのオヌプン゜ヌスラむブラリを実行するには、Lambda や Fargate などの他のAWSサヌビスも怜蚎するこずをおすすめしたす。たた、この蚘事で䜿甚したオヌプン゜ヌスラむブラリは最小限のサポヌトで提䟛される䞀方、CPLX や Gurobi などの商甚ラむブラリは垞に高いパフォヌマンスを远求しおおり、通垞はプレミアムサポヌトも提䟛されおいたす。 参考情報 Training APIs: Processing https://pypi.org/project/PuLP/ OR-Tools: Get Started Guides Pyomo Documentation 5.7.2 inspyred: Recipes Optimization and root finding (scipy.optimize) DEAP documentation https://www.gurobi.com/ CPLEX optimzer OR Tools code license PuLP code license Pyomo code license 著者に぀いお Shreyas Subramanian は AI/ML specialist Solutions Architect です。機械孊習を䜿っおAWSのお客様の課題解決に取り組んでいたす。 この蚘事の翻蚳は゜リュヌションアヌキテクトの暪山誠が担圓したした。原文は こちら です。
アバタヌ
人気の React フレヌムワヌクである Next.js は、開発者がモダンな Web アプリケヌションを構築する方法を倉えたした。Next.js は、Static Site Generation (SSG) や Server Side Rendering (SSR) ずいった匷力な機胜を提䟛し、アプリケヌションのパフォヌマンスずナヌザヌ䜓隓を最適化したす。本蚘事では、SSG ず SSR の䞻な違い、利点、い぀どちらかを遞択するか、それぞれのアプロヌチで AWS Amplify を䜿っおデプロむする方法を説明したす。Amplify は、フロント゚ンドの Web やモバむル開発者が AWS 䞊でフルスタックのアプリケヌションを簡単に構築、ホストできるようにする包括的な゜リュヌションです。 Static Site Generation (SSG) ずは Static Site Generation は、ビルド時に静的な HTML ファむルを生成したす。アプリをビルドするたびに、党おのペヌゞが䜜成されたす。ナヌザヌが Web サむトにアクセスするずこれらのファむルがナヌザヌに提䟛され、サヌバヌは䜙蚈な䜜業をする必芁がなくなりたす。このアプロヌチは、ブログやドキュメントサむトのような、頻繁に倉曎されないコンテンツを持぀ Web サむトに適しおいたす。 SSG の利点 速床  レンダリングされた HTML ファむルが盎接提䟛されるため、ロヌド時間が短瞮されたす。 スケヌラビリティ  静的ファむルは CDN によっお簡単に提䟛され、アプリケヌションの胜力を向䞊させ、グロヌバルなトラフィックを凊理するこずができたす。 Server Side Rendering (SSR) ずは Server Side Rendering は、ナヌザヌがリク゚ストしたずきに、サヌバヌ䞊で各ペヌゞを生成したす。SSR では、ペヌゞを事前にレンダリングするサヌバヌがありたす。それは、倉数を差し蟌むテンプレヌトのようなもので、サヌバヌはすべおのレンダリングを凊理したす。。これはリク゚スト時に発生するので、ナヌザがペヌゞをリク゚ストするず、サヌバ偎でレンダリングされたペヌゞを取埗したす。このレンダリングはすべおサヌバヌサむドで行われ、ブラりザで実行されるこずはありたせん。そのため、ペヌゞがすでにサヌバでレンダリングされおクラむアントに提䟛されるのを埅っおいる SSG ずは異なり、SSR はリク゚ストを受け取ったずきにサヌバでペヌゞをレンダリングしたす。SSR は、e コマヌスサむトや゜ヌシャルメディアプラットフォヌムのような、頻繁に倉曎される動的たたはパヌ゜ナラむズされたコンテンツを持぀ Web サむトに最適です。 SSR の利点 䞀貫したナヌザヌ䜓隓  ナヌザヌは、その堎で生成された最新のコンテンツを芋るこずができ、垞に最新の情報を埗るこずができたす。 パヌ゜ナラむれヌション  SSR は、ナヌザヌの嗜奜やその他の動的なデヌタに基づいお、ナニヌクなコンテンツを提䟛するこずができたす。 SSG ず SSR のどちらを遞ぶべきか コンテンツは頻繁に曎新されおいたすかコンテンツが頻繁に倉曎されない堎合は、パフォヌマンスずスケヌラビリティを向䞊させるために SSG を遞択する方が良いでしょう。動的なコンテンツの堎合、SSR はナヌザヌに最新の情報を提䟛したす。 あなたの Web サむトはむンタラクティブなナヌザヌ䜓隓を提䟛したすか SSR Web サむトはむンタラクティブなナヌザヌ䜓隓を提䟛したすが、SSG Web サむトは CSR や SSR ず組み合わされおいない限り、動的コンテンツをほずんど含たない静的なサむトです。 ビルド時ずランタむムのどちらにレンダリングコストをかけたいですか ビルド時にレンダリングコストを発生させたい堎合は SSG を、ランタむムに発生させたい堎合は SSR を遞択しおください。 SEO 察策は必芁ですか SEO のための SSR ず SSG の䞻な違いは、サヌバヌの応答時間だけです。 ビゞネス芁件を考慮する SSG は優れた SEO 効果を提䟛したすが、SSRは 怜玢ランキングに重芁な動的コンテンツずパヌ゜ナラむれヌションをより良くサポヌトしたす。 ナヌザヌ䜓隓  ナヌザヌがリアルタむムのデヌタやパヌ゜ナラむズされたコンテンツを必芁ずしおいるかどうかを怜蚎したしょう。もし必芁であれば、SSR の方がよいでしょう。そうでない堎合は、SSG の方がより䜎いサヌバヌ芁件でより高速な䜓隓を提䟛したす。 最新デヌタ  SSRペヌゞはナヌザヌからのリク゚ストごずにサヌバヌ䞊で生成されるため、垞に最新のデヌタを衚瀺したす。すべおのリク゚ストで、垞に最新/最新の情報を埗るこずができたす。 Next.js の SSG ず SSR 正しいレンダリングアプロヌチの遞択 この蚘事では、Next.jsの2぀のレンダリングアプロヌチ、SSGずSSRに぀いお説明したす。たた、あなたのアプリケヌションに最適なレンダリングアプロヌチを刀断するためのコヌドベヌス䟋も玹介したす。 Next.js は、n 個の動的生成ルヌトを生成する機胜をサポヌトしおいたす。コヌドベヌスの䟋では、過去数日間の Hacker News のトップ投皿を 100 件取埗し、それらの ID をホヌムペヌゞにレンダリングしたす。 クリックするず、それぞれのペヌゞに投皿の詳现が衚瀺されたす。これらの各ペヌゞはたた、 pages/[hackerNewsArticleId] のようなルヌトを持ちたす。あなたは、そのテンプレヌトペヌゞが slug 指定で pages フォルダで利甚可胜であるこずを芋るこずができたす。 この静的に生成されるパスのリストを定矩するために getStaticProps ず getStaticPaths の 2 ぀の Next.js 関数を䜿いたす。 getStaticProps は、ビルド時にペヌゞをプリレンダリングし、Hacker News API から投皿情報のリストを取埗し、その情報を getStaticPaths ず同様にコンポヌネントの props に枡したす。 2番目の関数である getStaticPaths は動的ルヌティングに非垞に重芁です。 getStaticProps から ID のリストを受け取り、以䞋のようなパスオブゞェクトのリストを䜜成したす。 export async function getStaticPaths() { return { paths: [{ params: { id: '1' } }, { params: { id: '2' } }], fallback: false, // can also be true or 'blocking' } } Next.js はこのパスのリストを取り蟌み、それぞれのパラメヌタに察しお新しいペヌゞを生成したす。たた、個々のペヌゞにルヌティングするために、プラむマリコンポヌネントに Hacker News ID をむンゞェストしおレンダリングするようにしたした。動的にレンダリングされたコンポヌネントペヌゞに行くず、再び getStaticProps メ゜ッドを呌び出しお Hacker News の詳现゚ンドポむントを呌び出し、投皿のタむトルや投祚数などを取埗しおいるこずがわかりたす。これはコンパむル時のブログ蚘事のスナップショットであるこずに泚意しおください。 SSG のアプロヌチ GitHub リポゞトリ から、SSG Next.js アプリを Amplify にデプロむする方法を説明したす。たずは、以䞋をクリックしお、このプロゞェクトを自分の環境にデプロむしおください。Amplify でのデプロむずホスティングの詳现は こちら を確認しおください。 Connect to GitHub を遞択し、aws-amplify-console を認蚌したす。 Deploy App ペヌゞで、 Create new role を遞択したす。 ロヌルを䜜成したら、 Deploy App ペヌゞで既存のロヌルをリフレッシュし、䜜成したばかりのロヌルを遞択したす。 Save and Deploy を遞択したす。 アプリのデプロむには 2  3 分かかりたす。ボックスが衚瀺されたら、 Continue をクリックしたす。その埌、Amplify アプリがプロビゞョニング、ビルド、デプロむの各段階に進むのを確認できたす。 デプロむが完了するず、そのドメむンでホストされおいる Web サむトにアクセスできるようになりたす。 ドメむンを遞択するず、Amplify アプリに移動し、SSG Next.js アプリが衚瀺されたす。 SSR のアプロヌチ Next.js の Web アプリケヌション を GitHub から盎接 Amplify にデプロむする方法を芋おいきたしょう。 実は Amplify にデプロむするずきに、すでに SSR ペヌゞをデプロむしおいたす。Next.js のすごいずころは、ビルド時に生成するペヌゞもあれば、SSR を利甚しお動的なデヌタをレンダリングするペヌゞもあるこずです。 特定のペヌゞで Server Side Rendering を䜿甚するには、 getServerSideProps ずいう非同期関数を゚クスポヌトしたす。この関数は、リク゚ストごずにサヌバヌから呌び出されたす。 ホストされおいるリンクで、 /ssr ルヌトに移動したす(ie. https://main..amplifyapp.com/ssr). このようなペヌゞが衚瀺されるはずです。 よくある問題 Next.js では、Create React App (CRA) や React Router ずいったラむブラリを掻甚する、非垞に人気のあるフロント゚ンド・フレヌムワヌクずは異なるパラダむム・シフトが必芁です。 CRA は、React アプリケヌションを䜜成するためのボむラヌプレヌト・プロゞェクトを提䟛するスタヌタヌキットです。CRA は Client Side Rendering (CSR) を䜿甚し、アプリケヌションはブラりザでレンダリングされ、通垞、ナヌザヌのむンタラクションに基づいおネットワヌクリク゚ストを分割するのがベストプラクティスです。SSG ず比范するず、すべおのデヌタを䞀床にロヌドしなければなりたせん。 Static Site Generation 倧芏暡な静的 Web サむトでは、ビルドやデヌタ取埗にかかる時間をすべお顧客に枡す代わりに、サむトがビルドされるのを䜕時間も埅぀こずになるかもしれたせん。静的ペヌゞの数が 2 倍になるたびに、ビルド時間も 2 倍になりたす。 10,000 のアむテムがある e コマヌス・ Web サむトの堎合、各アむテムのフェッチビルドに玄 1 秒かかるずするず、ビルドずデプロむに 3 時間近くかかるこずになりたす。 この堎合、 Incremental Static Regeneration (ISR) が適しおいたす。これによっお Web サむト党䜓を再構築するこずなく倉曎を加えるこずができたす。 デヌタ・フェッチ 最近の Web 開発では、ナヌザヌの viewport (衚瀺領域) を埋めるのに十分な API 呌び出しだけを行い、朜圚的に埌続のナヌザヌアクションのためのデヌタをプリフェッチするこずがが掚奚されるこずがよくありたす。しかし、SSG では、 Web ペヌゞ党䜓ず朜圚的なナヌザヌのアクションをすべお入力するために必芁なすべおの API をコヌルする必芁がありたす。 ペヌゞの曎新 䟋えば、耇数のセクションがあるブログのペヌゞなど、 Web サむトのあるペヌゞが頻繁に曎新される堎合、SSG はひず぀のペヌゞに含たれる倉曎のために、サむト党䜓を頻繁にリビルドす必芁があるかもしれたせん。 その結果、SSG ペヌゞはビルド時に HTTP ヘッダやク゚リパラメヌタのようなリク゚ストに盎接アクセスするこずができたせん。もしこれらにアクセスしたければ、SSG に加えおカスタムミドルりェアを曞かなければなりたせん。 Server Side Rendering レむテンシ 生成プロセスにおいお、倖郚 API からのデヌタ取埗のように、最終的にペヌゞの読み蟌み速床に圱響を䞎える倖郚芁因がありたす。API のレスポンスが遅ければ、ペヌゞ生成の読み蟌み時間は遅くなりたす。たた、SSR はリク゚ストごずにペヌゞを生成するので、SSG に比べお遅くなりたす。 SSR のペヌゞでキャッシュを有効にし、読み蟌み時間速床を改善するには、 getServerSideProps を呌び出すずきに、远加の HTTP ヘッダ、Cache-Control を远加する必芁がありたす。 こちら を参照しおください。キャッシュに぀いおもっず孊びたい堎合は、 こちら も参照ください。 スケヌラビリティ SSR はリク゚ストごずにサヌバヌがフロント゚ンドを凊理し生成する必芁があり、Web サむトが耇雑なペヌゞを持ち、凊理する゚ンドクラむアントが倚い堎合、スケヌラビリティが䜎く、速床も遅くなりたす。 SSR の 動的 HTMLは静的な CDN (䟋CloudFront) によっおキャッシュされるこずができず、サヌバヌずの埀埩時間が長くなり、ペヌゞをリク゚ストしおからサヌバヌによっお最初のバむトが読み蟌たれるたでの時間 (TTFB: Time to First Byte) が遅くなりたす。 SEO Google ず Bing は、最新のレンダリング゚ンゞンで同じChromium ベヌスのクロヌラヌを掻甚するず発衚したしたが、JavaScript は䟝然ずしお怜玢゚ンゞンがペヌゞを解析する胜力を耇雑にし、SEO ランクを䞋げる可胜性がありたす。怜玢゚ンゞンは JavaScript ファむルをダりンロヌドする必芁があり、サむトの他の郚分に移動する前にバンドル党䜓が読み蟌たれるのを埅おない可胜性がありたす。結局のずころ、Google や Bing があなたのペヌゞをどのようにランク付けするかは䞍確実であり、クロヌラヌを楜にするこずは理にかなっおいるず蚀えるでしょう。 クリヌンアップ Amplify アプリの削陀 GitHub アプリの削陀 たずめ SSG も SSR も、Next.js アプリケヌションの皮類によっおそれぞれの利点がありたす。プロゞェクトのコンテンツ頻床、SEO、ナヌザヌ䜓隓、開発の耇雑さなどを理解するこずで、Next.js プロゞェクトで SSG ず SSR のどちらを䜿うべきか、十分な情報を埗た䞊で決定するこずができたす。最終的には、特定のナヌスケヌスず、パフォヌマンス、スケヌラビリティ、動的コンテンツのトレヌドオフ次第です。 たずは、 Amplify Hosting を利甚しお、ナヌザヌ認蚌機胜付きの Next.js 13 Web アプリを構築 しおみおください。 著者に぀いお Alexa Perlov Alexa Perlov は、ニュヌペヌクを拠点ずするAmazon Web Services の゜リュヌションアヌキテクトです。メディアず゚ンタヌテむンメントの戊略的アカりントのビゞネス目暙達成のために AWS を掻甚するサポヌトをしおたす。技術トレヌニングをリヌドし、幅広いクラりドドメむンに焊点を圓おたプロトタむプを開発しおいたす。 Michael Tran Michael Tran は Amazon Web Services のプロトタむピングアクセラレヌションチヌムの゜リュヌションアヌキテクトです。技術的なガむダンスを提䟛し、AWS 䞊で可胜なアヌトを瀺すこずで顧客のむノベヌションを支揎しおいたす。専門は AI/ML 分野におけるプロトタむプの構築。 本蚘事は、 SSG vs SSR in Next.js Web Applications: Choosing the Right Rendering Approach を翻蚳したものです。翻蚳は゜リュヌションアヌキテクトの 皲田倧陞 が担圓したした。
アバタヌ
はじめに AWS IoT Core を䜿っおモノのむンタヌネット (IoT) デバむスのフリヌトを管理する際に、特定のデバむスやデバむスのセットを ID や胜力に基づいお怜玢し発芋する方法ずしお、AWS IoT のモノのタむプの属性を䜿うこずはデバむスの発芋を容易にするために掚奚される方法の䞀぀です。 「モノ」ずは、AWS IoT Core の IoT 察応デバむスのような゚ンティティの論理的な名前です。モノのプロビゞョニング䞭に、AWS IoT レゞストリ内での識別ず怜玢を容易にするために、怜玢可胜な属性を付䞎するこずができたす。 AWS IoT レゞストリ からモノを怜玢したいのはどんな堎合でしょうか? その質問に答えるために、Lighting-as-a-Service (LaaS) プロバむダたたはその顧客がセルフサヌビスポヌタルを通じお、既に蚭眮されおいる照明から、特定の補品タむプ、モデル番号、ワット数、茝床、色、補造バッチがいく぀あるかを特定する必芁がある、コネクテッド照明のナヌスケヌスを考えおみたしょう。 AWS IoT Core では、モノに怜玢可胜な属性の数が 3 ぀たでずいう制限があり、远加の属性に基づいおデバむスを怜玢したいずきには十分でない堎合がありたす。本蚘事では、AWS IoT Core の モノのタむプ ず AWS IoT Device Management の フリヌトむンデックス の組み合わせを䜿っお、この課題を軜枛する方法を玹介したす。 フリヌトむンデックスにより、フリヌト管理者はデバむスフリヌトを敎理、調査、トラブルシュヌティングするこずができたす。デバむスのグルヌプに怜玢を実行し、状態、接続性、デバむス違反を含むデバむス属性のさたざたな組み合わせに基づくデバむスレコヌドの統蚈を集蚈できたす。䟋えば、ある堎所に蚭眮されたあるモデルの電球のうち、珟圚䜕個が接続切断されおいお、叀いバヌゞョンのファヌムりェアを実行しおいるか、ずいった情報を怜玢するこずができたす。 前提条件 AWS IoT Core の デバむスプロビゞョニング 機胜ず AWS IoT Device Management のフリヌトむンデックス機胜の基本的な理解が必芁です。 チュヌトリアル それでは、怜玢䞍可胜な属性をモノに远加する方法ず、怜玢䞍可胜な属性を䜿っおいおもフリヌトむンデックスを䜿っお怜玢する方法を芋おみたしょう。 MyFirstThing ずいうモノをプロビゞョニングし、怜玢可胜な属性を付けおみたしょう。䞋図からわかるように、怜玢可胜な属性は 3 ぀しか付䞎するこずができたせん。 このモノにさらに属性を远加するために、モノに「モノのタむプ」を付䞎するこずができたす。 モノのタむプは、同じタむプに関連付けられたすべおのモノに共通する説明ず構成情報を保存するこずを可胜にしたす。これにより、レゞストリ内のモノの管理が簡単になりたす。䟋えば、䞀぀䞀぀の電球に個別に属性を割り圓おる代わりに、LightBulb ずいうモノのタむプを䜜成し、シリアル番号、光床、ワット数などの電球の属性を関連付けるこずができたす。さらに、既存のモノのタむプを LightBulb に倉曎すれば、モノのタむプの属性を継承し、モノのタむプで定矩された各属性の倀を指定するこずができるようになりたす。 モノのタむプをモノに割り圓おるこずはオプションですが、これを䜿うこずで 47 の怜玢䞍可胜な属性が远加可胜ずなりたす。この関連付けにより、䞋図のように合蚈 50 の属性が䜿甚可胜になりたす。 本蚘事では、メヌカヌ、シリアル番号、ワット数などの怜玢可胜な属性を持぀ LightBulb タむプを䜜成し、 MyFirstThing に割り圓おたした。たた䞋図でわかるように、3 ぀の怜玢䞍可胜な属性色、ファヌムりェア・タむプ、茝床を远加したした。 では、AWS CLI の list things コマンドを䜿っお怜玢しおみたす。怜玢可胜な属性で怜玢するず、LightBulb_1 がヒットしたす。 aws iot list-things --attribute-name "wattage" --attribute-value '40' { "things": [ { "thingName": "LightBulb_1", "thingTypeName": "LightBulb", "thingArn": "arn:aws:iot:ap-south-1:************:thing/LightBulb_1", "attributes": { "Color": "White", "Firmware_Type_Version": "Smart_LED.1.0", "Luminosity": "100", "manufacturer": "xyz_corp", "serialnumber": "123", "wattage": "40" }, "version": 5 } ] } しかし、怜玢䞍可胜な属性で怜玢するず、モノのタむプで远加された属性は怜玢䞍可胜であるため、コマンドは䜕も返したせん。 aws iot list-things --attribute-name "Color" --attribute-value 'White' { "things": [] } そこで、AWS IoT Device Management のフリヌトむンデックス機胜が圹に立ちたす。 AWS IoT Device Management のフリヌトむンデックス機胜を䜿えば、AWS IoT レゞストリ、AWS IoT デバむスシャドり、AWS IoT ぞの接続状態、AWS IoT Device Defender での違反ずいった゜ヌスからデバむスデヌタのむンデックスを䜜成、怜玢、集玄するこずができたす。 フリヌトむンデックス機胜は、前述したような䞻芁な機胜を備えおいたすが、本蚘事ではモノのタむプの属性に基づくむンデックス䜜成ず怜玢にのみ焊点を圓おたす。 それでは、AWS IoT コン゜ヌルを䜿っおフリヌトむンデックスを有効にしたしょう既に有効になっおいる堎合はこのステップは飛ばしおください。巊のパネルから 蚭定 を遞択し、 フリヌトのむンデックス䜜成  たでスクロヌルし、以䞋のように むンデックス䜜成の管理 を遞択したす。 フリヌトむンデックスの管理画面で、以䞋のようにスむッチを切り替えおフリヌトむンデックスを有効化し、画面䞋郚の 曎新 を遞択しお蚭定を保存したす。 前の画面に衚瀺されおいる他のチェックボックスは、デバむスシャドり、接続状態、および Device Defender の違反に基づくむンデックス䜜成ず怜玢を可胜にしたすが、これらはこの蚘事の範囲倖であるためここでは遞択したせん。 フリヌトむンデックスが有効化されたら、䞋図に瀺すように AWS IoT のモノの管理コン゜ヌルから  高床な怜玢 を遞択したす。 怜玢ボックスを䜿っお、怜玢䞍可胜な属性を怜玢したす。䟋えば、color の倀が white である堎合、以䞋のように、䞀臎する属性倀を持぀ものが画面䞋郚に怜玢結果ずしお衚瀺されたす。 たた、AWS CLI を䜿甚しお、怜玢䞍可胜な属性 color の倀が white であるデバむスに察しお同様の怜玢を実行するこずもできたす。 aws iot search-index –query-string ‘attributes.color=White’ { "things": [ { "thingName": "LightBulb_1", "thingId": "******************************", "thingTypeName": "LightBulb", "attributes": { "Color": "White", "Firmware_Type_Version": "Smart_LED.1.0", "Luminosity": "100", "manufacturer": "xyz_corp", "serialnumber": "123", "wattage": "40" } } ] } なお、AWS IoT Device Management のフリヌトむンデックス䜜成は、管理者がデバむス矀を敎理、調査、トラブルシュヌティングできるようにするものであり、管理甚途でのみ䜿甚すべきこずにご泚意ください。 フリヌトむンデックスず怜玢機胜は、むンデックスの曎新ず怜玢の実行数によっお課金されたす。詳しくは 䟡栌ペヌゞ をご芧ください。たた、制限ずクォヌタに぀いおは こちら をご芧ください。 たずめ 本蚘事では、AWS IoT モノのタむプず AWS IoT Device Management のフリヌトむンデックスを䜿っおデバむスの怜玢性を向䞊する方法を玹介した。モノのタむプを䜿甚するず、モノに远加の属性怜玢䞍可を付䞎するこずができ、これらは怜玢䞍可の属性でありながら、フリヌトむンデックス機胜を䜿甚するこずでこれらの属性が怜玢可胜ずなりたす。 その他のAWS IoT Core 関連のリ゜ヌスに぀いおは、 りェブサむト をご芧ください。 この蚘事は Ankush Sharma によっお曞かれた How to improve device discoverability by unlocking 50 AWS IoT thing type attributes の日本語蚳です。この蚘事は゜リュヌションアヌキテクトの䞭西貎倧が翻蚳したした。
アバタヌ
このブログ蚘事は AWS offers new artificial intelligence, machine learning, and generative AI guides to plan your AI strategy を翻蚳したものです。 人工知胜 (AI) および機械孊習 (ML) に関するブレむクスルヌはこの数か月の間、毎日のように話題になっおいたすが、それには正圓な理由がありたす。これらのテクノロゞヌの新たな進化や機胜は、あらゆる分野や業界のお客様に新たなビゞネスチャンスをもたらすものだからです。その䞀方、これらの技術の進化があたりにも高速であるため、各䌁業では、これらのブレむクスルヌが自分たちにずっお具䜓的に䜕を意味するのかを評䟡するこずが難しくなっおいたす。 アマゟン りェブ サヌビス (以䞋、AWS) では、長幎にわたり、AI、ML、そしお Generative AI (以䞋、生成系AI) ぞのアクセスず理解の民䞻化に投資しおきたした。 生成系 AI の最新開発に関する発衚 や 1 億ドル芏暡の Generative AI Innovation Centerの蚭立 を通じお、AWS は、これらのむノベヌションが個人ず組織の䞡方の生掻に果たす圹割を深く理解するため、最前線に立っお支揎を行っおいたす。AI ず ML に関する遞択肢を理解しやすくするため、AWS は 2 ぀の新しいガむドを公開したした AWS Cloud Adoption Framework for Artificial Intelligence, Machine Learning, and Generative AI ず、 AWS機械孊習サヌビスを遞択するための意思決定ガむド です。 AI, ML, 生成系AIのためのAWSクラりド導入フレヌムワヌク AI, ML, 生成系AIのためのAWSクラりド導入フレヌムワヌク ( AWS Cloud Adoption Framework for Artificial Intelligence, Machine Learning, and Generative AI (以䞋, CAF-AI)) は、AI ぞの移行を支揎する目的で蚭蚈されおおり、AI/ML によっおビゞネス䟡倀を生み出そうずする組織にずっおのメンタルモデルを瀺しおいたす。AWS自身、および圓瀟のお客様の経隓に基づいお䜜られた本フレヌムワヌクのベストプラクティスにより、AI 倉革を実珟し、AWSでのAIの革新的な利甚を通じおビゞネス成果を加速させおいたす。 AWSのお客様およびパヌトナヌチヌムでも利甚されおいるCAF-AIは、AIによる倉革のための戊略の導出、優先順䜍付け、進化、およびコミュニケヌションに圹立ちたす。以䞋の図は、お客様が求めるビゞネス成果 (1) を起点に考える「Working Backwards」のアプロヌチにより、AI、ML、生成系AIがもたらす機䌚 (2) 、自瀟内で倉革の察象ずする領域 (3) 、および基盀ずなるケむパビリティ (4) を、AI戊略のアクションアむテムの評䟡、導出、実装ずいう反埩的なプロセス (5) を通じおAIゞャヌニヌを簡玠化する方法を瀺しおいたす。 CAF-AIでは、AIずMLに関する組織内のケむパビリティが成熟するに぀れお経隓する可胜性のあるAI/MLゞャヌニヌに぀いお説明したす。その指針を瀺すため、組織がAIの成熟床をさらに高めるために圹立぀こずが確認されおいる基本的なケむパビリティの進化に焊点を圓おおいたす。 たた、これらの基本的なケむパビリティのタヌゲット状態の抂芁を通じお芏範的なガむダンスを提䟛し、その過皋でビゞネス䟡倀を生み出すためにケむパビリティを段階的に進化させる方法を説明したす。以䞋の図は、クラりドず AI/ML の運甚のための基本的なケむパビリティを瀺しおいたす。ここでいうケむパビリティずは、所定のプロセスを䜿甚しおリ゜ヌス (人、技術、その他の有圢たたは無圢の資産) を投入しお成果を達成する組織の胜力を指したす。CAF-AIは珟圚も進化を続けおいる知識の指暙であるため、時間の経過ずずもに成長し、倉化するこずが芋蟌たれたす。 CAF-AI は、お客様の ML ず AI ぞの取り組みの出発点および方向付けのポむントずしお蚭蚈されおおり、組織が䞭期的な AI ず ML のアゞェンダを策定し、それに圱響する重芁なトピックや芖点を理解しようずする際にむンスピレヌションを埗られるドキュメントずなるこずを意図しおいたす。AI/ML ゞャヌニヌのどの段階にいるかによっお、特定のセクションに焊点を圓おおそこでスキルを磚くこずも、ドキュメント党䜓を䜿っお成熟床を刀断し、短期的な改善領域を導出するこずも可胜です。 AI/MLが適甚可胜なビゞネス課題は単䞀の機胜や領域に限定されないため、AI/MLが差別化芁玠ずなる垂堎で競争の堎をリセットする方法を探しおいるあらゆるビゞネスの機胜ず業界ドメむンに圓おはたりたす。 AI、ML、生成系AIのための AWS クラりド導入フレヌムワヌク は、この成果を達成するために AWS が提䟛する倚くのツヌルの 1 ぀です。AI/MLは、䜕十幎もの間解決するのが経枈的ではない (たたはAI/MLなしでは技術的に䞍可胜だった) 問題に察する゜リュヌションず解決ぞの道筋を可胜にするため、結果的に埗られるビゞネス成果の可胜性は蚈り知れたせん。 AWS機械孊習を遞択するための意思決定ガむド AWSは、垞にお客様のための遞択肢を重芖しおきたした。AI の掻甚機䌚の拡倧にあたり、お客様のビゞネスニヌズに最適なサヌビス、モデル、むンフラストラクチャを遞択できるよう、適切なサポヌトを受けられるこずが最も重芁ず考えおいたす。 AWS機械孊習サヌビスを遞択するための意思決定ガむド は、AWS が提䟛する AI および ML サヌビスの詳现な抂芁を瀺し、お客様ずお客様のナヌスケヌスに適したサヌビスの遞択方法に関する䜓系的なガむダンスを提䟛するこずを目的ずしおいたす。 本ガむドは、適切な遞択を行うための基準の明確化ず怜蚎にも圹立おるこずができたす。たずえば、AWS が提䟛する AI/ML サヌビスの適甚範囲 (䞋蚘スクリヌンショット参照) に぀いお説明しおいたす。この説明を参照するこずにより、お客様においお必芁な制埡ずカスタマむズの床合いなど、さたざたなレベルの管理芁件に察応するサヌビスを遞定するこずが可胜になりたす。 たた、本ガむドでは、生成系AIの基盀モデルの力を匕き出すための AWS サヌビスの独自機胜や、急速に進化する生成系AIの分野を最倧限に掻甚できる機䌚に぀いおも説明しおいたす。 さらに、本ガむドには、特定のサヌビスの詳现、詳现なサヌビスレベルのテクニカルガむドぞのリンク、䞻芁サヌビスの独自の機胜を匷調した比范衚、AI サヌビスず ML サヌビスの遞択基準が掲茉されおいたす。AWS で AI、ML、生成系 AIの サヌビスを䜿い始めるのに圹立぀䞻芁なリ゜ヌスぞのリンクもたずめられおいたす。 AWS が提䟛する AI、ML、生成系 AI サヌビスの幅広さを理解したいお客様におかれたしおは、本ガむドは良いスタヌトポむントになるず考えおいたす。 結論 このブログ蚘事で玹介した AWS機械孊習サヌビスを遞択するための意思決定ガむド ず、 AWS Cloud Adoption Framework for Artificial Intelligence, Machine Learning, and Generative AI では、お客様からよく聞かれる技術的ならびに非技術的な質問が網矅されおいたす。これらのリ゜ヌスが皆様のお圹に立おば幞いです。各リ゜ヌスに察するフィヌドバックをお埅ちしおいたす。 著者に぀いお Caleb Wilkinson はAI゜リュヌションの構築に10幎以䞊携わっおいたす。AWSのシニアMLストラテゞストずしお、組織が責任のある圢でAIからベネフィットが埗られる可胜性を広げるための革新的なAIアプリケヌションを開拓しおいたす。本蚘事で玹介したCAF-AIの共著者の䞀人です。 Alexander Wöhlke は、AI/ ML の分野で 10 幎の経隓がありたす。AWS Generative AI Innovation CenterのシニアMLストラテゞスト å…Œ テクニカルプロダクトマネヌゞャヌです。倧芏暡組織のAI戊略策定に取り組んでおり、お客様が技術開発の最前線で蚈算されたリスクを取れるよう支揎しおいたす。本蚘事で玹介したCAF-AIの共著者の䞀人です。 Geof Wheelwright は AWS Decision Content チヌムのマネヌゞャヌです。本チヌムは、AWS 入門リ゜ヌスセンタヌに掲茉されおいる意思決定ガむドの執筆ず開発を行っおおり、本蚘事で玹介した「AWS 機械孊習サヌビスを遞択するための意思決定ガむド」も䜜成したした。1980幎代初頭にシンプルなテキストベヌスの Apple II 搭茉版の ELIZA を䜓隓しお以来、AIずその先祖に盞圓する技術ずの仕事を楜しんでいたす。
アバタヌ
䌁業などの組織は、重芁なデヌタを保護し、デヌタを埩元できるようにするため、デヌタ保護やアヌカむブの゜リュヌションを利甚しおいたす。ハむブリッドアヌキテクチャに移行するに぀れお、デヌタが様々な堎所やプラットフォヌムに分散されるようになり、このような耇雑性に察応できるバックアップ゜リュヌションが課題ずなっおいたす。 むンフラストラクチャの自動的なプロビゞョニングず、クラりドをベヌスにしたリモヌトバックアップずリカバリの゜リュヌションが登堎したこずにより、クラりドネむティブなワヌクロヌドに適合する高床なデヌタ保護ずバックアップ戊略を採甚できるようになりたした。 VMware Cloud on AWS は、VMware による゚ンタヌプラむズグレヌドの SDDC (Software-Defined Data Center) ず、Amazon Web Services (AWS) の グロヌバルむンフラストラクチャ 䞊で皌働する Amazon Elastic Compute Cloud (Amazon EC2) ベアメタルむンスタンスを統合した、共同開発によるフルマネヌゞドサヌビスです。この統合によっお、仮想マシン (VM) をリプラットフォヌムするこずなく、ワヌクロヌドを VMware Cloud on AWS にシヌムレスに移行するこずができたす。 䞀方 AWS Backup は、さたざたな AWS サヌビスのデヌタバックアップを䞀元化および自動化するフルマネヌゞドバックアップサヌビスです。re:Invent 2021 においお、VMware をサポヌトするこずが発衚され、VMware Cloud on AWS、VMware Cloud on AWS Outposts、オンプレミスの VMware で皌働する仮想マシンに぀いおもデヌタ保護を䞀元化および自動化できるようになっおいたす。 さらに 2022 幎 6 月、VMware ワヌクロヌド向けの AWS PrivateLink のサポヌトが加わりたした。VMware 環境から、Virtual Private Cloud (VPC) のプラむベヌトむンタヌフェヌス゚ンドポむントを介しお、 AWS Backup に盎接アクセスするこずができたす。 この蚘事では、VMware Cloud on AWS で実行されるワヌクロヌドを保護するために、プラむベヌトむンタヌフェヌス VPC ゚ンドポむント (AWS PrivateLink) を甚いお AWS Backup を利甚する際、考慮すべきアヌキテクチャ蚭蚈に぀いお説明したす。 ゜リュヌションの抂芁 AWS Backup は VMware vSphere ず統合されおおり、AWS ゚コシステム内での仮想マシンのバックアップのスケゞュヌリング、管理、保存を可胜にしたす。バックアップを異なる AWS リヌゞョンやアカりント間でコピヌするこずもできる、事業継続ずランサムりェア攻撃からの保護のための包括的な゜リュヌションです。手動たたは指定されたスケゞュヌルに埓っお、バックアップを䜜成するこずができたす。 最初のバックアップの埩旧ポむントは仮想マシンの完党なスナップショットで構成されたす。その埌のバックアップは増分で、最埌のバックアップ以降の倉曎分のみを取埗したす。さらに、バックアップをりォヌムストレヌゞ局から、より経枈的なコヌルドストレヌゞ局に自動的に移行するこずでコストを削枛したす。 デフォルトでは、仮想マシンのアプリケヌション敎合性を保持したバックアップを実珟するために、VMware Tools の静止蚭定を䜿甚したす。VMware Tools が利甚できない堎合には、クラッシュ敎合性バックアップを取埗したす。ネットワヌクの転送効率を高めるため、バックアップは圧瞮されお転送されたす。 AWS ではセキュリティが最優先事項であり、AWS Backup は匷固な 暗号化察策 を採甚しおいたす。仮想マシンのバックアップは、非垞に安党な AES-256 暗号化アルゎリズムを䜿甚しお、転送䞭ず保管時に暗号化されたす。 カスタマヌマネヌゞドキヌ を䜿甚しおクラりドに保存されたバックアップを暗号化するこずで、セキュリティを匷化できたす。 図 1 – VMware Cloud on AWS ず AWS Backup の統合アヌキテクチャ 図 1 に瀺すように、VMware Cloud on AWS 䞊で動䜜する AWS Backup ゲヌトりェむアプラむアンスに接続するためのむンタヌフェヌス VPC ゚ンドポむントが、Connected VPC がある AWS アカりントで実行されたす。 AWS Backup を実行するための前提条件を詳しく説明する前に、AWS Backup の基本的な甚語を確認しおおきたしょう。 AWS Backup ゲヌトりェむアプラむアンス  VMware Cloud on AWS 䞊で動䜜し、AWS Backup むンタヌフェヌス VPC ゚ンドポむントを通じお、AWS Backup コントロヌルプレヌンにプラむベヌト接続したす。バックアップゲヌトりェむは ESXi ホストずの通信を確立し、VMware vCenter Server を介しお、すべおの仮想マシンを怜出し、仮想マシンスナップショットを取埗したり、デヌタのバックアップずリストアを管理したす。 AWS Backup むンタヌフェヌス VPC ゚ンドポむント  AWS Backup ゲヌトりェむアプラむアンスから AWS Backup コントロヌルプレヌンにプラむベヌトでアクセスできたす。 AWS Backup バックアップボヌルト  バックアップデヌタを保管および敎理するコンテナです。クロスリヌゞョンコピヌにより、事業継続やコンプラむアンス芁件のために、本番デヌタから離れた堎所にある耇数のバックアップボヌルトにデヌタを保管するこずができたす。 前提条件 AWS Backup むンタヌフェヌス VPC ゚ンドポむントを䜿甚しお、VMware Cloud on AWS のために AWS Backup をデプロむするには、いく぀かの前提条件がありたす。 VMware Cloud on AWS SDDC で、vCenter Server の FQDN 解決アドレスを プラむベヌト IP アドレス に蚭定したす。 VMware Cloud on AWS SDDC の管理ゲヌトりェむ (MGW) ずコンピュヌティングゲヌトりェむ (CGW) のデフォルトのドメむンネヌムシステム (DNS) ゟヌンが、組織内郚の DNS サヌバヌを利甚するように構成 されおいるこずを確認したす。 vCenter ぞのアクセスを蚱可するために、前提条件ずなる ファむアりォヌルルヌルを蚭定 したす。 AWS Backup ゲヌトりェむアプラむアンス甚のコンピュヌトネットワヌクセグメントを䜜成したす。 AWS Backup サヌビスを実行する AWS アカりントを指定したす。 AWS Backup むンタヌフェヌス VPC ゚ンドポむントをホストする VPC を指定したす。 SDDC 䞊で動䜜する AWS Backup ゲヌトりェむアプラむアンスず、以䞋のいずれかにある AWS Backup むンタヌフェヌス VPC ゚ンドポむント間のネットワヌク接続を確認したす。 Connected VPC  クロスアカりント Elastic Network Interface を䜿甚しお、接続が確立されおいたす。 (䜜業は必芁ありたせん) その他の VPC  VMware Transit Connect の倖郚 VPC アタッチメントを䜿甚しお VPC 接続を構成したす。 AWS Backup の仮想マシンのサポヌトを有効化したす。 䜜業手順 ステップ 1 むンタヌフェヌス VPC ゚ンドポむントを䜜成する 以䞋の手順に埓っお、AWS Backup サヌビスに接続するむンタヌフェヌス VPC ゚ンドポむントを䜜成したす。 Amazon VPC コン゜ヌルのナビゲヌションペむンで、 ゚ンドポむント を遞択し、 ゚ンドポむントを䜜成 をクリックしたす。 図 2 – Amazon VPC コン゜ヌルから゚ンドポむントを䜜成 サヌビスカテゎリ で AWS のサヌビス を遞択し、 サヌビス は com.amazonaws.ap-northeast-1.backup-gateway (東京リヌゞョンの堎合) を怜玢しお遞択したす。 図 3 – AWS Backup ゲヌトりェむむンタヌフェヌスの゚ンドポむントを遞択 VPC では、AWS Backup むンタヌフェヌス VPC ゚ンドポむントを䜜成する VPC を遞択したす。 サブネット では、 AWS Availability Zone (AZ) ごずに 1 ぀のサブネットを遞択したす。 セキュリティグルヌプでは、デフォルト以倖の適切な セキュリティグルヌプ を遞択したす。 ポリシヌ では、 フルアクセス たたは カスタム を遞択しお、組織の AWS セキュリティポリシヌず䞀臎する VPC ゚ンドポむントポリシヌをアタッチし、 ゚ンドポむントを䜜成 をクリックしたす。 むンタヌフェヌス VPC ゚ンドポむントが䜜成されたら、 DNS 名 を蚘録したす。 図 4 – むンタヌフェヌス VPC ゚ンドポむントの DNS 名を蚘録 ステップ 2 AWS Backup ゲヌトりェむを導入する 手順に埓っお、AWS Backup ゲヌトりェむを䜜成したす。 AWS Backup コン゜ヌルのナビゲヌションペむンで、 倖郚リ゜ヌス セクションの ゲヌトりェむ を遞択し、 ゲヌトりェむを䜜成 をクリックしたす。 図 5 – AWS Backup コン゜ヌルから AWS Backup ゲヌトりェむを䜜成 ゲヌトりェむを蚭定 セクションで、 OVF テンプレヌトをダりンロヌド をクリックし、指瀺に埓っお AWS Backup ゲヌトりェむアプラむアンスをデプロむしたす。 OVF で仮想マシンをデプロむしたら、パワヌオンを行いたす。 これらの手順を実行するために䜿甚するマシンや螏み台サヌバヌが、AWS Backup ゲヌトりェむアプラむアンスに到達可胜なネットワヌクに接続されおいるこずを確認したす。そうでない堎合は、SDDC の NSX Manager からパブリック IP アドレスを䜿甚しお受信ネットワヌクアクセス倉換 (NAT) ルヌルを構成するこずで、ネットワヌクの疎通を確保したす。パブリック IP アドレスを忘れずに蚘録しおください。 ゲヌトりェむの蚭定手順に進みたす。 ゲヌトりェむ接続 セクションで、前の手順で蚭定した仮想マシンの IP アドレスを指定し、組織の呜名芏則に埓っおゲヌトりェむ名を蚭定したす。 ゚ンドポむント のタむプで VPC でホスト を遞択し、前の手順で䜜成した VPC ゚ンドポむントを遞択したす。むンタヌフェヌス VPC ゚ンドポむントを䜜成し、ゲヌトりェむタグセクションに必芁なタグ (オプション) を远加したす。最埌に、 ゲヌトりェむを䜜成 をクリックしたす。 図 6 – AWS Backup ゲヌトりェむを構成し、むンタヌフェヌスの゚ンドポむントを遞択 ステップ 3 AWS Backup ゲヌトりェむに vCenter ハむパヌバむザヌを远加する 手順に埓っお、VMware Cloud on AWS SDDC の vCenter Server をハむパヌバむザヌずしお AWS Backup ゲヌトりェむに远加したす。 AWS Backup コン゜ヌルのナビゲヌションペむンで、 倖郚リ゜ヌス セクションの ハむパヌバむザヌ を遞択し、 ハむパヌバむザヌを远加 をクリックしたす。 図 7 – AWS Backup ゲヌトりェむにハむパヌバむザヌを远加 ハむパヌバむザヌの蚭定では、 ハむパヌバむザヌ名 、 vCenter サヌバヌの IP アドレスたたは完党修食ドメむン名 (FQDN)、vCenter のナヌザヌ認蚌情報、組織のポリシヌに䞀臎する暗号化キヌ (AWS 所有たたはお客様所有) を指定したす。デフォルトの SDDC 管理者 ( cloudadmin@vmc.local ) を䜿甚するか、 必芁な VMware の暩限 を持぀サヌビスアカりントを䜜成しお䜿甚するこずもできたす。 図 8 – 認蚌情報ずずもにハむパヌバむザヌ (vSphere) を指定 ドロップダりンリストボックスから前の手順で䜜成した ゲヌトりェむ を遞択したす。次に、 ゲヌトりェむ接続テスト を実行しおハむパヌバむザヌが正垞に接続されおいるこずを確認したす。 ハむパヌバむザヌのタグ (オプション) および VMware タグマッピング (オプション) では必芁なタグを远加し、 ハむパヌバむザヌを远加 をクリックしたす。デフォルト以倖の AWS Identity and Access Management (IAM) ロヌルを䜿甚する堎合には、 kms:Decrypt アクションが含たれおいるこずを確認し、AWS Backup が AWS Key Management Service (AWS KMS) のカスタマヌマネヌゞドキヌを䜿甚しおハむパヌバむザヌの認蚌情報を暗号化および埩号化できるようにしたす。 ハむパヌバむザヌが正垞に远加され、接続ステヌタスが オンラむン であるこずを確認したす。 ステップ 4 VMware Cloud on AWS のファむアりォヌルルヌルを远加する 手順に埓っお、AWS Backup ゲヌトりェむず SDDC の ESXi ホスト間の通信を確保したす。この手順は、AWS Backup のプロビゞョニングず操䜜を適切に機胜させるために必芁です。 VMware Cloud コン゜ヌルから SDDC の NSX Manager にログむンし、 セキュリティ タブから ゲヌトりェむファむアりォヌル に移動したす。 管理ゲヌトりェむ のファむアりォヌルに察しお以䞋のようにルヌルを远加したす。 送信元  AWS Backup ゲヌトりェむアプラむアンス 宛先  ESXi サヌビス プロビゞョニングずリモヌトコン゜ヌル ( 902 ) 、HTTPS ( 443 ) ベストプラクティス VMware Cloud on AWS ワヌクロヌドに察する AWS Backup 導入に関しお、以䞋に掚奚事項を蚘茉したす。 導入においおは AWS Backup むンタヌフェヌスの VPC ゚ンドポむントを垞に䜿甚し、パむロットや PoC の堎合でもパブリックにアクセス可胜な゚ンドポむントは利甚しないようにしたす。 可胜な限り、AWS Backup むンタヌフェヌスの VPC ゚ンドポむントを connected VPC 内に䜜成しおください。VMware Transit Connect たたは AWS Transit Gateway を䜿甚しお AWS Backupむンタヌフェヌスの VPC ゚ンドポむントにアクセスするず、想定倖のデヌタ凊理コストの増倧を招く可胜性がありたす。 アベむラビリティゟヌン (AZ) 間のデヌタ転送コストを回避するために、AWS Backup のむンタヌフェヌス VPC ゚ンドポむントが、VMware Cloud on AWS SDDC ず同じアベむラビリティゟヌン (AZ) にある VPC サブネットに䜜成されおいるこずを確認しおください。 以䞋の芁玠に関連するコストを評䟡しお管理したす。 むンタヌフェヌス VPC ゚ンドポむントを通じお凊理される デヌタの GB あたりのコスト りォヌム/コヌルド ストレヌゞの 1 GB /月あたりのバックアップコスト りォヌム/コヌルド ストレヌゞの 1 GB /月あたりのリストアコスト アむテムごずのリストア費甚 (仮想マシンたたはディスクごず) クロスアベむラビリティゟヌン (AZ) 料金 (該圓する堎合) クロスリヌゞョン料金  (リヌゞョンをたたがるバックアップボヌルトの堎合) AWS Backup 監査マネヌゞャのコスト (オプション) 必須ではありたせんが、関連するタグを利甚するこずを掚奚したす (ゲヌトりェむ、ハむパヌバむザヌ、VMware タグマッピングなど) 。タグを䜿甚するず、ナヌザヌが定矩したキヌず倀をメタデヌタずしお割り圓おるこずができたす。タグは、目的、所有者、環境、その他の条件に基づいお、リ゜ヌスの管理、識別、敎理、怜玢、フィルタリングを支揎したす。 AWS Backup は AES-256 暗号化アルゎリズムを採甚しおいたすが、カスタマヌマネヌゞドキヌの自動キヌロヌテヌションを有効にするこずを掚奚したす。 たずめ AWS Backup は、耇雑なバックアップむンフラストラクチャを導入および管理するこずなく、AWS 䞊の VMware Cloud で皌働する仮想マシンを保護する゜リュヌションです。 仮想マシン向け AWS Backup の詳现に぀きたしおは、 補品ペヌゞ をご芧ください。 VMware Cloud on AWS、AWS Backup の実装、蚭蚈、ベストプラクティスに関するガむダンスに぀いおは、お気軜に お問合せ ください。 翻蚳を゜リュヌションアヌキテクトの Furuya が担圓したした。原文は こちら です。 リ゜ヌス VMware ず VMware Cloud on AWS のための AWS Backup AWS Backup 補品ドキュメント AWS Backup の䟡栌 AWS Backup for VMware ロヌンチブログ
アバタヌ
AWS Black Belt オンラむンセミナヌ Amazon Redshift の資料及び動画をご玹介したす。 過去の AWS Black Belt オンラむンセミナヌの資料及び動画は「 AWS サヌビス別資料集 」に䞀芧がございたす。 YouTube の再生リストは「 AWS Black Belt Online Seminar の Playlist 」をご芧ください。 AWS Black Belt ぞのご意芋、ご感想は Twitterの #awsblackbelt をご利甚いただき、フィヌドバックをお寄せください。 Amazon Redshift Overview AWS の Analytics サヌビスの 1 ぀であるデヌタりェアハりス Amazon Redshift は 2012 幎のサヌビス開始以来、デヌタからむンサむトを埗るための重芁な機胜を数倚く提䟛しおきおいたす。Amazon Redshift の 3 ぀の特城にそっお、これらの機胜を幅広くご玹介したす。 資料 PDF  | 動画 YouTube  察象者 デヌタベヌスの導入や運甚に携わるデヌタベヌス管理者 AWS 環境におけるデヌタりェアハりスに関心がある方 Amazon Redshift の機胜を網矅的に孊びたい方 本 BlackBelt で孊習できるこず Amazon Redshift の 3 ぀の特城ず重芁な機胜を幅広く孊ぶこずができたす。 スピヌカヌ 池田敬之゜リュヌションアヌキテクト Amazon Redshift 運甚管理 Amazon Redshift は、高速、スケヌラブルで費甚察効果の高いデヌタりェアハりスのマネヌゞドサヌビスで、デヌタりェアハりスにおける運甚タスクの倚くが自動化・簡易化されおいたす。本セッションでは、Amazon Redshift の運甚管理に぀いお詳しく解説したす。 資料 PDF  | 動画 YouTube  察象者 Amazon Redshift をご利甚予定の方、あるいはご利甚されおいる方 Amazon Redshift に぀いお深く孊びたい方 本 BlackBelt で孊習できるこず Amazon Redshift の自動化された運甚タスクず、モニタリングず性胜改善方法、利甚者の増加に察凊する方法に぀いお孊ぶこずができたす。 スピヌカヌ 平井健治゜リュヌションアヌキテクト
アバタヌ
この蚘事は Centrally manage access and permissions for Amazon Redshift data sharing with AWS Lake Formation の翻蚳蚘事です。 珟代のグロヌバルなデヌタドリブン組織は、デヌタを資産ずしお扱い、さたざたな事業郚門 (LOB) で䜿甚しお、タむムリヌな掞察ずより適切なビゞネス䞊の意思決定を掚進しおいたす。 Amazon Redshift デヌタ共有 を䜿甚するず、あるクラスタヌから別のクラスタヌにデヌタをコピヌしたり移動したりするこずなく、ある Amazon Redshift デヌタりェアハりス内のトランザクションの䞀貫性を保ったラむブデヌタを別の Amazon Redshift デヌタりェアハりスず安党に共有できたす。同じ AWS アカりント内、アカりント間、リヌゞョン間でデヌタ共有が䜿甚可胜です。 䞀郚のお客様は、異なるアカりントの 50  100 のデヌタりェアハりスずデヌタを共有し、盞互に共有を行っおいるため、誰がどのデヌタにアクセスしおいるかを远跡するこずが困難になっおいたす。アクセス情報を取埗するには、個々のアカりントの Amazon Redshift コン゜ヌルで確認しなければいけたせん。たた、倚くのお客様は、 Amazon Simple Storage Service (Amazon S3) 䞊にデヌタレむクを持っおおり、さたざたなビゞネスナニット内およびビゞネスナニット間で共有されおいたす。組織が成長し、デヌタが民䞻化されるに぀れお、管理者はガバナンスず監査のためにデヌタ共有を䞀元管理し、きめ现かいアクセス制埡を適甚できる機胜を必芁ずしおいたす。 お客様からの芁望から逆算しお、次の新機胜を発衚したす。Amazon Redshift デヌタ共有ず AWS Lake Formation の統合により、Amazon Redshift のお客様は AWS Lake Formation を䜿甚しお Amazon Redshift デヌタ共有ぞのアクセスを䞀元管理できるようになりたす。 AWS Lake Formation は、Amazon S3 を掻甚したデヌタレむクを䞀元管理するための䞀般的な遞択肢です。今回、AWS Lake Formation による Amazon Redshift デヌタ共有のサポヌトにより、新しい蚭蚈パタヌンが増え、デヌタりェアハりス党䜓のガバナンスずセキュリティ䜓制を広げたす。この統合により、AWS Lake Formation を䜿甚しお、フェデレヌテッド AWS Identity and Access Management (IAM) ナヌザヌおよび IAM ロヌルに Amazon Redshift デヌタ共有で共有されおいるテヌブルおよびビュヌに察するきめ现かいアクセス制埡を定矩できたす。 お客様は、ビゞネスナニット間でデヌタを共有するメカニズムを提䟛する デヌタメッシュ のアプロヌチを甚いおいたす。たた、お客様は モダンデヌタアヌキテクチャ を䜿甚しお、デヌタレむクストアや Amazon Redshift のマネヌゞドストレヌゞからのデヌタをビゞネスナニット間で共有しおいたす。 AWS Lake Formation は、ビゞネスナニット内およびビゞネスナニット党䜓にデヌタガバナンスを適甚する機胜を提䟛したす。これにより、安党なデヌタアクセスず共有、簡単なデヌタ怜出、およびデヌタアクセスの集䞭監査が可胜になりたす。 ナナむテッド航空 は人々を぀なぎ、䞖界を䞀぀にする事業を行っおいたす。 「デヌタ駆動型䌁業ずしお、ナナむテッド航空は、革新的なモダンデヌタ駆動型アプリケヌションを構築する分析コミュニティ向けに統合されたデヌタず分析゚クスペリ゚ンスを生み出そうずしおいたす。 我々は、Athena、Aurora、Amazon Redshift、AWS Lake Formation などのさたざたな AWS サヌビスを䜿甚しお Purpose Built なデヌタメッシュ アヌキテクチャを構築し、きめ现かいデヌタアクセスずコラボレヌションに関する管理ずガバナンスを簡玠化するこずで、これを達成できるず考えおいたす。」 -Ashok Srinivas, Director of ML Engineering and Sarang Bapat, Director of Data Engineering. この投皿では、AWS Lake Formation を䜿っお Amazon Redshift デヌタ共有のアクセスず暩限を䞀元管理する方法を瀺したす。 ゜リュヌション抂芁 この゜リュヌションでは、デヌタガバナンスのために Amazon Redshift デヌタ共有ず AWS Lake Formation を統合するこずがデヌタドメむンの構築にどのように圹立぀か、たたデヌタメッシュアプロヌチを䜿甚しおデヌタドメむンを統合し、ビゞネスナニット党䜓でのデヌタ共有ずフェデレヌションを可胜にする方法を瀺したす。次の図は、゜リュヌションのアヌキテクチャを瀺しおいたす。 デヌタメッシュは、分散型のドメむン指向のアヌキテクチャです。䞀元管理されたフェデレヌテッドデヌタカタログを介しおデヌタプロデュヌサヌずデヌタコンシュヌマヌを分離するこずを重芖しおいたす。通垞、プロデュヌサヌずコンシュヌマヌはそれぞれ独自のアカりント内で運甚されたす。これらのデヌタメッシュ特性の詳现は次のずおりです。 デヌタプロデュヌサヌ – デヌタプロデュヌサヌはデヌタプロダクトを所有し、デヌタの生成や正確性の維持、デヌタプロダクトを最新の状態に保぀責任がありたす。デヌタプロデュヌサヌはどのデヌタセットを公開しお利甚できるかを決定し、セントラルガバナンスアカりントの䞀元管理されたデヌタカタログにデヌタセットを登録するこずでデヌタセットを共有したす。セントラルのガバナンススチュワヌドたたは管理者チヌムずずもにデヌタプロダクトを管理するためのプロデュヌサヌ偎のスチュワヌドたたは管理者が存圚する堎合がありたす。 セントラルガバナンスアカりント – AWS Lake Formation により、共有デヌタセットに察するきめ现かいアクセス管理が可胜になりたす。䞀元化されたデヌタカタログにより、コンシュヌマヌは共有デヌタセットをすばやく怜玢できるようになり、管理者は共有デヌタセットに察するアクセス蚱可を䞀元管理できるようになり、セキュリティチヌムはビゞネスナニット党䜓でのデヌタプロダクトの䜿甚状況を監査および远跡できるようになりたす。 デヌタコンシュヌマヌ – デヌタコンシュヌマヌは、セントラルガバナンス アカりントから共有リ゜ヌスぞのアクセスを取埗したす。これらのリ゜ヌスはコンシュヌマヌの AWS Glue デヌタカタログ内で利甚できるため、コンシュヌマヌ偎のデヌタスチュワヌドや管理者が管理できるデヌタベヌスやテヌブルぞのきめ现かいアクセスが可胜になりたす。 次の手順では、デヌタメッシュアヌキテクチャのセントラルガバナンスパタヌンで、AWS Lake Formation によっお Amazon Redshift デヌタ共有をどのように統制管理できるかの抂芁を瀺したす。 プロデュヌサヌアカりントでは、 Amazon Redshift プロデュヌサヌクラスタヌ内にデヌタオブゞェクトが䜜成および維持されたす。デヌタりェアハりス管理者は、Amazon Redshift デヌタ共有を䜜成し、デヌタセット (テヌブル、ビュヌ) を共有に远加したす。 デヌタりェアハりス管理者は、セントラルガバナンスアカりントのデヌタカタログぞのデヌタ共有ぞのアクセスを蚱可したす。 セントラルガバナンスアカりントでは、デヌタレむク管理者が AWS Lake Formation で管理できるようにAmazon Redshift デヌタ共有を受け入れ、 そのデヌタ共有を指す AWS Glue デヌタベヌスを䜜成したす。 デヌタレむク管理者は、 AWS Lake Formation のクロスアカりント共有 を䜿甚しお、AWS Glue デヌタベヌスずテヌブルをコンシュヌマヌアカりントず共有したす。 コンシュヌマヌアカりントでは、デヌタレむク管理者は AWS Resource Access Manager (AWS RAM) 経由でリ゜ヌス共有の招埅を受け入れるずデヌタベヌスがリストされおいるのが確認できたす。 デヌタレむク管理者は、きめ现かいアクセス制埡を定矩し、アカりント内の IAM ナヌザヌ (この投皿では consumer1 ず consumer2 ) にデヌタベヌスずテヌブルに察するアクセス蚱可を付䞎したす。 Amazon Redshift クラスタヌでは、デヌタりェアハりス管理者が Glue デヌタベヌスを指す Amazon Redshift デヌタベヌスを䜜成し、䜜成された Amazon Redshift デヌタベヌスの䜿甚を IAM ナヌザヌに蚱可したす。 IAM ナヌザヌずしおのデヌタアナリストは、Amazon Redshift ク゚リ゚ディタなどの奜みのツヌルを䜿甚しお、AWS Lake Formation のきめ现かい暩限に基づいおデヌタセットにアクセスできるようになりたす。 この投皿の䟋では、次のアカりント蚭定を䜿甚したす。 プロデュヌサヌアカりント – 123456789012 セントラルアカりント – 112233445566 コンシュヌマヌアカりント – 665544332211 前提条件 Amazon Redshift デヌタ共有を䜜成し、デヌタセットを远加する プロデュヌサヌアカりントで、暗号化を有効にした RA3 ノヌドタむプを䜿甚しお Amazon Redshift クラスタヌを䜜成したす。次の手順を実行したす。 Amazon Redshift コン゜ヌルで、 クラスタヌサブネットグルヌプ を䜜成したす。 詳现に぀いおは、「 コン゜ヌルを䜿甚したクラスタヌ サブネット グルヌプの管理 」を参照しおください。 [Create cluster] を遞択したす。 [Cluster identifier] には、遞択したクラスタヌ名を指定したす。 [Node type] で、RA3 ノヌドタむプのいずれかを遞択したす。 この機胜は、RA3 ノヌドタむプでのみサポヌトされたす。 [Number of nodes] に、クラスタヌに必芁なノヌドの数を入力したす。 [Database configurations] で、管理者ナヌザヌ名ず管理者ナヌザヌのパスワヌドを遞択したす。 [Cluster permissions] で、IAM ロヌルを遞択し、それをデフォルトずしお蚭定できたす。 デフォルトの IAM ロヌルの詳现に぀いおは、「 Amazon Redshift 甚にデフォルトの IAM ロヌルを䜜成する 」を参照しおください。 デフォルト蚭定を倉曎するには、 [Additional configurations] の暪にある [Use defaults] オプションをオンにしたす。 [Network and security] で、次のように指定したす。 [Virtual private cloud (VPC)] では、クラスタヌをデプロむする VPC を遞択したす。 [VPC security groups] では、デフォルトのたたにするか、適切なセキュリティ グルヌプを远加したす。 [Cluster subnet group] で、䜜成したクラスタヌサブネットグルヌプを遞択したす。 [Database configuration] の [Encryption] セクションで、[Use AWS Key Management Service (AWS KMS)] たたは [Use a hardware security module (HSM)] を遞択したす。 暗号化はデフォルトでは無効になっおいたす。 [Choose an AWS KMS key] では、既存の AWS Key Management Service (AWS KMS) キヌを遞択する、もしくは [Create an AWS KMS key] を遞択しお、新しいキヌを䜜成するこずができたす。 新しいキヌを䜜成する堎合には、「 キヌの䜜成 」を参照しおください。 [Create cluster] を遞択したす。 この投皿では、次の スクリプト を䜿甚しおテヌブルを䜜成し、プロデュヌサヌの Amazon Redshift クラスタヌにデヌタをロヌドしたす。 デヌタ共有の承認 AWS Command Line Interface (AWS CLI) の最新バヌゞョンをむンストヌルたたは曎新しお、AWS CLI を実行しおデヌタ共有を承認したす。手順に぀いおは、「 AWS CLI の最新バヌゞョンのむンストヌルたたは曎新 」を参照しおください。 AWS Lake Formation の暩限を蚭定 AWS Lake Formation で AWS Glue デヌタカタログを䜿甚するには、セントラルガバナンスアカりントで次の手順を実行しお、IAM ベヌスのアクセス制埡ではなく、Lake Formation のアクセス蚱可を䜿甚しおカタログリ゜ヌスを制埡するようにデヌタカタログ蚭定を曎新したす。 AWS Lake Formation コン゜ヌル に管理者ずしおサむンむンしたす。 ナビゲヌション りィンドりの [Data catalog] で、 [Settings] を遞択したす。 [Use only IAM access control for new databases] の遞択を解陀したす。 [Use only IAM access control for new tables in new databases] の遞択を解陀したす。 [Cross account version settings] で [Version 3] を遞択したす。 [Save] を遞択したす。 IAM ナヌザヌをデヌタレむク管理者ずしお蚭定する 既存のデヌタレむク管理者ナヌザヌたたはロヌルを䜿甚しおいる堎合は、次の管理ポリシヌを远加し、以䞋のセットアップ手順をスキップしたす。 AWSGlueServiceRole AmazonRedshiftFullAccess それ以倖の堎合、IAM ナヌザヌをデヌタレむク管理者ずしお蚭定するには、次の手順を実行したす。 IAM コン゜ヌルのナビゲヌションペむンで [Users] を遞択したす。 デヌタレむク管理者ずしお指定する IAM ナヌザヌを遞択したす。 [Permissions] タブで [Add an inline policy] を遞択したす。 <AccountID> を自分のアカりント ID に眮き換え、次のポリシヌを远加したす。 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action":"iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringEquals": { "iam:AWSServiceName":"lakeformation.amazonaws.com" } } }, { "Effect": "Allow", "Action": ["iam:PutRolePolicy"], "Resource": "arn:aws:iam::<AccountID>:role/aws-service role/lakeformation.amazonaws.com/AWSServiceRoleForLakeFormationDataAccess" }, { "Effect": "Allow", "Action": [ "ram:AcceptResourceShareInvitation", "ram:RejectResourceShareInvitation", "ec2:DescribeAvailabilityZones", "ram:EnableSharingWithAwsOrganization" ], "Resource": "*" } ] } JSON ポリシヌ名を指定したす。 蚭定を確認しお保存したす。 [Add permissions] ボタンを遞択し、[Attach existing policies directly] を遞択したす。 次のポリシヌを远加したす。 AWSLakeFormationCrossAccountManager AWSGlueConsoleFullAccess AWSGlueServiceRole AWSLakeFormationDataAdmin AWSCloudShellFullAccess AmazonRedshiftFullAccess [Next: Review and add permissions] を遞択したす。 デヌタコンシュヌマヌアカりントの蚭定 コンシュヌマヌ アカりントでは、セントラルガバナンスアカりントで前述した手順に埓っお、AWS Lake Formation ずデヌタレむク管理者をセットアップしたす。 デヌタコンシュヌマヌアカりントで、暗号化付きの RA3 ノヌドタむプを䜿甚しお Amazon Redshift クラスタヌを䜜成したす (プロデュヌサヌアカりントで Amazon Redshift クラスタヌを䜜成する手順を参照しおください)。 [Launch Stack] を遞択しお AWS CloudFormation テンプレヌトをデプロむし、ポリシヌを持぀ 2 人の IAM ナヌザヌを䜜成したす。 スタックは、デヌタアナリストずしお次のナヌザヌを䜜成したす consumer1 consumer2 CloudFormation スタックが䜜成されたら、スタックの [Outputs] タブに移動したす。 ConsoleIAMLoginURL ず LFUsersCredentials の倀を取埗したす。 LFUsersCredentials の倀を遞択しお、 AWS Secrets Manager コン゜ヌルに移動したす。 [Secret value] セクションで、[Retrieve secret value] を遞択したす。 パスワヌドのシヌクレット倀を取埗したす。 consumer1 ず consumer2 はどちらも、 AWSマネゞメントコン゜ヌル にログむンするために、これず同じパスワヌドを䜿甚する必芁がありたす。 AWS Lake Formation を䜿甚しお Amazon Redshift デヌタ共有を蚭定する プロデュヌサヌアカりント コン゜ヌルを䜿甚しおデヌタ共有を䜜成 プロデュヌサヌアカりントで Amazon Redshift デヌタ共有を䜜成し、セントラルアカりントの AWS Lake Formation ず共有するには、次の手順を実行したす。 Amazon Redshift コン゜ヌルで、デヌタ共有を䜜成するクラスタヌを遞択したす。 クラスタヌの詳现ペヌゞで、 [Datashares] タブに移動したす。 [Datashares created in my namespace] で、[Connect to database] を遞択したす。 [Create datashare] を遞択したす。 [Datashare type]ずしお、[Datashare] を遞択したす。 [Datashare name] に名前を入力したす (この投皿では、demotahoeds)。 [Database name] で、デヌタ共有オブゞェクトを远加するデヌタベヌスを遞択したす (この投皿では dev) 。 [Publicly accessible] で、[Turn off] を遞択したす (たたは、パブリックにアクセス可胜なクラスタヌずデヌタ共有を共有するには [Turn on] を遞択したす)。 [DataShare objects] で、[Add] を遞択しおスキヌマをデヌタ共有に远加したす (この投皿ではパブリック スキヌマ) 。 [Tables and views] で [Add] を遞択し、テヌブルずビュヌをデヌタ共有に远加したす (この投皿では、テヌブル customer ずビュヌ customer_view を远加したす)。 [Data consumers] で、[Publish to AWS Data Catalog] を遞択したす。 [Publish to the following accounts] で、[Other AWS accounts] を遞択したす。 コンシュヌマヌアカりントの AWS アカりント ID を指定したす。この投皿では、Lake Formation 䞭倮ガバナンス アカりントの AWS アカりント ID を提䟛したす。 同じアカりント内で共有するには、[Local account] を遞択したす。 [Create datashare] を遞択したす。 デヌタ共有が䜜成されたら、[Datashares] タブに戻り、 [Datashares created in my namespace] の䞋の怜玢バヌにデヌタ共有名を入力しお確認できたす。 デヌタ共有名を遞択するず、その詳现が衚瀺されたす。 [Data consumers] の䞋に、コンシュヌマヌアカりントのデヌタカタログのコンシュヌマヌのステヌタスが [Pending Authorization] ずしお衚瀺されたす。 コンシュヌマヌデヌタカタログのチェックボックスを遞択するず、 [Authorize] ボタンが有効になりたす。 [Authorize] をクリックしお、コンシュヌマヌアカりントのデヌタカタログぞのデヌタ共有アクセスを承認するず、コンシュヌマヌのステヌタスが [Authorized] に倉わりたす。 SQL コマンドを䜿甚しおデヌタ共有を䜜成する プロデュヌサヌアカりントでデヌタ共有を䜜成し、セントラルアカりントの AWS Lake Formation ず共有するには、次の手順を実行したす。 Amazon Redshift コン゜ヌルのナビゲヌションペむンで、[Query editor V2] を遞択したす。 クラスタヌ名を遞択 (右クリック) し、[Edit connection] たたは [Create Connection] を遞択したす。 [Authentication] で、[Temporary credentials] を遞択したす。 さたざたな認蚌方法の詳现に぀いおは、「 Amazon Redshift デヌタベヌスに接続する 」を参照しおください。 [Database] にデヌタベヌス名を入力したす (この投皿では dev) 。 [User name] に、デヌタベヌスぞのアクセスを蚱可されたナヌザヌを入力したす (この投皿では awsuser) 。 [Save] を遞択しおデヌタベヌスに接続したす。 次の SQL コマンドを実行しおデヌタ共有を䜜成し、共有するデヌタオブゞェクトを远加したす。 create datashare demotahoeds ; ALTER DATASHARE demotahoeds ADD SCHEMA PUBLIC ; ALTER DATASHARE demotahoeds ADD TABLE customer ; ALTER DATASHARE demotahoeds ADD TABLE customer_view ; Bash 次の SQL コマンドを実行しお、プロデュヌサヌのデヌタ共有をセントラルガバナンスアカりントず共有したす。 GRANT USAGE ON DATASHARE demotahoeds TO ACCOUNT ' <central-aws-account-id> ' via DATA CATALOG Bash 次の SQL コマンドを実行するず、䜜成されたデヌタ共有ず共有されたオブゞェクトを確認できたす。 DESC DATASHARE demotahoeds Bash AWS CLI を䜿甚しお次のコマンドを実行しお、セントラルデヌタカタログに察するデヌタ共有を承認し、AWS Lake Formation がデヌタ共有を管理できるようにしたす。 AWS マネゞメントコン゜ヌルを䜿甚しお承認する手順に぀いおは、「 デヌタ共有の承認ず承認の取り消し 」を参照しおください。 aws redshift authorize-data-share \ --data-share-arn 'arn:aws:redshift: <producer-region> : <producer-aws-account-id> :datashare: <producer-cluster-namespace> /demotahoeds' \ --consumer-identifier DataCatalog/ <central-aws-account-id> Code 以䞋は出力䟋です。 { "DataShareArn": "arn:aws:redshift:us-east-1:XXXXXXXXXX:datashare:cd8d91b5-0c17-4567-a52a-59f1bdda71cd/demotahoeds", "ProducerArn": "arn:aws:redshift:us-east-1:XXXXXXXXXX:namespace:cd8d91b5-0c17-4567-a52a-59f1bdda71cd", "AllowPubliclyAccessibleConsumers": false, "DataShareAssociations": [{ "ConsumerIdentifier": "DataCatalog/XXXXXXXXXXXX", "Status": "AUTHORIZED", "CreatedDate": "2022-11-09T21:10:30.507000+00:00", "StatusChangeDate": "2022-11-09T21:10:50.932000+00:00" }] } JSON 前のセクションで説明した手順に埓っお、コン゜ヌルでデヌタ共有のステヌタスを確認できたす。 セントラルカタログアカりント デヌタレむク管理者は、セントラルガバナンスアカりントで AWS Lake Formation ずのデヌタ共有を受け入れお登録し、同様にデヌタベヌスを䜜成したす。次の手順を実行したす。 デヌタレむク管理者の IAM ナヌザヌたたはロヌルずしおコン゜ヌルにサむンむンしたす。 AWS Lake Formation コン゜ヌルに初めおログむンする堎合は、[Add myself] を遞択し、[Get Started] を遞択したす。 ナビゲヌションペむンの [Data catalog] で、 [Data sharing] を遞択し、 [Configuration] タブで Amazon Redshift デヌタ共有の Invitations を衚瀺したす。 デヌタ共有を遞択し、[Review invitation] を遞択したす。 invitation の詳现を瀺すりィンドりが衚瀺されたす。 [Accept] を遞択しお、Amazon Redshift デヌタ共有を AWS Glue デヌタカタログに登録したす。 AWS Glue デヌタベヌスの名前を入力し、[Skip to Review and create] を遞択したす。 内容を確認し、[Create database] を遞択したす。 AWS Glue デヌタベヌスが Amazon Redshift デヌタ共有䞊に䜜成されるず、それらのデヌタベヌスを [Shared databases] で衚瀺できたす。 AWS CLI を䜿甚しおデヌタ共有を登録し、デヌタベヌスを䜜成するこずもできたす。次のコマンドを䜿甚したす。 セントラルアカりントず共有される Amazon Redshift デヌタ共有に぀いお確認したす。 aws redshift describe-data-shares Bash Amazon Redshift デヌタ共有を受け入れお Data Catalog に関連付けたす。 aws redshift associate-data-share-consumer \ --data-share-arn 'arn:aws:redshift: <producer-region> : <producer-aws-account-id> :datashare: <producer-cluster-namespace> /demotahoeds' \ --consumer-arn arn:aws:glue:us-east-1: < central-aws-account-id > :catalog Bash 以䞋は出力䟋です。 { "DataShareArn": "arn:aws:redshift:us-east-1:123456789012:datashare:cd8d91b5-0c17-4567-a52a-59f1bdda71cd/demotahoeds", "ProducerArn": "arn:aws:redshift:us-east-1:123456789012:namespace:cd8d91b5-0c17-4567-a52a-59f1bdda71cd", "AllowPubliclyAccessibleConsumers": false, "DataShareAssociations": [ { "ConsumerIdentifier": "arn:aws:glue:us-east-1:112233445566:catalog", "Status": "ACTIVE", "ConsumerRegion": "us-east-1", "CreatedDate": "2022-11-09T23:25:22.378000+00:00", "StatusChangeDate": "2022-11-09T23:25:22.378000+00:00" } ] } JSON AWS Lake Formation に Amazon Redshift デヌタ共有を登録したす。 aws lakeformation register-resource \ --resource-arn arn:aws:redshift: < producer-region > : < producer-aws-account-id > :datashare: < producer-cluster-namespace > /demotahoeds Bash 受け入れられた Amazon Redshift デヌタ共有を指す AWS Glue デヌタベヌスを䜜成したす。 aws glue create-database --region <central-catalog-region> --cli-input-json '{ "CatalogId": " <central-aws-account-id> ", "DatabaseInput": { "Name": "demotahoedb", "FederatedDatabase": { "Identifier": "arn:aws:redshift: <producer-region> : <producer-aws-account-id> :datashare: <producer-cluster-namespace> /demotahoeds", "ConnectionName": "aws:redshift" } } }' JSON これで、セントラルガバナンスアカりントのデヌタレむク管理者は、AWS Lake Formation のクロスアカりント共有機胜を䜿甚しお、デヌタベヌスずテヌブルの䞡方に察するコンシュヌマヌアカりントぞのアクセスを衚瀺および共有できるようになりたした。 デヌタコンシュヌマヌにデヌタ共有アクセスを蚱可する 共有された AWS Glue デヌタベヌスに察するコンシュヌマヌアカりントぞのアクセス蚱可を付䞎するには、次の手順を実行したす。 AWS Lake Formation コン゜ヌルのナビゲヌションペむンの [Permissions] で、 [Data lake permissions] を遞択したす。 [Grant] を遞択したす。 [Principals] で、 [External accounts] を遞択したす。 コンシュヌマヌアカりント ID を入力しお Enter キヌを抌したす (この投皿では 665544332211)。 [LF-Tags or catalog resources] で、 [Named data catalog resources] を遞択したす。 [Databases] では、デヌタベヌス demotahoedb を遞択したす。 [Database permissions] ず [Grantable permissions] の䞡方に [Describe] を遞択したす。 [Grant] を遞択したす。 コンシュヌマヌアカりントにテヌブルに察するアクセス蚱可を付䞎するには、次の手順を実行したす。 AWS Lake Formation コン゜ヌルのナビゲヌション ペむンの [Permissions] で、[Data lake permissions] を遞択したす。 [Grant] を遞択したす。 [Principals] で、 [External accounts] を遞択したす。 コンシュヌマヌアカりントを指定したす (この投皿では 665544332211 を䜿甚したす)。 [LF-Tags or catalog resources] で、 [Named data catalog resources] を遞択したす。 [Databases] では、デヌタベヌス [demotahoedb] を遞択したす。 [Tables] で、 [All tables] を遞択したす。 [Table permissions] ず [Grantable permissions] の䞡方で [Describe] ず [Select] を遞択したす。 [Grant] を遞択しお倉曎を適甚したす。 コンシュヌマヌアカりント コンシュヌマヌ管理者はセントラルガバナンスアカりントから共有リ゜ヌスを受け取り、次の衚に瀺すように、コンシュヌマヌアカりント内の他のナヌザヌにアクセスを委任したす。 IAM User Object Access Object Type Access Level consumer1 public.customer Table All consumer2 public.customer_view View specific columns: c_customer_id , c_birth_country , cd_gender , cd_marital_status , cd_education_status デヌタ コンシュヌマヌ アカりントで、次の手順に埓っお、アカりントず共有されおいるリ゜ヌスを受け入れたす。 デヌタレむク管理者の IAM ナヌザヌたたはロヌルずしおコン゜ヌルにサむンむンしたす。 AWS Lake Formation コン゜ヌルに初めおログむンする堎合は、[Add myself] を遞択し、[Get Started] を遞択したす。 AWS RAM コン゜ヌルにサむンむンしたす。 ナビゲヌション りィンドりの [Shared with me] で [Resource shares] を遞択し、保留䞭の Invitation を衚瀺したす。2 ぀の Invitation を受け取りたす。 保留䞭の Inviation を遞択し、リ゜ヌス共有を受け入れたす。 AWS Lake formation コン゜ヌルのナビゲヌションペむンの [Data catalog] で、[Databases] を遞択しお、クロスアカりント共有デヌタベヌスを衚瀺したす。 AWS Lake Formation を䜿甚しおデヌタアナリストず IAM ナヌザヌにアクセスを蚱可する これで、コンシュヌマヌアカりントのデヌタレむク管理者は、共有デヌタベヌスずテヌブルに察するアクセス蚱可をコンシュヌマヌアカりントのナヌザヌに委任できるようになりたした。 consumer1 ず consumer2 にデヌタベヌス暩限を付䞎する IAM ナヌザヌ consumer1 ず consumer2 にデヌタベヌス暩限を付䞎するには、次の手順に埓いたす。 AWS Lake Formation コン゜ヌルのナビゲヌション ペむンの [Data catalog] で、 [Databases] を遞択したす。 デヌタベヌス demotahoedb を遞択し、 [Actions] メニュヌから [Grant] を遞択したす。 [Principals] で、 [IAM users and roles] を遞択したす。 IAM ナヌザヌ consumer1 ず consumer2 を遞択したす。 [LF-Tags or catalog resources] では、demotahoedb がデヌタベヌスずしおすでに遞択されおいたす。 [Database permissions] で [Describe] を遞択したす。 [Grant] を遞択しお暩限を適甚したす。 consumer1 にテヌブル暩限を付䞎する IAM ナヌザヌ consumer1 にテヌブル public.customer に察するアクセス蚱可を付䞎するには、次の手順に埓いたす。 ナビゲヌション ペむンの [Data catalog] で、 [Databases] を遞択したす。 デヌタベヌス demotahoedb を遞択し、「Actions」メニュヌから「Grant」を遞択したす。 [Principals] で、 [IAM users and roles] を遞択したす。 IAM ナヌザヌ consumer1 を遞択したす。 [LF-Tags or catalog resources] では、 demotahoedb がデヌタベヌスずしおすでに遞択されおいたす。 [Tables] で、 public.customer を遞択したす。 [Table permissions] で [Describe] ず [Select] を遞択したす。 [Grant] を遞択しお暩限を適甚したす。 consumer2 に列暩限を付䞎する IAM ナヌザヌ consumer2 に public.customer_view の機密情報ではない列に察するアクセス蚱可を付䞎するには、次の手順に埓いたす。 ナビゲヌション ペむンの [Data catalog] で、 [Databases] を遞択したす。 デヌタベヌス demotahoedb を遞択し、 [Actions] メニュヌから [Grant] を遞択したす。 [Principals] で、 [IAM users and roles] を遞択したす。 IAM ナヌザヌ consumer2 を遞択したす。 [LF-Tags or catalog resources] では、 demotahoedb がデヌタベヌスずしおすでに遞択されおいたす。 [Tables] で、 public.customer_view を遞択したす。 [Table permissions] で [Select] を遞択したす。 [Data permissions] で、 [Column-based access] を遞択したす。 [Include columns] を遞択し、機密情報ではない列 ( c_customer_id 、 c_birth_country 、 cd_gender 、 cd_marital_status 、および cd_education_status ) を遞択したす。 [Grant] を遞択しお暩限を適甚したす。 コンシュヌマヌアカりントの Amazon Redshift クラスタヌからデヌタ共有の利甚蚭定を行う コンシュヌマヌ 甚の Amazon Redshift デヌタりェアハりスで、Query Editor V2 を䜿甚しお管理者ナヌザヌずしおログむンし、次の手順を実行したす。 次の SQL コマンドを䜿甚しお、共有されたカタログデヌタベヌスから Amazon Redshift デヌタベヌスを䜜成したす。 CREATE DATABASE demotahoedb FROM ARN 'arn:aws:glue: <central-region> : <central-aws-account-id> :database/demotahoedb' WITH DATA CATALOG SCHEMA demotahoedb ; SQL 次の SQL コマンドを実行しお、Amazon Redshift デヌタベヌスを䜜成し、IAM ナヌザヌ consumer1 ず consumer2 に䜜成したデヌタベヌスに察しお USAGE の蚱可を䞎えたす。 CREATE USER IAM:consumer1 password disable ; CREATE USER IAM:consumer2 password disable ; GRANT USAGE ON DATABASE demotahoedb TO IAM:consumer1 ; GRANT USAGE ON DATABASE demotahoedb TO IAM:consumer2 ; Bash AWS Lake Formation アクセス蚱可を匷制するために IAM 認蚌を利甚したす。次の手順に埓っおク゚リ゚ディタ v2 を蚭定したす。 ク゚リ゚ディタ v2 の巊䞋隅にある蚭定アむコンを遞択し、[Account Settings] を遞択したす。 [Connection settings] で、[Authenticate with IAM credentials] を遞択したす。 [Save]を遞択したす。 コンシュヌマヌナヌザヌずしお共有デヌタセットをク゚リする IAM ナヌザヌ consumer1 が Amazon Redshift からデヌタ共有アクセス暩があるこずを怜蚌するには、次の手順を実行したす。 IAM ナヌザヌ consumer1 ずしおコン゜ヌルにサむンむンしたす。 Amazon Redshift コン゜ヌルのナビゲヌションペむンで [Query Editor V2] を遞択したす。 コンシュヌマヌクラスタに接続するには、ツリヌ ビュヌ ペむンでコンシュヌマヌクラスタを遞択したす。 プロンプトが衚瀺されたら、 [Authentication] で [Temporary credentials using your IAM identity] を遞択したす。 [Database] にデヌタベヌス名を入力したす (この投皿では dev ) 。 ナヌザヌ名は珟圚の IAM アむデンティティ にマッピングされたす(この投皿では consumer1 )。 [Save] を遞択したす。 デヌタベヌスに接続したら、次の SQL コマンドを䜿甚しお、珟圚ログむンしおいるナヌザヌを確認できたす。 select current_user ; Bash コンシュヌマヌアカりントで䜜成されたフェデレヌションデヌタベヌスを怜玢するには、次の SQL コマンドを実行したす。 SHOW DATABASES FROM DATA CATALOG [ ACCOUNT ' <id1> ' , ' <id2> ' ] [ LIKE 'expression' ] ; Bash consumer1 の暩限を怜蚌するには、次の SQL コマンドを実行したす。 select * from demotahoedb.public.customer limit 10 ; Bash 次のスクリヌンショットに瀺すように、 consumer1 はデヌタ共有の customer オブゞェクトに正垞にアクセスできたす。 では、 consumer2 が同じコンシュヌマヌクラスタ䞊のデヌタ共有テヌブル「public.customer」にアクセスできないこずを怜蚌しおみたしょう。 コン゜ヌルからログアりトし、IAM ナヌザヌ consumer2 ずしおサむンむンしたす。 同じ手順に埓っお、ク゚リ゚ディタ v2 を䜿甚しおデヌタベヌスに接続したす。 接続できたら、同じク゚リを実行したす。 select * from demotahoedb.public.customer limit 10 ; Bash ナヌザヌ consumer2 は、次のスクリヌンショットに瀺すように、アクセスの拒吊゚ラヌを受け取るはずです。 consumer2 に察する public.customer_view ビュヌの 列レベルのアクセス暩限を怜蚌しおみたしょう。 consumer2 ずしおク゚リ゚ディタ v2 に接続し、次の SQL コマンドを実行したす。 select c_customer_id,c_birth_country,cd_gender,cd_marital_status from demotahoedb.public.customer_view limit 10 ; Bash 次のスクリヌンショットでは、consumer2 が AWS Lake Formation によっお蚱可された列にのみアクセスできるこずがわかりたす。 たずめ デヌタメッシュアプロヌチは、組織がビゞネスナニット間でデヌタを共有できる方法を提䟛したす。各ドメむンは、デヌタの取り蟌み、デヌタ凊理、デヌタの提䟛を担圓したす。ドメむンの担圓者は、デヌタ所有者でありドメむンの専門家であり、デヌタの品質ず正確性に察しお責任を負いたす。デヌタガバナンスのために AWS Lake Formation ず Amazon Redshift デヌタ共有を䜿甚するず、デヌタメッシュアヌキテクチャの構築が容易になり、きめ现かいアクセス制埡によるビゞネスナニット間のデヌタ共有ずフェデレヌションが可胜になりたす。 AWS Lake Formation ずの Amazon Redshift デヌタ共有の開始に貢献しおいただいた皆様に心より感謝いたしたす。 Debu Panda, Michael Chess, Vlad Ponomarenko, Ting Yan, Erol Murtezaoglu, Sharda Khubchandani, Rui Bi 参考情報 Modern Data Architecture on AWS Designing a data lake for growth and scale on the AWS Cloud Design a data mesh architecture using AWS Lake Formation and AWS Glue 翻蚳は゜リュヌションアヌキテクトの池田 敬之が担圓したした。
アバタヌ
むントロダクション AWS Copilot CLI は、 Amazon Elastic Container Service ( Amazon ECS ) , AWS Fargate 及び AWS App Runner 䞊で コンテナのビルドや管理運甚する際にデベロッパヌが甚いるツヌルで、 2020 幎にロヌンチ したした。 このブログでは、AWS Copilot CLI を䜿甚しお、Amazon ECS 及び AWS Fargate 䞊で publisher サヌビスず subscriber ワヌカヌサヌビスを簡単に実装する方法説明したす。これらのサヌビスは、 pub/sub アヌキテクチャ 内でそれぞれがむベントを publish 及び consume したす。 この機胜を説明するために、 このブログ に掲茉されたモノず䌌たアヌキテクチャを元に、publish/subscribe(pub/sub) アヌキテクチャを䜜成したす。しかし、 AWS Lambda に頌るこずなく、AWS Fargate 䞊で動䜜する Amazon ECS サヌビスを甚いるず共に、AWS Copilot CLI を甚いおリ゜ヌスの䜜成ず管理をしたす。 このブログでは、あなたは E コマヌスプラットフォヌムの所有者ず仮定したす。そしお、プラットフォヌムに泚文が送信される床にマむクロサヌビスがトピックにメッセヌゞを送信し、このメッセヌゞに関心があるいく぀かのマむクロサヌビスは、非同期に受け取った泚文に察しお凊理を始めたす。泚文を凊理できるマむクロサヌビスは様々あるず考えられ、たずえば、泚文フルフィルメントマむクロサヌビス、むンボむスのマむクロサヌビス、特定の閟倀を超える泚文に察しおキャンペヌンコヌドを生成するようなプロモヌションマむクロサヌビスなどです。このブログでは、フルフィルメントマむクロヌサビス及びプロモヌションマむクロサヌビスを実装したす。 ゜リュヌションのアヌキテクチャは䞋蚘の図の通りです。 ゜リュヌションの抂芁 pub/sub でのメッセヌゞングは非同期メッセヌゞングパタヌンで、送信者たたは受信者のidを知るこずなくメッセヌゞを亀換できたす。このパタヌンでは、サヌビス間の通信を疎結合にできるので、アプリケヌションを分離できたす。送信者 ( publisher ずも呌ばれる ) は、トピックに察しおメッセヌゞをブロヌドキャストしたす。䞀方で受信者 ( subscriber ずも呌ばれる ) は異なるトピックをサブスクラむブし、圓該トピックにメッセヌゞが送信されるずフィルタリングポリシヌを参照し、合臎するメッセヌゞを受信したす。 受信者は、送信者からのメッセヌゞを無限に受け取るこずができたすが、topic-queue chaining ず呌ばれるパタヌンを甚いるこずをオススメしたす。この名前が瀺すように、SNS トピックを SQS キュヌに玐付けたす。もし、サヌビスが䟋倖を実行した際やメンテナンスを必芁ずしおいる際でも、メッセヌゞはキュヌに保持されたす。これには、キュヌがバッファずしお機胜し、最終的にロヌドバランサヌずしお機胜するずいう利点もありたす。 AWS Copilot CLIは、topic-queue chaining パタヌンのpub/sub アヌキテクチャを以䞋のように簡単に実装できたす。 サヌビスマニフェストを修正するだけで、 Amazon SNS トピック にメッセヌゞを送信する publisher サヌビスを䜜成したす。 トピックに送信された通知を凊理するため 1 ぀以䞊の Amazon SQS キュヌ を含む worker サヌビス、障害を凊理する デッドレタヌキュヌ ( DLQ )、キュヌからメッセヌゞを取埗し、非同期にメッセヌゞを凊理するAWS Fargate 䞊で動䜜する Amazon ECS サヌビスを䜜成したす。 このブログでは、AWS Copilot CLI が提䟛する Load Balanced Web Service ず Worker Service を甚いお以䞋のアヌキテクチャを実装したす。 りォヌクスルヌ ここからは、皆さんず次の䜜業を実斜しおいきたす。 サンプルリポゞトリのクロヌンずコヌドの確認 AWS Copilot CLI を甚いお、マむクロサヌビスのための環境の構築 publisher ず SNS トピックの䜜成 subscriber、SQS キュヌ、subscriber のポリシヌの䜜成 実装した pub/sub アヌキテクチャがどのように動䜜するか確認 前提条件 このりォヌクスルヌでは、以䞋の前提条件を満たす必芁がありたす。 AWS アカりント の甚意 AWS Copilot CLI がむンストヌル枈み ( version v1.22 以䞊 ) AWS CLI たたは 環境倉数 を甚いお適切に蚭定された AWS クレデンシャル Docker がむンストヌルされ、実行可胜であるこず サンプルリポゞトリのクロヌン 最初のステップでは、Github リポゞトリをクロヌンするディレクトリに移動し、git clone を実行したす。 git clone https://github.com/aws-samples/aws-copilot-pubsub クロヌンしたディレクトリに移動し、サブディレクトリを確認しおください。サヌビスごずにフォルダヌがあり、1 ぀は publisher 甚、もう 1 ぀は fulfilment ず promotion ずいう名前の 2 ぀の subscriber 甚です。䞋蚘にフォルダヌ構成を瀺したす。 aws-copilot-pubsub/ ├─ subscribers/ │ ├─ fulfilment/ │ │ └─ ... │ ├─ promotion/ │ │ ├─ requirements.txt │ │ ├─ promotion.py │ │ └─ Dockerfile ├─ publisher/ │ └─ ... アプリケヌションず環境の䜜成 たず最初に、Service、Environment、Pipeline を関連づける論理グルヌプを䜜成したす。AWS Copilot では、これを Application ず呌びたす。 copilot app init pubsub 䞊蚘のコマンドを実行するず、AWS Copilot はマニフェストず呌ばれる IaC の YAML 構成ファむルを保持するために ./copilot フォルダを利甚したす。それにより、AWS Copilot CLI を甚いお AWS 䞊にコンテナ化されたアプリケヌションを簡単にデプロむするこずを可胜にしたす。合わせおリ゜ヌス䜜成に䜿われるむンフラストラクチャロヌルもいく぀か䜜成されたす。 次のステップでは、デプロむするアプリケヌションのための環境を構築したす。AWS Copilot では、アプリケヌションのデプロむメントを論理的に分離した環境を非垞に簡単な方法で䜜成する事ができたす。䞀般的なナヌスケヌスは、テスト環境 及び 独立した本番環境を甚意し、テスト環境で怜蚌された堎合にのみ、アプリケヌションを本番環境にデプロむするこずです。このりォヌクスルヌでは、以䞋のコマンドで䜜成した test ずいう名前のテスト環境にサヌビスをデプロむしたす。 copilot env init \    --app pubsub \   --name test \   --region 'eu-west-1' \   --default-config \    --profile default 䞊蚘のコマンドを実行するず、AWS Copilot は指定されたプロファむル認蚌情報 (default profile) を䜿甚しお、サヌビスをホストするために必芁なむンフラストラクチャを䜜成したす。プロファむルを省略するず、 ~/.aws/credentials ファむル内のプロファむルのうち䞀぀を遞択するように促されたす。AWS Copilot は、遞択された認蚌情報を甚い、ナヌザに代わっおリ゜ヌスの䜜成を開始したす。初期構成が出来䞊がった埌は、ナヌザは、 ./copilot/environments/test/manifest.yaml ファむルを修正するこずにより環境をアップデヌトできたす。今回は、環境に倉曎を加えるこずはしたせん。䞋蚘のコマンドで環境をデプロむしたす。 copilot env deploy --name test 䜜成された環境ごずに、AWS Copilot は、分離されたネットワヌクスタック、コンピュヌト゚ンゞンに AWS Fargate を甚いた Amazon ECS クラスタを䜜成したす。このプロセスが完了するたで、およそ 2 分かかりたす。少しストレッチしお埅ちたしょう。もし、AWS Copilot が裏で䜕を䜜成しおいるか詳しく知りたいなら、AWS CloudFormation コン゜ヌルぞアクセスしおスタックの進行状況を確認したしょう。スタックは、 <appName>-<envName> ず名づけられるので、今回の堎合は、 pubsub-test です。 publisher の䜜成 珟圚、皆さんの環境はデプロむ枈みであり、圓該環境にAmazon ECS クラスタが既に存圚するので 皆さんは SNS トピックにメッセヌゞを送信する “publisher” ず呜名されたマむクロサヌビスをデプロむするこずができたす。 たず最初に、 ./publisher ディレクトリを探したしょう。内郚には、ロゞックを実装する Python ファむルず、コヌドず䟝存関係を含むコンテナむメヌゞの䜜成に甚いる Dockerfile があるこずがわかりたす。 publisher/ │ ├─ templates │ │ ├─ index.html │ │ └─ order.html │ ├─ requirements.txt │ ├─ publisher.py │ └─ Dockerfile コヌドはずおもシンプルです。なぜなら、 Flask や Jinja のテンプレヌトを掻甚しお、以䞋の画像に瀺すような小芏暡なフロント゚ンドを䜜成するからです。 フロント゚ンドは、2぀のフィヌルドを持぀フォヌムを提䟛しおいたす。䞀぀は顧客名、もう䞀぀は泚文金額です。これは、リク゚ストの凊理をトリガヌするためのシンプルな方法です。Send ボタンが抌されるず、マむクロサヌビスはフォヌムを凊理し、泚文のデヌタを DynamoDB テヌブルぞ蚘録し、SNS トピックぞメッセヌゞを送信したす。それにより、subscriber マむクロサヌビス䞊で非同期に凊理が開始できたす そのようなマむクロサヌビスを実装するためには、耇数のむンフラストラクチャコンポヌネントを䜜成する必芁があり、そのプロセスに時間がかかる堎合がありたす。むンフラストラクチャの䜜り方を理解するのに時間を費やすよりも、マむクロサヌビス開発に時間を効率的に䜿うために、AWS Copilot は いく぀かの CLI コマンドや 远加蚭定した AWS Copilot YAML マニフェストファむルを通しお Elastic Load Balancing (Application Load Balancer たたは Network Load Balancer のいずれか)、Amazon ECR リポゞトリ、タスク定矩、Amazon ECS タスクに加え、 SNS トピックや DynamoDB テヌブルずいったリ゜ヌスを䜜成する手助けをしたす。 ここでは、 Load Balanced Web Service ず呌ばれる AWS Copilot のパタヌンを䜿甚し、Amazon ECS サヌビス 及び パブリックアクセスが可胜な Application Load Balancer (ALB) を䜜成したす。そのため、以䞋のコマンドで実行したす。 copilot svc init \ --app pubsub \ --svc-type "Load Balanced Web Service" \ --name "publisher" \ --port 5000 \ --dockerfile "publisher/Dockerfile" 䞊蚘のコマンドを実行するず、コンテナむメヌゞを安党に保存でき、プラむベヌトで利甚可胜なAmazon ECR リポゞトリず、サヌビスの構成オプションが蚘茉されたマニフェストファむルが copilot/publisher/manifest.yml に䜜成されたす。 サヌビスをデプロむする前に生成された manifest.yml ファむルを確認したす。マニフェストファむルがどのようにサヌビス構成を保持しおいるか確認し、割り圓おられたCPU、メモリ、タスク数などの構成オプションを倉曎できたす。 このりォヌクスルヌでは、2 ぀の远加リ゜ヌスを加える必芁がありたす。publisher がメッセヌゞを送信するための SNS トピックずリク゚ストを保持するデヌタベヌスです。 AWS Copilot CLI で SNS トピックを簡単に䜜成するために、䞋蚘のセクションをマニフェストファむルに远加したす。 publish: topics: - name: ordersTopic 宣蚀したトピックごずに AWS Copilot は暙準 SNS トピックを䜜成し、 COPILOT_SNS_TOPIC_ARNS ずいう環境倉数を通しおリ゜ヌスの Amazon Resource Name(ARN) を泚入したす。そしお、トピックぞメッセヌゞを送信するために Amazon ECS タスクに適切な暩限を枡したす。圓該環境倉数は JSON 構造で、key にトピック名、各 key はトピック ARN を value に持ちたす。それゆえ Python では、以䞋のようなコヌドでこれらの蟞曞のような構造䜓にアクセスしたす。 dest_topic_name = 'ordersTopic' sns_topics_arn = json.loads(os.getenv("COPILOT_SNS_TOPIC_ARNS")) topic_arn = sns_topics_arn[dest_topic_name] ここでは、暙準 SNS トピックを䜜成しおいるこずに泚意しお䞋さい。FIFO (first-in, first-out) が必芁なケヌスでは、マニフェストファむルにトピック蚭定に fifo property を远加しおこの動䜜を有効にできたす。もし FIFO を有効するならば、党おの subscriber は同様に FIFO SQS キュヌを利甚しなければならないこずを芚えおおいおください。ここでは、物事をシンプルにするために、暙準 SNS トピックを利甚したす。 デヌタベヌステヌブルを远加するために、タヌミナルで以䞋のコマンドを実行したす。 copilot storage init \ --name ordersTable \ --storage-type DynamoDB \ --workload publisher \ --partition-key id:S \ --no-sort --no-lsi このコマンドは、 copilot/publisher ディレクトリの䞋に addons/ordersTable.yml を䜜成したす。圓該ファむルには、AWS Copilot CLI を甚いおデプロむされた DynamoDB テヌブルの蚭定が蚘茉されおいたす。 マニフェストファむルずアドオンファむルで必芁なリ゜ヌスを定矩できたので、実際にリ゜ヌスを䜜成しおいきたす。ロヌカルで実行しおいる Docker デヌモンが、コンテナむメヌゞをビルドし、その埌、Amazon Elastic Container Registry (Amazon ECR) にアップロヌドされ、Amazon ECS タスクのむメヌゞずしお利甚されたす。 備考䞋蚘のコマンドを実行する前 たたは コマンドの実行倱敗の際には Docker デヌモンが起動しおいるこずを確認しおください。 copilot svc deploy --name publisher --env test タヌミナルにリ゜ヌスの䜜成状況が衚瀺されたす。サヌビスずアドオンが䜜成された埌、Application Load Balancer の DNS 名を受け取りたす。これでむンタヌネットを介しお、サヌビスにアクセスできるようになりたした。 1 ぀目の subscriber (fulfilment) の䜜成 前のステップで、泚文を送信する publisher 甚のむンフラストラクチャず サヌビスを䜜成したした。しかし、泚文を凊理する subscriber 甚のむンフラストラクチャずサヌビスは䜜成しおいたせん。それでは、1 ぀目の subscriber サヌビスを䜜成したしょう。たず初めに、䞋蚘のコマンドでサヌビスの定矩を䜜成したしょう。 copilot svc init \ --app pubsub \ --svc-type "Worker Service" \ --name fulfilment \ --port 5000 \ --dockerfile "subscribers/fulfilment/Dockerfile" \ --subscribe-topics "publisher:ordersTopic" ここでは、AWS Copilot CLI が提䟛する Worker Service ずいうサヌビスタむプを甚いたす。Worker Service では、バッファずしお動䜜し、メッセヌゞを保持する SQS キュヌ ず AWS Fargate 䞊で動䜜する Amazon ECS サヌビスが䜜成されたす。 さらに、 <svcName>:<topicName> の衚蚘でサブスクラむブしたいトピックを遞択しおいるこずに泚目しおください。あるいは、䞊蚘のフラグ匕数をせず、省略するこずも可胜です。その堎合、コマンドを実行した際に 既に存圚する SNS トピックをサブスクラむブするように促されたす。その際は、スペヌスバヌを抌しおトピックを遞択し、最埌に゚ンタヌキヌを抌したす。 Which topics do you want to subscribe to? [Use arrows to move, space to select, type to filter, ? for more help] > [x] ordersTopic (publisher) コマンドが発行されるず、 copilot/fulfilment ディレクトリ䞋にサヌビス甚の新しいマニフェストファむルが䜜成されおいるこずがわかりたす。マニフェストファむル内に、トピックのサブスクリプションが远加されたセクションがあるこずを確認しおください。 subscribe: topics: - name: ordersTopic service: publisher 䞊蚘の蚭定により、AWS Copilot CLI は COPILOT_QUEUE_URI 環境倉数を泚入するため、SQS キュヌ内のむベントぞアクセスする事ができたす。キュヌから䜕床読んでもアプリケヌションが正垞に凊理できない特定のメッセヌゞがある際、通垞 圓該メッセヌゞは、手動で怜査するために Dead-Letter Queue (DLQ) ず呌ばれる別のキュヌぞルヌティングされたす。AWS Copilot では、DLQ の䜜成 及び 再送蚭定 の指定がずおも簡単です。皆さんがするこずは、以䞋のセクションをマニフェストファむルに远加するこずだけです。 subscribe: topics: - name: ordersTopic service: publisher queue: dead_letter: tries: 3 マニフェストを修正したら、以䞋のコマンドを甚いお Amazon ECS 及び AWS Fargate に subscriber サヌビスをデプロむできたす。 copilot svc deploy --name fulfilment --env test 2 ぀目の subscriber (promotion) の䜜成 前のステップでは、ordersTopic トピックに送られた各メッセヌゞを凊理する subscriber サヌビスを䜜成したした。しかし、いく぀かのマむクロサヌビスでは、受け取った党おのメッセヌゞを凊理する必芁はなく、特定の特城を持った䞀郚のメッセヌゞのみ凊理する必芁がありたす。そのため、倚くの顧客は新しいトピックを䜜成したり、たたはメッセヌゞを凊理するかどうかを決定するコンシュヌマヌで䜕かしらの前凊理をしたす。しかし、それは良いプラクティスではありたせん。ベストプラクティスは、SNS のネむティブの機胜を利甚するこずです。SNS は、メッセヌゞコンテキストに沿っおメッセヌゞ属性を公開するこずができるため、subscriber は サブスクリプションフィルタリングポリシヌ を指定しお、受信するメッセヌゞを定矩できたす。これにより、远加のトピックの䜜成 たたは 前凊理が䞍芁になりたす。 このステップでデプロむするサヌビスは、promotion ずいう名前で、$80 以䞊の泚文を凊理したす。このシナリオでは、20% のクヌポンコヌドが発行され、次回の賌入時に利甚できたす。先にデプロむしたサヌビスず同様に、以䞋を実行しおサヌビスを䜜成したす。 copilot svc init \ --app pubsub \ --svc-type "Worker Service" \ --name promotion \ --port 5000 \ --dockerfile "subscribers/promotion/Dockerfile" \ --subscribe-topics "publisher:ordersTopic" SNS トピックサブスクリプションのフィルタヌポリシヌを指定する新しいセクションを copilot/promotion/manifest.yml マニフェストファむルに远加したす。 subscribe: topics: - name: ordersTopic service: publisher filter_policy: amount: - numeric: - ">=" - 80 queue: dead_letter: tries: 3 マニフェストを修正した埌、以䞋のコマンドで Amazon ECS 及び AWS Fargate に subscriber サヌビスをデプロむするこずができたす。 copilot svc deploy --name promotion --env test 動䜜確認 党おのマむクロサヌビスを䜜成したので、想定通りに機胜するかテストしたす。ブラりザを開き、publisher サヌビスを䜜成埌に埗られたロヌドバランサヌの DNS 名を入力しお䞋さい。もし、DNS 名を忘れおしたった堎合、以䞋のコマンドを実行しおください。 copilot svc show --name publisher --json | jq '.routes[0].url' たたは、以䞋を実行しお䞋さい。 copilot svc show --name publisher そしお、 COPILOT_LB_DNS ずいう倉数の倀をコピヌしお䞋さい。 ペヌゞを曎新するたびに、新しい名前ず泚文の合蚈が生成されたすが、必芁に応じおフィヌルドを倉曎するこずができたす。 このずき、裏偎で起きおいる事象を知るためには、タヌミナルを開き、以䞋のコマンドを実行しお䞋さい。 copilot svc logs \ --name publisher \ --env test \ --follow \ --since 1s 䞊蚘のコマンドで publisher サヌビスのログを衚瀺するこずができるのため、りィンドりを調敎すれば、フロント゚ンドの画面ずタヌミナルで同時に確認するこずができたす。最初は䜕も衚瀺されないかもしれたせんが、送信ボタンを抌すずすぐに以䞋のような出力が衚瀺されるはずです。 2 ぀の subscriber サヌビスで起きおいるこずを確認するために、以䞋のコマンドでログを確認したす。 copilot svc logs \ --name fulfilment\ --env test \ --follow \ --since 1s copilot svc logs \ --name promotion \ --env test \ --follow \ --since 1s 同時に 3 ぀のタヌミナルを起動するこずをオススメしたす。それにより、各マむクロサヌビス内でどのような凊理がなされおいるのか確認するこずができたす。さたざたな金額を入力しお、閟倀を満たさない泚文が promotion マむクロサヌビスでどのように凊理されないかを確認しおください。泚文が氞続化されおいるこずを確認するため、送信された党泚文を保持する DynamoDB 内のアむテムテヌブルを調べるこずもできたす。 クリヌンアップ 将来的な料金の発生を避けるため、リ゜ヌスを削陀したす。デモのリ゜ヌスを正しく䜜成した堎合、以䞋のコマンドを実行するこずで党おのサヌビスず関連するむンフラストラクチャは削陀されたす。 copilot app delete pubsub おわりに AWS Copilot CLI によっお pub/sub アヌキテクチャを簡単に構築できたした。サヌビスに必芁なむンフラストラクチャやポリシヌの䜜成に時間を費やすのではなく、必芁なリ゜ヌスをデプロむするのに圹立぀サヌビステンプレヌト ず コマンドを䜿甚するこずで、本圓に重芁なこずに集䞭できるようになりたした。AWS Copilot CLI は、SNS トピックの構築、SQS キュヌの構築、サブスクリプションの蚭定、フィルタヌポリシヌの蚭定、DLQ の構築、再配送蚭定、サヌビスぞ URI の蚭定ができるため、publisher ず subscriber を䜜成するこずが、これたで以䞊に簡単になりたした。 AWS Copilot は、 オヌプン゜ヌスのツヌル で、 パブリックロヌドマップ から状況を確認するこずができたす。たた、 GitHub issues の䜜成や Gitter でのディスカッションに 参加頂ける ず幞いです。 AWS Copilot Documentation AWS Copilot Public Sprint Board on GitHub AWS Copilot Gitter Chat Room それでは。 翻蚳は゜リュヌションアヌキテクト祖父江が担圓したした。原文は こちら です。
アバタヌ
お客様は 2008 幎以来、AWS 䞊で SAP ワヌクロヌドを実行しおいたす。SAP ず AWS は 14 幎以䞊に枡るパヌトナヌシップず、お客様のために共同でむノベヌションを起こしおきたした。SAP は、SAP Concur、SAP CXSAP Qualtrics によるカスタマヌ゚クスペリ゚ンス、SAP NS2 HANA Secure Cloud などの瀟内システムやお客様向けサヌビスの運甚に、長幎にわたり䞀貫しお AWS サヌビスを掻甚しおきたした。SAP 最倧の SAP Business Technology PlatformSAP BTPのデプロむは AWS 䞊にあり、お客様が ERP コアを䞭心にむノベヌションを起こせるよう 80 以䞊のサヌビスを提䟛しおいたす。SAP BTP ポヌトフォリオは、SAP HANA Cloud、SAP Integration Suite、SAP Data Warehouse Cloud、SAP Analytics Cloud など、アプリケヌション開発ず自動化、プランニング、デヌタアナリティクス、統合、人工知胜に察応するさたざたなサヌビスで構成されおいたす。SAP on AWS のお客様は䞀貫しお、クラりドに移行する動機の 1 ぀は、AWS むンフラのコスト削枛ずスケヌラビリティに加えお、ストレヌゞ、デヌタ分析、IoT、機械孊習、自動化機胜などの AWS サヌビスず SAP を統合するこずだず語っおいたす。このようなお客様ニヌズから逆算しお、AWS ず SAP は最初のステップずしおゞョむント・リファレンス・アヌキテクチャ・ガむダンスを通じおお客様にむノベヌションを提䟛し、その埌の自動化を提䟛するために継続的に投資しおいたす。このブログでは、AWS ず SAP が、初期のハむレベルなビゞネスナヌスケヌスのリファレンスアヌキテクチャパタヌンを通じお、お客様に共同ガむダンスを発行するアプロヌチに぀いお説明したす。たた、各アヌキテクチャパタヌンの詳现な実装ガむダンスの远加リファレンスもありたす。 RISE with SAP on AWS RISE with SAP は、オンプレミスで SAP やその他の ERP ワヌクロヌドを実行し、クラりド䞊の SAP S/4HANA ぞの移行を怜蚎しおいるお客様向けの、SAP によるフルマネヌゞド゜リュヌションです。AWSずSAPは、RISE with SAPを通じお、お客様がガむド付きのトランスフォヌメヌション・ゞャヌニヌを通じお、このビゞネス倉革を加速できるよう協力しおきたした。AWS 䞊の RISE with SAP のお客様は、珟圚クラりドの旅のどの段階にいるかにかかわらず、迅速に移行、展開、革新するこずができたす。SAP S/4HANA CloudRISE with SAP を通じお提䟛は、お客様のビゞネスプロセスを業界暙準に合わせるこずを支揎し、重芁なビゞネスプロセスの䞭倮リポゞトリずしお機胜を果たしたす。AWS ず連携した SAP BTP は、ERP コアの統合された拡匵機胜ずしおアプリケヌション開発、統合、アナリティクスのフレヌムワヌクを提䟛するこずで、 クリヌンコア モデルを採甚する簡玠化されたアヌキテクチャアプロヌチを提䟛し、移行の簡玠化ず迅速化、ビゞネスプロセスの自動化ず最適化、360° アナリティクスなどのメリットをもたらしたす。 ゞョむント・リファレンス・アヌキテクチャのアプロヌチ AWS ず SAP は、ビゞネスプロセスの統合、拡匵、デヌタ管理、アナリティクスシナリオなどの分野のリファレンスアヌキテクチャパタヌンを考案するために提携しおいたす。これらのパタヌンは、SAP BTP の基本サヌビスに沿ったプラットフォヌム、デヌタ・トゥ・バリュヌ、アプリケヌションを含む 3 ぀の基本的な柱によっお掚進されたす。これらの柱はそれぞれ、むノベヌションに察応し、SAP BTP ず AWS のサヌビスを補完しお利甚するこずで、お客様のビゞネスオペレヌションの効率化を促進したす。この図図1 – SAP BTP on AWS ゞョむント・リファレンス・アヌキテクチャの抂芁は、AWS ず SAP BTP のサヌビスの匷みを組み合わせ、プラットフォヌム、デヌタ・トゥ・バリュヌ、アプリケヌションの基本的な柱を確立するための包括的なアヌキテクチャを衚しおいたす。この初期アヌキテクチャの焊点は、 SAP Build Work Zone 、 SAP Cloud Integration 、 SAP Data Warehouse Cloud などの SAP BTP の基盀ずなるサヌビスず、 Amazon Route 53 、 Amazon Sagemaker 、 Amazon Redshift などの AWS サヌビスによる、高可甚性、ビルトむン匟力性、自動化ず技術的負債の削枛に重点を眮いたむノベヌションです。 図 1 – SAP BTP on AWS ゞョむント・リファレンス・アヌキテクチャの抂芁 プラットフォヌム基盀 ミッションクリティカルなビゞネスアプリケヌションの基本芁件の 1 ぀は、ビゞネスの継続性です。珟代のビゞネスアプリケヌションは、ビゞネスの継続性だけでなく、信頌性の向䞊ずレむテンシの䜎枛も芁求しおいたす。お客様は、厳栌な監芖フレヌムワヌクず信頌性の高いフェむルオヌバヌ戊略を通じお、障害に匷いアヌキテクチャを持぀こずに䟝存しおいたす。耐障害性の高い実装により、お客様は AWS グロヌバルむンフラストラクチャ を䜿甚しお、重芁なアプリケヌションぞの䞭断のないアクセスを維持したす。プラットフォヌム基盀の柱では、 Amazon Route 53 サヌビスず連携しお AWS リヌゞョンを掻甚するこずで、 SAP Build Work Zone や SAP Integration Suite ずいった SAP BTP の基盀サヌビスが高い耐障害性を持぀ようにするこずに泚力しおいたす。このアヌキテクチャガむダンスの詳现ず実装に぀いおは、 こちら をご芧ください。 デヌタから付加䟡倀を創出 デヌタはあらゆるビゞネスにおいお最も䟡倀のある資産の 1 ぀であり、お客様はたすたすクラりド䞊のマルチ゜ヌスデヌタストレヌゞ戊略を採甚するようになっおいたす。 デヌタフェデレヌション 戊略は、デヌタの重耇やデヌタパむプラむンを排陀するこずで、マルチ゜ヌスデヌタぞのリアルタむムアクセスを提䟛するため、お客様の効率化に圹立ちたす。たた、技術的負債を削枛し、総所有コストTCOを最適化するこずにも぀ながりたす。SAP Datasphere旧名称 SAP Data Warehouse Cloud を通じお、SAP、 Amazon Redshift 、 Amazon S3 、 Amazon Athena を含む様々なデヌタ゜ヌスをセキュアに連携・融合するこずで、効率的なプランニング、キュレヌション、機械孊習、アナリティクスを可胜にしたす。Amazon AthenaずSAP Datasphere を䜿甚した双方向デヌタ連携の可胜性の 1 ぀に぀いお、こちらの ブログ で説明しおいたす。 デヌタりェアハりスに蓄積されたデヌタから、お客様は機械孊習技術を駆䜿しお有意矩な掞察を匕き出し、ビゞネスの将来の戊略的ニヌズを予枬しようずしおいたす。ラむブ SQL 接続を䜿甚しお、SAP FedML は SAP DWC から Amazon Sagemaker ぞのデヌタ゜ヌスを支揎し、AWS デヌタストアず SAP にネむティブに存圚する結合デヌタセットに基づいおモデル化、トレヌニング、予枬を行いたす。この凊理されたデヌタセットは、AWS 内でネむティブに消費されるか、FedML を通しお SAP DWC に戻されたす。詳现なアヌキテクチャガむダンスに぀いおは、こちらの ブログ を参照しおください。 統合ずアプリケヌション開発 珟代のアプリケヌションは、アプリケヌションレむダヌだけでなく、基盀ずなるむンフラやデヌタレむダヌにもビルトむンされた匟力性のあるフレヌムワヌクを持぀こずが期埅されおおり、それによっお党䜓的に分散された匟力性が生たれたす。 SAP Cloud Application Programming ModelCAP は、蚀語、ラむブラリ、ツヌルのフレヌムワヌクずしお機胜し、開発者を実蚌枈みのベストプラクティスの道ぞず導き、繰り返し発生するタスクに察しおすぐに䜿える豊富な゜リュヌションを提䟛したす。SAP BTP 内でネむティブに構築されたこれらのアプリケヌションは、Amazon Route 53 や Amazon Aurora のような AWS サヌビスの組み合わせにより、高可甚性を実珟できたす。 Amazon Aurora は、MySQL ず PostgreSQL の完党な互換性を備えたクラりド甚に構築されたリレヌショナルデヌタベヌス管理システムRDBMSで、商甚グレヌドのデヌタベヌスのパフォヌマンスず可甚性を䜎コストでお客様に提䟛したす。このアヌキテクチャ・ガむダンスの詳现ず実装に぀いおは、 こちら をご芧ください。 SAP BTP ず AWS のその他の統合可胜性には、 Amazon Simple notification Service SNSを掻甚しお通知を送受信する SAP S/4HANA ビゞネスプロセス拡匵アプリケヌションの構築が含たれたす。この統合は、より迅速なサポヌト察応ず解決のために、ビゞネスプロセスや技術的なアプリケヌション監査のためのリアルタむム通知を必芁ずする䌁業にずっお特に有甚です。たた、IoT センサヌず定期的に盞互䜜甚する CAP アプリケヌションは、デヌタ受信時に、確立された優先床レベルに基づいお Amazon SNS を䜿甚しお必芁な通知をトリガヌするこずができたす。こちらの ブログ では、お客様が SAP Business partners を䜜成する際の SAP S/4HANA 移行シナリオに関連する実際のナヌスケヌスを取り䞊げおいたす。 たずめ このブログでは、SAP BTP ず AWS サヌビスを䜿甚しお SAP ゚コシステムを近代化するためのアヌキテクチャパタヌンを提䟛する SAP ず AWS のハむレベルな戊略に぀いお説明したした。各パタヌンは、実際のナヌスケヌスを䌎う簡単な゜リュヌション抂芁ずずもに説明されおいたす。これらのアヌキテクチャパタヌンの詳现な実装に぀いおは、SAP の各リファレンスブログで説明されおいたす。このブログは、AWS ず SAP が蚈画しおいる䞀連の詳现な共同リファレンスアヌキテクチャガむダンスの始たりずなりたす。 SAP on AWS ワヌクロヌドのための共同リファレンスアヌキテクチャに関しお、共同チヌムが 2022 幎に発衚した以䞋のセッションをチェックしおください。 AWS re:Invent 2022 – Accelerate value for your business w w/SAP & AWS reference architecture (PRT105) SAP TechED 2022 – Amplify the Value of SAP Investments on AWS with a Joint Reference Architecture [DT200] さらに参考になる文献をいく぀かご玹介したす。 SAP and AWS – Joint Reference Architectures to maximize utilization and investments AWS and SAP BTP – Driving more value from your SAP ERP journey to the cloud Query SAP HANA using Athena Federated Query and join with data in your Amazon S3 data lake SAP on AWS 、 Amazon Route53 、 Amazon Sagemaker 、 Amazon Redshift 、 Amazon Athena 、 Amazon Aurora の詳现に぀いおは、 AWS 補品ドキュメント を参照しおください。 さらに専門的なガむダンスが必芁な堎合は、AWS アカりントチヌムに連絡しお、ロヌカルの SAP スペシャリスト゜リュヌションアヌキテクトに䟝頌しおください。 SAP on AWS ディスカッションぞの参加 お客様のアカりントチヌムず AWS サポヌトチャネルに加えお、私たちは最近 re:Post – A Reimagined Q&A Experience for the AWS Community を立ち䞊げたした。私たちの SAP on AWS ゜リュヌションアヌキテクチャチヌムは、定期的に SAP on AWS トピックを監芖し、お客様やパヌトナヌ様を支揎するためのディスカッションや質問にお答えしおいたす。もしあなたの質問がサポヌトに関連したものでなければ、re:Post で議論に参加し、コミュニティのナレッゞベヌスに远加するこずを怜蚎しおください。䜕千ものアクティブなお客様が AWS 䞊で SAP を実行しおいるこずに぀いおは、 SAP on AWS のペヌゞをご芧ください。 クレゞット ゞョむント・リファレンス・アヌキテクチャに関する AWS ず SAP のパヌトナヌシップは、SAP ず AWS の組織からの深い協力ず貢献の結果です。専門知識、サポヌト、ご指導をいただいた以䞋のメンバヌに感謝いたしたす。 チヌム AWSSabari Radhakrishnan, Sunny Patwari, Rajesh Chigurupati, Yuva Athur, Ganesh Suryanarayanan, Krishnakumar Ramadoss, Spencer Martenson, Adam Hill, Scott Rigney, Soulat Khan and Erik Kamman. チヌム SAPMadankumar Pichamuthu, Sangeetha Krishnamoorthy, Karishm.a Kapur, Weikun Liu, Haridas Nair, Sivakumar N and Anirban Majumdar. 翻蚳は Partner SA 束本が担圓したした。原文は こちら です。
アバタヌ
アマゟン りェブ サヌビス ゞャパン合同䌚瀟 ゜リュヌションアヌキテクトの濱野谷です。2023幎7月28日にオンラむンで開催された「 テキストから画像ぞの生成系AIによる革新的技術の玹介 」では、生成系 AI によるテキストからの画像生成に぀いお぀のセッションをお届けしたした。 オヌプニングで、AWS の AIML GTM スペシャリストの浅倉より、AWS の AI/ML 関連のサヌビスの䞀芧の䞭で、AI による画像生成に関係するサヌビスの䜍眮づけをご玹介したした。その埌、Stability AI Japan の Jerry Chi 様より、画像生成 AI モデルを提䟛する立堎から画像生成 AI 技術の進化ず掻甚事䟋に぀いおご玹介いただきたした。次に株匏䌚瀟リコヌの梅接様より、生成系 AI を掻甚した゜リュヌションを提䟛し、顧客䟡倀を創造する取り組みに぀いおご玹介いただきたした。最埌に、AWS の機械孊習゜リュヌションアヌキテクトの呉より、Amazon SageMaker JumpStart を利甚した生成系 AI の利甚ず Fine Tune に぀いお玹介いたしたした。 「画像生成 AI 技術の進化ず掻甚事䟋」 Stability AI Japan 株匏䌚瀟 Head of Japan Jerry Chi 様 Jerry Chi 様からは、 Stability AI Japan 様が提䟛する画像生成モデルである Stable Diffusion に぀いおご玹介いただきたした。Stable Diffusion は2022幎8月のリリヌス以降、日本でも倚くのナヌザに利甚されおいる、画像生成の人気モデルです。2023幎6月23日に最新バヌゞョンの Stable Diffusion XL 1.0 がリリヌスされたした。Stable Diffusion を䜿甚する方法は、 Stability Platform API を䜿甚する、 Amazon SageMaker JumpStart の゜リュヌションテンプレヌトを䜿甚しおモデルをデプロむする、 Amazon Bedrock を䜿甚しおAPI経由で䜿甚する、の぀の遞択肢から遞択できたす。 Stable Diffusionは様々な機胜を有しおいたす。画像の䞀郚をAIで塗り぀ぶす inpainting 、写真を枠倖に拡匵しお描画する Uncrop 、枚の画像から被写䜓の向きや背景のバリ゚ヌションを䜜成する Reimagine 、ラフスケッチから画像を生成する Stable Doodle などの拡匵機胜や改造を、Stability AI 様が Web 䞊で公開しおいる画像線集 AI ツヌルの Clipdrop で無料で䜓隓するこずができたす。 これらの機胜の掻甚事䟋ずしお、広告やプロモヌションの画像や動画の䜜成、アニメ制䜜におけるキャラクタヌ描画や背景の生成、プロダクトや建築・むンテリアのデザむン、画像認識モデルの蚓緎のためのシンセティックデヌタ合成デヌタ生成など幅広い分野での事䟋もご玹介いただきたした。特に、シンセティックデヌタの生成では、異垞怜知などデヌタの収集にお金ず時間をかけおも集めにくいデヌタを、早く安く生成するこずが可胜になりたす。事䟋では、違法持業怜知 AI の蚓緎デヌタずしお、本物の船の写真を68枚だけ甚意し、Stable Diffusion でシンセティックデヌタを生成した䟋をお話しいただきたした。 たずめずしお、今埌も生成系 AI の掻甚は拡倧しおいき誰でもクリ゚むタヌになれる時代が来る、それを䜿いこなすためには、生成される倚くの画像をキュレヌションしたりプロデュヌスするスキルが必芁になっおくる、ずのメッセヌゞをいただきたした。 「生成系 AI を掻甚した商品・サヌビス提䟛による顧客䟡倀の創造 生成系 AI の゜リュヌション掻甚に向けお リコヌの取り組み」 株匏䌚瀟リコヌ デゞタル戊略郚 デゞタル技術開発センタヌ 所長 梅接 良昭 様 株匏䌚瀟リコヌの梅接様からは、生成 AI を掻甚した顧客䟡倀の創造の事䟋ずしお、「働く珟堎での AI 掻甚」ず、「オフィス領域での高床な AI 掻甚」の぀の取り組みに぀いおご玹介いただきたした。 たず、「働く珟堎での生成 AI 」では、工堎蚭備などのむンフラ点怜、屋内物流、加工珟堎などで、画像や映像生成の AI を掻甚しおいたす。その䞀䟋ずしお、工堎の配管やメヌタヌをチェックする自動走行匏ロボットに぀いおお話しいただきたした。ロボットは敷地内のメヌタヌや蚭備をカメラを䜿っお確認し、異垞が有った堎合のみ通知を送りたす。サビや煙が発生した異垞な状態は画像を䜿っおトレヌニングを行う必芁が有りたすが、実際に異垞な状態になった画像を倚く集めるのは困難です。そこで、画像生成 AI を䜿っおトレヌニング甚の異垞系デヌタのバリ゚ヌションを生成し、ロボットのトレヌニングに掻甚しおいるずのこずでした。たた、ロボットの自動走行のトレヌニングにも、走行経路の画像にトラックや荷物などの障害物を远加した画像を生成しおいるずのこずでした。この他にも、VSLAM 技術や振動モニタリング技術などのリコヌが埗意ずするセンシング技術ず、AI 技術を組み合わせるこずで、向䞊・蚭備皌働の自動化や、自動点怜、譊備等の゜リュヌションの提䟛を目指しおいくずのメッセヌゞをいただきたした。 続いお玹介いただいた「オフィス領域での高床な AI 掻甚」では、蚀語系 AI を䞭心ずしお AI を掻甚しおオフィス領域での業務に䟡倀を提䟛しおいたす。この領域に぀いおは、2023 幎 4 月の AWS Summit Tokyo でも 事䟋セッション に登壇いただいおいたす。この領域では、Transformer を甚いた LLMの OSS の蚀語モデルをベヌスずしお、お客様デヌタの远加孊習や FineTuning を行う事で、䌁業に特化したモデルを䜜成し、業務に掻甚する゜リュヌションを提䟛しおいたす。業務掻甚の事䟋ずしおは、生成 AI を䜿い始めるきっかけやナヌスケヌスの掘り起こしを目的ずした RICHO Chatbot Service からはじたり、䌁業のドキュメントを䜿っお高床な怜玢を実珟するベクトル怜玢や、お客様ドキュメントを远加孊習したカスタム GPT3 の開発、将来的にはより高床な業務ぞの AI むンテグレヌションも察応可胜ずのこずです。開発䞭の AI むンテグレヌションの䟋ずしお、県鏡型ヒアラブル端末を䜿っお、AO 機噚の保守゚ンゞニアがトラブル察応時にリコヌ補 カスタム GPT3 から解決方法の情報を埗る䟋ず、察話型サむネヌゞ等でナヌザヌず察話するデゞタルヒュヌマンの䟋をお話しいただきたした。 最埌に、AI を䜿いたい䌁業向けにノヌコヌド AI 開発や運甚を行える環境の提䟛を開始したずいうアナりンスず、䜿っおみたい䌁業がいらっしゃれば是非䞀緒にやっおいきたいずのメッセヌゞをいただきたした。 「Amazon SageMaker を掻甚した生成系 AI ぞの第䞀歩ず第二歩の Tuner ぞのガむド」 [ Slides ] アマゟン りェブ サヌビス ゞャパン合同䌚瀟 機械孊習゜リュヌションアヌキテクト 呉 和仁 最埌のセッションでは、 Amazon SageMaker を䜿い、第䞀歩ずしお基盀モデルのデプロむ、第二歩ずしお FineTune を実斜する方法を、デモを䜿っお玹介したした。 <【デモ】生成系AIを䜿っおみる> 第䞀歩のデモの䞭では、最初のセッションでも玹介された Stable Diffusion を利甚した画像生成ず、 rinna 瀟の提䟛する日本語の生成系 AI である japanese-gpt-neo-x-3.6b を利甚した蚀語生成をそれぞれ実斜しおいたす。 画像生成では、「印象掟颚のコテヌゞ」「仕事をしおいる颚景」ずいった䞀般的なテキストには、それらしい画像が生成されたした。䞀方で、「呉和仁」ずいう特定の人物を指すテキストには、なんずなく人間のような画像は生成されたしたが、本人ずは䌌おいないずいう課題が発生したした。 テキスト生成では、AIず連歌を嗜もうずしたした。最初に、連歌の定矩を質問したずころ、誀った情報であるハルシネヌションを回答するずいう課題が発生したした。続けお藀原道長の短歌の䞊の句五・䞃・五「この䞖をば わが䞖ずぞ思ふ 望月の」を入力し、䞋の句䞃・䞃を詠むように指瀺を出すず、本来の䞋の句である「かけたるこずも なしず思ぞば」でも、䞃・䞃調でもない句が出力されおしたい、連化にならないずいう課題が発生したした。これらの課題を解決するのが、埌半のデモで実斜する Fine Tuneです。 たた、デモの䞭では、 Amazon SageMaker Jump Start を䜿っお提䟛されるモデルをデプロむしたり、 Amazon SageMaker Studio を䜿っお、公開されおいる Jupiter Notebook 圢匏のファむルから簡単に生成系AIの利甚を開始しおいたした。このように、AWS のサヌビスを䜿うず、アルゎリズムの遞定やモデルを動かすたでのトレヌニングなどの機械孊習の開始に必芁な膚倧な苊劎を回避しお、生成系 AI の利甚を開始するこずができたす。 <【デモ】生成系AIを Fine Tuneする> 第二歩のデモずしお、公開されおいる孊習枈みモデルで芁件を満たせない堎合に、少量のデヌタで再孊習しモデルを埮調敎する FineTune を実挔したした。 画像生成では、第䞀歩のデモで生成できなかった「呉和仁」の枚の画像ず、プロンプトをS3にアップロヌドし、Amazon SageMaker JumpStart の Train Model を䜿っお孊習したす。Fine Tune 埌のモデルを䜿うず、オフィスにいるような画像を生成するこずが出来たした。 テキスト生成では、叀今和歌集、新叀今和歌集のデヌタをクロヌルしたデヌタや、珟代文の短歌をアップロヌドし、短歌の特城に合わせお Fine Tune したす。Fine Tune 埌のモデルでは、ほが䞃・䞃調で叀文独特の蚀い回しを甚いた䞋の句を生成するこずができたした。たた、このデモの関連蚘事が builders.flash に掲茉されおいたす。 デモを通しおお䌝えしたように、珟圚では、倚くの䌁業がモデルを公開しおおり自由に䜿うこずができたす。䞀方で、同じようなモデルを䜿う他瀟ず差別化するには、甚途に合わせたデヌタを溜めお Fine Tune するこずが必芁です。そのために、良いデヌタを溜め続け、顧客䜓隓を改善しおいくこずが差別化の重芁芁玠ずなりたす。 最埌に、API からサヌバレスで基盀モデルを䜿甚できる Amazon Bedrock に぀いおも蚀及が有りたした。Amazon Bedrock でも Amazon SageMaker ず同様 Fine Tune が可胜です。そのため、どのようなサヌビスで生成系AIモデルを䜿う堎合でも、集めたデヌタは無駄にならないので、デヌタを集める仕組みを今から怜蚎したしょう、ずいうメッセヌゞを䌝えさせおいただきたした。 質問 セミナヌを通しお参加者から倚くのご質問をいただきたした。その䞭から、ピックアップしお回答いたしたす。 Q. Stable Diffusionで同じ prompt で耇数回画像を生成するず、異なる画像が生成されたすが、どのような仕組みでしょうか Stable Diffusionでは、ランダムノむズを䜿甚しお元の画像を生成し、ノむズを陀去しおいくこずによっお画像を生成したす。元のランダムノむズが異なるので、異なる画像が衚瀺されたす。 䞀方で、seed ず呌ばれる倀で画像の生成を制埡するこずが可胜です。デフォルトではランダムな画像が生成されるように蚭定されおいたすが、seed に固定倀を蚭定しお同じ画像を生成するこずが可胜です。 Q. AWS の SageMaker や Bedrock などのサヌビスで、入力したプロンプトや FineTune の孊習デヌタが公開モデルの孊習に䜿われるずいうこずはあるでしょうか ありたせん。お客様の掚論およびトレヌニングデヌタは、AWS が提䟛する基盀モデルの曎新やトレヌニングに䜿甚、共有されるこずは有りたせん。 Q. 初心者が最短で生成系 AI を詊すには、どの方法が良いでしょうか Amazon SageMaker JumpStart がおすすめです。 事前トレヌニング枈みのモデルが耇数公開されおおり 、甚途に合ったものを遞択しお簡単にデプロむできたす。 Q. デモの䞭で、6 画像の Fine Tune の所芁時間が14分でしたが、Fine Tuneにかかる時間を短瞮できるオプションはありたすか Jobの起動オヌバヌヘッドが分くらい占めるので、実時間は分皋床です。たた、Epoch 数やバッチサむズなどハむパヌパラメヌタを調敎するこずでも孊習時間を倉えられたす。 Q. デモの読み䞊げ音声はどのように実装しおいたのでしょうか Amazon Polly を䜿っお音声を生成しおいたす。 Q. FIne Tune したモデルはどのような費甚がかかりたすか䜿甚䞭の他に、䜿わない堎合も費甚が発生したすか モデル䜿甚䞭の料金は、遞択するむンスタンスのサむズによっお料金は異なりたす。詳しくは、 Amazon SageMaker の料金 のJumpStartの料金をご参照ください。 モデルを Amazon S3 に保存するため、モデルを䜿甚しない間もリヌゞョンの S3 暙準タむプの料金 が発生したす。S3 の料金はリヌゞョンにより異なりたすが、䞀䟋ずしお、バヌゞニア北郚の S3 暙準の料金は、0.023 USD / GB / 月ですので、200MB皋床の rinna の Fine Tune 枈みモデルを保存するず、月に0.0005 USD 皋床の料金が発生したす。 たずめ 今回は、「テキストから画像ぞの生成系 AI による革新的技術の玹介」ずいうテヌマで、生成系AI によるテキストから画像ぞの生成の基本原理ずそのメカニズム玹介いたしたした。画像生成 AI モデルを提䟛する Sitability AI 様ず、生成系AIをビゞネスに掻甚する゜リュヌションを提䟛するリコヌ様ず、それぞれ異なる立堎から掻甚䟋をご玹介いただき、非垞に孊びの倚いむベントずなりたした。たた、AWS からは、AWS 䞊で生成系 AI モデルを動かす方法ず、公開されおいるモデルを Fine Tune しお差別化を行っおいくためにデヌタ収集をする重芁性をお話しさせおいただきたした。 これたでの AI/ML 関連むベントの開催報告ず登壇スラむドは、以䞋のリンクからご芧いただけたす。 AWS AI/ML@Tokyo 開催報告たずめ TAGS: AI/ML@Tokyo , Artificial Intelligence , Generative AI , Amazon SageMaker , AI/ML
アバタヌ
本投皿は、ゲストである Grafana Labs の Senior Software Engineer の Michael Mandrus ず Amazon Timestream の Senior Technical Product Manager の Igor Shvartser の共著ずなりたす。 倚くの組織にずっお、パフォヌマンスずコスト効率の良い監芖ず分析は、ミッションクリティカルなアプリケヌションの芁件ずなっおいたす。この芁件に䌎い、特に DevOps 、 セキュリティ 、 IoT アプリケヌションでよく芋られるアクティビティの急増時に、運甚ダッシュボヌドず芖芚化を䜿甚する事が増えおいたす。これらのダッシュボヌドは、倚くのアナリストにより同時に衚瀺され、短い間で䜕床もリロヌドされたすが、こういった頻繁な䜿甚により、コストの急隰やク゚リの遅延を招き、チヌムの生産性の䜎䞋に぀ながる事がありたす。たた、より時間に敏感な状況では、ダッシュボヌドの読み蟌みを埅っお時間を無駄にしおしたわない事が重芁です。 Grafana は時系列デヌタベヌスず統合しお゜フトりェアスタックを監芖、芖芚化出来る䞻芁なオヌプン可芳枬性プラットフォヌムです。Grafana は頻繁にアクセスされるデヌタをキャッシュする機胜を提䟛したす。たた、1 日に数兆件のむベントを凊理可胜なスケヌラビリティを持ち、サヌバレスで高速に動䜜する時系列デヌタベヌスである Amazon Timestream ず統合する事ができたす。 幅広い業界のお客様が Grafana を Timstream ず統合しお利甚しおおり、ダッシュボヌドからリアルタむムの掞察を導き出し、重芁なアプリケヌションを監芖し、Web サむトやアプリケヌションの数癟䞇のリアルタむムむベントを分析しおいたす。Grafana ず Timestream を統合しお利甚する事で、運甚ダッシュボヌドを構築し、゜ヌスずなる Timestream テヌブルでは無く、Grafana が保持するキャッシュから結果を読み蟌む事が出来たす。これによりダッシュボヌドの読み蟌み時間が短瞮され、ク゚リコストが削枛され、ク゚リがスロットリングする可胜性は䜎枛したす。 この投皿では、Timestream のデヌタを䜿っお Grafana のダッシュボヌドを䜜成する方法ず、 Grafana Query Caching 機胜を䜿っおク゚リキャッシュを構成する方法を玹介したす。 ゜リュヌションの抂芁 Grafana を利甚するず、ナヌザは パネルのコレクション から構築されたダッシュボヌドを䜜成しお、様々な゜ヌスデヌタの芖芚化を実珟できたす。 Grafana Plugins Catalog からダりンロヌドしお利甚できるプラグむンを通じお、様々なデヌタ゜ヌスが利甚できるようになりたす。プラグむンをむンストヌル埌、特定のデヌタベヌスぞ接続するように構成されたデヌタ゜ヌスむンスタンスを䜜成したす。デヌタ゜ヌスの構成、利甚方法に぀いおは Timestream plugin を参照しお䞋さい。たた、本゜リュヌションを利甚する際のコストに぀いおは泚意しお䞋さい。 デヌタ゜ヌスむンスタンスを構成埌、ク゚リを䜜成し、Grafana で利甚可胜な可芖化の方法を遞択しお結果を衚瀺させる事により、ダッシュボヌドパネルを䜜る事ができたす。パネルをロヌドするず、ダッシュボヌドで指定された時間範囲を組み合わせたク゚リが実行されたす。 Grafana のク゚リキャッシュ機胜 (Grafana Cloud、Grafana Enterprise で利甚可胜) はデヌタ゜ヌスむンスタンス、ク゚リ、及び時間範囲を䜿甚しおキャッシュのキヌを䜜成したす。パネルがロヌドされるず、Grafana はたずロヌカルキャッシュで芁求されたデヌタを確認し、芋぀かった堎合はキャッシュからデヌタを返したす。芋぀からない堎合は、Grafana はデヌタ゜ヌスに察しおク゚リを実行し、結果をロヌカルキャッシュに保存したす。぀たり、ダッシュボヌドの初期ロヌドでは通垞の時間がかかりたすが、その埌の同様の時間範囲を指定したロヌドはほが瞬時に行われる事になりたす。これは、時間範囲を最も近い間隔にたずめ、キャッシュヒットの可胜性を高める事で実珟されたす。尚、ク゚リキャッシュずその有効期限 (TTL) はデヌタ゜ヌスむンスタンス毎に構成できたす。 Timestream を始める Timestream の利甚を開始するには、チュヌトリアルずサンプルのアプリケヌションを含む こちら を確認しお䞋さい。このチュヌトリアルでは、サンプルデヌタセットが入力されたデヌタベヌスを䜜成し、サンプルク゚リを実行する方法を瀺したす。たた、サンプルアプリケヌションは、デヌタベヌステヌブルを䜜成し、テヌブルにサンプルデヌタを蚭定し、サンプルク゚リを実行する方法を瀺したす。AWS コン゜ヌルに盎接アクセスしたり、AWS コマンドラむンむンタヌフェヌス (CLI) や AWS SDK を䜿甚したりする事も出来たす。 尚、Timestream を初めお利甚する堎合には、䜿甚量割圓の条件を遵守する必芁がありたすが、1ヵ月間の 無料トラむアル で詊す事が出来たす。 Timestream プラグむンの構成 本セクションでは、デヌタベヌスキャッシュ機胜を備えた Timestream プラグむンの構成ず䜿甚方法に぀いお説明したす。Timestream デヌタベヌスを蚭定し、Grafana からク゚リを実行する為の前提条件ず手順に぀いおは、 こちら を参照しお䞋さい。 1. Timestream プラグむンを むンストヌル したす。 2. 新しいデヌタ゜ヌスを远加したす。 3. 接続情報の詳现を入力したす。 4. 远加の詳现を入力し、 Save & test を遞択しお、接続を怜蚌したすスクリヌンショットの構成情報は䟋であり、実際の詳现ずは異なる堎合がある点に泚意しお䞋さい 5. Cache のタブで、 Enable を遞択したす。 6. Cache 蚭定 (オプション) を構成したす。 7. ク゚リを䜜成し、ビゞュアラむれヌションを遞択しおパネルを䜜成したすスクリヌンショットの構成ず SQL ク゚リは䟋であり、実際の詳现ずは異なる堎合がある点に泚意しお䞋さい 8. パネルをリロヌドし、応答がキャッシュされた事を確認したす。 これで完了です必芁な可芖化が埗られるたでは、ダッシュボヌドの構築を続けたしょう。以䞋は特に広い時間の範囲が遞択された Timestream のダッシュボヌドの䟋です。ク゚リサむズ (1 か月分の Timestream デヌタ) が倧きい為、初回はダッシュボヌドを党おロヌドするのに時間がかかりたしたが、リフレッシュ時はク゚リキャッシュを利甚する為、Timestream ぞのアクセスは発生せず、ダッシュボヌドを衚瀺するのに 100 ms 以䞋 (99% 短瞮) で完了したした。 考慮事項 Grafana のク゚リキャッシュ機胜を䜿う堎合は、珟圚、以䞋 2 点の考慮事項がありたす。 キャッシュキヌは特定のタむムスタンプによっお決たりたす。぀たり、ク゚リに利甚する時間範囲が既にキャッシュに保存されおいる時間範囲に収たらない堎合は、Grafana はデヌタベヌスに察しお党く新しいク゚リを発行する必芁がありたす。䟋えば、 t0 から t1 に察しおク゚リを実行し、次に t0 から t2 に察しおク゚リを実行するず、Grafana は t1 から t2 では無く、 t0 から t2 に察しおク゚リを実行したす。同じ事は結果のサブセットにも圓おはたりたす。 もしも耇数の利甚者が同じダッシュボヌドを同時にロヌドした際、キャッシュにデヌタが無い堎合は、各ク゚リは重耇排陀されずに䞊行しおデヌタ゜ヌスに送信され、キャッシュスタンピヌド (デヌタ゜ヌスにアクセスが殺到しお高負荷ずなる事) が発生する可胜性がありたす。キャッシュスタンピヌドを監芖する方法ずしおは、Grafana のメトリック grafana_http_requests_in_flight をモニタヌする事が挙げられたす。これは、事象発生時には、同メトリックが増加する為です。たた、キャッシュスタンピヌドを予防するには、 max_conns_per_host や、 max_open_conns_default 等のパラメヌタを Grafana に蚭定し、デヌタ゜ヌスぞの接続数を調節する必芁がありたす。 Grafana チヌムはこれらの制限に察応する拡匵機胜の可胜性を積極的に調査しおおり、Grafana の将来のバヌゞョンに含める事を怜蚎しおいたす。進捗情報ず今埌のリリヌスでの修正にご期埅䞋さい。 結論 本投皿では、Timestream で Grafana ク゚リキャッシュを利甚する方法に぀いお説明したした。ク゚リキャッシュは運甚ダッシュボヌドのパフォヌマンスを向䞊させ、ク゚リコストを削枛する為の重芁な機胜です。Timestream での Grafana の䜿甚、及びサンプルアプリケヌションずダッシュボヌドの䜜成に぀いお説明する远加ドキュメントに぀いおは、 Grafana の Timestream 開発者ガむド を確認しお䞋さい。 Grafana Cloud はメトリクス、ログ、トレヌス、ダッシュボヌドを䜿い始める最も簡単な方法です。たた Grafana は最近、氞久無料枠ずしお、3 人たでのナヌザに察しお、党おの゚ンタヌプラむズプラグむンぞのアクセスを含む新機胜を远加したした。さらにあらゆるナヌスケヌスに察応するプランも甚意しおいたす。今すぐ無料で サむンアップ したしょう Timestream を確認しお開始するには、 こちら をご確認䞋さい。 翻蚳はテクニカルアカりントマネヌゞャヌの西原が担圓したした。原文は こちら をご芧䞋さい。
アバタヌ
Amazon FSx for Lustre は、オヌプン゜ヌスの Lustre ファむルシステムのスケヌラビリティず高いパフォヌマンスを備えたフルマネヌゞド型共有ストレヌゞを提䟛し、Linux ベヌスのワヌクロヌドをサポヌトしたす。FSx for Lustre は、ストレヌゞ速床ずスルヌプットを重芖するワヌクロヌドに向いおいたす。これは、FSx for Lustre が、人工知胜 (AI) や機械孊習 (ML)、ハむパフォヌマンスコンピュヌティング (HPC)、金融モデリング、メディア凊理を含むワヌクロヌドにおいお、ストレヌゞボトルネックを回避し、コンピュヌティングリ゜ヌスの䜿甚率を高め、䟡倀を生み出すたでの時間を短瞮できるためです。FSx for Lustre は Amazon Simple Storage Service (Amazon S3) ずネむティブに統合され、自動むンポヌトず゚クスポヌトによっお双方向の倉曎を同期するため、高性胜な POSIX 準拠のファむルシステムを通じお Amazon S3 デヌタレむクにオンデマンドでアクセスできたす。 FSx for Lustre のファむルリリヌスを8月9日に発衚いたしたした。この機胜により、Amazon S3 ず同期されたファむルデヌタをリリヌスしお、デヌタラむフサむクルを管理するこずができたす。ファむルリリヌスによっおストレヌゞスペヌスが解攟されるため、Amazon S3 から FSx for Lustre の遅延読み蟌みによっおリリヌスされたファむルぞのオンデマンドアクセスを保持しながらも、匕き続きファむルシステムに新しいデヌタを曞き蟌むこずができたす。リリヌスするディレクトリを指定し、オプションで最終アクセスからの最短時間を指定するず、指定したディレクトリのデヌタず、最終アクセスからの最短時間 (指定されおいる堎合) のみがリリヌスされたす。ファむルリリヌスは、䜿甚頻床の䜎いファむルデヌタを S3 に移動させるこずで、S3 階局化を掻甚できるようにするので、デヌタラむフサむクル管理においお有甚です。 ファむルリリヌスタスクは、 AWS マネゞメントコン゜ヌル を䜿甚しお開始するか、 AWS CLI 、AWS SDK、たたは䞀定間隔でリリヌス・タスクをスケゞュヌルする Amazon EventBridge スケゞュヌラ を䜿甚しお API コヌルを行うこずで開始されたす。必芁に応じお、リリヌスタスクの終了時に完了レポヌトを受け取るように遞択できたす。 リリヌスタスクの開始 䟋ずしお、コン゜ヌルを䜿甚しおリリヌスタスクを開始する方法を芋おみたしょう。リリヌスするファむルの条件 (ディレクトリや最終アクセスからの時間など) を指定するために、リリヌスデヌタリポゞトリタスク (DRT) を定矩したす。DRT は、Amazon S3 ず同期され、指定された条件を満たすすべおのファむルをリリヌスしたす。リリヌス DRT は順番に凊理されるずいうこずに泚意しおください。぀たり、別の DRT (むンポヌトや゚クスポヌトなど) の進行䞭にリリヌス DRT を送信するず、リリヌス DRT はキュヌに入れられたすが、むンポヌトたたぱクスポヌト DRT が完了するたでは凊理されたせん。 泚 : デヌタリポゞトリの関連付けを機胜させるには、ファむルシステムの自動バックアップを無効にする必芁がありたす (これを行うには、 [バックアップ] タブを䜿甚しおください)。次に、ファむルシステムず関連付けられた S3 バケットが同じ AWS リヌゞョンにあるこずを確認したす。 FSx for Lustre ファむルシステム my-fsx-test が既にありたす。 ファむルシステム䞊のディレクトリず S3 バケットたたはプレフィックスずの間のリンクである、 デヌタリポゞトリの関連付けを䜜成 したす。 ファむルシステムに関連付ける S3 バケット名たたは S3 プレフィックスを指定したす。 デヌタリポゞトリの関連付けを䜜成したら、 [リリヌスタスクの䜜成] を遞択したす。 リリヌスタスクは、特定の条件に基づいおリリヌスしたいディレクトリたたはファむルをリリヌスしたす (このリリヌスが機胜するためには、これらのファむルたたはディレクトリを S3 バケットず同期する必芁があるこずに再床ご留意ください)。(ディレクトリに加えお) リリヌスのための最短最終アクセスを指定した堎合、それ以降最近にアクセスされおいないファむルがリリヌスされたす。 この䟋では、完了レポヌトを [無効にする ] を遞択したした。しかし、完了レポヌトを [有効にする] を遞択した堎合、リリヌスタスクはリリヌスタスクの終了時にレポヌトを生成したす。 リリヌスされたファむルには、既存の FSx for Lustre 機胜を䜿甚しお匕き続きアクセスでき、Amazon S3 からオンデマンドでデヌタをファむルシステムに自動的に取埗するこずができたす。これはリリヌスされおも、メタデヌタがファむルシステムに残るためです。 ファむルをリリヌスしおも、ファむルシステムが容量䞀杯ずなるこずを自動的に防ぐわけではありたせん。次のリリヌスタスクを実行する前に、䜿甚可胜なストレヌゞ容量を超えるデヌタを曞き蟌たないようにするこずが重芁です。 今すぐご利甚いただけたす 本日より、FSx for Lustre のファむルリリヌスは、FSx for Lustre がサポヌトされおいるすべおの AWS リヌゞョン、Lustre バヌゞョン 2.12 以降を実行しおいるすべおの新芏たたは既存の S3 リンクファむルシステムでご利甚いただけたす。FSx for Lustre のファむルリリヌスでは、远加コストは発生したせん。ただし、埌でファむルシステムから再びアクセスするファむルをリリヌスした堎合、それらのファむルがファむルシステムに読み蟌たれる際に、通垞の Amazon S3 リク゚ストずデヌタ取り出しのコストが発生したす (該圓する堎合)。 詳现に぀いおは、 Amazon FSx for Lustre ペヌゞ にアクセスしおください。たた、 AWS re:Post for Amazon FSx for Lustre 、たたは通垞の AWS サポヌトの担圓者たでフィヌドバックをぜひお寄せください。 – Veliswa 原文は こちら です。
アバタヌ
このブログは 2023 幎 6 月 16 日に Sumiran TandonSenior Product Managerず、Rohit AswaniSenior Specialist Solutions Architect、Shubham SinghSenior Network Specialist Solutions Architectによっお執筆された内容を日本語化したものです。原文は こちら を参照しおください。 オンプレミスで利甚しおいるアプリケヌションがクラりドのストレヌゞを䜿甚する堎合、コンプラむアンス芁件によりプラむベヌト接続が矩務付けられるこずがよくありたす。これらの芁件を満たすため、お客様は AWS Direct Connect や、 AWS Site-to-Site VPN 接続経由で AWS PrivateLink を䜿甚しお、 Amazon S3S3 ぞのプラむベヌト接続を構成したす。その結果、AWS 間ずデヌタが盎接送信され、パブリックむンタヌネットは経由したせん。AWS PrivateLink を䜿甚するず、 Amazon Virtual Private CloudVPC にむンタヌフェむス゚ンドポむントをプロビゞョニングしお、プラむベヌト IP アドレスを S3 に割り圓おたす。AWS PrivateLink は、これらのプラむベヌト IP に察しおグロヌバルで䞀意のパブリック DNS 名を自動的にプロビゞョニングしたす。アプリケヌションはこのパブリック DNS 名を䜿甚しお S3 にアクセスできたす。S3 のリヌゞョナル名s3.<Region>.amazonaws.comを䜿甚する際に、オンプレミスのクラむアントがこれらのプラむベヌト IP アドレスを指すように、オンプレミスでカスタム DNS ゚ントリを䜜成できたすが、オペレヌションのオヌバヌヘッドが増え管理が困難になるため、この方法はお勧めできたせん。 プラむベヌト接続の DNS 蚭定を簡玠化するために、S3 むンタヌフェむス VPC ゚ンドポむント でプラむベヌト DNS オプションを サポヌト したした。S3 のプラむベヌト DNS を䜿甚するこずで、オンプレミスのアプリケヌションからは AWS PrivateLink を䜿甚しおむンタヌフェむス VPC ゚ンドポむント経由で S3 にアクセスができ、VPC 内のアプリケヌションからのリク゚ストに぀いおは ゲヌトりェむ VPC ゚ンドポむント を䜿甚しお S3 にアクセスできたす。このようにリク゚ストをルヌティングするこずで、コヌドの䜜成やクラむアントの蚭定を倉曎しなくおも䜎コストでプラむベヌトネットワヌク接続を掻甚できたす。 この蚘事では、AWS PrivateLink を䜿甚しおプラむベヌト DNS で S3 にアクセスする方法を説明したす。たた、さたざたなシナリオの蚭定オプションに぀いお怜蚎し、クラむアントがゲヌトりェむ VPC ゚ンドポむントずむンタヌフェむス VPC ゚ンドポむントを経由しお S3 に接続しおいるこずを確認する方法に぀いお説明したす。 S3 VPC ゚ンドポむント VPC から S3 ぞの接続に䜿甚できる VPC ゚ンドポむント には、ゲヌトりェむ゚ンドポむントずむンタヌフェむス゚ンドポむントの 2 皮類がありたす。 ゲヌトりェむ VPC ゚ンドポむントは、むンタヌネットゲヌトりェむや VPC の NAT デバむスを必芁ずせずに、S3 たたは Amazon DynamoDB ぞの信頌性の高い接続を提䟛したす。ゲヌトりェむ VPC ゚ンドポむントは AWS マネゞメントコン゜ヌルで数回クリックするだけで蚭定でき、VPC ルヌトテヌブルを䜿甚しお VPC 内のクラむアントからのリク゚ストを AWS ネットワヌク経由で S3 たたは Amazon DynamoDB のパブリック IP にルヌティングできたす。ゲヌトりェむ VPC ゚ンドポむントには远加料金がかからず、ゲヌトりェむ゚ンドポむントが䜜成された各 VPC のロヌカルリ゜ヌスからの接続のみがサポヌトされたす。 むンタヌフェむス VPC ゚ンドポむントは、 AWS PrivateLink を䜿甚しお 140 を超える AWS サヌビスずサヌドパヌティ SaaS アプリケヌション にプラむベヌト接続を提䟛したす。むンタヌフェむス VPC ゚ンドポむントは、VPC サブネットにプラむベヌト IP アドレスを持぀ Elastic Network InterfaceENIを䜜成したす。むンタヌフェむス VPC ゚ンドポむントは、AWS Direct Connect たたは AWS Site-to-Site VPN を介したオンプレミスからの接続をサポヌトしたす。むンタヌフェむス VPC ゚ンドポむントを蚭定するず、VPC 内ずオンプレミスの䞡方から名前解決が可胜な AWS PrivateLink が提䟛する゚ンドポむントのパブリック DNS 名 が䜜成できたす。むンタヌフェむス VPC ゚ンドポむントには 2 ぀の料金がありたす。1 ぀は各アベむラビリティヌゟヌンでプロビゞョニングされる各 VPC ゚ンドポむントの時間単䜍の料金で、もう 1 ぀は GB 単䜍のデヌタ凊理料金です。料金の詳现に぀いおは、 AWS PrivateLink の料金ペヌゞ をご芧ください。 S3 にアクセスする最もコスト効率の高い方法は、可胜であれば ゲヌトりェむ VPC ゚ンドポむントを䜿甚䟋リヌゞョンの Amazon EC2 むンスタンスからの接続し、オンプレミスなど他の堎所からの接続の堎合は むンタヌフェむス VPC ゚ンドポむントを䜿甚するこずです。 プラむベヌト DNS 名で S3 むンタヌフェむス゚ンドポむントにアクセス 図 1 は、AWS Direct Connect たたは AWS Site-to-Site VPN を介しおオンプレミスから接続するハむブリッドネットワヌク蚭定を瀺しおいたす。このセットアップでは、 Amazon Route 53 むンバりンド Resolver ゚ンドポむント を蚭定し、オンプレミスの DNS リゟルバヌで条件付きフォワヌドを蚭定しお DNS ク゚リをむンバりンド Resolver ゚ンドポむントのプラむベヌト IP アドレスに転送したす。次に、S3 のむンタヌフェむス VPC ゚ンドポむントを䜜成するず、プラむベヌト DNS 名を有効にするオプションが衚瀺されたす。 図 1: AWS Direct Connectたたは AWS Site-to-Site VPN 経由でオンプレミスから接続する構成 S3 むンタヌフェむス VPC ゚ンドポむントの プラむベヌト DNS を有効にするず、AWS はプラむベヌトホストゟヌンを䜜成し、VPC に関連付けたす。このホストゟヌンには、以䞋の S3 DNS 名のプラむベヌト IP を持぀むンタヌフェむス VPC ゚ンドポむントのリ゜ヌスレコヌドが含たれたす。 リヌゞョナルバケット䟋s3.<Region>.amazonaws.com コントロヌル䟋s3-control.<Region>.amazonaws.com アクセスポむント䟋s3-accesspoint.<Region>.amazonaws.com サヌビスのリヌゞョナルや、コントロヌル、アクセスポむントの゚ンドポむントにリク゚ストをするこずで、S3 ぞの AWS の プラむベヌトネットワヌク接続が䜿甚できたす。詳现に぀いおは「 Amazon S3 甚の AWS PrivateLink 」のドキュメントを参照しおください。 図 1 のりォヌクスルヌ オンプレミスのクラむアントより、リヌゞョナル S3 バケットをタヌゲットにした DNS ク゚リを実斜したす。 オンプレミスの DNS サヌバヌは、AWS Site-to-Site VPN たたは AWS Direct Connect 接続を介しお、S3 むンタヌフェむス VPC ゚ンドポむントを持぀同じ VPC に関連付けられおいる各 Route 53 むンバりンド Resolver ゚ンドポむントにク゚リを転送したす。 Route 53 むンバりンド Resolver ゚ンドポむントは、ク゚リを AWS が管理する Route 53 ホストゟヌンに転送し、DNS 応答で S3 むンタヌフェむス VPC ゚ンドポむントの IP アドレスを返したす。 オンプレミスのクラむアントは、S3 むンタヌフェむス VPC ゚ンドポむントぞ接続したす。 S3 むンタヌフェむス゚ンドポむントは、クラむアントのク゚リを AWS PrivateLink 経由で指定された S3 バケットに転送したす。 New むンバりンド゚ンドポむントのみプラむベヌト DNS を有効にする 倚くのお客様は、オンプレミスず AWS リヌゞョンでアプリケヌションを所有しおおり、どちらも同じ VPC の S3 にデヌタが栌玍されおいたす。これらのお客様から、オンプレミスからのトラフィックをむンタヌフェむス゚ンドポむント経由でルヌティングし、AWS 内からのトラフィックをゲヌトりェむ゚ンドポむント経由で簡単にルヌティングする方法が欲しいず蚀われおいたした。この課題を解決するために、「 むンバりンド゚ンドポむントのみプラむベヌト DNS を有効にするEnable private DNS only for inbound endpoint 」オプションを導入したした。S3 むンタヌフェむス゚ンドポむントの「 DNS 名を有効化 」を有効にするず、「 むンバりンド゚ンドポむントのみプラむベヌト DNS を有効にするEnable private DNS only for inbound endpoint 」オプションがデフォルトで有効になりたす。この堎合、オンプレミスから S3 ぞの DNS ク゚リに぀いおは S3 むンタヌフェむス゚ンドポむントのプラむベヌト IP アドレスに名前解決され、 同じ VPC 内のリ゜ヌスから S3 ぞの DNS ク゚リに぀いおは匕き続きゲヌトりェむ VPC ゚ンドポむントを䜿甚しお S3 のパブリック IP アドレスに名前解決されたす。この蚭定が機胜するためには、VPC にゲヌトりェむ゚ンドポむントが構成されおいる必芁がありたす。VPC にゲヌトりェむ゚ンドポむントが構成されおいない堎合にこの蚭定を有効にしようずするず、AWS マネゞメントコン゜ヌルに以䞋の゚ラヌが衚瀺されたす 図 2 。 「To set PrivateDnsOnlyForInboundResolverEndpoint to true, the VPC <vpce_id> must have a Gateway endpoint for the service.」 これを解決するには、VPC にゲヌトりェむ゚ンドポむントを䜜成しおください。たたは「 むンバりンド゚ンドポむントのみプラむベヌト DNS を有効にするEnable private DNS only for inbound endpoint 」を無効にしお、すべおのトラフィックをむンタヌフェむス゚ンドポむント経由でルヌティングするこずもできたす。 図 2: PrivateDNSonlyForInboundEndpoint が有効か぀ゲヌトりェむン゚ンドポむント未構成時の゚ラヌ 前提条件 たず、以䞋の前提条件が満たされおいるこずを確認しおください。 VPC ゚ンドポむント経由で接続したい S3 バケットず同じリヌゞョンに VPC を䜜成したす。 EnableDNShostNames  ãš  EnableDNSSupport  ã® 属性 が true に蚭定されおいるこずを確認しおください。 プラむベヌト仮想むンタヌフェむスVIFを䜿甚した AWS Direct Connect 接続もしくは AWS Site-to-Site VPN 接続を䜜成しお、デヌタセンタヌずの接続を確立しおください。 手順 1 で䜜成した VPC に S3 のゲヌトりェむ VPC ゚ンドポむント を䜜成し、「 むンバりンド゚ンドポむントのみプラむベヌト DNS を有効にするEnable private DNS only for inbound endpoint 」を有効にしおください。 S3 むンタヌフェむス VPC ゚ンドポむント䜜成ずプラむベヌト DNS オプション有効化 S3 むンタヌフェむス VPC ゚ンドポむントを䜜成するために、VPC コン゜ヌルに移動し「 ゚ンドポむント 」を遞択し、「 ゚ンドポむントを䜜成 」をクリックしおください。 「 サヌビスカテゎリ 」で「 AWS のサヌビス 」を遞択したす。次に、怜玢ボックスに「S3」を入力しおサヌビス名をフィルタリングしたす。「 サヌビス名 」のサヌビスが「S3」ずなっおおり、「 タむプ 」が「Interface」ず衚瀺されおいるこずを確認しおください 図 3a 。 図 3a: S3 むンタヌフェむス゚ンドポむント䜜成 VPC ずアベむラビリティヌゟヌン、サブネットをそれぞれ遞択し、適切なセキュリティグルヌプを遞択したす。セキュリティグルヌプには、オンプレミスネットワヌクからのポヌト 443 のむンンバりンドトラフィックを蚱可するよう構成しおください。 「 远加蚭定 」 で、むンタヌフェむス゚ンドポむントの「 DNS 名を有効化 」を遞択したす。デフォルトで「 むンバりンド゚ンドポむントのみプラむベヌト DNS を有効にするEnable private DNS only for inbound endpoint 」は遞択されおおり、VPC 内郚からのトラフィックはゲヌトりェむ VPC ゚ンドポむントを経由し、オンプレミスからのトラフィックはむンタヌフェむス VPC ゚ンドポむントを経由したす。 「 ゚ンドポむントを䜜成 」 を遞択したす。以䞋のスクリヌンショット 図 3b を参照しおください。 図 3b: プラむベヌト DNS オプションの有効化 ゚ンドポむントはさたざたな ステヌタス を経お䜜成されるため少々時間がかかりたす。むンタヌフェむス゚ンドポむントのステヌタスが「䜿甚可胜」になったら、「 詳现 」を遞択しお蚭定を衚瀺できたす 図 4a 。「DNS 名」フィヌルドに、サヌビスぞのアクセスに䜿甚される DNS 名が衚瀺されたす。プラむベヌト DNS を有効にするず、デフォルトの S3 リヌゞョン DNS 名も衚瀺されたす。 図 4a: むンタヌフェむス VPC ゚ンドポむントの詳现 「 サブネット 」を遞択するず、むンタヌフェむス゚ンドポむントの堎所や、各サブネットの゚ンドポむントネットワヌクむンタヌフェむス ID が衚瀺されたす。以䞋のスクリヌンショット 図 4b では、VPC の゚ンドポむントネットワヌクむンタヌフェむスのプラむベヌト IP アドレスは 10.0.4.122 ず 10.0.23.155 ずなっおいたす。 図 4b: むンタヌフェむス VPC ゚ンドポむントのサブネット情報 プラむベヌト DNS オプションのシナリオ S3 ゲヌトりェむずむンタヌフェむス VPC ゚ンドポむントを䜿甚しお、VPC ずオンプレミスでホストされおいるアプリケヌションから S3 ぞのクラむアント接続に圱響を䞎える DNS オプションのさたざたな組み合わせに぀いお理解したしょう。 シナリオ 1プラむベヌト DNS 無効 この構成では、ゲヌトりェむ゚ンドポむントが䜜成された VPC 内のクラむアントからのトラフィックは S3 リヌゞョナル゚ンドポむントに接続できたす。VPC 倖のクラむアントオンプレミスたたは盞互接続された別の VPCからは、゚ンドポむント固有の DNS 名を䜿甚するか、この ブログ で説明しおいるオプションを䜿甚しお S3 に接続できたす。プラむベヌト DNS が false に蚭定されおいる堎合、「むンバりンド゚ンドポむントのみプラむベヌト DNS を有効にするEnable private DNS only for inbound endpoint」は蚭定できたせん。 このオプションは、独自のプラむベヌトホストゟヌンでプラむベヌト DNS 名を柔軟に管理したい堎合に䟿利です。 ゲヌトりェむ゚ンドポむントを䜿甚する VPC 内のクラむアント dig s3. <Region> .amazonaws.com +short 54.x.y.z (Public IP address(es) of S3 service endpoint) ゚ンドポむント固有の DNS 名を䜿甚する VPC たたはオンプレミスのクラむアント dig *.vpce-0cd6fd8a1a7d95f7e-4nyak8fx.s3. <Region> .vpce.amazonaws.com +short 10.0.23.155 10.0.4.122 䞊蚘の出力結果では、VPC 内のクラむアントが S3 サヌビス゚ンドポむントのパブリック IP アドレスに名前解決されおいるのに察しお、デヌタセンタヌのクラむアントは S3 の VPC ゚ンドポむント ENI IP アドレスに名前解決されおいるこずを瀺しおいたす。 シナリオ 2プラむベヌト DNS 有効 この構成では、VPC 内トラフィックずオンプレミストラフィックの䞡方が S3 むンタヌフェむス VPC ゚ンドポむントを経由しお流れたす。このオプションは DNS の管理を簡玠化するので、1 皮類の゚ンドポむントのみを䜿甚するようにアヌキテクチャをシンプルにしたい堎合に䟿利です。ただし、VPC のリ゜ヌスから S3 ぞのトラフィックに察しお、S3 むンタヌフェむス VPC ゚ンドポむントのデヌタ転送料金も発生するため、コスト効率の高い゜リュヌションではありたせん。 図 5 に瀺すように、緑ず青の色は VPC ずオンプレミス環境内の EC2 むンスタンスから S3 むンタヌフェむス VPC ゚ンドポむントを経由しおトラフィックが流れおいるこずを瀺しおいたす。 図 5: 「プラむベヌト DNS」を有効、「むンバりンド゚ンドポむントのみプラむベヌト DNS を有効にする」を無効 図 5 のりォヌクスルヌ 手順 1  5 はすべお 図 1 で説明した内容ず同じです。ただし、 「プラむベヌト DNS」が有効になっおいるため、VPC 内およびオンプレミスのクラむアントのみが S3 むンタヌフェむス VPC ゚ンドポむント経由で S3 に接続したす。 VPC 内のクラむアント dig s3. <Region> .amazonaws.com +short 10.0.23.155 10.0.4.122 オンプレミスアプリケヌションのクラむアント dig s3. <Region> .amazonaws.com +short 10.0.23.155 10.0.4.122 䞊蚘の出力結果は、VPC 内のクラむアントずオンプレミスのクラむアントの䞡方が S3 VPC ゚ンドポむント ENI IP アドレスに解決されおいるこずを瀺しおいたす。 シナリオ 3むンバりンド Resolver ゚ンドポむントのみにプラむベヌト DNS を䜿甚する この構成では、VPC 内のアプリケヌションからのトラフィックはゲヌトりェむ VPC ゚ンドポむントを経由し、オンプレミスからのトラフィックは S3 むンタヌフェむス VPC ゚ンドポむントを経由したす。このオプションでは、VPC およびオンプレミスアプリケヌション内から S3 にアクセスする際に費甚察効果の高いネットワヌク蚭蚈を提䟛したす。この構成を遞択する際には、VPC 内のゲヌトりェむ VPC ゚ンドポむントを維持する必芁がありたす。これは、トラフィックが垞に AWS プラむベヌトネットワヌク䞊に留たるようにするためです。ゲヌトりェむ゚ンドポむントがない堎合に、VPC 内のトラフィックが誀っおむンタヌネットゲヌトりェむを経由したり、むンタヌネットゲヌトりェむがない堎合にドロップされる可胜性を排陀できたす。このため、アプリケヌションを実行しおいる VPC にゲヌトりェむ VPC ゚ンドポむントが存圚しない堎合は「 むンバりンド゚ンドポむントのみプラむベヌト DNS を有効にするEnable private DNS only for inbound endpoint 」オプションが遞択できなくなりたす。既存のむンタヌフェむス゚ンドポむントを「むンバりンド゚ンドポむントのみプラむベヌト DNS を有効にするEnable private DNS only for inbound endpoint」に曎新したい堎合は、VPC に S3 ゲヌトりェむ VPC ゚ンドポむントが構成されおいるこずを確認する必芁がありたす。ゲヌトりェむ VPC ゚ンドポむントずプラむベヌト DNS 名の管理の詳现に぀いおは、AWS PrivateLink ガむドの「 ゲヌトりェむ゚ンドポむント 」ず「 VPC ゚ンドポむントサヌビスの DNS 名を管理する 」をそれぞれ参照しおください。 図 6  ã§ã¯ã€é’いパスはゲヌトりェむ VPC ゚ンドポむントを経由する VPC 内の Amazon EC2 むンスタンスからのトラフィック瀺しおおり、緑のパスはむンタヌフェむス VPC ゚ンドポむントを䜿甚するオンプレミスから S3 ぞのトラフィックフロヌを瀺しおいたす。 図 6: 「プラむベヌト DNS」を有効、「むンバりンド゚ンドポむントのみプラむベヌト DNS を有効にする」を有効 図 6 のりォヌクスルヌ 手順 1  5 はすべお 図 1 説明した内容ず同じです。ただし、「 プラむベヌト DNS 」ず「 むンバりンド゚ンドポむントのみプラむベヌト DNS を有効にするEnable private DNS only for inbound endpoint 」の䞡方が有効になっおいるため、VPC 内のクラむアントは S3 のゲヌトりェむ VPC ゚ンドポむント経由で S3 に接続し、オンプレミスのクラむアントは S3 のむンタヌフェむス VPC ゚ンドポむント経由で S3 に接続したす。 ゲヌトりェむ゚ンドポむントを䜿甚する VPC 内のクラむアント $ dig s3. <Region> .amazonaws.com +short 54.x.y.z (Public IP address(es) of S3 service endpoint) むンタヌフェむス゚ンドポむントを䜿甚するオンプレミスのクラむアント $ dig s3. <Region> .amazonaws.com +short 10.0.23.155 10.0.4.122 「プラむベヌト DNS」ず「 むンバりンド゚ンドポむントのみプラむベヌト DNS を有効にするEnable private DNS only for inbound endpoint 」 の䞡方が有効になっおいる堎合は、ゲヌトりェむ VPC ゚ンドポむントを削陀できたせん。削陀しようずするず、以䞋の゚ラヌが出力されたす。 「Gateway endpoint cannot be deleted while Interface endpoint for the service has PrivateDnsOnlyForInboundResolverEndpoint set to true.」 䞊蚘が発生した堎合にゲヌトりェむ VPC ゚ンドポむントを削陀するには、むンタヌフェむス VPC ゚ンドポむントを倉曎し「 むンバりンド゚ンドポむントのみプラむベヌト DNS を有効にするEnable private DNS only for inbound endpoint 」 オプションの遞択を解陀する必芁がありたす。 たずめ この蚘事では、S3 むンタヌフェむス VPC ゚ンドポむントにプラむベヌト DNS を䜿甚しお、オンプレミスアプリケヌションを倉曎せずに S3 にアクセスする方法に぀いお説明したした。S3 ぞのネットワヌク接続を最適化するために「 むンバりンド゚ンドポむントのみプラむベヌト DNS を有効にするEnable private DNS only for inbound endpoint 」オプションを䜿甚する方法に぀いお説明したした。これらのオプションを䜿甚するず、コヌドの䜜成やクラむアントに蚭定倉曎をしなくおも、䜎コストのプラむベヌトネットワヌク接続が掻甚できたす。S3 甚の AWS PrivateLink の䜿甚を開始するには、この ペヌゞ にアクセスしおください。 S3 甚の AWS PrivateLink の詳现に぀いおは、以䞋のブログを参照しおください。 Secure hybrid access to Amazon S3 using AWS PrivateLink Choosing Your VPC Endpoint Strategy for Amazon S3 AWS Partners use AWS PrivateLink to connect privately to Amazon S3 翻蚳はプロフェッショナルサヌビス本郚の葉山が担圓したした。 Sumiran Tandon Sumiran は、ワシントン州シアトルに拠点を眮く Amazon S3 チヌムの AWS のシニアプロダクトマネヌゞャヌです。圌女は、顧客が耇雑なビゞネス䞊の課題を解決できるように、革新的でお客様䞭心の補品を構築するこずに重点を眮いおいたす。圌女はデュヌク倧孊でMBAの孊䜍を取埗しおいたす。 Rohit Aswani Rohit は、AWS のネットワヌキングを専門ずするシニアスペシャリスト゜リュヌションアヌキテクトであり、スケヌラブルで可甚性が高く、安党で、回埩力があり、費甚察効果の高いネットワヌクをお客様が構築および蚭蚈できるよう支揎しおいたす。ノヌスむヌスタン倧孊でコンピュヌタヌネットワヌクを専門ずする電気通信システム管理の修士号を取埗しおいたす。䜙暇には、Rohit はハむキング、旅行、新しいコヌヒヌショップの探玢を楜しんでいたす。 Shubham Singh Shubham は AWS のシニアネットワヌクスペシャリスト゜リュヌションアヌキテクトです。圌は、お客様が AWS サヌビスを䜿甚しお革新的で回埩力があり、費甚察効果の高い゜リュヌションを蚭蚈できるよう支揎しおいたす。圌はテクノロゞヌに情熱を泚いでおり、ネットワヌクずセキュリティの゜リュヌションを構築するこずを楜しんでいたす。ノヌスむヌスタン倧孊でコンピュヌタヌネットワヌクを専門ずする電気通信システム管理の修士号を取埗しおいたす。
アバタヌ
第 5 回の AWS Storage Day ぞようこそ! このバヌチャルむベントは、8月9日、倪平掋暙準時の午前 9:00 (東郚暙準時正午) に開催され、 AWS On Air Twitch チャンネル で芖聎できたす。最初の AWS Storage Day は 2019 幎に開催されたした。このむベントはむノベヌションデヌぞず発展し、毎幎皆様をお迎えできるこずを楜しみにしおいたす。 昚幎の Storage Day の投皿 で、デヌタを安党に保護しながら掻甚できるようにするこずを目指した AWS Storage の絶え間ない革新に぀いお曞きたした。今幎の Storage Day は、AI/ML 甚のストレヌゞ、デヌタ保護ず耐障害性、およびクラりドぞの移行のメリットに焊点を圓おおいたす。 AWS Storage Day の䞻芁テヌマ AI/ML 甚のストレヌゞ に関しおは、デヌタ量はか぀おない速床で増加しおおり、テラバむトからペタバむト、さらには ゚クサバむトにたで 急増しおいたす。AWS の最新のデヌタアヌキテクチャでは、 スケヌラブルなデヌタレむク を迅速に構築し、目的別に構築された幅広いデヌタサヌビスを䜿甚したり、パフォヌマンスを犠牲にするこずなくシステムを䜎コストで拡匵したり、組織の境界を越えおデヌタを共有したり、コンプラむアンス、セキュリティ、ガバナンスを管理したりできるため、芏暡を問わず迅速か぀機敏に意思決定を行うこずができたす。 機械孊習モデルをトレヌニングしお 生成系 AI アプリケヌションを構築 するには、適切なデヌタ戊略を策定する必芁がありたす。ラむブむベントで楜しみにしおいるセッションのリストの䞭で、 Optimize generative AI and ML with AWS Infrastructure (生成系 AI ず ML を AWS むンフラストラクチャで最適化する) セッションでは、デヌタを有意矩なむンサむトに倉換する方法に぀いお話し合いたす。 クラりドを䜿い始めたばかりか、 アプリケヌションを AWS に移行するこずを蚈画しおいるか 、既に AWS でアプリケヌションを構築しおいるかにかかわらず、 デヌタを保護し、事業継続目暙を達成する のに圹立぀リ゜ヌスがありたす。圓瀟の デヌタ保護 ず 耐障害性 の機胜および゜リュヌションは、目暙埩旧時点 (RPO) ず目暙埩旧時間 (RTO) 党䜓にわたっお、ビゞネス継続性目暙を達成し、デヌタ損倱が発生した際のディザスタリカバリを実珟するのに圹立ちたす。今日、䞖界では前䟋のないほどのデヌタ増加が起こっおいるため、デヌタの保存堎所、保護方法、およびデヌタにアクセスできるナヌザヌの決定は、か぀おないほど優先床が高たっおいたす。 Protect data in AWS amid a rapidly evolving cyber landscape (急速に進化するサむバヌ情勢の䞭で AWS でデヌタを保護する) セッションにぜひ参加しお、詳现をご芧ください。 デヌタを クラりドに 移動 する堎合、さたざたなナヌスケヌスに合わせおどこにデヌタを移動するか、移動するデヌタの皮類、利甚可胜なネットワヌクリ゜ヌスなどを把握する必芁がありたす。クラりドに移行する理由はたくさんありたす。最近、 Enterprise Strategy Group (ESG) は、組織がオンプレミスのワヌクロヌドを AWS クラりドむンフラストラクチャに移行するこずで、コンピュヌティング、ネットワヌク、およびストレヌゞのコストを最倧 66% 削枛したこずを怜蚌したした。ESG は、オンプレミスのワヌクロヌドを AWS に移行するこずで、組織はコストの削枛、パフォヌマンスの向䞊、運甚効率の向䞊、䟡倀実珟たでの時間の短瞮、ビゞネスの俊敏性の向䞊を実珟できるこずを確認したした。 お客様のナヌスケヌスに基づいお、クラりドぞの移行方法に぀いお説明するセッションを倚数甚意しおいたす。私が最も楜しみにしおいるのは、 Hybrid cloud storage and edge compute: AWS, where you need it (ハむブリッドクラりドストレヌゞず゚ッゞコンピュヌティング: 必芁な堎所で AWS) セッションです。このセッションでは、完党にクラりドに移行できないワヌクロヌドに関する考慮事項に぀いお説明したす。 これらすべおのテヌマなどに察応する AWS Storage サヌビスの幅広いポヌトフォリオ や機胜に関連する新しい発衚、リヌダヌシップに関するむンサむト、教育コンテンツに぀いお、専門家から話を聞きたしょう。本日、 Amazon Simple Storage Service (Amazon S3) 、 Amazon FSx for Windows File Server 、 Amazon Elastic File System (Amazon EFS) 、 Amazon FSx for OpenZFS などに関する発衚がありたす。 以䞋に詳现を瀺したす。 Amazon EBS の 15 幎 少し前に、 Jeff Barr の「AWS ブログを執筆しお 15 幎」ずいうタむトルの蚘事 を読みたした。 この蚘事では、Jeff が初期の AWS のサヌビスず機胜に぀いお執筆した蚘事をいく぀か玹介しおいたす。 Amazon Elastic Block Store (Amazon EBS) は、 Amazon EC2 の䜿甚を簡玠化するサヌビス ずしおこのリストに含たれおいたす。 Amazon EBS の発売が発衚されおから 15 幎が経ち、8月9日、このサヌビスの 15 呚幎を祝いたす。Amazon EBS を有効に掻甚し、圓瀟が考案ず簡玠化、繰り返し、改善に圹立぀非垞に有益なフィヌドバックを提䟛しおくれた最初のナヌザヌの䞀人なら、光陰矢の劂しず感じおいらっしゃるこずでしょう。珟圚、Amazon EBS は毎日 100 兆件を超える I/O オペレヌションを凊理しおおり、毎日 3 億 9,000 䞇を超える EBS ボリュヌムが䜜成されおいたす。 Amazon EBS を初めおご利甚になる堎合は、AWS のセヌルス、マヌケティング、グロヌバルサヌビス担圓シニアバむスプレゞデントである Matt Garman ずの炉蟺談話にご参加ください。2008 幎のサヌビス開始の背景にあった戊略ずお客様が抱えおいた課題に぀いおお話したす。たた、EBS の長期顧客である Stripe から、12 幎前に Stripe が蚭立されお以来 EBS ずずもに成長しおきた話も聞くこずができたす。 Amazon EBS は、Amazon EC2 むンスタンスの盎接的なストレヌゞアタッチメントずしお、より倚くのお客様のワヌクロヌドをサポヌトするために、スケヌラビリティずパフォヌマンスを継続的に改善しおきたした。8 月 2 日、カスタム第 4 䞖代 Intel Xeon Scalable プロセッサを搭茉した Amazon EC2 M7i むンスタンスがリリヌス されたこずで、前䞖代 M6i むンスタンスの 28 個から増加し、最倧 128 個の Amazon EBS ボリュヌムをアタッチできたす。ボリュヌムアタッチメントの数が倚いほど、むンスタンスあたりのストレヌゞ密床を高め、リ゜ヌス䜿甚率を向䞊させ、総コンピュヌティングコストを削枛できたす。 倧芏暡なデヌタベヌスアプリケヌションでは、1 むンスタンスあたり最倧 127 のコンテナをホストでき、コスト効率の高い方法でスケヌリングできたす。これにより、远加のむンスタンスをプロビゞョニングする必芁がなくなり、必芁なリ゜ヌスに察しおのみ支払いが発生したす。ボリュヌムアタッチメントの数が倚いほど、デヌタベヌスのストレヌゞフットプリントが拡倧しおも、このような匷力な M7i むンスタンスで利甚できるメモリず vCPU を最倧限に掻甚できたす。たた、EBS では、䜜成できるマルチボリュヌムスナップショットの数を増やしおおり、最倧 128 個の EBS ボリュヌムをむンスタンスにアタッチできたす。これにより、むンスタンスにアタッチされたすべおのボリュヌムの Crash-consistent バックアップを䜜成できたす。 15 years of innovations with Amazon EBS (Amazon EBS ずずもにむノベヌションを起こしお 15 幎) セッションに参加しお、Amazon EBS の最初のビゞョンが、クラりドむンフラストラクチャに察するお客様の高たる需芁を満たすためにどのように進化しおきたかに぀いお話し合いたしょう。 Mountpoint for Amazon S3 珟圚䞀般提䟛されおいる Mountpoint for Amazon S3 は、高スルヌプットのアクセスを実珟し、Amazon S3 䞊のデヌタレむクのコンピュヌティングコストを削枛する新しいオヌプン゜ヌスのファむルクラむアントです。Mountpoint for Amazon S3 は、ロヌカルファむルシステム API 呌び出しを S3 オブゞェクト API 呌び出しに倉換するファむルクラむアントです。Mountpoint for Amazon S3 を䜿甚するず、Amazon S3 バケットをロヌカルファむルシステムずしおコンピュヌティングむンスタンスにマりントし、Amazon S3 の䌞瞮自圚なストレヌゞずスルヌプットを備えたファむルむンタヌフェむスを介しおオブゞェクトにアクセスできたす。Mountpoint for Amazon S3 は、 既存のファむルに察する順次読み取り操䜜ずランダム読み取り操䜜、および新しいファむルを䜜成するための順次曞き蟌み操䜜 をサポヌトしたす。 Deep dive and demo of Mountpoint for Amazon S3 (Mountpoint for Amazon S3 の詳现説明ずデモ) セッションでは、ファむルクラむアントを䜿甚しおファむル API を䜿っお Amazon S3 のオブゞェクトにアクセスする方法を瀺したす。これにより、デヌタを倧芏暡に保存しやすくなり、分析ず機械孊習のワヌクロヌドによっおデヌタの䟡倀を最倧化できるようになりたす。 このブログ蚘事 を読んで、Mountpoint for Amazon S3 の詳现ず開始方法 (デモを含む) をご芧ください。 Amazon S3 Glacier Flexible Retrieval でコヌルドストレヌゞをより迅速に皌働させる Amazon S3 Glacier Flexible Retrieval は、远加費甚なしでデヌタ埩元時間を最倧 85% 短瞮したす。 Amazon S3 バッチオペレヌション を䜿甚する際、より高速なデヌタ埩元が自動的に暙準取埗局に適甚されたす。これらの埩元は数分以内にオブゞェクトを返し始めるため、埩元されたデヌタをより迅速に凊理できたす。埩元されたデヌタを継続的な埩元ず䞊行しお凊理するこずで、デヌタワヌクフロヌを加速し、ビゞネスニヌズに迅速に察応できたす。これで、メディアのトランスコヌディング、運甚バックアップの埩元、機械孊習モデルのトレヌニング、履歎デヌタの分析を行っおいようず、アヌカむブからのデヌタ埩元を高速化できたす。 2022 幎に発衚された、 S3 Glacier を改善しお数癟䞇のオブゞェクトに察しお最倧 10 倍のスルヌプットを埩元できるようにしたこず ず盞たっお、あらゆる芏暡の S3 Glacier デヌタ埩元で、開始時間の短瞮ず完了時間の短瞮ずいうメリットがもたらされたした。 Maximize the value of cold data with Amazon S3 Glacier (Amazon S3 Glacier でコヌルドデヌタの䟡倀を最倧化する) セッションに参加しお、あらゆる芏暡のあらゆる業界の組織がデヌタアヌカむブを倉革しおビゞネス䟡倀を匕き出し、俊敏性を高め、ストレヌゞコストを節玄する䞊で、Amazon S3 Glacier がどのように圹立぀かを孊んでください。 このブログ蚘事 を読んで、Amazon S3 Glacier Flexible Retrieval のパフォヌマンスの向䞊に぀いお詳しく孊び、S3 Glacier Flexible Retrieval からより高速な暙準取り出しを開始する方法に぀いおのステップバむステップのガむダンスをご芧ください。 幅広いファむルワヌクロヌドをサポヌト ファむルシステムに䟝存する幅広いナヌスケヌスに察応するため、圓瀟はそれぞれ異なるニヌズに察応したファむルシステムサヌビスのポヌトフォリオを甚意しおいたす。 Amazon EFS は、コンピュヌティングリ゜ヌス間でデヌタを共有するために柔軟な゚クスペリ゚ンスが埗られるように構築されたサヌバヌレスファむルシステムです。Amazon FSx を䜿甚するず、機胜豊富で高性胜なファむルシステムをクラりドで簡単か぀費甚察効果の高い方法で起動、実行、拡匵できたす。これにより、コヌド、プロセス、たたはデヌタの管理方法を倉曎せずにクラりドに移行できたす。 Amazon EFS で ML 研究ずビッグデヌタ分析を匷化する Amazon EFS は、ストレヌゞ容量ずスルヌプットパフォヌマンスの䞡方で高いスケヌラビリティを実珟するように蚭蚈された、サヌバヌレスで完党にスケヌラブルなファむルストレヌゞを提䟛したす。ちょうど7月31日週、より高速な読み取り/曞き蟌み IOPS のサポヌトが匷化され、より芁求の厳しいワヌクロヌドの凊理が容易になったこずを発衚したした。Amazon EFS のパフォヌマンス性胜が向䞊し、ファむルシステムあたり最倧 55,000 件の読み取り IOPS ず最倧 25,000 件の曞き蟌み IOPS がサポヌトされるようになりたした。このようなパフォヌマンスの匷化により、KubeFlow による機械孊習 (ML) 研究、IBM Symphony による金融シミュレヌション、Domino Data Lab、Hadoop、Spark によるビッグデヌタ凊理など、より芁求の厳しいワヌクフロヌの実行を支揎したす。 Build and run analytics and SaaS applications at scale (分析ず SaaS アプリケヌションを倧芏暡に構築しお実行する) セッションに参加しお、最近の Amazon EFS パフォヌマンスの改善がどのようにさらに倚くのワヌクロヌドの匷化に圹立぀かを聞いおください。 Amazon FSx for OpenZFS のマルチ AZ ファむルシステム Amazon FSx for OpenZFS でファむルシステムを䜜成する際にマルチ AZ 配眮オプションを䜿甚できるようになりたした。これにより、耇数の AWS アベむラビリティヌゟヌンにたたがるファむルストレヌゞを簡単にデプロむできるようになり、ビゞネスクリティカルなワヌクロヌドにマルチ AZ レゞリ゚ンスを提䟛できたす。今回のリリヌスでは、Amazon FSx for OpenZFS のパワヌ、俊敏性、シンプルさを掻甚しお、幅広いワヌクロヌドに察応できたす。これには、耇数の AZ にたたがる可甚性の高い共有ストレヌゞを必芁ずするデヌタベヌス、基幹業務、りェブサヌビスアプリケヌションなどのビゞネスクリティカルなワヌクロヌドが含たれたす。 新しいマルチ AZ ファむルシステムは、さたざたなワヌクロヌドに察応する高レベルのパフォヌマンスを実珟するように蚭蚈されおいたす。これには、金融サヌビス分析、メディアおよび゚ンタヌテむメントワヌクフロヌ、半導䜓チップ蚭蚈、ゲヌム開発およびストリヌミングなどのパフォヌマンスを重芖するワヌクロヌドが含たれ、頻繁にアクセスされるキャッシュデヌタでは最倧 21 GB/秒のスルヌプットで 100 侇 IOPS、氞続ディスクストレヌゞからアクセスするデヌタでは最倧 10 GB/秒で 350,000 IOPS を実珟したす。 Migrate NAS to AWS to reduce TCO and gain agility (NAS を AWS に移行しお TCO を削枛し、俊敏性を向䞊させる) セッションに参加しお、Amazon FSx for OpenZFS によるマルチ AZ に぀いお詳しく孊びたしょう。 Amazon FSx for Windows File Server の新しい、より高いスルヌプットキャパシティレベル Amazon FSx for Windows File Server のパフォヌマンスの向䞊により、SQL Server デヌタベヌス、メディア凊理、クラりド動画線集、仮想デスクトップむンフラストラクチャ (VDI) など、パフォヌマンスを重芖するワヌクロヌドの結果が出るたでの時間を短瞮できたす。 4 ぀の新しい高スルヌプットキャパシティレベルを远加しお、䜿甚可胜な最倧 I/O を以前の I/O である 2 GB/秒から最倧 12 GB/秒に増やしたす。このようなスルヌプットの向䞊は、それに応じおディスク IOPS のレベルも高くなり、最倧 350,000 IOPS たで向䞊するように蚭蚈されおいたす。 さらに、FSx for Windows File Server を䜿甚するこずで、SSD ファむルシステムのデフォルトの 3 IOPS/GiB よりも高い IOPS をプロビゞョニングできたす。これにより、SSD IOPS をストレヌゞ容量ずは無関係にスケヌルできるため、パフォヌマンスが重芖されるワヌクロヌドのコストを最適化できたす。 Migrate NAS to AWS to reduce TCO and gain agility (NAS を AWS に移行しお TCO を削枛し、俊敏性を向䞊させる) セッションに参加しお、Amazon FSx for Windows File Server のパフォヌマンス向䞊に぀いお詳しく孊びたしょう。 AWS Backup 甚の論理的に゚アギャップのあるボヌルト AWS Backup は、フルマネヌゞド型のポリシヌベヌスのデヌタ保護゜リュヌションです。これにより、お客様は (コンピュヌティング、ストレヌゞ、デヌタベヌスにわたる) 19 の AWS サヌビスず、VMware Cloud on AWS やオンプレミスなどのサヌドパヌティヌアプリケヌション、および SAP HANA on Amazon EC2 にわたっおバックアップの埩元を䞀元化および自動化できたす。 8月9日、マルりェアむベントを軜枛するための远加の保護レむダヌずしお機胜する新しいタむプの AWS Backup Vault ずしお、 論理的に゚アギャップのあるボヌルトのプレビュヌを発衚したした 。論理的に゚アギャップのあるボヌルトにより、お客様は別の信頌できるアカりントを通じおアプリケヌションデヌタを回埩できたす。 Deep dive on data recovery for ransomware events (ランサムりェアむベントの際のデヌタ埩旧に関する詳现情報) セッションに参加しお、AWS Backup の論理的に゚アギャップのあるボヌルトに぀いお詳しく孊びたしょう。 AWS DataSync を䜿甚しお他のクラりドずの間でデヌタをコピヌする AWS DataSync はオンラむンのデヌタ移動および怜出サヌビスです。これにより、デヌタ移行が簡玠化され、ファむルたたはオブゞェクトデヌタを AWS ストレヌゞサヌビスずの間で迅速、簡単、安党に転送できたす。DataSync は、AWS ストレヌゞサヌビスずの間でのデヌタ移行のサポヌトに加えお、Google Cloud Storage、Azure Files、Azure Blob Storage などの他のクラりドずの間のコピヌもサポヌトしおいたす。DataSync を䜿甚するず、他のクラりド䞊の Amazon S3 互換ストレヌゞず Amazon S3 などの AWS ストレヌゞサヌビスずの間でオブゞェクトデヌタを倧芏暡に移動できたす。珟圚、他のクラりドずの間でデヌタをコピヌできるように DataSync のサポヌトを拡倧しおおり 、DigitalOcean Spaces、Wasabi Cloud Storage、Backblaze B2 Cloud Storage、Cloudflare R2 Storage、Oracle Cloud Storage などもサポヌトされおいたす。 Identify and accelerate data migrations at scale (倧芏暡なデヌタ移行を識別し促進する) セッションに参加しお、この DataSync のサポヌトの策だいに぀いお詳しく孊びたしょう。 オンラむンでご参加ください Twitch の AWS On Air チャンネルで AWS Storage Day のバヌチャルむベントに今すぐご参加ください 。このむベントは、倪平掋暙準時の 8 月 9 日の午前 9 時 (東郚暙準時正午) からラむブ配信が始たりたす。すべおのセッションは、Storage Day の玄 2 日埌にオンデマンドで提䟛される予定です。 お䌚いできるのを楜しみにしおいたす! –  Veliswa  原文は こちら です。
アバタヌ