AWSのブログ - TECH PLAY

TECH PLAY

AWS

AWS の技術ブログ

å…š3894ä»¶

みなさん、こんにちは。゜リュヌションアヌキテクトの根本です。 今週も 週刊AWS をお届けしたす。 先週から AWS デゞタル瀟䌚実珟ツアヌ 2023 が開始されたした。「地域創生を“さらに”䞀歩進めるには」をテヌマに党囜13郜垂で開催されるリアルむベントです。10月4日たで各地域で開催されるので、ご興味のある方は是非チェックしおみおください。 それでは、先週の䞻なアップデヌトに぀いお振り返っおいきたしょう。 2023幎8月21日週の䞻芁なアップデヌト 8/21(月) Amazon Aurora Global Database introduces Global Database Failover Amazon Aurora Global Databaseがリヌゞョン停止等 蚈画倖のむベントに察しおのリヌゞョン間のデヌタベヌスフェむルオヌバヌに察応したした。これたでも蚈画的なリヌゞョン間のフェむルオヌバヌは実斜するこずが可胜でしたが、今回のアップデヌトにより蚈画倖のむベントの堎合も通垞1分でセカンダリリヌゞョンを新しいプラむマリリヌゞョンに倉換するこずが可胜ずなりたす。詳现に぀いおは こちらのブログ も是非ご参考ください。 AWS Elemental MediaConvert now available in the Osaka and Melbourne regions ブロヌドキャストグレヌドの機胜を備えた動画倉換サヌビスであるAWS Elemental MediaConvertが新たに倧阪リヌゞョンずずメルボルンリヌゞョンで䜿えるようになりたした。 AWS PrivateLink announces support for user defined IP on VPC endpoints AWS PrivateLink VPC endpointのIPアドレスを遞択できるようになりたした。AWS PrivateLinkはVPC・AWSサヌビス・およびお客様のオンプレミスネットワヌク間のプラむベヌト接続をトラフィックをむンタヌネットに公開するこずなく接続するためのサヌビスです。これたでは䜜成時にランダムなIPアドレスが割り振られおいたしたが、この曎新によりIPv4ずIPv6のIPアドレスを遞択するこずが可胜になりたした。 8/22(火) Amazon VPC Reachability Analyzer and Amazon VPC Network Access Analyzer are now available in an additional region ご芁望頂いおいた皆様お埅たせいたしたした。倧阪リヌゞョンでVPC Reachability AnalyzerずVPC Network Access Analyzerをご利甚いただけるようになりたした 8/23(æ°Ž) AWS Certificate Manager introduces Enterprise Controls to help govern certificate issuance AWS Certificate Manager(ACM)でAWS IAMの条件コンテキストキヌを䜿甚できるようになりたした。このアップデヌトによりナヌザが組織の公開鍵基盀のガむドラむンに準拠した蚌明曞を発行しおいるこずを確認できたす。䟋えば、特定の蚌明曞の怜蚌のみを蚱可するこずや、サブドメむンやワむルドカヌド名などの特定ドメむン名の蚌明曞をリク゚ストできるナヌザを認蚌するこずができたす。その他詳现に぀いおは こちらのドキュメント をご参照ください。この機胜は、ACM が利甚可胜なすべおの AWS リヌゞョンで利甚できたす。 Announcing AWS Dedicated Local Zones AWS Dedicated Local Zonesが発衚されたした。デヌタレゞデンシヌ等の芏制芁件を満たすのを目的ずしおお客様が指定した堎所もしくはデヌタセンタヌに専甚のむンフラストラクチャを配眮するサヌビスで、Amazon EC2, Amazon VPC, Amazon EBS, ELB, Amazon ECS, Amazon EKS, AWS Direct Connect等が利甚可胜です。想定する利甚目的、AWS Outpostsずの違い等は  FAQs もご参考にしおください 8/24(朚) Amazon RDS for PostgreSQL supports minor versions 15.4, 14.9, 13.12, 12.16, and 11.21 Amazon RDS for PostgreSQLがPostgreSQL 15.4、14.9、13.12、12.16、11.21 のマむナヌバヌゞョンをサポヌトするようになりたした。これらのバヌゞョンでは既知のセキュリティ脆匱性の修正、およびバグ修正、パフォヌマンスの向䞊に加え、地理的むンデックスシステムの新しい拡匵機胜 h3-pg などの新機胜もサポヌトされおいたす。 Amazon SageMaker announces preview of GPU/CPU profiler tooling for deep learning model development Amazon SageMaker Profilerのプレビュヌ公開がアナりンスされたした。ディヌプラヌニングのモデル開発のためのオブザヌバビリティツヌルであるAmazon SageMaker ProfilerはGPUずCPU の䜿甚率メトリクス、高解像床の GPU/CPU トレヌスプロット、カスタムアノテヌション 他を可芖化しボトルネックの特定やオヌバヌヘッドの削枛などの最適化を支揎するツヌルです。プレビュヌ期間䞭、オハむオ、バヌゞニア北郚、オレゎン、フランクフルト、アむルランドリヌゞョンにお無料で利甚可胜です。 8/25(金) Amazon Connect launches granular access controls for the agent activity audit report Amazon Connectの゚ヌゞェントアクティビティ監査レポヌトのきめ现かい暩限管理ができるようになりたした。これにより特定の゚ヌゞェントの過去のステヌタス等を付䞎したタグベヌスで制埡可胜になりたす。この機胜は東京を含む぀のリヌゞョンで利甚可胜です。 Amazon QuickSight adds scheduled and programmatic export to Excel format Amazon QuickSightでダッシュボヌドの任意のシヌトから耇数のテヌブルやピボットテヌブルをExcel圢匏でスケゞュヌル生成するこずができるようになりたした。同時にプログラム経由の実行で䜿うSnapshot Export APIもPDF, CSVに加えおExcel圢匏をサポヌトしたした。この機胜を䜿うにはAmazon QuickSight Enterprise ゚ディションずペヌゞ分割レポヌトのサブスクリプションが必芁です。 皆さん AWS Workshops をご存知でしょうか AWSの様々なサヌビスのワヌクショップをこちらから利甚可胜です。日本語察応しおいるものは こちら にもたずたっおいたすので是非ご掻甚ください。最近日本語化されたものだず Redshift Immersion Labs などがございたす。 それでは、たた来週 ゜リュヌションアヌキテクト 根本 裕芏 (twitter – @rr250r_smr )
2021幎には、党囜の16,000以䞊のコヌスで 2,500䞇人 以䞊がゎルフラりンドをプレヌしたした。これらの各ラりンドにおいお、ゎルフカヌトはプレむダヌ䜓隓においお匕き続き倧きな圹割を果たしおいたす。ダヌデヌゞやコヌスGPS、レザヌバックシヌト、そしお最も重芁なゎルフクラブを運ぶための十分な収玍スペヌスたで、ゎルフカヌトはプレむダヌ䜓隓の重芁な芁玠です。䞀方で、ゎルフカヌト垂堎は、プレむダヌ䜓隓をはるかに超えお、 15億ドル芏暡の業界 を誇り、急成長を続けおいたす。 お客様に぀いお : 党囜のゎルファヌにデゞタル䜓隓を提䟛 垂堎最倧手のクラブカヌにずっお、パヌ゜ナラむれヌションず臚堎感あふれるメディア䜓隓は、次の未開拓のむノベヌション領域です。 快適なゎルフカヌトから、最新のサッカヌの詊合を聎いたり、ニュヌスやスポヌツのハむラむトを芋たり、アプロヌチに䜿甚するクラブを情報に基づいお決定したり、ホヌル間の昌食を泚文したりできるずしたらどうでしょうか。 1958幎に蚭立された Club Car は、個人甚、ビゞネス甚、商業甚のさたざたな甚途に察応するゎルフカヌトずナヌティリティビヌクル (スポヌツ甚倚目的車䞡) の倧手メヌカヌです。Club Car は、パヌ゜ナラむズされたメディアや゚ンタヌテむメント機噚を各車䞡に組み蟌むため、デンバヌに本拠を眮くデゞタル屋倖広告DOOHを専門ずするむンタラクティブ・゜フトりェア䌁業、Edison Interactive の支揎を受けたした。 珟圚、Edison Interactive の゜フトりェアは、 Verizon が提䟛する Shark Experience を通じお、450のコヌスロケヌションにある41,000台のゎルフカヌトで利甚されおいたす。各車䞡には、タッチスクリヌンディスプレむ、内蔵スピヌカヌ、Bluetooth接続、Yahoo Finance、スポヌツ䞭継などのプレミアム゚ンタヌテむメント機胜が搭茉されおいたす。 課題統䞀された没入型䜓隓を倧芏暡に実珟 ダヌデヌゞ、ニュヌス、広告のデヌタをすべお配信するために、関連するゎルフコヌスデヌタをすべお 1 ぀のクラりドリヌゞョンに集玄したした。これにより、Edison チヌムは管理ず運甚を簡単化できたしたが、地理的に分散されたコンピュヌティングずデヌタノヌドがないため、堎所によっおは非垞に遅延が倧きく、ナヌザヌ゚クスペリ゚ンスが䜎䞋しおいたした。そこで、Edison Interactive は、タッチスクリヌンの応答時間を短瞮しお党䜓的にシヌムレスなゎルフ䜓隓を実珟できる、最も信頌性の高い接続゜リュヌションずクラりド゜リュヌションを探し始めたした。 さらに、Edison は、今埌数か月でさらに数千台のゎルフカヌトぞの搭茉を芋蟌んでいたため、コストを指数関数的に増加させずにキャパシティの増倧に察応するための決定論的アプロヌチが必芁でした。 たた、Edison Interactive のゎルフカヌトの画面数が急速に拡倧するに぀れお、゚ンドナヌザヌにより効率的にコンテンツを提䟛するための費甚察効果の高い方法も必芁になりたした。 3.5侇 83億 1,643テラバむト 25.3侇 Edison Interactive フリヌト内のゎルフカヌトの合蚈 月間リク゚スト数合蚈 LTE 経由のスルヌプット月間リク゚ストの合蚈 ゎルフカヌト 1 台あたりの月間环積リク゚スト数 このワヌクフロヌを倧芏暡に察応させるため、Edison Interactive は HarperDB クラりドを遞択したした。 AWS Wavelength 䞊に構築される HarperDB の Database-as-a-Service (DaaS) プラットフォヌムにより、Edison Interactive は 19 の Wavelength Zone すべおを掻甚しお倧芏暡に゚ンドナヌザヌに察しおデヌタノヌドを近接配眮し、パフォヌマンスを10倍以䞊向䞊させたした。 「モバむル゚ッゞコンピュヌティングにより、AI 䞻導の分析をナヌザヌに提䟛しお、ナヌザヌのゎルフの詊合を支揎できるようになりたした。デヌタのリアルタむム転送により、最終的にはグリヌングラスゎルフコヌスのデゞタルキャディヌ向けの機胜セットを提䟛できるようになりたす。」— Edison Interactive の CRO 兌共同創蚭者、ニック・スタニッツ・ハヌパヌ アヌキテクチャの抂芁 可甚性が高く、レむテンシヌの䜎い゜リュヌションを提䟛するために、Edison はマルチリヌゞョンアプロヌチを採甚し、カスタム API キャッシュレむダヌを掻甚しお党19の Wavelength Zone をロヌンチしたした。各 Wavelength Zone では、HarperDB の カスタム関数 開発プラットフォヌムを䜿甚しお、レむテンシヌを 5 秒以䞊から 20 ミリ秒以䞋に短瞮する API キャッシュレむダヌを䜜成したした。各ゎルフカヌトのレむテンシヌを最小限に抑えるため、゚ッゞディスカバリヌサヌビスを掻甚しお、各 Wavelength Zone で最も近い AWS キャリア IP アドレスを特定したす。 カスタム関数は HarperDB デヌタレむダヌに盎接アクセスできるナヌザヌ定矩の API ゚ンドポむントです。これにより、スタンドアロン API からデヌタベヌスぞの䜙分なホップが䞍芁になりたす。その結果、レむテンシヌを䜎枛し、耇雑さを軜枛し、費甚察効果の高い氎平スケヌルにも柔軟に察応したアプリケヌションずデヌタの完党なパッケヌゞが完成したす。埓来モデルでは、モノリシックなデヌタストアの垂盎スケヌリングには指数関数的にコスト増加ずなる点が課題でしたが、この新しい仕組みによっお Edison はプラットフォヌムに察しおコヌスやカヌトを効率的に远加できるようになりたした。 プロビゞョニングず監芖 19 の Wavelength Zone すべおに HarperDB ノヌドを効率的にプロビゞョニングするために、 AWS Lambda ず AWS CloudFormation を利甚しお Amazon Elastic Compute Cloud (Amazon EC2) むンスタンス、 Amazon Elastic Block Store (Amazon EBS) ボリュヌム、および Amazon Route53 DNS レコヌドを䜜成したす。CloudFormation は、各 Wavelength Zone の䜜成の䞀貫性を担保しながらデプロむを加速させるために䞍可欠でした。さらにWavelength Zone の数は今埌も増加するこずが芋蟌たれるため、CloudFormation によっお䞀貫性のあるスケヌリングテンプレヌトを提䟛したす。 ノヌドが構築されるず、 Amazon CloudWatch は各ノヌドのオブザヌバビリティずモニタリングを行い、システムの敎合性を確認したす。リ゜ヌス䜿甚率が高いなどの特定のシナリオでは、Amazon CloudWatch は HarperDB ず Edison Interactive のカスタマヌサポヌトチヌムにカスタム通知を送信する AWS Lambda 関数をトリガヌしたす。AWS Lambda を䜿甚しおカスタムアラヌトを柔軟に䜜成できるこずは、HarperDB チヌムが Edison Interactive ず共同でデプロむを管理するうえで非垞に重芁でした。 結論 クラブカヌの党囜各地の車䞡に䜎遅延の倖出䜓隓を提䟛するには、AWS Wavelength ず HarperDB が必芁です。AWS Wavelength を利甚するゎルフカヌトは、䜎遅延のマルチリヌゞョン接続の最先端にありたす。AWS Wavelength はネットワヌク遅延を䜎枛し぀぀、HarperDB はデヌタずアプリケヌションの䞡方の配信を管理したす。AWS Wavelength ず HarperDB の䜵甚は、家庭倖OOHでのデゞタル䜓隓の可胜性を再定矩した掗緎された゜リュヌションです。 高品質で臚堎感あふれるスポヌツ䜓隓に぀いお詳しくは、こちらをご芧ください。 Verizon が提䟛する Shark Experience メディアず゚ンタヌテむメント向けの 5G ず AWS Wavelength を探る HarperDB を䜿い始めたしょう TAGS: telecom , Telecommunications , Wavelength Robert Belson Robert は、AWS ゚ッゞコンピュヌティングを専門ずする AWS ワヌルドワむドテレコムビゞネスナニットのデベロッパヌアドボケむトです。開発者コミュニティや倧䌁業のお客様ず協力しお、自動化、ハむブリッドネットワヌキング、゚ッゞクラりドを䜿甚しおビゞネス䞊の課題を解決するこずに重点を眮いおいたす。 Stephen Goldberg HarperDB の CEO 兌共同創蚭者である Stephen Goldberg は、スタヌトアップ䌁業の CTO å…Œ CEO ずしお働き、Red Hat などの倧芏暡組織で耇数の圹職を歎任し、さたざたな業皮の倚くのフォヌチュン500䌁業でデゞタル倉革プロゞェクトを䞻導しおきたした。デヌタ管理ず゚ッゞコンピュヌティングの分野で定評のあるオピニオンリヌダヌであり、Tech Target などのサむトに掲茉されたり、Forbes や ZDNet などの倚くの蚘事や出版物で匕甚されたりしおいたす。IoT World、SAP Sapphire、Salesforce.com の Dreamforce などで講挔を行っおきたした。Stephen は共同創蚭者の Kyle ず Zach ず共に 2 件の特蚱を保有しおいたす。 原文は こちら です。 翻蚳は゜リュヌションアヌキテクトの鈎朚 浩之が担圓したした。
DoGet App は、友人ず盎接䌚っお時間を共有するためのモバむルアプリケヌションです。 この投皿では、DoGet Appが圌らのナヌスケヌスに察応し、リアルタむムのアクティビティ提案ずマッチメむキングを可胜にする Amazon Neptune に支えられたグラフデヌタモデルをどのように採甚したかに぀いお玹介したす。 この目的のために構築されたデヌタベヌスに察するアプロヌチにより、圌らのサヌバヌレスアヌキテクチャは、AWS AppSync、AWS Amplify、AWS Lambda、 Amazon Simple Storage Service (Amazon S3)を䜿甚し、ロヌンチ時のスケヌルず1日あたり数千の新芏ナヌザヌをサヌビス利甚可胜にするこずを可胜にしたした。AWSのマネヌゞドサヌビス䞊に構築するこずで、DoGet Appは開発開始からロヌンチたでわずか6ヶ月ず、垂堎投入たでの時間を倧幅に短瞮するこずができ、同時にロヌンチ前の開発工数ずロヌンチ埌の運甚オヌバヌヘッドを統合するこずができたした。 䞊ぞスワむプするず、そのアクティビティに興味がないこずを瀺し、䞋ぞスワむプするず、興味があるこずを瀺し、ナヌザヌがい぀参加できるか明日や今週などのフォロヌアップを促したす。そしお、DoGet Appは、同じ時間に同じ䜓隓を共有するこずに興味がある友人をマッチングしたす。 アプリケヌションの蚭蚈ず立ち䞊げ時の課題 DoGet Appは、アプリケヌションを蚭蚈する際にいく぀かの課題に盎面したした。 たず第䞀に、倚くのマッチメむキング・アプリケヌションは、リアルタむム性を考慮するこずなく、デヌタの読み蟌み時間を短瞮するために事前に提案を生成したす。䞀方、DoGet Appは、過去の習慣や奜みだけでなく、他にも倚くの提案を生成したす。コンテンツの芁玠は、ナヌザヌの珟圚地、倩候、友人からの反応を取り入れるため、リアルタむムで提案を生成する必芁がありたした。 この課題に取り組むため、DoGet Appは自瀟のアルゎリズムに合わせたグラフデヌタモデルを持぀Amazon Neptuneを䜿甚したした。Amazon Neptuneのグラフデヌタベヌスには、ナヌザヌのすべおの人間関係、興味、亀流の党䜓的な状態が䞀貫しおリアルタむム性の高い状態で衚珟するこずができ、それに基づいお提案やマッチングがリアルタむムで䜜成されたす。 DoGet Appは、ナヌスケヌスに適したデヌタモデルを遞択するこずに加え、れロからナヌザヌベヌスのアプリケヌションを構築する必芁があったため、予枬䞍可胜な負荷やトラフィックの増加に察応できるスケヌラブルな゜リュヌションが必芁でした。たた、ナヌザヌを増やしながら埗られた新たな掞察に基づいお、グラフデヌタモデルず察応するアルゎリズムを迅速に反埩構築できる運甚モデルも必芁でした。 ゜リュヌションの抂芁 このセクションでは、アプリケヌション・アヌキテクチャのハむレベルな抂芁を説明したす。 次の図は、アプリケヌションのフロント゚ンドずバック゚ンド、およびデヌタ分析機胜を含むアヌキテクチャ図です。 モバむルアプリケヌションのフロント゚ンドは、 AWS Amplify クラむアントラむブラリを䜿甚しお、AWSクラりドのバック゚ンドリ゜ヌスに接続したす。兞型的なリク゚ストの流れは以䞋のようになりたす。 モバむルクラむアントは、静的なフロント゚ンドアセットを Amazon S3 から取埗したす Amazon Cognito ぞの認蚌埌、 AWS AppSync が提䟛するバック゚ンドAPIにアクセスできるようになりたす リク゚ストはその埌、 AWS Lambda 関数によっお凊理されたす Amazon DynamoDB ず Amazon Neptune から情報を照䌚し、APIリク゚ストに察するレスポンスを生成したす これらのリク゚ストに察応する過皋で、分析デヌタはAmazon S3のデヌタレむクに保存されたす そこから Amazon Athena で分析を行いたす グラフデヌタモデル DoGet Appの機胜の䞭栞は、フルマネヌゞド・グラフデヌタベヌス・サヌビスであるAmazon Neptuneに支えられた専甚グラフデヌタベヌスです。Neptuneを利甚するこずで、DoGet Appは、メンテナンス、バックアップ、スケヌリングなどの運甚タスクをオフロヌドするこずで、アプリケヌションに関連する実際のデヌタモデルずアルゎリズム蚭蚈に集䞭するこずができたす。 DoGet Appのナヌスケヌスにどのようなメリットがあるかを理解するために、グラフデヌタモデルを深く掘り䞋げおみたしょう。基本的に、グラフのノヌドはアプリケヌションの゚ンティティを衚し、゚ッゞはそれらの間の関係を衚したす。次の図は、アプリのデヌタモデルにおける䞀般的な゚ンティティを瀺しおいたす。 この䟋では、ナヌザヌ Lisa 、 Sophie 、 Benny を衚す3぀の人物ノヌドを瀺しおいたす。人物ノヌド間の゚ッゞは、それらの友奜関係を衚したす。そしお、3぀のトピック・クラスタ・ノヌド Outdoor 、 Nature Lover 、 Hiking に関連する1぀のアクティビティ・ノヌド Explore unknown paths in the surrounding by bike がありたす。 デヌタモデルには、 ゞオハッシュ の圢で䜍眮情報も組み蟌たれおいたすこのアプロヌチでは正確な䜍眮情報は必芁ありたせん。この情報は、以䞋の図に瀺すように、地域ノヌドによっおグラフデヌタモデルで衚珟されたす。 䜍眮は、その地域に適したアクティビティや倩候、たた珟圚地や過去地 点のナヌザヌず関連しおいたす。゚ッゞの重みは、関係の匷さをモデル化するために䜿甚されたす。DoGet Appはナヌザヌを盎接぀なぐこずを目的ずしおいるため、䜍眮情報は提案やマッチメむキングを生成する際に特に関連性が高く、特に倩候情報を組み蟌むためにも䜿甚できたす。 リアルタむムで提案を生成 ナヌザヌがその日初めおDoGet Appを開くたびに、䞀連のアルゎリズムが3050の掻動提案を生成したす。これらのアルゎリズムはすべお、Neptuneに保存されおいるリアルタむムのグラフ衚珟を盎接たたは間接的に䜿甚しおいたす。バランスの取れた提案のために、さたざたなアルゎリズムを組み合わせお䜿甚したす。䟋えば、新しいアクティビティでナヌザヌの興味を匕くこずを目的ずするアルゎリズムもあれば、最近友達に奜かれたアクティビティを優先しおマッチングの可胜性を高めるアルゎリズムもあれば、グラフ内の他の゚ンティティに察するナヌザヌの最も匷い関係を利甚するアルゎリズムもありたす。 埌者に焊点を圓おたアルゎリズムの䟋を探っおみたしょう。このアルゎリズムは、ナヌザヌから出発しお、ナヌザヌがグラフ内で盎接的あるいは間接的に接続しおいるアクティビティぞのさたざたなパスを探玢したす。接続の匷さずそのタむプ盎接的か間接的か、たずえば友人経由かトピック・クラスタ経由かに応じお、アルゎリズムはこれらのアクティビティに察するメトリクスを蚈算し、次の図に瀺すように、それに基づいお提案を生成したす。 このアルゎリズムは、あらゆる皮類のコネクションを組み蟌んでいたすが、他のアルゎリズムでは、特定の偎面、䟋えば、地域の掻動やその地域で珟圚起こっおいるむベントの提案を提䟛するために、ナヌザヌの珟圚地を重芖しおいたす。 アルゎリズムに関係なく、グラフデヌタ構造はリアルタむムで提案を生成するDoGet Appに最適です。さらに、グラフはマッチメむキングにも適しおいたす。ナヌザヌがアクティビティに興味を瀺すたびに、マッチング候補がグラフの近くに衚瀺され、すでに友達が気に入っおいるすべおのアクティビティが含たれ、効率的にク゚リできたす。 新しいコンテンツを取り入れ、より深い掞察を埗る グラフ内のほずんどの関係ず察応する゚ッゞの重みは、ナヌザヌの嗜奜ず過去の行動に埓っお時間の経過ずずもに確立されたすが、他のものは明瀺的にモデル化されたす。たずえば、ナヌザヌがアクティビティに「いいね」を抌しお興味を瀺すず、そのアクティビティず関連するノヌドずの関係が匷化され、接続゚ッゞの重みが増加したす。特にロヌンチ時には、新しいコンテンツ芁玠の提案を生成するこずは困難であるこずが刀明したした。前のセクションで説明したように、新しいアクティビティを統合するための1぀のアプロヌチは、アルゎリズムの組み合わせです。 DoGet Appが珟圚評䟡しおいるもう1぀のアプロヌチは、 Amazon Neptune ML を䜿甚するこずで、グラフ内の関係だけでなく、䟋えばアクティビティのテキスト蚘述の類䌌性などに基づいお提案を行うこずです。 最埌に、DoGet Appは、アクティビティ提案ずいう点で、提䟛するコンテンツの改善を垞に行っおいたす。そのために、アプリの利甚デヌタはAmazon S3に保存され、Athenaで分析しお掞察を埗るこずができたす。しかし、グラフの゚ッゞの重みは、嗜奜や過去の利甚状況を反映しお動的に適甚されるため、DoGet Appは、最も匷い゚ッゞを調べるこずで、グラフに基づいお分析ク゚リを実行するこずもできたす。䟋えば、特定の地域で最も人気のある3぀のアクティビティを芋぀けるには、以䞋のGremlinク゚リを実行し、接続されたアクティビティの゚ッゞの匷さで順序付けるこずができたす。 %% gremlin g.V('target-region') .outE().has(label,'goodFor') .order().by('strength',desc).limit(3) .inV().unfold().values('name') DoGet Appは、埓来のアナリティクスず䜵甚しお、これらの掞察をサヌビスの改善に掻甚しおいたす。 たずめ Amazon Neptuneによっお、DoGet Appは独自のグラフデヌタベヌス管理システムの管理に䌎う耇雑さを䌎うこずなく、グラフデヌタモデルを䞭心にアプリケヌションを構築するこずができたした。このデヌタモデルず関連アルゎリズムは、DoGet Appが卓越したナヌザヌ・゚クスペリ゚ンスを実珟するのに圹立ちたした。グラフアルゎリズムに基づくサゞェストは、玄25パヌセントの受け入れ率を実珟しおいたす。さらに、圌らのマッチメむキング・アルゎリズムは、アクティブな友達を持぀ナヌザヌずの毎日のマッチングを実珟しおいたす。AWSのマネヌゞドサヌビスを利甚するこずで、DoGet Appはアプリケヌションデザむンやコンテンツ䜜成ずいった差別化に集䞭するこずで、ビゞネス䟡倀を迅速に生み出すこずができたす。 この蚘事を読んで、あなたのナヌスケヌスに合ったグラフデヌタモデルを評䟡しおみたくなりたしたか それなら、 Amazon Neptune の ナヌザヌガむド をチェックし、 GitHubでNeptuneのサンプル をハンズオンしおみたしょう。 著者に぀いお Michael Meidlinger は、AWSのシニア・゜リュヌション・アヌキテクトで、芏制産業の゚ンタヌプラむズ顧客を担圓しおいたす。信号凊理、統蚈、ネットワヌキング、組み蟌みシステム開発、Linuxシステム管理のバックグラりンドを持ち、電気通信工孊の博士号を取埗したした。AWS入瀟以前は、ミッションクリティカルなコンピュヌトシステムず安党なクラりドコンピュヌティングコンセプトに埓事しおいたす。 Nils MÃŒller は、オヌストリアで生たれで、りィヌナヌ・ノむシュタットで経営工孊を孊びたした。圚孊䞭の2000幎に1000PS Internet GmbHを蚭立したした。1000PSずいうブランドで、同瀟はモヌタヌサむクルをテヌマずする䞖界有数のコンテンツプロバむダヌずなりたした。COVID-19の流行時に、DoGetアプリのアむデアを思い぀きたした。 本蚘事は 2023/06/03に投皿された Generate suggestions for leisure activities in real time with Amazon Neptune を翻蚳した蚘事です。翻蚳は゜リュヌションアヌキテクトの朚村 達也が行いたした。
このブログは Manish Singhシニアテクニカルアカりントマネヌゞャヌによっお執筆された内容を日本語化したものです。原文は こちら を参照しおください。 急速に倉化するデヌタ環境䟋倧芏暡なデヌタが頻繁に䜜成、共有、耇補される状況により、デヌタストレヌゞの需芁が高たっおいたす。倚くのお客様は、費甚察効果の高いデヌタの保存方法や、費甚をかけずにデヌタから必芁ずなるすべおの情報を入手できる最適な方法を探しおいたす。 クラりドストレヌゞは、「埓量課金」モデルによる柔軟なオプションを提䟛しおいたす。 Amazon Simple Storage ServiceAmazon S3 は、業界をリヌドするレベルのスケヌラビリティ、可甚性、セキュリティ、そしおパフォヌマンスを提䟛するオブゞェクトストレヌゞサヌビスです。Amazon S3 に移行するこずで、俊敏性を向䞊し、過剰なプロビゞョニングが䞍芁になるこずでコストが最適化され、無制限のスケヌルを享受するこずができたす。 あらゆる芏暡のお客様が、さたざたなワヌクロヌドやナヌスケヌスで Amazon S3 を掻甚しおいたす。そしお倚くのお客様は、ワヌクロヌドに適した ストレヌゞクラス を特定し、 S3 ラむフサむクル を蚭定しおストレヌゞコストを削枛するこずを心地よく思いたす。䞀方でお客様は、アプリケヌションパフォヌマンスに圱響を䞎えたり運甚䞊のオヌバヌヘッドを発生させたりするこずなく、Amazon S3 のコストを詳现に調査し、料金を最適化する新しい手段を知りたいず考えおいたす。 このブログでは、適切なストレヌゞクラスを䜿甚するだけではなく、Amazon S3 の料金を最適化する方法に぀いおも玹介したす。API リク゚ストオペレヌションに関連する Amazon S3 の料金 を可芖化する方法、API リク゚ストが倚く発生しおいるバケットを特定する方法、S3 バケットぞの API コヌルを詳しく調査する方法、API リク゚スト費甚を最適化する䞀般的な手順に぀いお詳しく説明したす。コストを最適化する際の倚くに共通するこずですが、今回玹介する情報は特に Amazon S3 の料金モデルを理解するのに圹立぀はずです。そしお、料金の監芖ず分析に利甚可胜なさたざたなツヌルを䜿甚したり、詳现を確認するこずができるようになりたす。 Amazon S3 の料金䜓系 Amazon S3 に関連する料金 は以䞋の 6 ぀に分類できたす。 ストレヌゞクラスの GB 単䟡に基づいお課金される、保存されたデヌタ容量に察するストレヌゞ料金。 API リク゚スト料金ずも呌ばれるリク゚ストずデヌタ取埗料金。䟋えば、GET、PUT、LIST ずいった操䜜で、行われる API の呌び出し回数に基づきたす。 むンタヌネットや他リヌゞョンにデヌタを転送する際のデヌタ転送料金。 アカりントのバケットに察しお有効化する、ストレヌゞ管理ず分析機胜S3 むンベントリ、S3 ストレヌゞクラス分析、S3 Storage Lens、S3 オブゞェクトタグの料金。 S3 クロスリヌゞョンレプリケヌション、同䞀リヌゞョンのレプリケヌション、および S3 バッチオペレヌションに関連する料金。 S3 Object Lambda の料金。 ストレヌゞ料金やデヌタ転送料金を別にするず、GET、PUT、LIST、HEAD やラむフサむクル移行などの API リク゚ストは Amazon S3 における料金の特に倧きな郚分を占めおいたす。珟圚の Amazon S3 コスト最適化手法のほずんどは、適切なストレヌゞクラスの特定やデヌタ転送の最適化に重きを眮いおおり、API リク゚スト料金に぀いおは考慮に挏れがちです。 リク゚ストずデヌタ取埗API リク゚ストの料金は、以䞋の 2 ぀の芁玠に基づきたす。 S3 バケットやオブゞェクトに察しお行われる、GET、PUT、ラむフサむクル移行などの API リク゚ストの皮類。1000 リク゚スト毎の料金に぀いおは、 Amazon S3 料金ペヌゞ の「リク゚ストずデヌタ取り出し」セクションを参照しおください。 S3 バケットに察しお行われた API リク゚スト数。API リク゚ストの料金はリク゚スト数に基づき、デヌタのサむズやリク゚ストがコン゜ヌルや CLI、SDK のいずれを介しお実行されたかは関係ありたせん。䟋えば、コン゜ヌルからの GET リク゚ストず CLI からの GET リク゚ストの料金は同じになりたす。同様に、1 KB のファむルず 1 MB のファむルの GET リク゚スト料金は同じになりたす。 API リク゚ストに関連する料金は、 AWS Cost Explorer や AWS コストず䜿甚状況レポヌト AWS CURにおいお、PutObject や ListObject などの名前で確認するこずができたす。 AWS Cost Explorer を䜿甚し Amazon S3 の料金を可芖化する AWS Cost Explorer は Amazon S3 の API リク゚スト料金を可芖化し、料金に倧きく圱響しおいる API リク゚ストの絞り蟌みに圹立ちたす。 AWS Cost Management にサむンむンし、 Cost Explorer に移動したす。 フィルタヌセクション の サヌビス から、 S3Simple Storage Service を遞択したす。 適甚 をクリックしたす。 フィルタヌセクション の 䜿甚タむプグルヌプ から、 S3: API Requests – Glacier、S3: API Requests – Standard、S3: API Requests – Standard Infrequent Access、 S3: Data Retrieval – Standard Infrequent Access  ãªã©ã®çŠ¶æ³ã«é©ã—ãŸãƒ•ã‚£ãƒ«ã‚¿ãƒŒã‚’éžæŠžã—ãŸã™ã€‚ 適甚 をクリックしたす。 API リク゚ストの皮類を分析するために、 グルヌプ化の条件セクション にお API オペレヌション を遞択したす。 分析したい 日付範囲 を遞択し、 適甚 をクリックしたす。 これにより、さたざたな API リク゚ストのコストず利甚状況を瀺すグラフが衚瀺されたす。 CSV 圢匏でダりンロヌド を遞択するこずで、API リク゚スト数ず関連料金をより自由に分析できたす。 API リク゚スト料金が発生しおいるバケットを特定する Amazon S3 の料金を倧きく占める API を特定したら、 コストず䜿甚状況レポヌト のデヌタを䜿甚するこずで、バケットレベルの詳现を取埗できたす。以䞋は Amazon Athena を䜿甚しおコストず䜿甚状況のデヌタを分析し、API リク゚ストが行われたバケットを特定する方法です。 コストず䜿甚状況レポヌトの䜜成 に埓っお、コストず䜿甚状況レポヌトを有効化したす。この時、バケットの詳现を取埗する必芁があるので、 リ゜ヌス ID を含める を遞択したす。 Amazon Athena を䜿甚したコストず䜿甚状況レポヌトのク゚リ に埓っお、コストず䜿甚状況レポヌトを Amazon Athena ず統合したす。 コストず䜿甚状況レポヌトを有効化しお Amazon Athena ず統合できたら、次のク゚リを実行し、バケット情報ず関連する API リク゚ストずその料金の詳现を取埗したす。 SELECT "line_item_operation" as API , "line_item_resource_id" as Bucket , SUM ( "line_item_blended_cost" ) as Cost FROM << CUR_TABLE_NAME >> WHERE "product_product_name" = 'Amazon Simple Storage Service' AND "line_item_usage_type" not like '%Byte%' AND "line_item_resource_id" != '' AND line_item_usage_start_date >= CAST ( 'YYYY-MM-DD 00:00:00' AS TIMESTAMP ) AND line_item_usage_start_date < CAST ( 'YYYY-MM-DD 00:00:00' AS TIMESTAMP ) GROUP BY "line_item_operation" , "line_item_resource_id" ORDER BY SUM ( "line_item_blended_cost" ) DESC SQL CUR_TABLE_NAME ず日付の範囲 YYYY-MM-DD 00:00:00 を倉曎し、さたざたなバケットごずの API 料金を取埗したす。この情報は、バケットずそれに関連する API リク゚スト料金の特定に圹立ちたす。 結果は次の衚のようになりたす。 API Bucket Cost S3-GlacierTransition Bucket 1 $$$ ListBucket Bucket 2 $$$ PutObject Bucket 3 $$$ バケットに察しお行われた API リク゚ストの分析 Amazon S3 サヌバヌアクセスログ は、バケットに行われたリク゚ストの詳现を蚘録したす。サヌバヌアクセスログを有効化し、 Amazon Athena を䜿甚しお API リク゚ストを分析したす。 サヌバヌアクセスログを有効化し、Amazon Athena ず統合したす。詳现は Amazon Athena を䜿甚しお Amazon S3 サヌバヌアクセスログを分析する を参照しおください。 次のク゚リを実行しお、API リク゚スト数の倚い IP アドレスを特定したす。 SELECT remoteip , requester , useragent , COUNT ( * ) AS remote_count FROM << access_log_bucket >> WHERE Operation = 'api_call_to_review' AND parse_datetime ( RequestDateTime , 'dd/MMM/yyyy:HH:mm:ss Z' ) BETWEEN parse_datetime ( '2021-08-08:00:00:00' , 'yyyy-MM-dd:HH:mm:ss' ) AND parse_datetime ( '2021-10-08:00:00:00' , 'yyyy-MM-dd:HH:mm:ss' ) GROUP BY remoteip , requester , useragent order by remote_count desc SQL ステップ 1 にお䜜成したテヌブルを access_log_bucket  ã«ãŠæŒ‡å®šã—、 REST.GET.BUCKET 、 REST.GET.LIFECYCLE 、 REST.GET.OBJECT 、 REST.PUT.OBJECT 、 REST.HEAD.OBJECT 等のトラックしたい芁玠を api_call_to_review にお指定したす。たた分析を行いたい時間の範囲も適宜指定しおください。 API リク゚ストをさらに詳しく分析する際に䜿甚できる他の列名に぀いお理解したい堎合は、 サヌバヌアクセスログのフォヌマット に関するドキュメントを参照しおください。 API 料金を最適化するさたざたな方法 コスト最適化を行いたい API コヌルずバケットを特定したら、以䞋の䞀般的なコスト最適化手法を参照しおください。 GetObject ず PutObject GetObject ず PutObject リク゚ストは、それぞれ S3 バケットからオブゞェクトを取埗、S3 バケットにオブゞェクトを远加するために䜿甚され、これらは頻繁に䜿甚されたす。GET および PUT API のコストは、远加および取埗されるオブゞェクト数に䟝存し、サむズは圱響しないこずを螏たえお戊略を怜蚎したす。 小さなオブゞェクトが倚数存圚する堎合、GET および PUT API のコストが高くなる可胜性がありたす。アプリケヌションのアヌキテクチャを芋盎し、耇数の小さなオブゞェクトから、1 ぀の倧きなオブゞェクトに眮き換えられないか怜蚎しおください。䟋えば、1 分ごずにファむルを䜜成する代わりに、過去 15 分間、もしくは 30 分間に加えられた倉曎デヌタを䜿甚するなど、より長い時間に基づいおファむルを䜜成したしょう。 .tar や .zip ファむルを䜜成しお、オブゞェクトを 1 ぀のファむルにたずめたす。この時、たずめられたファむル内における個々のオブゞェクトの識別や、アクセスのしやすさを考慮する必芁がありたす。 S3 パブリックアクセスブロック を䜿甚するこずで、バケットレベルもしくはアカりントレベルでオブゞェクトぞのパブリックアクセスをブロックし、䞍正アクセスや予期しない API 料金の発生を防ぐこずができたす。 静的オブゞェクトが倚数を占める堎合、 Amazon CloudFront を䜿甚した GET リク゚スト数の削枛を怜蚎しおください。この堎合、費甚察効果の分析を別途行い、Amazon CloudFront を導入するこずでコストが削枛され期埅に応えるこずができるか刀断する必芁がありたす。 コストず䜿甚状況レポヌトを䜿甚しお、S3 バケットのストレヌゞ料金ず API リク゚スト料金GET、PUT、LISTを比范したす。S3 バケットの料金のうち API リク゚ストが倚くを占める堎合、最適なストレヌゞクラスが遞択できおいるのか、もしくは Amazon DynamoDB ずいった他の遞択肢がワヌクロヌドに適しおいるのか怜蚎する必芁がありたす。 ListBucket ListBucket は特定のバケットにおけるオブゞェクトの䞀芧を衚瀺するために䜿甚されたす。特定の S3 バケットにおいお ListBucket の料金が高い堎合は、アプリケヌションの蚭蚈を再確認し、この操䜜を頻繁に利甚する理由を確認しおください。たたその理由を基に、HEAD リク゚ストで代替できないか怜蚎しおください。 S3 ラむフサむクル移行 S3 ラむフサむクル移行ルヌルは、オブゞェクトを別のストレヌゞクラスぞ移行する際や期限切れにする際に䜿甚されたす。ラむフサむクルの移行ルヌルの内容に応じお、次の 2 皮類の料金が発生したす。 移行料金あるストレヌゞクラスから別のストレヌゞクラスに移行されたオブゞェクト数に基づきたす。 早期削陀料金䞀郚ストレヌゞクラスに定められた最小ストレヌゞ期間を満たさない堎合、 削陀料金 が発生したす。 S3 ラむフサむクル移行ルヌルをバケット党䜓に適甚するだけではなく、プレフィックスやオブゞェクトタグ、オブゞェクトサむズに基づいたフィルタリングを蚭定するこずで、移行料金を削枛するこずができたす。S3 ラむフサむクル移行に関連するコストを管理するには、以䞋の 4 ぀のオプションを参考にしおください。 移行するオブゞェクト数を枛らす ラむフサむクル移行ルヌルを適甚するためにアクセスパタヌンを分析し、適切な S3 バケットずプレフィックスの範囲、および適切なストレヌゞクラスを特定したす。ラむフサむクル移行ルヌルを蚭定する前に、 S3 ストレヌゞクラス分析 や S3 Storage Lens などのツヌルを䜿甚しおアクセスパタヌンを監芖し、オブゞェクトサむズや総オブゞェクト数などのさたざたなメトリクスを確認したす。 ラむフサむクル移行する前に、小さなオブゞェクトを倧きなファむル.tar、.zipにたずめおください。移行コストは移行されるオブゞェクト数に基づくため、小さなオブゞェクトを倧きなファむルにたずめるこずで料金を削枛できたす。耇数のオブゞェクトをたずめる際は、怜玢性の考慮が必芁になりたす。 オブゞェクトタグはオブゞェクトに関連づけられるキヌず倀のペアです。プレフィックスや 1 ぀以䞊のオブゞェクトタグ、たたはその䞡方を䜿っおラむフサむクル移行ルヌルにフィルタヌを定矩し、移行たたは期限切れになるオブゞェクト数を制限したす。詳现に぀いおは、 S3 ラむフサむクル移行ルヌルの蚭定 に関するブログも参照ください。䟋えば、key が transition、value が glacier のオブゞェクトのみを、 Amazon S3 Glacier ストレヌゞクラス のいずれかに移行するずいったこずができたす。以䞋は詳现な手順ずなりたす。 Amazon S3 コン゜ヌルにアクセスし、蚭定したいバケットの 管理タブ に移動したす。 ラむフサむクルルヌルを䜜成する を遞択したす。 フィルタヌを指定するため、 ルヌルスコヌプを遞択 にお 1 ぀以䞊のフィルタヌを䜿甚しおこのルヌルのスコヌプを制限する を遞択したす。 フィルタヌタむプのセクションにお プレフィックス を指定し、ルヌルの適甚範囲を絞り蟌みたす。 同じくフィルタヌタむプのセクションにお、 オブゞェクトタグ の䞋にある タグの远加 を遞択したす。各タグはキヌず倀任意の䞡方に䞀臎する必芁がありたす。たた、指定されたすべおのタグを持぀オブゞェクトに察しおのみ、ルヌルが適甚されたす。もしオブゞェクトに他のタグが存圚しおいおも、ルヌルは適甚されたす。 ラむフサむクル移行ルヌルの目的でタグを远加する前に、費甚察効果の分析を行っお、オブゞェクトタグを含めた費甚削枛効果を芋積もっおください。オブゞェクトタグに関連する費甚の詳现に぀いおは、 Amazon S3 の料金 を参照しおください。 ラむフサむクル移行ルヌルを適甚する前に、最小オブゞェクトサむズず請求芁件を理解しおください。S3 Standard-Infrequent AccessS3 Standard-IAおよび S3 One Zone-IA ストレヌゞクラスの課金察象最小オブゞェクトサむズは 128 KB です。぀たり、128 KB 未満のオブゞェクトを S3 Standard-IA や S3 One Zone-IA に移行しおも、期埅通りのコスト削枛は果たせたせん。ストレヌゞクラスごずに定められた最小オブゞェクトサむズを確認するには S3 ストレヌゞクラスのパフォヌマンスチャヌト を参照しおください。 ラむフサむクル移行ルヌルは、オブゞェクトサむズを基にしおフィルタヌを定矩できたす。コストを節玄するために小さいファむルを移行したくない堎合は、最小、最倧オブゞェクトサむズに基づいたフィルタヌが掻甚できたす。 オブゞェクトを移行、たたは期限切れにする S3 ラむフサむクルルヌルを䜜成する前に、アクセスパタヌンに加えお、デヌタ保持芁件ず各ストレヌゞクラスの最小ストレヌゞ期間を確認しおください。䟋えば、S3 Standard-IA や S3 One Zone-IA には 30 日間の最小ストレヌゞ期間が、S3 Glacier Instant Retrieval や S3 Glacier Flexible Retrieval には 90 日間の最小ストレヌゞ期間が蚭けられ課金されたす。ストレヌゞクラスごずの最小ストレヌゞ期間を確認するには S3 ストレヌゞクラスのパフォヌマンスチャヌト を参照しおください。最小ストレヌゞ期間を経過せずにオブゞェクトの移行や期限切れを行った堎合、最小ストレヌゞ期間に満たない日数分が日割りで DeleteObject 料金ずしお発生したす。 S3 Storage Lens を䜿甚するこずで、オブゞェクトストレヌゞの䜿甚状況ずアクティビティの傟向を可芖化できたす。S3 Storage Lens は、オブゞェクト数、平均オブゞェクトサむズ、PUT リク゚スト、GET リク゚スト、LIST リク゚ストなど 30 を超えるメトリクスを提䟛しおおり、ラむフサむクル移行ルヌルの埮調敎や API リク゚スト料金の最適化に圹立ちたす。以䞋は S3 Storage Lens を掻甚する手順の䞀䟋です。 S3 Storage Lens に関するブログ を参考に、ダッシュボヌドを䜜成したす。 ダッシュボヌドを開きタブの䞭から バケット を遞択したす。特定のプレフィックスを分析したい堎合は、 プレフィックス を遞択しおください。 総ストレヌゞ量 、 オブゞェクト数 、 オブゞェクトサむズの平均 等のメトリクスを確認し、移行コストを芋積もっおラむフサむクル移行ルヌルを決定したす。 メトリクスのカテゎリからアクティビティを遞択し、 GET リク゚スト 、 PUT リク゚スト 、 HEAD リク゚スト 、 LIST リク゚スト などのメトリクスを確認しお、API リク゚ストを分析したす。 クリヌンアップ 継続的に課金されないようにするには、このブログを基に䜜成したリ゜ヌスを削陀しおください。 Amazon S3 の サヌバヌアクセスログ を停止しおください。 S3 ストレヌゞクラス分析や S3 Storage Lens などの Amazon S3 の管理および分析ツヌルを停止しおください。 たずめ このブログでは、様々な Amazon S3 の API リク゚ストに関連する料金の可芖化ず分析に぀いお説明したした。そしお、AWS Cost Explorer やコストず䜿甚状況レポヌト、サヌバヌアクセスログをそれぞれ䜿甚しお、S3 バケットに関連する API リク゚スト料金を特定する方法を瀺し、料金を最適化するための耇数のアプロヌチを確認したした。 Amazon S3 を䜿甚するお客様は、適切なストレヌゞクラスの掻甚やデヌタ削陀を行うこずで、長幎コストを最適化しおきたした。Amazon S3 ぞのリク゚ストや取り出しAPI リク゚ストがどのように課金されるのか、たた API リク゚スト料金を削枛するための䞀般的なアプロヌチを理解するこずで、さらなるコストの最適化が達成できたす。API リク゚ストの料金䜓系を理解するこずで、管理者や開発チヌムは正しいアヌキテクチャを蚭蚈でき、予想倖の料金を回避するこずができたす。 Amazon S3 のコストを削枛するための、リク゚スト料金ずデヌタ取埗料金の最適化に関するこのブログをお読みいただきありがずうございたした。 Manish Singh Manish Singh は Amazon Web Service のむンド、バンガロヌル拠点に所属する、シニアテクニカルアカりントマネヌゞャヌです。Manish は 19 幎以䞊の業界経隓を持ち、クラりドアヌキテクチャず IT システム蚭蚈に関する専門知識を備えおいたす。圌はクラりド財務管理゜リュヌションに匷い関心を持っおおり、AWS ゚ンタヌプラむズサポヌトのお客様に向けおコスト最適化の提案を行っおいたす。
今日のデゞタルランドスケヌプでは、最適なアプリケヌションパフォヌマンスを確保するこずが非垞に重芁であり、Amazon CloudWatch Synthetics はりェブアプリケヌションず API のプロアクティブなテストを可胜にしたす。このブログでは、自己眲名蚌明曞を利甚しお監芖機胜を匷化したい堎合、゚ンドポむントの自己眲名蚌明曞をサポヌトするように Canary の゜ヌスコヌドを倉曎する方法を順を远っお説明したす。最倧の利点は、この方法では認蚌プロセスを倉曎する必芁がないこずです。 Amazon CloudWatch Synthetics Canary をハヌトビヌトブルヌプリントずずもに䜿甚しお、自己眲名蚌明曞に䟝存するアプリケヌションをモニタリングする方法を説明したす。自己眲名蚌明曞ずは、(公匏機関に) 承認されおいない信頌できる第䞉者認蚌局CAによっお発行および眲名された蚌明曞です。 さらに、API を監芖する他の方法に぀いお説明しおいる以前のブログを確認するこずをお勧めしたす。 Multi-step API monitoring using Amazon CloudWatch Synthetics ずいうタむトルのブログでは、Amazon CloudWatch Synthetics スクリプトを䜜成しお、マルチステップ API 怜蚌を実行し、API の機胜性ず安定性を確保するための詳现な手順を玹介しおいたす。さらに、2 ぀目のブログ How to validate authentication using Amazon CloudWatch Synthetics – Part 2 では、Synthetic ブルヌプリントを曎新しお、サヌバヌずクラむアントの䞡方が盞互認蚌 (mTLS) のためにデゞタル蚌明曞の提瀺する必芁のあるアプリケヌションをモニタリングするための方法を順を远っお説明しおいたす。これらのリ゜ヌスは理解を補完し、包括的な監芖戊略を構築するのに圹立ちたす。 ゜リュヌション抂芁 この゜リュヌションでは、既存のブルヌプリントに基づいおハヌトビヌトモニタヌ Canary を䜜成し、提䟛されたブルヌプリントに自己眲名蚌明曞を挿入する手順を瀺したす。これにより、ブルヌプリントが提䟛する機胜を拡匵できたす。 Canary の䜜成 CloudWatch Synthetics では、すぐに䜿甚できるブルヌプリントスクリプトを利甚できたす。ただし、蚌明曞で認蚌するには、コン゜ヌルの゚ディタヌを䜿甚しおコヌドスニペットを远加する必芁がありたす。 CloudWatch Synthetics がどのように認蚌を凊理するかをシミュレヌトするために、 self-signed.badssl.com りェブサむトを䜿甚したす。独自の HTTP ゚ンドポむントを䜿甚しお同じ出力をシミュレヌトするこずもできたす。蚌明曞がただ远加されおいないため、最初の呌び出しでは倱敗応答が返されたす。ただし、この゚ラヌは次の手順で修正されたす。 ハヌトビヌトブルヌプリントスクリプトに基づいお Canary を䜜成する手順 CloudWatch コン゜ヌル の 「Synthetics」メニュヌを開きたす。 Canary を䜜成 を遞択したす。 蚭蚈図のリストから ハヌトビヌトのモニタリング  ã‚’遞択したす。 名前 に Canary の名前を入力したす。たずえば、「https-selfsigned-test」ず入力したす。 アプリケヌション たたは ゚ンドポむント URL に 「 https://self-signed.badssl.com/ 」 を入力したす。 その他の蚭定はすべおデフォルトのたたにしおください。必芁な暩限を持぀ IAM ロヌルが自動的に䜜成され、さらに「cw-syn-results-accountID-region」 ずいう名前のバケットが䜜成されたす。バケットがアカりントにすでに存圚する堎合は、「cw-syn-results」 ずいう名前を怜玢するか、独自の名前を䜜成できたす。詳现に぀いおは、 Canary を䜜成する を参照しおください。 「Canary を䜜成」を遞択したす。Canary が䜜成されるず、図 1 に瀺すように、Canary のリストに衚瀺されたす。Canary のハヌトビヌトモニタヌブルヌプリントの䜿甚方法に぀いおは、Amazon CloudWatch ナヌザヌガむド の ハヌトビヌトのモニタヌリング を参照しおください。 図 1. CloudWatch コン゜ヌルの Canary ペヌゞ レポヌトの確認 Canary レポヌトには、すべおのステップず結果が衚瀺されたす。この堎合、Canary は図 2 に瀺すように ERR_CERT_AUTHORITY_INVALID ゚ラヌを返したした。゚ンドポむントは信頌できる CA によっお発行されおいない蚌明曞を䜿甚しおおり、Canary は信頌された認蚌局に察しお自己眲名蚌明曞の信頌性を怜蚌できないため、この゚ラヌは予想されるものです。 図 2. HTTP-steps-test レポヌトが ERR_CERT_AUTHORITY_INVALID ずいう゚ラヌで倱敗 蚌明曞の詳现をダりンロヌド 自己眲名蚌明曞に関する怜蚌の問題に察凊するために、badsslのWebサむトから必芁な蚌明曞をダりンロヌドできたす。このダりンロヌドされた蚌明曞は信頌を確立する目的で䜿甚され、 self-signed.badssl.com ゚ンドポむントに察しお行われた API リク゚ストを認蚌するために Canary によっお䜿甚されたす。以䞋のステップは、AWS CloudShell 䞊で CLI コマンドを䜿甚しお、これを実珟する方法を瀺しおいたすが、これらの蚌明曞はブラりザを䜿甚しお badssl りェブサむトから手動でダりンロヌドするこずもできたす。 Note: 発行元が信頌できるこずが確実でない限り、自己眲名蚌明曞はお勧めしたせん。 badssl.com からパブリック蚌明曞をダりンロヌド この手順では、AWS リ゜ヌスの安党な管理、探玢、操䜜を容易にするブラりザベヌスのシェルである AWS CloudShell を䜿甚したす。以䞋のスクリプトを実行するには CloudShell をお勧めしたす。ただし、同じ出力には独自のコマンドラむンを䜿甚するこずもできたす。 self-signed.badssl.com から.pem ファむルをダりンロヌドするには、以䞋の手順に埓いたす。 CloudShell コン゜ヌルを開きたす。 環境が䜜成されるのを埅ちたす。 以䞋のスクリプトをコピヌしお、AWS CloudShell によっお䜜成された bash コン゜ヌルに貌り付けたす。 # Install openssl if you don't have that installed # Ubuntu users -> sudo apt-get install openssl sudo yum install openssl -y # Download the self-signed.badssl.com certificate openssl s_client -showcerts -connect self-signed.badssl.com:443 -servername self-signed.badssl.com </dev/null | sed -n -e '/-.BEGIN/,/-.END/ p' | awk '{printf "%s%s", (NR>1 ? "\\n" : ""), $0} END {print ""}' > self-signed.pem # Get the certificate content to be pasted on the canary code cat self-signed.pem 「貌り付け」を遞択したす。 図 3. 耇数行のテキストを貌り付けるための CloudShell ポップアップ 䞊蚘のスクリプトは蚌明曞を含むテキストを生成したす。次のステップで䜿甚するため、 —–BEGIN CERTIFICATE—– で始たり —–END CERTIFICATE—– で終わる内容をコピヌしたす。 Canary スクリプトを線集しお蚌明曞を远加 蚌明曞をむンポヌトするには、䜜成した Canary にアクセスし、先ほどコピヌした蚌明曞の出力を含む倉数を远加する必芁がありたす。 コヌドを線集するには、次の手順に埓いたす。 CloudWatch コン゜ヌル の Synthetics メニュヌを開きたす。 䜜成した Canary を遞択しおください。たずえば、 https-selfsigned-test です。 アクション  ã‚’遞択し、 線集  ã‚’遞択したす。 スクリプト゚ディタ のボックスを䜿甚しお、スクリプトの䞊郚で https パッケヌゞをむンポヌトしたす。このパッケヌゞにより、スクリプトは蚌明曞に利甚するようにプロトコルの蚭定を調敎できたす。 const https = require('https'); ‘page.goto()’ 関数を䜿甚しお゚ンドポむントにアクセスする前に、以䞋のコヌドブロックを挿入しおください。ブルヌプリントの堎合、これは 非同期関数 loadBlueprint の ‘const sanitizedUrl’ 行ず ‘const response = await page.goto...’ 行の間にありたす。 await page.setRequestInterception(true); const cert = '<YOUR_CERTIFICATE_HERE>' log.info("Injecting request with self-signed certificate."); page.on("request", (interceptedRequest) => { const options = { method: interceptedRequest.method(), headers: interceptedRequest.headers(), body: interceptedRequest.postData(), ca: cert, cert: cert, }; const request = https .request(interceptedRequest.url(), options, function (response) { response.on("data", function (data) { interceptedRequest.respond({ status: response.statusCode, contentType: response.headers["content-type"], headers: response.headers, body: data, }); }); }) .on("error", function (err) { console.error("Unable to call %s", options.uri, err); return interceptedRequest.abort("connectionrefused"); }); request.end(); }); Note: このコヌドは、Canary から゚ンドポむントぞのリク゚ストをむンタヌセプトし、アップロヌドした蚌明曞を信頌できる認蚌局ずしお含めるようにリク゚ストオプションを倉曎したす。 䟋えば、コヌドの党文は以䞋のようになりたす。 const { URL } = require('url'); const synthetics = require('Synthetics'); const log = require('SyntheticsLogger'); const syntheticsConfiguration = synthetics.getConfiguration(); const syntheticsLogHelper = require('SyntheticsLogHelper'); const https = require('https'); const loadBlueprint = async function () { const urls = ['https://self-signed.badssl.com/']; // Set screenshot option const takeScreenshot = true; /* Disabling default step screen shots taken during Synthetics.executeStep() calls * Step will be used to publish metrics on time taken to load dom content but * Screenshots will be taken outside the executeStep to allow for page to completely load with domcontentloaded * You can change it to load, networkidle0, networkidle2 depending on what works best for you. */ syntheticsConfiguration.disableStepScreenshots(); syntheticsConfiguration.setConfig({ continueOnStepFailure: true, includeRequestHeaders: true, // Enable if headers should be displayed in HAR includeResponseHeaders: true, // Enable if headers should be displayed in HAR restrictedHeaders: [], // Value of these headers will be redacted from logs and reports restrictedUrlParameters: [] // Values of these url parameters will be redacted from logs and reports }); let page = await synthetics.getPage(); await certRequestIntercept(page) for (const url of urls) { await loadUrl(page, url, takeScreenshot); } }; const certRequestIntercept = async function(page) { await page.setRequestInterception(true); const cert = '<YOUR_CERTIFICATE_HERE>' log.info("Injecting request with self-signed certificate."); page.on("request", (interceptedRequest) => { const options = { method: interceptedRequest.method(), headers: interceptedRequest.headers(), body: interceptedRequest.postData(), ca: cert, cert: cert, }; const request = https.request(interceptedRequest.url(), options, function (response) { response.on("data", function (data) { interceptedRequest.respond({ status: response.statusCode, contentType: response.headers["content-type"], headers: response.headers, body: data, }); }); }).on("error", function (err) { console.error("Unable to call %s", options.uri, err); return interceptedRequest.abort("connectionrefused"); }); request.end(); }); } // Reset the page in-between const resetPage = async function(page) { try { await page.goto('about:blank',{waitUntil: ['load', 'networkidle0'], timeout: 30000} ); } catch (e) { synthetics.addExecutionError('Unable to open a blank page. ', e); } } const loadUrl = async function (page, url, takeScreenshot) { let stepName = null; let domcontentloaded = false; try { stepName = new URL(url).hostname; } catch (e) { const errorString = `Error parsing url: ${url}. ${e}`; log.error(errorString); /* If we fail to parse the URL, don't emit a metric with a stepName based on it. It may not be a legal CloudWatch metric dimension name and we may not have an alarms setup on the malformed URL stepName. Instead, fail this step which will show up in the logs and will fail the overall canary and alarm on the overall canary success rate. */ throw e; } await synthetics.executeStep(stepName, async function () { const sanitizedUrl = syntheticsLogHelper.getSanitizedUrl(url); /* You can customize the wait condition here. For instance, using 'networkidle2' or 'networkidle0' to load page completely. networkidle0: Navigation is successful when the page has had no network requests for half a second. This might never happen if page is constantly loading multiple resources. networkidle2: Navigation is successful when the page has no more then 2 network requests for half a second. domcontentloaded: It's fired as soon as the page DOM has been loaded, without waiting for resources to finish loading. If needed add explicit wait with await new Promise(r => setTimeout(r, milliseconds)) */ const response = await page.goto(url, { waitUntil: ['domcontentloaded'], timeout: 30000}); if (response) { domcontentloaded = true; const status = response.status(); const statusText = response.statusText(); logResponseString = `Response from url: ${sanitizedUrl} Status: ${status} Status Text: ${statusText}`; //If the response status code is not a 2xx success code if (response.status() < 200 || response.status() > 299) { throw new Error(`Failed to load url: ${sanitizedUrl} ${response.status()} ${response.statusText()}`); } } else { const logNoResponseString = `No response returned for url: ${sanitizedUrl}`; log.error(logNoResponseString); throw new Error(logNoResponseString); } }); // Wait for 15 seconds to let page load fully before taking screenshot. if (domcontentloaded && takeScreenshot) { await new Promise(r => setTimeout(r, 15000)); await synthetics.takeScreenshot(stepName, 'loaded'); await resetPage(page); } }; const urls = []; exports.handler = async () => { return await loadBlueprint(); }; 先ほど貌り付けたコヌドの <YOUR_CERTIFICATE_HERE> を眮き換えお、蚌明曞の内容を远加したす。 const cert = '<YOUR_CERTIFICATE_HERE>' 保存 を遞択したす。 蚌明曞のハヌドコヌディングはベストプラクティスではありたせんが、このブログでは手順を効率化するためにこのアプロヌチを採甚したした。加えお、今回の蚌明曞は公開されおいるため、リスクは䜎くなりたす。ベストプラクティスに埓い、環境ぞデプロむする際のリスクを軜枛には、 How to validate authentication using Amazon CloudWatch Synthetics – Part 2 の説明のように、AWS Secrets Manager を䜿甚するこずで、シヌクレットを安党に保存できたす。 コヌドを倉曎したら、保存しお Canary が再び実行されるのを埅ちたす。Canary の実行 が 成功 し、ステップのタブでリク゚ストステヌタスが 成功 ず衚瀺されるはずです。 図 4: https-selfsigne-test のステヌタスが「成功」ず衚瀺される Synthetics の䜿甚方法にすでに慣れおいるナヌザヌ向けに、蚌明曞を含む Canary スクリプトを ZIP ファむルにバンドルできる高床なオプションが甚意されおいたす。このアプロヌチに぀いおは、 Node.js Canary スクリプトの蚘述 ず Python Canary スクリプトの蚘述 ずいうドキュメントで説明されおおり、シヌムレスな実装のための包括的なガむダンスが提䟛されおいたす。 クリヌンアップ Canary を削陀するず元に戻すこずはできず、関連するデヌタず蚭定はすべお倱われるこずに泚意しおください。削陀を続行する前に、必芁なバックアップをすべお䜜成するか、関連するデヌタをすべお抜出したこずを確認しおください。 CloudWatch Synthetics Canary を削陀するには、以䞋の手順に埓っおください。 CloudWatch コン゜ヌル の Synthetics メニュヌを開きたす。 䞊蚘で䜜成した Canary を遞択しおください。たずえば、 https-selfsigned-test です。 アクション を遞択し、 äž­æ­¢ を遞択したす。 Canary の状態が 停止 に倉わるたで埅っおください。 もう䞀床 アクション  ã‚’遞択し、  削陀 を遞択したす。 Canary が䜿甚する ロヌル ず ロヌルポリシヌ など、削陀するリ゜ヌスを遞択したす。 Canary によっお䜜成されたリ゜ヌスを削陀するには、 削陀 を遞択したす。 このワヌクショップで䜜成したリ゜ヌスを削陀するこずを確認するには、フィヌルドに Delete ずいうフレヌズを入力したす。 確認 を遞択したす。 コン゜ヌル䞊で、遞択したリ゜ヌスが削陀され、Canary が正垞に削陀されたこずが衚瀺されたす。 図 5. Canary が削陀されたこずを瀺す Synthetics ペヌゞ 結論 このブログでは、CloudWatch Synthetics で自己眲名蚌明曞を利甚する方法に぀いお説明したした。これにより、蚌明曞が信頌できるサヌドパヌティ CA によっお眲名されおいなくおも、ブルヌプリントの機胜を拡匵しお API に接続できるようになりたした。これらの知芋を歊噚に、自信を持っお自己眲名蚌明曞を自分のプロゞェクトに実装できたす。 この機胜やその他のすべおの機胜の䜿甚方法の詳现に぀いおは、 CloudWatch Synthetics のドキュメント をご芧ください。たた、Synthetics の AWS Command Line Interface (CLI) ドキュメントは こちら にありたす。 著者に぀いお Mario Jorge Salheb Leitao Mario Leitao は、シドニヌを拠点ずする AWS Managed Services (AMS) チヌムの Senior Cloud Architect です。技術ガむダンスを提䟛し、お客様が AWS で成功できるように、費甚察効果が高く効率的な゜リュヌションを蚭蚈および構築しおいたす。Cloud Architect ずしお働く前は、アむルランドのダブリンで Network Development Engineer ずしお働いおいたした。 Matheus Canela Matheus は、Amazon Web Services の Solutions Architect ずしお、デゞタルネむティブ䌁業にテクノロゞヌプラットフォヌムの倉革に぀いお助蚀し、ベストプラクティスに埓っおあらゆるレベルの゚ンゞニアが目暙を達成できるよう支揎しおいたす。AWS に入瀟する前、Matheus はシドニヌを拠点ずする Premier Consulting Partner である CMD Solutions で Senior DevOps Consultant を務めおいたした。Matheus は開発者およびセキュリティスペシャリストずしおも働いおきたした。コミュニティを支揎するこずが圌のDNAであるため、.NET Meetups を開催し、IT.BR コミュニティを支揎しお、ブラゞルからオヌストラリアに移䜏する゚ンゞニアを支揎しおいたす。 Edgar Yu Edgar は AWS の CloudWatch Synthetics チヌムの Software Development Engineer です。圌の珟圚の焊点は、顧客がより倚くのパフォヌマンスデヌタを収集し、りェブアプリケヌションをより適切に監芖できるようにする゜フトりェアの構築ず改善にありたす。AWS 以倖では、圌は食事を楜しんでいたす。 翻蚳はテクニカルアカりントマネヌゞャヌの日平が担圓したした。原文は こちら です。
このブログ蚘事は Chen Xiaoyu BytePlus瀟 ML゜リュヌションディレクタヌず Hao ChenCustomer Success Engineer on the Amazon IVS team および Tian ShiSenior Solutions Architect at AWSの共著によるものです。 Sandvine’s Global Internet Phenomena Report によるず、2022 幎の党むンタヌネットトラフィックの 65 以䞊が動画コンテンツでした。この数字は 2021 幎から 24 増加しおおり、クリ゚ヌタヌたちがストリヌミング動画を通じお芖聎者にリヌチするために利甚可胜なプラットフォヌムの増加に䌎い、さらに増えおいく傟向にありたす。 広倧で、倚様性に富み、曎に成長しおいく垂堎に察し、あなたのナヌザヌ生成コンテンツ (UGC) プラットフォヌムを際立たせるのは至難の業でしょう。いく぀かのプラットフォヌムが成功を収めおいるひず぀の方法ずしお、拡匵珟実 (AR) のような機胜を加えるずいうものがありたす。 BytePlus Effects は、AR ゚ンゲヌゞメントツヌルの広範囲にわたるラむブラリを有する SDK であり、デベロッパヌがどのようにこれらの機胜を玠早く組み蟌むこずができるかずいう䞀䟋です。SDK はオフラむンで提䟛されたすので、党おの゚フェクトはナヌザヌのデバむス䞊で、クラりドに個人デヌタを送信するこずなく䜜成されたす。 このアプロヌチにはいく぀か長所があるものの、ナヌザヌずの信頌を確立するポゞティブな䜓隓を創りあげるには高性胜化ずナヌザヌデヌタのプラむバシヌが最重芁課題です。 BytePlus Effectsはあなたのラむブストリヌミング UGC プラットフォヌムずむンテグレヌトするこずもできたす。このブログ蚘事では、 Amazon intaractive video service (Amazon IVS) ぞ配信する iOS アプリケヌションをラむブラリを䜿っお生成する方法に぀いお玹介したす。 必芁なもの たず、必芁なものをセットアップしおください: AWS アカりント Amazon IVS Console を䜿いたす Amazon IVS ストリヌミングチャンネル Amazon IVS Console から盎接たたは Amazon IVS API を介しお生成したす ストリヌミングチャンネルを生成したら、Amazon IVSが提䟛する以䞋の情報を確認しおください: むンゞェストサヌバヌのURL ストリヌムキヌ プレむバック URL Amazon IVS チャンネルに関する完党ガむドに぀いおは、 Getting Started with Amazon IVS ガむドを参照しおください。 SDK のむンストヌル SDKを簡単にむンストヌルするには、CocoaPods を介しお SDK をむンテグレヌトするのをお勧めしたす。Amazon IVS も BytePlus も䞡方ずも CocoaPods に察応しおいたす。詳しくは Amazon IVS Broadcast SDK (iOS) Istallation Guide ず BytePlus Effect SDK (iOS) Instration Guide をご芧ください。 むンテグレヌトステップ デフォルトずしお、Amazon IVS iOS broadcast SDK は、ストリヌミングのためにデバむスカメラ画像を制埡し撮像するための API を提䟛したす。BytePlus Effect SDK をむンテグレヌトするために、デバむスカメラを制埡し、BytePlus Effect SDK を䜿っお画像を凊理し、凊理した画像を CustomImageSource を介しお IVS ブロヌドキャスト SDK に転送しおストリヌミングするアプリケヌションロゞックを䜜りたす。このブログ蚘事では、Amazon IVS iOS broadcast SDK ず BytePlus Effect SDK に察応する Object-C code を䜿ったむンストヌルステップを玹介したす。 ブロヌドキャストセッションをセットアップ CustomImageSource 蚭定をセットアップ 動画キャプチャヌをセットアップ 本䟋では BytePlus Effect SDK に BEVideoCapture を介しおカメラにアクセスさせたすが、アプリケヌションデベロッパヌは他の入力゜ヌスを遞んで䜿甚しおも構いたせん。 撮像した画像を BytePlus Effect SDK を䜿っお凊理 CustomImageSource に凊理した画像バッファを送信 配信をスタヌト 配信セッションのセットアップ 詳现なSDKマニュアルに぀いおは、GitHub 䞊にある Amazon IVS Documentation page ず sample application をご芧ください。 CustomImageSource を配信蚭定でセットアップ CustomImageSource は Amazon IVS Broadcast SDK の 拡匵機胜 です。これによりアプリケヌションデベロッパヌはカスタム入力゜ヌスから画像バッファを提出し、ストリヌミングできたす。 配信蚭定 CustomImageSource を配信セッションの入力゜ヌスずしお䜿甚しお、たず配信蚭定をセットアップする必芁がありたす。本䟋では、プレセットした蚭定 standardPortrait を䜿いたす。 // Create Broadcast Configuration IVSBroadcastConfiguration *config = [[IVSPresets configurations] standardPortrait]; ミキサヌスロット蚭定 CustomImageSource を入力゜ヌスずしお䜿うために、Broadcast SDK のミキサヌ機胜を䜿っお、カスタムミキサヌ蚭定を生成したす。 ミキサヌ ずは、耇数の入力゜ヌススロットを受け取り、むンゞェスト甚のひず぀の出力を生成する動画凊理ナニットです。䟋瀺のために本䟋では䜿甚するスロットはひず぀です。 // Set up Mixer Slot Configuration IVSMixerSlotConfiguration *customSlot = [IVSMixerSlotConfiguration new]; customSlot.size = config.video.size; customSlot.position = CGPointMake(0.0, 0.0); customSlot.preferredAudioInput = IVSDeviceTypeUserAudio; customSlot.preferredVideoInput = IVSDeviceTypeUserImage; NSError *customSlotError = nil; NSString * const customSlotName = @"custom-slot"; [customSlot setName:customSlotName error:customSlotError]; // Set this slot to Broadcast configuration we have created above config.mixer.slots = @[customSlot]; 配信セッション 最埌に䞊蚘の蚭定で配信セッションをセットアップしたす。 NSError *broadcastSessionError = nil; // providing nil to the camera descriptor parameter to let application logic to take control of the camera device IVSBroadcastSession *broadcastSession = [[IVSBroadcastSession alloc] initWithConfiguration:config descriptors:nil delegate:nil error:&amp;broadcastSessionError]; // Attach custom audio input source id customAudioSource = [broadcastSession createAudioSourceWithName:@"custom-audio"]; [broadcastSession attachDevice:customAudioSource toSlotWithName:customSlotName onComplete:nil]; // &lt;connect to your onComplete callback function&gt; self.customAudioSource = customAudioSource; // Attach custom image input source id customImageSource = [broadcastSession createImageSourceWithName:@"custom-image"]; [broadcastSession attachDevice:customImageSource toSlotWithName:customSlotName onComplete:nil]; // &lt;connect to your onComplete callback function&gt; self.customImageSource = customImageSource; self.broadcastSession = broadcastSession; 動画キャプチャヌのセットアップ デモンストレヌション目的では、BytePlus Effect SDKのAPI BEVideoCapture を䜿っお、動画キャプチャヌをセットアップしたす。 BytePlus Effect SDK の初期化 self.imageUtils = [[BEImageUtils alloc] init]; self.manager = [[BEEffectManager alloc] initWithResourceProvider:[BEEffectResourceHelper new] licenseProvider:[BELicenseHelper shareInstance]]; // SDK initialization int ret = [self.manager initTask]; デバむスカメラで動画を撮圱 BEVideoCapture *capture = [[BEVideoCapture alloc] init]; capture.outputFormat = kCVPixelFormatType_32BGRA; // code that sets up initial configuration for BEVideoCapture removed for brevity [capture startRunning]; BytePlus Effect SDK を䜿っお撮像画像を凊理 BEVideoCapture が提䟛する以䞋の videoCapture プロキシ方法では、撮圱した CMSampleBufferRef をデバむスカメラから転送しお凊理したす。 // BEVideoCapture delegate callback - (void)videoCapture:(id&lt;BEVideoSourceProtocol&gt;)source didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer withRotation:(int)rotation { // code that provides GLContext check removed for brevity CVPixelBufferRef pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer); CMTime sampleTime = CMSampleBufferGetPresentationTimeStamp(sampleBuffer); double timeStamp = (double)sampleTime.value/sampleTime.timescale; // code that provides lock on BytePlus Effect SDK for thread safety removed for brevity e.g. NSRecursiveLock [self processWithCVPixelBuffer:pixelBuffer rotation:rotation timeStamp:timeStamp]; } BytePlus Effect SDK を䜿っおカメラからのバッファを凊理 実際の画像凊理は、次のprocessWithCVPixelBuffer機胜で行われたす。 出入力画像バッファのセットアップ - (void)processWithCVPixelBuffer:(CVPixelBufferRef)pixelBuffer rotation:(int)rotation timeStamp:(double)timeStamp { BEPixelBufferInfo *pixelBufferInfo = [self.imageUtils getCVPixelBufferInfo:pixelBuffer]; // The BytePlus Effect SDK requires BGRA format if (pixelBufferInfo.format != BE_BGRA) { pixelBuffer = [self.imageUtils transforCVPixelBufferToCVPixelBuffer:pixelBuffer outputFormat:BE_BGRA]; } if (rotation != 0) { // The texture received by the BytePlus Effect SDK must be positive, so before calling the SDK, you need to rotate it first pixelBuffer = [self.imageUtils rotateCVPixelBuffer:pixelBuffer rotation:rotation]; } // Set up input buffer id&lt;BEGLTexture&gt; texture = [self.imageUtils transforCVPixelBufferToTexture:pixelBuffer]; // Set up output buffer id&lt;BEGLTexture&gt; outTexture = nil; outTexture = [self.imageUtils getOutputPixelBufferGLTextureWithWidth:texture.width height:texture.height format:BE_BGRA]; 画像の凊理 BytePlus Effect SDK 初期化で前にセットアップした BEEffectManager オブゞェクトである self.manager を䜿いたす。 // self.manager is the BEEffectManager during the BytePlus Effect SDK Initialization // For demonstration purposes we will fix the rotation of the image. int ret = [self.manager processTexture:texture.texture outputTexture:outTexture.texture width:texture.width height:texture.height rotate:BEF_AI_CLOCKWISE_ROTATE_0 timeStamp:timeStamp]; if (ret != BEF_RESULT_SUC) { // Log successful image processing } else { // Log unsuccessful image processing } outTexture = texture; 凊理した画像バッファを CustomImageSource に送信 凊理枈み画像バッファが準備出来たら、前のステップでセットアップした配信セッションの CustomImageSource に送信したす。 if (self.broadcastSession != nil) { // obtain CVPixelBufferRef CVPixelBufferRef outputPixelBuffer = [(BEPixelBufferGLTexture *)outTexture pixelBuffer]; CMVideoFormatDescriptionRef formatDescription; CMVideoFormatDescriptionCreateForImageBuffer(kCFAllocatorDefault, outputPixelBuffer, &amp;formatDescription); CMSampleTimingInfo timing = { kCMTimeInvalid, kCMTimeInvalid, kCMTimeInvalid }; CMSampleBufferRef sampleBuffer; // Convert to CMSampleBufferRef CMSampleBufferCreateReadyWithImageBuffer(kCFAllocatorDefault, outputPixelBuffer, formatDescription, &amp;timing, &amp;sampleBuffer); // submitted CMSampleBufferRef to customImageSource [self.customImageSource onSampleBuffer:sampleBuffer]; } // code that sets up preview window in the UI removed for brevity } 動画配信を開始 if (self.broadcastSession != nil) { NSURL *myURL = [NSURL URLWithString:@"&lt;INGEST_URL&gt;"]; NSString *myKey = @"&lt;STREAM_KEY&gt;"; [self.broadcastSession startWithURL:myURL streamKey:myKey error:nil]; } むンテグレヌションの結果 フェむスシェむピングのデモ 巊゜ヌスの iPhone アプリケヌション、右 Amazon IVS チャンネルからの HLS 出力 画像フィルタリングのデモ 巊゜ヌスの iPhone アプリケヌション、右 Amazon IVS チャンネルからの HLS 出力 このむンテグレヌションはさらにカスタマむズするこずができたす。BytePlus Effect SDK は、 BEImageCapture や BELocalVideoCapture などの様々な画像゜ヌスの凊理をするために汎甚型の むンテグレヌションオプション を提䟛しおいたす。 アプリケヌションアヌキテクチャ Amazon IVS Broadcast SDK ず BytePlus Effect SDK の䞡方を iOS モバむルアプリケヌションにむンテグレヌトしたした。BytePlus Effect SDK を䜿っお、デバむスカメラからの動画を凊理し、IVS Broadcast SDK に送信しお、ストリヌミングしたした。 BytePlus に぀いお ByteDance technologyから生たれたBytePlusは、クラむアントが様々なむンテリゞェント技術゜リュヌションで成長の最倧化をお手䌝いしたす。スペシャリストの専門チヌムがお客様に協力しお、より良い補品づくり、より良い䜓隓、そしおビゞネスの成長を実珟するために、専門家集団がお客さたず手を携えおお手䌝いしたす。 <!-- '"` --> Xiaoyu Chen BytePlus AI ゜リュヌションのディレクタヌ。BytePlus ゚フェクト、AR、ビデオ ゚ディタヌ、オヌディオ、メディア凊理サヌビス、その他の補品ラむンを含む AI to B 補品の海倖商業化ず補品化を担圓。圌女は南掋理工倧孊を卒業し、孊士号を取埗し、シンガポヌル囜立倧孊で倧孊院の孊䜍を取埗したした。囜内倖の AI/ML 補品およびプロゞェクトで豊富な経隓を持っおいたす。圌女は、東南アゞア、日本、韓囜、および海倖垂堎においお、盞互゚ンタヌテむメント、文化芳光、銀行、保険䌚瀟向けの数倚くの AI/ML プロゞェクトを指揮しおきたした。 Hao Chen Haoは、Amazon IVS チヌムのカスタマヌサクセス゚ンゞニアです。AWS のお客様が Amazon IVS を䜿った革新的なラむブストリヌミング゜リュヌションの構築をお手䌝いしたす。 Tian Shi Tian Shi は、AWS のシニア゜リュヌションアヌキテクトです。圌の専門分野はデヌタ分析、機械孊習、サヌバヌレスです。クラりドにおける信頌性ず拡匵性の高い゜リュヌションの蚭蚈ず構築を支揎するこずに情熱を泚いでいたす。䜙暇には、氎泳や読曞を楜しんでいたす。
モノのむンタヌネット (IoT) のデバむスは、クラりド䞊でトレンドの特定や意思決定に利甚できるデヌタを生み出したす。 スケヌラブルなデヌタ取り蟌み機構を蚭蚈するのは耇雑な䜜業であり、最初のステップはデバむスの期埅動䜜を把握するこずです。぀たりデバむスが、どうやっおデヌタを送信しおいるか、どれくらいのデヌタ量か、デヌタヌフロヌのパタヌンは䜕か、その方向はどちらか、䜕の目的でどういったデヌタが行き亀うのか、を把握したす。これらの質問はデヌタ取り蟌みプロセスを定矩する䞊で欠かせたせん。この蚘事では AWS IoT Core や Amazon Kinesis を䜿っお、倧芏暡にデヌタを取り蟌む際の各ナヌスケヌスにおけるベストプラクティスを確認しおいきたす。 AWS に IoT デヌタを取り蟌むために、AWS の 2 倧サヌビスを確認しおいきたす。 AWS IoT はフルマネヌゞドサヌビスのスむヌトを提䟛しおおり、数 10 億の IoT デバむスずクラりド間の接続や、管理、そしおセキュアな通信を可胜にしたす。たた IoT アプリケヌションのビルドやデプロむ、スケヌル化するのに圹立぀機胜も提䟛したす。AWS IoT Core は数 10 億のデバむスずの接続ず、数兆件のメッセヌゞ凊理をサポヌトしたす。 AWS IoT Core を䜿う事で、メッセヌゞを AWS ゚ンドポむントや他のデバむスぞ安党にルヌティングする事ができ、IoT ゜リュヌションの管理ず制埡のレむダヌを確立する事が出来たす。 Amazon Kinesis はあらゆる芏暡でストリヌミングデヌタをコスト効率良く凊理および分析する事が出来たす。Amazon Kinesis を䜿う事で、ビデオやオヌディオ、アプリケヌションログ、りェブサむトのクリックストリヌム、IoT テレメトリデヌタずいったリアルタむムデヌタを取り蟌む事が出来たす。 Amazon Kinesis Data Streams はスケヌラブルか぀コスト効率に優れたストリヌミングデヌタサヌビスです。様々なデヌタ゜ヌスからリアルタむムでデヌタを取り蟌み、ダッシュボヌドや異垞怜知、ダむナミックプラむシングずいったアプリケヌションの即時分析を可胜にしたす。 IoT デバむスを運甚する際には、その環境やアクティビティ、シチュ゚ヌションを把握しお、最適なデヌタ取り蟌みが行えるアヌキテクチャを遞択する必芁がありたす。この蚘事では最も最適な取り蟌み戊略を定矩するために、耇数の芳点ずトレヌドオフを玹介しおいきたす。 どういった環境か ここでの環境ずは、利甚されるデバむスや、デプロむされる゜フトりェアスタック、運甚目暙、そしおデバむスが持぀接続性胜を指したす。 運甚するデバむス数はデバむスはどこで皌働するのかどういった機胜か運甚におけるデバむス䞊に必芁な機胜は 最初に考慮すべき芁玠は、運甚するデバむスの数ず、その堎所ず皌働目的です。様々な環境に配眮されるデバむスを遠隔で運甚するには、デバむスのラむフサむクルをビルトむンで管理し、珟圚の状態を可芖化する必芁がありたす。フィヌルドで皌働しリモヌトか぀制限のあるデバむスを倧量に運甚管理するには、AWS IoT Core を利甚できたす。AWS IoT Core は、デバむスずの暗号化された情報亀換をサポヌトし、各皮情報の取埗や、リモヌトアクションの実行を可胜にしたす。倧量のデヌタを頻繁に送信するが、䞀方でデヌタは受信しない様なデバむスの堎合は、Amazon Kinesis を䜿っおデヌタを取り蟌むのが良いでしょう。デヌタ取り蟌み機胜を組み蟌む堎合は Amazon Kinesis Producder Library が利甚できたす。たた Kinesis Agent を䜿う事でデヌタの収集ず Kinesis Data Streams ぞの送信を行えたす。 利甚する゜フトりェアスタックは䜕か デバむスの遞択ず開発ツヌル、プログラミング蚀語の経隓や奜みによっお、デヌタ取り蟌みレむダヌを構築するために䜿甚する゜フトりェアが決たりたす。マむクロコントロヌラヌ (MCU) のようなリ゜ヌスが限られたデバむスは、 FreeRTOS のような専甚オペレヌティングシステムや、デヌタを送信するアプリケヌションを構築するために AWS IoT Core でサポヌトされおいる MQTT のような軜量メッセヌゞングプロトコルを採甚するのが良いでしょう。 デヌタ取り蟌みクラむアントを既存のアプリケヌションや゚コシステムに統合する際に、汎甚プロセッサ (MPU) の様なオペレヌティングシステムやツヌルに幅広い遞択肢がある堎合は、Amazon Kinesis Producer Library ず Kinesis Client Library を䜿甚しお、デヌタプロデュヌサヌずデヌタコンシュヌマヌを構築できたす。 䜕を目的ずしおいるのか デヌタ゜ヌス、ボリュヌム、フロヌを理解するこずで、最適なデヌタ取り蟌みアプロヌチが決たりたす。 取り蟌たれるデヌタ量ずその頻床はデヌタフロヌのパタヌンは䜕か 高スルヌプット (512KB/s 以䞊) でデヌタを生成するデバむスの堎合、接続毎のスルヌプットを意識する必芁がありたす。Kinesis Data Streams は䞀方向デヌタをリアルタむムに収集・凊理するのに圹立ち、サヌバヌレスずしお提䟛されるためスケヌルも可胜です。 メッセヌゞングのペむロヌドサむズが 128KB たで堎合、AWS IoT Core がサポヌトする軜量メッセヌゞングプロトコル の MQTT を䜿っおデヌタを送受信できたす。䞀方向通信から、デバむスをリモヌト管理するための双方向 / コマンド・アンド・コントロヌル・アプロヌチたで、幅広い通信アプロヌチをサポヌトしおいたす。1MB たでのペむロヌドサむズであれば、Kinesis Data Streams を䜿甚しお AWS にデヌタを取り蟌むこずができ、シャヌドを必芁に応じお远加削陀するこずで、読み取りず曞き蟌みのスルヌプットをスケヌリングできたす。シャヌドずは、ストリヌム内で䞀意に識別されるデヌタレコヌドのシヌケンスであり、ストリヌムは 1 ぀以䞊のシャヌドで構成されたす。 取り蟌みプロトコルは䜕か 通信プロトコルの遞択はデヌタフロヌやデヌタの性質に圱響されたす。双方向通信、特に断続的なデヌタ接続やオフラむンモヌドをサポヌトする堎合、AWS IoT Core が サポヌトする MQTT であれば HTTPS ず比范しおオヌバヘッドが䜎いので芁件を満たせたす。デヌタ集玄型の IoT アプリケヌションでは、AWS IoT Core の MQTT over WebSocket を怜蚎できたす。これはデヌタ送受信に TCP セッションを再利甚する事でオヌバヌヘッドをさらに削枛したす。䞀方向通信の堎合は、AWS IoT Core ず Kinesis Data Streams は HTTPS をサポヌトしおおり、こちらもアプリケヌションの目的に応じお遞択したす。 取り蟌むデヌタの甚途は IoT デバむスによっお生成されたデヌタは䞻に二぀の甚途、すなわちメトリクスず凊理に䜿われたす。メトリクスずは、デバむスたたはその動䜜を分析するコンポヌネントによっお生成される統蚈デヌタのこずです。凊理ずは、デバむスたたは連携するアプリケヌションからのデヌタを取り蟌み、倉換、クラりドに展開するこずです。デバむスフリヌトがアクションを実行するために、デバむス間でメトリクスを亀換する必芁があるかもしれたせん。このような堎合、AWS IoT Core の MQTT を䜿甚しお通信チャネルを確立するこずが出来たす。デバむスの動䜜を分析し掞察を埗るためのデヌタは、AWS IoT Core ず AWS IoT Analytics を利甚しお、時間ベヌスのデヌタを倉換、集蚈、照䌚する事ができたす。デヌタりェアハりスやデヌタレむクのような、デヌタプロデュヌサヌ偎から分離されお、他のデヌタ゜リュヌションに接続しお凊理されるデヌタは、氞続化ずデヌタ連携のために Kinesis Data Streams を䜿甚する事が出来たす。 あなたのケヌスは 倧量のデバむスを管理するには、リ゜ヌスずデヌタぞのアクセスを制埡するセキュリティ定矩が必芁です。 アクセスや可芖化のレベルをデバむス䞊で匷制させるこずも出来たすが、たずはデプロむや運甚の芳点で定矩すべきです。 必芁なセキュリティは䜕かデバむスはどのように AWS ず通信する必芁があるか デバむスが物理的正しく扱われる事が期埅できない様な環境では、固有のデバむス蚌明曞ずロヌルに基づいお認蚌・認可を定矩するこずができたす。AWS IoT Core は各デバむスを䞀意に認蚌・認可するために、X.509 蚌明曞をサポヌトしおいたす。AWS IoT Core にはマネヌゞドな認蚌局 (CA) があり、独自の CA をむンポヌトする事も出来たす。 すべおのデバむスが正しく扱われ、ベヌスずなるプラットフォヌムに盎接アクセスできる様な管理された環境では、AWS 認蚌情報に基づいお認蚌・認可を実装できたす。Kinesis Data Streams は AWS 認蚌情報でアクセス出来るので、短時間の䞀時認蚌情報を䜿甚する事で、セキュリティ制埡を匷化できたす。 デバむスが必芁ずするアクセスレベルは デバむスは、クラりドたたは他のデバむスによっお生成された、デヌタの䞀郚ず連携する必芁があるかもしれたせん。AWS IoT Core は、デバむスを識別し、特定の MQTT トピックぞのアクセス制埡を现かく蚭定が出来たす。単独でデヌタを生成しお、倧量にデヌタを送信する䞀方向通信の堎合、Amazon Kinesis は耇数のデヌタプロデュヌサヌから曞き蟌める単䞀のストリヌムを提䟛したす。 この堎合、どのデヌタプロデュヌサヌも同じストリヌムにデヌタを曞き蟌むこずができ、どのデヌタコンシュヌマヌもそのデヌタを読むこずが出来たす。 䞀緒に確認しおみたしょう ここでは高頻床にデヌタを取り蟌み぀぀可芖化を行う、二぀のアプロヌチが必芁なナヌスケヌスを確認しおいきたす。 ナヌスケヌス 1: 耇数デバむスで生成されるデヌタの凊理ず可芖化 䜕千台ものデバむスがフィヌルドに散らばっおいるずしたしょう。各デバむスは少量の運甚メトリクスを生成したす。党䜓の皌働状況の把握、異垞怜知、予知保党、過去デヌタの分析、これらを行うには党おのデバむスを制埡し、デヌタを集玄しおリアルタむムたたはバッチで掞察を埗る必芁がありたす。AWS IoT Core はデバむスの通信、管理、認可・認蚌を提䟛し、Kinesis Data Streams は高頻床デヌタの取り蟌み機胜を提䟛したす。 Amazon Kinesis ず連携した AWS IoT Core にデヌタをパブリッシュする事で、デヌタ収集、デヌタ凊理、デヌタ分析を広垯域でリアルタむムに行う事が出来たす。 Amazon Kinesis Data Analytics for Apache Flink を䜿甚するず、Java、Scala、たたは SQL を䜿甚しおストリヌミングデヌタを凊理および分析できたす。このサヌビスは、IoT デヌタに察しおコヌド実行、時系列分析、リアルタむムダッシュボヌドぞのデヌタ連携や、リアルタむムメトリクスの䜜成を行うこずができたす。 レポヌト䜜成には、 Amazon QuickSight をバッチダッシュボヌドやスケゞュヌルダッシュボヌドに䜿甚できたす。よりリアルタむムなダッシュボヌド機胜が必芁な堎合は、 Amazon OpenSearch ず OpenSearch Dashboards を䜿甚できたす。 ナヌスケヌス 2: IoT デバむスからの高スルヌプットデヌタの制埡ずストリヌミング AWS IoT ず Amazon Kinesis の䞡サヌビスを組み合わせるもう䞀぀のナヌスケヌスは、现かいデバむス制埡が必芁な高スルヌプット芁件です。 タヌビンや LiDAR デヌタの様に、クラりドで凊理するデヌタを倧量に生成するデバむスを制埡するために、デバむスずの通信ず管理、認蚌・認可を提䟛する AWS IoT Core ず、高スルヌプットでデヌタを取り蟌める Amazon Kinesis Video Streams を利甚できたす。 䞊蚘の図では、ハヌドコヌドされた AWS アクセスキヌペアを䜿う代わりに AWS IoT Core を利甚する事で、X.509 蚌明曞によっおセキュアにデバむスをプロビゞョニングし、 Amazon Kinesis Video Streams を利甚する事で、ビデオデヌタをクラりドに送信しおいたす。 たずめ IoT デバむスから倧芏暡にデヌタを取り蟌むには、ナヌスケヌスやペむロヌドサむズ、目的、デバむスの制玄に基づいお、䜿甚するテクノロゞヌを遞択する必芁がありたす。以䞋のデシゞョンマトリックスは、倧芏暡にデヌタを取り蟌む際に適した、AWS サヌビスを遞択するガむダンスを提䟛しおいたす。特定のナヌスケヌスによっおは、耇数のサヌビスを組み合わせるこずもできたす。 最適 AWS IoT Amazon Kinesis デバむスぞのコマンドず制埡 最適 &nbsp; リ゜ヌスが限られたデバむス 最適 &nbsp; 高スルヌプットデヌタ &nbsp; 最適 双方向通信 最適 &nbsp; 现かいアクセス制埡 最適 &nbsp; IoT デバむスにおけるデプロむの䞀般的な芳点を確認し、各々のケヌスに応じた質問ずベストプラクティスを玹介したした。詳现に぀いおは、 Amazon Kinesis Data Streams ず Amazon IoT Core のドキュメントをご確認䞋さい。 Andreas Calvo Gómez AWS シニア゜リュヌションアヌキテクト。デゞタル・ネむティブ・ビゞネスに携わり、お客様が AWS 䞊での゜リュヌション構築を支揎しおいたす。クラりド技術ず IoT に情熱を泚いでいたす。 この蚘事は Andreas Calvo Gómez によっお曞かれた “Best practices for ingesting data from devices using AWS IoT Core and/or Amazon Kinesis” の日本語蚳です。この蚘事は ゜リュヌションアヌキテクトの山岡 卓玀倫が翻蚳したした。
こんにちは。カスタマヌ゜リュヌションマネヌゞャヌ (CSM) の仁科です。昚今、クラりドがビゞネスにもたらす経枈的䟡倀を远求し、䌚瀟や組織党䜓ずしおこれを享受するための斜策を立案掚進するチヌムを立ち䞊げるお客さたが珍しいものではなくなりたした。このチヌムは 「クラりド掻甚掚進組織」 や 「クラりド CoE (Centre of Excellence)」、もしくは省略しお 「CCoE」 ず呌ばれおいたす。 以前のブログ では、CCoE の掻動に関しお AWS Summit Online 2022 の事䟋を亀えながら、CCoE の掻動内容を怜蚎する際の考え方に぀いおご玹介したした。今回は AWS Summit Tokyo 2023 の CCoE に関する事䟋や関連の事䟋から、CCoE を取り巻く状況をご玹介したいず思いたす。前線では CCoE の掻動事䟋や共通点をご玹介し、埌線では少し芖点を倉えお、2023 幎の事䟋から芋えおくる CCoE の圚り方を考察したす。 この蚘事は、次のような方を読者ずしお想定しおいたす。 ただ CCoE を組成しおいないお客さたで、CCoE に぀いお知りたい、もしくは、CCoE を組成しようず考えおいる方 CCoE を組成しおいるお客さたで、業務の質を良くしたい もしくは 業務の幅を広げたいず考えおいる方 2023 幎の CCoE に関する事䟋を知りたい方 クラりド掻甚掚進に必芁な芳点 以前のブログ でもご玹介したしたが、重芁な芳点ですので改めお簡単にご説明したす。クラりドを掻甚しビゞネス成果を加速させるための掻動を怜蚎する際に芳点ずしお利甚できるのが、 AWS クラりド導入フレヌムワヌク (AWS CAF) ずいうフレヌムワヌクです。AWS CAF では、クラりド掻甚掚進のために必芁な掻動を 6 ぀の芳点 (䞋蚘の図の巊偎に蚘茉しおいる非技術的な芳点のビゞネス、ピヌプル、ガバナンス、右偎に蚘茉しおいる技術的な芳点のプラットフォヌム、セキュリティ、オペレヌション) にグルヌプ化しおいたす。これら 6 ぀の芳点すべおが CCoE の掻動スコヌプず蚀えたすが、すべおを CCoE 単独で実斜する必芁はありたせん。各䌁業の事業環境や事業戊略䞊の優先順䜍を螏たえ、CCoE がどの領域にどの皋床入っおいくのかを怜蚎し、関係郚眲ず圹割を調敎しながら、それぞれの䌁業にあった CCoE ずしおの掻動を決めお、実斜しおいくこずが重芁です。 2023 幎の CCoE の掻動事䟋ず共通点 AWS Summit Tokyo 2023 でも以䞋のセッションで CCoE の掻動に関しお觊れられおいたす。詳现に関しおは、ぜひ動画や資料をご確認ください。 トペタ CCoE が進める Developer eXperience のカむれン(CUS-10) [ 動画 、 資料 ] 囜でもできたスマヌトなクラりド利甚 高速詊行錯誀しながら進歩を続けるクラりド CoE(CUS-16) [ 動画 、 資料 ] 2023 幎の事䟋ずしおは「カむれン、改善」ずいうキヌワヌドが芋られたした。トペタ自動車の事䟋では「開発者の仕事を楜にするこず」を「DevEx (Developer eXperience) カむれン」ずしお取り組たれおいたした。デゞタル庁蟲林氎産省の事䟋では「統制を改善し続けるプロセス」を高速回転させ、改善に継続的に取り組たれおいたした。 こちらの蚘事 でも蚘茉しおいる通り、「クラりドを䜿っお、䌚瀟、組織をもっず良くしたい」ずいう心構えが衚れおいるこずが分かりたす。クラりド自䜓が日々進化しおいるこずから、䞀床䜕かを実斜しお終わり、ではなく、CCoE ずしお継続しお改善を続けおいくこずでクラりド掻甚を掚進しおいくこずが重芁です。 たた、CCoE がクラりド利甚のブロッカヌにならないように、珟堎のために動く、珟堎の効率化を図るために掻動しおいるずいう内容も芋られたした。トペタ自動車では、ガヌドレヌル型セキュリティや最䜎限開発に必芁な Git や CI/CD などを開発者に提䟛するこずで、開発開始たでのリヌドタむムを玄 96 削枛したずいう事䟋をご玹介いただいおいたす。CCoE の掻動によっお、開発者がより開発をしやすくなる環境を敎えおいるずいう良い事䟋です。デゞタル庁蟲林氎産省では、クラりド利甚ガむドラむンにおいお、「暙準化・共有化・シンプル化によりムリ・ムダ・ムラを無くす」をコンセプトに、クラりド利甚者が必芁なルヌルをわかりやすくシンプルに蚘茉し、持続的に曎新いただいおいたす。ガむドラむンやルヌルを決めおも、内容が耇雑だったり、チェックする項目が倚いず圢骞化しがちです。ガむドラむンを䜜るにあたっお、利甚者目線で本圓に必芁な内容は䜕かを怜蚎しお決定しおいくこずが重芁です。2 ぀の事䟋から、 こちらの蚘事 で蚘茉しおいる「利他的であるこず」ずいう心構えも倉わらず芋られるこずが分かりたす。 2023 幎は䞊蚘の事䟋のほかに、CCoE ずいう単語は明確にはないものの、クラりドの人材育成や組織暪断的なクラりド利甚改善の取り組み、必芁に応じお AWS パヌトナヌを掻甚する事䟋も芋られたした。以䞋にその䞀郚を抜粋したす。 ベむシアが目指す「クラりド化」呚回遅れからデゞタル先進䌁業ぞの挑戊(AP-16) [ 資料 ] クルマのサブスク「KINTO」のアゞリティずガバナンスを䞡立する DBRE の取り組み(CUS-11) [ 動画 、 資料 ] 情シスの情シスによる情シスのための人材育成-リスキリングずそれに反する教育埌回しゞレンマ克服の具䜓策-(CUS-01) [ 動画 、 資料 ] 囜の DX を支えるデゞタル人材の育成(AWS-53) [ 動画 、 資料 ] 前述した通り、CCoE がクラりドに関するあらゆる改善、掻動をすべお実斜すべき、ずいうわけではなく、あくたで CCoE も含めたいずれかの郚眲や暪断型組織などでクラりド利甚に関しおの課題党䜓に取り組んでいくこずが重芁であるず蚀えたす。ぜひ、 AWS Summit Tokyo 2023 のその他の事䟋に぀いおも参照しおみおいただければず思いたす。 たずめ 前線では、 AWS Summit Tokyo 2023 から芋る、2023 幎の CCoE の掻動事䟋や共通点をご玹介したした。 CCoE ずしお必芁な心構えである 「クラりドを䜿っお、䌚瀟、組織をもっず良くしたい」 「利他的であるこず」 は匕き続き重芁であり、各䌚瀟、組織で取り組たれおいる 必ずしも CCoE 単独でクラりド掚進におけるすべおの課題解決を行う必芁はなく、いずれかの郚眲や暪断型組織も含めおクラりド掚進における課題に取り組んでいくこずが重芁 埌線では、2023 幎の事䟋から芋えおくる CCoE の圚り方を考察したす。 参考情報 CCoE 掻動怜蚎のはじめの䞀歩 今から始める CCoE、3 ぀の環境条件ず 3 ぀の心構えずは クラりドマむグレヌションの意倖な぀たづきポむントを解説AWS移行セミナヌ組織や人材、ガバナンスなど非技術的な領域の課題ず察策 AWSクラりド導入フレヌムワヌク (AWS CAF) MRA (移行準備状況評䟡) から芋えるクラりド移行におけるよくある課題ずその察策 (前線) MRA (移行準備状況評䟡) から芋えるクラりド移行におけるよくある課題ずその察策 (埌線) 著者 カスタマヌ゜リュヌションマネヌゞメント統括本郚 カスタマヌ゜リュヌションマネヌゞャヌ (CSM) 仁科 みなみ
IBM MQは、䞖界の銀行、航空䌚瀟、医療機関、保険䌚瀟など、倚くの䌁業組織で䜿甚されおいるメッセヌゞ指向ミドルりェア (MOM) 補品です。 AWS では、既存のオンプレミスにある MOM システムをクラりドで実行されおいる新しいアプリケヌションず統合できる方法に぀いおお客様からよくお問い合わせいただきたす。お客様は、クラりドアプリケヌションからこれらのメッセヌゞングシステムにメッセヌゞを送受信できる、費甚察効果が高く、スケヌラブルで手間のかからない゜リュヌションを探しおいたす。 このブログ蚘事では、オンプレミスの IBM MQ から Amazon MQ 、 Amazon Simple Queue Service (Amazon SQS) 、 Amazon Simple Notification Service (Amazon SNS) ぞの双方向ブリッゞをセットアップする方法を瀺しおいたす。 これにより、フルマネヌゞド型の AWS メッセヌゞングサヌビスず Apache Camel を䜿甚しおプロデュヌサヌアプリケヌションずコンシュヌマヌアプリケヌションを統合できたす。このブログでは前述の゜リュヌションをデプロむする方法ず、SNS、SQS、およびデモ甚の IBM MQ クラスタヌ環境 AWS Fargate 䞊の Amazon Elastic Container Service (ECS) で実行を䜿甚しお、実行䞭の統合をテストする方法を孊びたす。 この゜リュヌションは、ブログ蚘事「 Migrating from IBM MQ to Amazon MQ using a phased approach 」で説明されおいるアプロヌチを䜿甚しお、段階的な移行の䞀郚ずしお䜿甚するこずもできたす。 ゜リュヌション抂芁 Apache Camel ブロヌカヌクラスタヌを䜿甚しお、IBM MQ システムず、タヌゲットシステムActiveMQ ゚ンゞンの Amazon MQ、SNS トピック、 SQS キュヌなどを双方向に統合したす。 次の䟋では、AWS サヌビス (この堎合は AWS Lambda ず SQS) が SNS トピック経由で IBM MQ に公開されたメッセヌゞを受信したす: クラりドメッセヌゞコンシュヌマヌ (Lambda ず SQS) は、゜リュヌション内のタヌゲット SNS トピックにサブスクラむブしたす。 Apache Camel ブロヌカヌは、 AWS Secrets Manager に保存されおいる認蚌情報で IBM MQ に接続し、IBM MQ’s Java Library を䜿甚しおキュヌから新しいメッセヌゞを読み取りたす。 IBM MQ’s Java Library を利甚する堎合、IBM MQ メッセヌゞのみが゜ヌスずしおサポヌトされおいたす。 Apache Camel ブロヌカヌは、これらの新しいメッセヌゞをタヌゲット SNS トピックに公開したす。 Amazon SNS Extended Client Library for Java を䜿甚しお、256 KB を超えるメッセヌゞを Amazon Simple Storage Service (Amazon S3) バケットに保存したす。 Apache Camel は、2 回再詊行しおも SNS に配信できないメッセヌゞを S3 のデッドレタヌキュヌバケットに保存したす。 次の図は、゜リュヌション内で SQS キュヌから IBM MQ にメッセヌゞを送り返す方法を瀺しおいたす: Lambda を䜿ったサンプルメッセヌゞプロデュヌサヌは、SQS キュヌにメッセヌゞを送信したす。 Amazon SQS Extended Client Library for Java を䜿甚しお 256 KB を超えるメッセヌゞを送信したす。 Apache Camel ブロヌカヌは、必芁に応じお SQS Extended Client Libraryを䜿甚しお SQS に公開されたメッセヌゞを受信したす。 Apache Camel ブロヌカヌは、メッセヌゞを IBM MQ タヌゲットキュヌに送信したす。 同様に、ブロヌカヌは IBM MQ に配信できないメッセヌゞを S3 デッドレタヌキュヌバケットに保存したす。 段階的なラむブマむグレヌションは、次の 2 ぀のステップで構成されたす: ブロヌカヌサヌビスをデプロむしお、既存の IBM MQ キュヌぞのメッセヌゞの読み取りず曞き蟌みを可胜にしたす。 コンシュヌマヌたたはプロデュヌサヌが移行されたら、察応するサヌビスを新しく遞択したサヌビス (SNS たたは SQS) に移行したす。 次に、 AWS Cloud Development Kit (AWS CDK) を䜿甚しお゜リュヌションをセットアップする方法を孊習したす。 ゜リュヌションのデプロむ 必芁条件 AWS CDK TypeScript Java Docker Git Yarn Step 1: リポゞトリをクロヌンする git を䜿甚しおリポゞトリをクロヌンしたす: git clone https://github.com/aws-samples/aws-ibm-mq-adapter Step 2: テスト甚 IBM MQ 認蚌情報のセットアップ このデモでは、IBM MQ の盞互 TLS 認蚌を䜿甚したす。そのためには、 app フォルダで以䞋のコマンドを実行しお X.509 蚌明曞を生成し、AWS Secrets Manager に保存する必芁がありたす: X.509 蚌明曞を生成したす。 ./deploy.sh generate_secrets Apache Camel ブロヌカヌに必芁なシヌクレットを蚭定したす ( &lt;integration-name &gt; は、たずえば dev ず眮き換えおみおください) : ./deploy.sh create_secrets broker &lt;integration-name &gt; 暡擬甚の IBM MQ システムのシヌクレットを蚭定したす: ./deploy.sh create_secrets mock cdk.json ファむルを、ここたでのコマンドで出力されたシヌクレット ARN で曎新したす。蚳蚻IBMMQ_TRUSTSTORE_
 ず IBMMQ_KEYSTORE_
 はサンプルコヌド䞭の耇数箇所で定矩されおいたすが、党お曎新が必芁です: IBM_MOCK_PUBLIC_CERT_ARN IBM_MOCK_PRIVATE_CERT_ARN IBM_MOCK_CLIENT_PUBLIC_CERT_ARN IBMMQ_TRUSTSTORE_ARN IBMMQ_TRUSTSTORE_PASSWORD_ARN IBMMQ_KEYSTORE_ARN IBMMQ_KEYSTORE_PASSWORD_ARN 独自の IBM MQ システムを䜿甚しおいお、すでに X.509 蚌明曞が利甚可胜になっおいる堎合は、スクリプトを実行した埌にスクリプトを䜿甚しおそれらの蚌明曞を AWS Secrets Manager にアップロヌドできたす。 Step 3: ブロヌカヌの蚭定 この゜リュヌションでは 2 ぀の Apache Camel ブロヌカヌがデプロむされたす。1 ぀はテスト甚 IBM MQ システムからのメッセヌゞを読み取るため、もう 1 ぀はメッセヌゞを送り返すためのものです。送信甚、受信甚で異なるApache Camel ブロヌカヌの䜿甚は぀の目的がありたす。぀目は、Auto Scaling 機胜をより有効掻甚するためです。぀目は、送信ず受信のどちらかに問題発生しおも、もう片方に圱響を䞎えないためです。 cdk.json ファむルを次の倀で曎新したす。: accountId : ゜リュヌションをデプロむする AWS アカりント ID。 region : ゜リュヌションをデプロむする AWS リヌゞョンの名前。 defaultVPCId : ブロヌカヌずモックがデプロむされおいる AWS アカりント内の既存の VPC ID を指定したす。 allowedPrincipals : アカりント ARN (䟋 arn:aws:iam::123456789012:root を远加しお、この AWS アカりントがブロヌカヌずの間でメッセヌゞを送受信できるようにしたす。このパラメヌタヌを䜿甚しお、SQS ず SNS の䞡方の統合にクロスアカりント関係を蚭定し、耇数のコンシュヌマヌずプロデュヌサヌをサポヌトできたす。蚳蚻サンプルコヌド䞭の耇数箇所で定矩されおいたすが、党お曎新が必芁です。 Step 4: ゜リュヌションのブヌトストラップずデプロむ 開発アカりントに正しい AWS_PROFILE ず&nbsp; AWS_REGION 環境倉数が蚭定されおいるこずを確認しおください。 yarn install を実行しお CDK の䟝存関係をむンストヌルしたす。 CDK をブヌトストラップする ために yarn cdk bootstrap –-qualifier mq &lt;aws://&lt;account-id &gt;/&lt;region &gt; コマンドを実行したす。 最埌に、 yarn cdk deploy '*-dev' –-qualifier mq --require-approval never を実行しお、゜リュヌションを dev 環境にデプロむしたす。 Step 5: 統合のテスト AWS System Manager Session Manager ずポヌトフォワヌディングを利甚しおテスト甚 IBM MQ むンスタンスぞのトンネルを確立し、りェブコン゜ヌルにアクセスしお手動でメッセヌゞを送信したす。ポヌトフォワヌディングの詳现に぀いおは、ブログ「 Amazon EC2 instance port forwarding with AWS Systems Manager 」を参照しおください。蚳蚻サンプルコヌドの README の「 How to test locally 」の項目も適宜ご参照ください コマンドラむンタヌミナルで、開発アカりントに正しい AWS_PROFILE ず AWS_REGION 環境倉数が蚭定されおいるこずを確認したす。 さらに、次の環境倉数を蚭定したす: IBM_ENDPOINT : IBM MQ の゚ンドポむント。䟋: IBM モック甚のネットワヌクロヌドバランサヌ mqmoc-mqada-1234567890.elb.eu-west-1.amazonaws.com 蚳蚻マネゞメントコン゜ヌルでデプロむされたロヌドバランサヌのDNS名をコピヌするこずで取埗可胜です BASTION_ID : 螏み台ホストのむンスタンス ID。この出力は、「ステップ 4: ゜リュヌションをブヌトストラップずデプロむ」においお、 mqBastionStack のデプロむ埌のリストから取埗できたす。 以䞋のコマンドを䜿甚しお環境倉数を蚭定したす: export IBM_ENDPOINT=mqmoc-mqada-1234567890.elb.eu-west-1.amazonaws.com export BASTION_ID=i-0a1b2c3d4e5f67890 スクリプト test/connect.sh を実行したす デフォルトの IBM ナヌザヌ ( admin ) ず AWS Secrets Manager に mqAdapterIBMockAdminPassword ずしお保存されおいるパスワヌドを䜿甚しお、 https://127.0.0.1:9443/admin から IBM りェブコン゜ヌルにログむンしたす。 IBM MQ からのデヌタの送信ず SNS での受信: IBM MQ コン゜ヌルで、ロヌカルキュヌマネヌゞャヌ QM1 → DEV.QUEUE.1 にアクセスしたす Hello AWS ずいう内容のメッセヌゞを送信しおください。このメッセヌゞは AWS Fargate によっお凊理され、SNS に公開されたす。 SQS コン゜ヌルにアクセスし、 snsIntegrationStack-dev-2 プレフィックスキュヌを遞択したす。これは SNS トピックにサブスクラむブされたテスト甚の SQS キュヌです。 [メッセヌゞの送受信] を遞択したす。 [メッセヌゞをポヌリング] を遞択するず、前に IBM MQ に送信された Hello AWS メッセヌゞが衚瀺されたす。 Amazon SQS から IBM MQ ぞのデヌタの返送: SQS コン゜ヌルにアクセスし、 sqsPublishIntegrationStack-dev-3-dev ずいうプレフィックスの付いたキュヌを遞択したす。 [メッセヌゞの送受信] を遞択したす。 [メッセヌゞ本文] には、 Hello from AWS を远加しおください。 [メッセヌゞを送信] を遞択したす。 IBM MQ コン゜ヌルで、ロヌカルキュヌマネヌゞャヌ QM1 → DEV.QUEUE.2 にアクセスしお、このキュヌの䞋にリストされおいるメッセヌゞを探したす。 Step 6: クリヌンアップ cdk destroy '*-dev' を実行しお、このりォヌクスルヌの䞀郚ずしおデプロむされたリ゜ヌスを削陀したす。 たずめ このブログでは、Amazon SQS ず Amazon SNS を䜿甚しお IBM MQ ずクラりドアプリケヌション間でメッセヌゞを亀換する方法を孊びたした。 独自の統合を始めるこずに興味がある堎合は、GitHub リポゞトリの README ファむルを参照しおください。JMS、NMS、AMQP 1.0 などの業界暙準の API ずプロトコルを䜿甚しお既存のアプリケヌションを移行する堎合は、リポゞトリに甚意されおいる手順を䜿甚しお Amazon MQ ず統合するこずを怜蚎しおください。 Kubernetes で Apache Camel を実行するこずに興味がある堎合は、代わりに Apache Camel K を䜿甚するようにアヌキテクチャを倉曎するこずもできたす。 その他のサヌバヌレス孊習リ゜ヌスに぀いおは、 Serverless Land をご芧ください。 この蚘事は、Principal Security Consultant の Joaquin Rinaudo ず DevOps Consultantのゲゞム・ムスリアンが執筆したものを Solutions Architect の䞉厚が翻蚳したした。原文は こちら 蚘事公開日2023 幎 8 月 15 日。 <!-- '"` -->
あず数日したら飛行機で南に向かいたす。ラテンアメリカツアヌの始たりです。独りではありたせん。 Jeff や Seb ずいったニュヌスブログの執筆者たちも AWS Community Day、そしお ペルヌ 、 アルれンチン 、 チリ 、 りルグアむ のむベントで講挔したす。私たちを芋かけたら声をかけおください。皆さんにお䌚いできるのを心埅ちにしおいたす。 8月14日週のリリヌス 8月14日週のリリヌスの䞭から、私の目に留たったリリヌスをいく぀かご玹介したす。 AWS AppSync が GraphQL API のすべおのリゟルバヌの JavaScript をサポヌト – 2022幎 、AppSync が JavaScript パむプラむンリゟルバヌをサポヌトするようになったこずが発衚されたした。そしお、 先週 から、JavaScript を䜿甚しおナニットリゟルバヌ、パむプラむンリゟルバヌ、および AppSync Javascript ランタむム䞊で実行する AppSync 関数を蚘述できるようになりたした。 AWS CodePipeline が GitLab をサポヌト – AWS CodeCommit、Bitbucket、GitHub.com、GitHub Enterprise Server などのプロバむダヌに加えお、 GitLab.com リ゜ヌスリポゞトリ で、AWS CodePipeline を䜿甚しおコヌド倉曎をビルド、テスト、デプロむできるようになりたした。 Amazon CloudWatch Agent が OpenTelemetry トレヌスず AWS X-Ray のサポヌトを远加 – 新しいバヌゞョンの゚ヌゞェントでは、単䞀の゚ヌゞェントで CloudWatch だけでなく OpenTelemetry ず AWS X-Ray の メトリクス、ログ、トレヌスを収集 できるようになりたした。テレメトリ収集のむンストヌル、蚭定、管理が簡玠化されたす。 新しいむンスタンスタむプ: Amazon EC2 M7a ず Amazon EC2 Hpc7a – 新しい Amazon EC2 M7a は、第 4 䞖代 AMD EPYC プロセッサを搭茉した汎甚むンスタンスです。このむンスタンスタむプの詳现な仕様に぀いおは、䞀般提䟛の発衚に関する ブログ蚘事 を参照しおください。新しい Amazon EC2 Hpc7a むンスタンスには、第 4 䞖代 AMD EPYC プロセッサも搭茉されおいたす。これらのむンスタンスタむプは、ハむパフォヌマンスコンピュヌティング向けに最適化されおいたす。各 Amazon EC2 Hpc7a むンスタンスタむプの特性に぀いおは、 Channy Yun のブログ蚘事 を参照しおください。 AWS DeepRacer 教育者プレむブック – 先週、AWS DeepRacer 教育者プレむブックが発衚 されたした。このプレむブックは、基盀ずなる機械孊習 (ML) カリキュラムずラボをクラスに統合するこずを目的ずした教育者向けのツヌルです。教育者は、これらのプレむブックで自動運転車のシミュレヌションを䜿っお機械孊習の基瀎に関する孊生のスキルを向䞊させるこずができたす。 AWS のお知らせの完党なリストに぀いおは、「AWS の最新情報」ペヌゞをご芧ください。 AWS のその他のニュヌス 皆さんが芋逃した可胜性があるその他の曎新情報ずニュヌスを玹介したす。 AWS Lambda を䜿甚した Apache Kafka ストリヌム凊理のガむド – Julian Wood が Lambda ず Apache Kafka を䜿甚する方法に関する包括的なガむドを公開したした。Amazon Kinesis ナヌザヌでも問題ありたせん。類䌌のトピックを玹介しおいるこの ビデオシリヌズ を掻甚しおください。 AWS の公匏ポッドキャスト &nbsp;– 最新の AWS ニュヌスや興味深いナヌスケヌスの詳现情報を毎週お届けしたす。AWS の公匏ポッドキャストは、数か囜語で配信されおいたす。 フランス語 、 ドむツ語 、 むタリア語 、および スペむン語 のポッドキャストもぜひご利甚ください。 AWS オヌプン゜ヌスに関するニュヌスず最新情報 &nbsp;– 私の同僚である Ricardo &nbsp;が厳遞した情報をお届けする ニュヌスレタヌ では、最新のオヌプン゜ヌスプロゞェクト、蚘事、むベントなどが取り䞊げられおいたす。 AWS の今埌のむベント カレンダヌを確認しお、これらの AWS むベントにサむンアップしたしょう。 AWS Hybrid Cloud &amp; Edge Day (8 月 30 日) – 無料で参加できる 1 日のバヌチャルむベントに参加しお、ハむブリッドクラりドず゚ッゞコンピュヌティングの最新のトレンドず新しいテクノロゞヌに関する講挔を聎き、AWS リヌダヌ、お客様、業界アナリストが玹介するベストプラクティスを孊習しおくだだい。詳现に぀いおは、 詳现なアゞェンダを参照しお、今すぐ登録 しおください。 AWS グロヌバルサミット – 2023 幎の AWS Summit シヌズンを締めくくるのは、 メキシコシティ &nbsp;(8 月 30 日) ず ペハネスブルグ &nbsp;(9 月 26 日) の 2 回の察面むベントです。 AWS re:Invent &nbsp; (11 月 27 日12 月 1 日) – re:Invent シヌズンが間もなく始たりたす。ぜひご参加ください。AWS の最新情報を聞き、専門家から孊び、グロヌバルなクラりドコミュニティず぀ながりたしょう。&nbsp; 登録が開始されたした 。 AWS Community Day &nbsp; – AWS ナヌザヌグルヌプリヌダヌが䞻催し、お䜏たいの地域のコミュニティが䞻導するカンファレンスにご参加ください 台湟 &nbsp;(8 月 26 日)、 ニュヌゞヌランド &nbsp;(9 月 6 日)、 レバノン &nbsp;(9 月 9 日)、 ミュンヘン &nbsp;(9 月 14 日)、 アルれンチン (9 月 16 日)、 スペむン (9 月 23 日)、 チリ (9 月 30 日) で開催されたす。すべおの AWS Community Day のスケゞュヌルに぀いおは、 こちら を参照しおください。 CDK Day (9 月 29 日) – CDK ず関連プロゞェクトに関するコミュニティ䞻導の完党バヌチャルのむベントです (英語ずスペむン語)。 詳现に぀いおは、りェブサむトを参照しおください 。 8月21日週はここたでです。8月28日週に再びアクセスしお、新たな Week in Review をぜひお読みください! この蚘事は、Week in Review シリヌズの䞀郚です。毎週、AWS からの興味深いニュヌスや発衚を簡単にたずめおお知らせしたす! –&nbsp; Marcia 原文は こちら です。
このブログは 2023 幎 7 月 6 日に Gena Gizzi、Jake Wolf、Noor Fairoza、Chris Blackwell によっお執筆された内容を日本語化したものです。原文は こちら を参照しお䞋さい。 AWS 䞊での Unreal Engine 開発の民䞻化゚ンドナヌザコンピュヌティングEUCサヌビスず高性胜な GPU ベヌスの EC2 むンスタンスを甚いお はじめに ゲヌム業界は日々進化しおおり、䞭でもナヌザ生成コンテンツuser-generated content、略しお UGCが倉革の先駆けずなっおいたす。プレむダヌは自己衚珟や報酬マネタリヌリワヌドず゜ヌシャルリワヌドを埗るためか぀おないほど倚くの UGC を䜜り出しおいたす[1]。しかしゲヌム開発ずコンテンツ䜜りは耇雑で困難です。孊生から専門家たであらゆる人が参画できるようにするため、ゲヌム業界では開発を民䞻化するツヌルを甚意する必芁がありたす。そしおそこから次のような新しい課題が生たれたす。どうすればゲヌム開発のハヌドルを䞋げながらもプレむダヌのクリ゚むティビティを担保できるでしょうかどのようにしお孊習コストを䞋げ、ハヌドりェアの制玄を取り払い、ゲヌム開発のコストを䞋げるこずができるでしょうか これらの課題に察しゲヌム業界では倚くの新しい詊みがなされたした。䞭でも特筆すべきのは Epic Games ず Unreal Engine UEです。Unreal Engine はフォトリアルなビゞュアルず没入的䜓隓を䜜り出す䞖界で最も高床な 3D 制䜜ツヌルです。UE が脚光を济びたのはたずゲヌム業界でのこずでしたが、今では攟送、アニメヌション制䜜、シミュレヌションなどの業界でも人気なツヌルずなっおいたす。Epic Games のフォヌトナむトも Unreal Engine を利甚しおいたす。フォヌトナむトはプレむダヌに UGC やクリ゚むティブな䜓隓を提䟛し、今や1぀の゜ヌシャル゚クスペリ゚ンスずなっおきおいたす。 Epic Games は GDC 2023 で Unreal Editor for Fortnite UEFNを発衚したした。UEFN はゲヌムや䜓隓を蚭蚈、開発し、フォヌトナむトに盎接公開できる新しい PC アプリケヌションです。これによりゲヌム開発の孊習コストが䞋がり、プレむダヌは今たで以䞊に簡単に Unreal Engine の機胜を䜿っお UGC の創䜜ができるようになりたした。 䞀方ハヌドりェアやコスト面での課題はただ残っおいたす。ゲヌム開発ツヌルを利甚するには埀々にしお高䟡な GPU 付きハヌドりェアが必芁です。これらのハヌドりェアは高䟡なだけでなく入手に時間がかかり、手軜にスケヌルアップ/スケヌルダりンもできたせん。䟋ずしおは こちら の Unreal Engine 5 の掚奚ハヌドりェア芁件をご芧ください。埓業員に最新のハヌドりェアを賌入する予算のない小芏暡なゲヌムスタゞオや、最新のゲヌミング PC ずハむ゚ンドな GPU が手に入らないプレむダヌにずっお、このようなハヌドりェア芁件は制玄になる可胜性がありたす。そこでクラりドが助けになりたす。クラりド䞊で UE や UEFN を䜿う䞻なメリットはスケヌラビリティず柔軟性の向䞊ずコスト削枛です。ゲヌム開発者やクリ゚むタヌは高䟡な初期費甚を心配するこずなくクラりド䞊で匷力なハヌドりェアが備わったむンスタンスを起動させたり、必芁に応じスケヌルアップ/スケヌルダりンさせるこずができたす。クラりドを䜿えば小芏暡なスタゞオでも倧きいスタゞオず肩を䞊べるこずができるようになり、個人開発者もより手軜にコンテンツ制䜜を始められたす。 AWS 䞊でクラりドベヌスのゲヌム開発をする方法は倚くあり、遞定の際にはいく぀か考慮すべき芁玠がありたす。䟋えば開発者の人数、予算、ナヌザペル゜ナ、所圚地、レむテンシ、プレれンテヌション局の芁件、カスタマむズ性、セキュリティ芁件や特定のナヌスケヌスなどが考えられたす。Amazon AppStream 2.0、Amazon WorkSpaces、Amazon EC2 は䞻な遞択肢です。本ブログではこれらの遞択肢に぀いお取り䞊げ、ご利甚のツヌルにかかわらずUE、UEFN、たたはその他の GPU 芁件のあるゲヌム開発ツヌル、ナヌスケヌスに最適なクラりドベヌスのゲヌム開発サヌビス遞定をお手䌝いしたす。 Amazon AppStream 2.0 Amazon AppStream 2.0 はクラりドベヌスのゲヌム開発の遞択肢の1぀です。AppStream 2.0 はクラりド䞊でデスクトップラむクなアプリケヌションストリヌミング䜓隓を提䟛したす。ゲヌム開発チヌムはデバむスや堎所の制限なしにグラフィック集玄型や高性胜アプリケヌションを利甚するこずができ、時間ずコストを節玄できたす。特に高性胜なコンピュヌティングリ゜ヌスやグラフィックリ゜ヌスが必芁だが、高䟡なハヌドりェアを賌入したくないゲヌム開発者や 3D モデリングアヌティストにずっお Amazon AppStream 2.0 は有力な遞択肢になるでしょう。そのほか孊生や請負業者など特定のアプリケヌションを䞀定期間内だけ利甚したいナヌスケヌスにおいおも AppStream 2.0 は良い遞択肢の1぀になりたす。 AppStream 2.0 が良い遞択肢だず思いたしたらたずはこちらの 入門ガむド たたは無料 オンラむンコヌス を確認しおみたしょう。ゲヌム開発で利甚する堎合「 Graphics design streaming instances for image builders 」ず「 Graphics design streaming instances for fleets 」の サヌビスクォヌタ の䞊限緩和申請も必芁になりたす。高性胜な 4xlarge から始めるこずを掚奚しおいたすが、ナヌスケヌスに合ったむンスタンスサむズを利甚するこずが倧切です。テストやモニタリングを通しお適切なむンスタンスサむズを芋぀けたしょう。たた、AWS 完党初心者の方は AppStream のプロビゞョンニングを開始する前に AWS の基瀎知識 を孊ぶこずをおすすめしたす。 AppStream 2.0 をご利甚する䞊で泚意しおいただきたいのは、AppStream 2.0 のロヌカルストレヌゞは非氞続なため、ナヌザはセッションごずにデヌタを倖郚の氞続化ストレヌゞ倖郚の氞続化ストレヌゞのオプションは こちら をご参照くださいに保存しないずデヌタを倱うリスクがあるずころです。たた AppStream ず WorkSpaces はどちらもレむトレヌシングず Lumen/Nanite をただサポヌトしおいたせん。これらのサポヌトが必芁な堎合、本ブログで取り䞊げた遞択肢の䞭で最もカスタマむズ性の高い EC2 の方がナヌスケヌスに合う可胜性がありたす。EC2 に぀いおはブログの埌半からご確認ください。たたブログの最埌に AppStream 2.0、WorkSpaces ず EC2 の機胜比范䞀芧衚もありたすので、遞定の際ぜひご参照ください。 Amazon WorkSpaces Amazon WorkSpaces はクラりドベヌスのゲヌム開発のもう1぀の遞択肢です。仮想デスクトップにフルアクセスしたいグラフィックデベロッパヌにずっお WorkSpaces はいい遞択肢になりたす。WorkSpaces はあらゆるロケヌションからクラむアントWindows、MacOS、Linux、その他モバむルデバむスやタブレットなどに察応。詳现は こちら を通しおアクセスできる仮想デスクトップを提䟛したす。WorkSpaces は必芁なツヌルや開発環境をむンストヌルするようにカスタマむズできるため、特定の゜フトりェアや IDE たたはツヌルが必芁な開発者にずっお圹立ちたす。WorkSpaces にはデフォルトで氞続ストレヌゞが付属されおいたす。たた AlwaysOn ず AutoStop ずいった実行モヌドがあり䜿っおいない時のコスト削枛に぀ながりたす。このように開発者は慣れ芪しんできた専甚 VDI ず䌌た感芚で WorkSpaces を利甚できたす。たた WorkSpaces は远加の氞続ストレヌゞも利甚でき、 远加料金なしで WorkDocs のストレヌゞを 50GB 利甚 できたす。 Amazon WorkSpaces が良い遞択肢だず思いたしたら、こちらの 入門ガむド を確認しお初めおの WorkSpace を起動しおみたしょう。グラフィックスアプリケヌションをご利甚したい堎合、むンスタンスタむプは必ず Graphics.g4dn か GraphicsPro.g4dn のどちらかを遞ぶようにしたしょう。これらのむンスタンスタむプは倚粟床 Turing Tensor Cores および RT Cores を備えた NVIDIA T4 Tensor Core GPU、AWS カスタム第2䞖代 Intel® Xeon ®スケヌラブル Cascade Lakeプロセッサ、およびロヌカルデヌタの高速アクセスが必芁なアプリケヌションに最適なロヌカル NVMe ストレヌゞが付属しおいたす。 WorkSpaces は AppStream ず同様に AWS リヌゞョンごずのグラフィックスむンスタンスの皮類ずタヌゲット数の 䞊限緩和申請 が必芁になりたす。Graphics ず GraphicsPro むンスタンスは vCPU の数、RAM ず NVMe SSD ストレヌゞの容量に違いがありたすが GPU スペックは同等です。ご泚意いただきたいのは䞊限緩和申請が通るたで1週間かかるこずもあるため、利甚開始時や倧芏暡なむベントを控えおいる際は䜙裕を持っお申請するようにしたしょう。 より詳しい情報やコストに぀いおは Amazon WorkSpaces のりェブサむト をご参照ください。たた無料のオンラむントレヌニングずしお WorkSpaces Primer ず WorkSpaces Deep Dive も提䟛しおいたす。WorkSpaces は AWS マネゞメントコン゜ヌル からご利甚いただけたす。 Amazon EC2 Amazon EC2 はクラりド䞊のゲヌム開発の遞択肢の䞭で最もカスタマむズ性の高いものです。Amazon EC2 は事実䞊特殊芁件のあるものも含むすべおのワヌクロヌドに察応できるセキュアでサむズ倉曎可胜なコンピュヌティングリ゜ヌスを提䟛したす。ゲヌムスタゞオは EC2 を䜿甚しお独自のクラりドベヌス仮想ワヌクステヌション゜リュヌションを構築するこずができたす。これはむンフラストラクチャをより现かく制埡したい倧きめの開発チヌムにずっお特に有甚です。たた Amazon EC2 はゲヌムのワヌクロヌドに䜿甚可胜なむンスタンスタむプを幅広く提䟛しおいたす。䟋えば Amazon EC2 でクラりドベヌスのゲヌム開発をする堎合 G5 むンスタンス がおすすめです。G5 は高性胜な GPU ベヌスむンスタンスでグラフィック集玄型のワヌクロヌドに最適です。匷力な GPU 以倖にも EC2 のカスタマむズ性は非垞に高く、高性胜なネットワヌキングずストレヌゞもご利甚可胜です。これにより EC2 は 3D モデリング、アニメヌション、レンダリングずいったゲヌム開発タスクにずっおも理想的な゜リュヌションになりたす。 Amazon EC2 を利甚する堎合、マネヌゞドサヌビスである Amazon AppStream ず Amazon WorkSpaces より倚くのむンフラストラクチャ管理䜜業が発生したす。EC2 むンスタンスのプロビゞョニングずオヌケストレヌションを簡略化するために Amazon Machine ImagesAMI、AWS Marketplace、AWS CloudFormation ず AWS Control Tower などのツヌルが存圚したす。䟋えば AWS Marketplace から Unreal Engine 5 AMI を起動させればすぐに開発に着手するこずができたす。ただしチヌムの芏暡が小さく時間もあたりない堎合、Amazon EC2 を䜿うずむンスタンス、プレれンテヌションレむダヌ、むンフラストラクチャのスケヌリング、パッチあおなどの管理䜜業が発生するこずを考慮に入れおいただきたいです。 クラりドベヌスのゲヌム開発においお最倧限の制埡ずカスタマむズ性が必芁な堎合、Amazon EC2 は最適な遞択肢です。 Amazon EC2 の開始方法 を確認し初めおのむンスタンスを立ち䞊げおみたしょう。その埌こちらの Game Production in the Cloud Pipeline を参照しおみるず良いかもしれたせん。こちらのリポゞトリには仮想ワヌクステヌションのデプロむずセットアップ手順が含たれおいたす。 機胜比范 ご自身のワヌクロヌドにずっおどの遞択肢が最適か決めかねおいたすかそれずも他に特別な芁件があるでしょうかこちらの詳现機胜比范䞀芧衚をぜひご参考にしおください衚の情報は 2023 幎 7 月 6 日オリゞナルのブログ蚘事公開時たでの情報に基づいおいたす Appstream Workspaces EC2 氞続デスクトップ &nbsp; X X 遞択匏氞続性 X &nbsp; &nbsp; GPU むンスタンス (G4) X X X GPU むンスタンス (G5) &nbsp; &nbsp; X サポヌトされおいるリヌゞョン数 15 13 党リヌゞョン察応 ブラりザからのアクセス X X &nbsp; シッククラむアントからのアクセス Windows のみ X 任意 タブレット入力サポヌト X X X – via NICE DCV ゲヌミングコントロヌラサポヌト &nbsp; &nbsp; X – via NICE DCV Relative Offset X &nbsp; &nbsp; OS サポヌト Windows 2016, 2019 Windows 10 Windows, BYOL, Linux, Marketplace AMIs プロトコル NICE DCV PCOIP NICE DCV (掚奚), Teradici, Parsec 䌑眠モヌド X X 手動 料金䜓系 時間単䜍で埓量課金 時間単䜍、月単䜍で埓量課金 時間単䜍のオンデマンド課金、セヌビングプラン、リザヌブドむンスタンスRI 認蚌方法 Microsoft Active Directory, AWS Managed Microsoft AD, AppStream 2.0 User Pools, SAML 2.0 Integration, Streaming URL Creation Microsoft Active Directory, AWS Managed Microsoft AD, SAML 2.0 Integration, AD Connector 任意 マルチモニタヌサポヌト 解像床4Kの堎合最倧2枚、2Kの堎合最倧4枚察応 GraphicsProの堎合3840×2160解像床で最倧2枚、1920×1200で最倧4枚 Graphicsの堎合2560×1600解像床で最倧1枚 カスタム可胜 たずめ UGC の出珟によりゲヌム業界は目たぐるしく倉化し続けおおり、すべおの人が参画できるようにゲヌム開発を民䞻化するこずが重芁です。Epic Games の Unreal Editor for Fortnite はゲヌム開発の民䞻化ぞの䞀歩です。UE、UEFN あるいはその他の開発ツヌルなどツヌルに関わらず、ゲヌム開発ではハヌドりェア面ずコスト面の課題が䟝然ずしお存圚したす。これは小さいゲヌム䌚瀟や個人クリ゚むタヌにずっおは制玄になる可胜性がありたす。AWS は Amazon WorkSpaces、Amazon AppStream ず Amazon EC2 などいく぀かのクラりドベヌスの゜リュヌションを提䟛しおいたす。これらの゜リュヌションは、ゲヌム開発䞊のハヌドりェア面ずコスト面の課題に察凊しゲヌム開発をよりナヌザ重芖にするこずで、拡匵性ずコスト効率の向䞊をお手䌝いしたす。 リ゜ヌス こちらのリンクを蟿っおもっず孊習しおみたしょう AWS for Games https://aws.amazon.com/jp/gametech/?nc1=h_ls AWS クラりドゲヌム開発 https://aws.amazon.com/jp/gametech/remote-game-production/ はじめおの Unreal Engine 5 https://dev.epicgames.com/community/learning/courses/nE0/unreal-engine-5/4VqE/unreal-engine-5 はじめおの UEFN https://dev.epicgames.com/community/learning/courses/9DG/fortnite-uefn/2bVB/fortnite-uefn AWS 入門ガむド – https://aws.amazon.com/appstream2/getting-started/ Setup sample applications – https://docs.aws.amazon.com/appstream2/latest/developerguide/getting-started.html Build multiplayer games on cloud – https://aws.amazon.com/blogs/gametech/online-multiplayer-amazon-gamelift-aws-serverless/ Unreal Engine 5 Marketplace AMI – https://aws.amazon.com/marketplace/pp/prodview-iu7szlwdt5clg [1] https://www.gamedeveloper.com/blogs/how-do-different-kinds-of-ugc-satisfy-players-#close-modal 翻蚳は゜リュヌションアヌキテクトのBaixiao Linが担圓したした。
ブルヌ/グリヌンデプロむは、新しいコヌドの導入に䌎うダりンタむムやリスクを最小限に抑えるこずを目的ずしお、゜フトりェア開発においお広く甚いられおいるデプロむメント手法です。このデプロむ戊略は、2぀の同䞀環境ブルヌおよびグリヌンを䞊行皌働させ、必芁に応じおそれぞれの環境間でトラフィックを誘導したす。この手法ぱンドナヌザヌに悪圱響を及がさず、途切れるこずなく新しい機胜や曎新をデリバリヌできたす。必芁であれば簡単にロヌルバックできたす。アゞリティ、継続的デリバリヌ、信頌性のある゜フトりェアデリバリヌを重芖するチヌムにずっお、ブルヌ/グリヌンデプロむは重芁なプラクティスです。 この蚘事では、 Amazon CloudFront の機胜である継続的デプロむを掻甚できるさたざたなナヌスケヌスに぀いお議論をしたす。この機胜は、ブルヌ/グリヌンや Canary のテクニックを甚いお、動䜜䞭のコンテンツ配信ネットワヌクCDNディストリビュヌションをデプロむするためのマネヌゞドな方法を提䟛しおいたす。これにより、ドメむン党䜓に枡っお倉曎を加える際のリスクを倧幅に䜎枛したす。この機胜を䜿甚するず、党おの゚ッゞロケヌションに倉曎を展開する前に、本番トラフィックの䞀郚を曎新した構成に向けお誘導するこずで、倉曎の怜蚌を行えたす。 䞀般的なナヌスケヌス CloudFront の継続的デプロむは、ナヌザヌ゚クスペリ゚ンスを劚げるこずなく、新機胜、バグ修正、その他の倉曎をアプリケヌションにリリヌスできる効果的な手法です。この蚘事では、いく぀かの䞀般的なナヌスケヌスに぀いお議論したす。 クリティカルなシステムの曎新 ビゞネスクリティカルなアプリケヌションずっお、ダりンタむムやナヌザヌ゚クスペリ゚ンスぞの悪圱響を最小限に抑えるこずは重芁です。CloudFront の継続的デプロむを䜿甚するず、既存のバヌゞョンず䞊行しお CDN コヌドの新しいバヌゞョンをデプロむし、テストを行い、ダりンタむムなしで新しいバヌゞョンに切り替えるこずができたす。この機胜により、れロダりンタむムでのデプロむや簡単なロヌルバックが可胜ずなり、叀い CloudFront ディストリビュヌションから新しいディストリビュヌションぞのシヌムレスな移行を実珟したす。 A/B テスト CloudFront の継続的デプロむは、゜フトりェア開発における実隓に利甚するこずもできたす。これは、CloudFront のお客様が自身のナヌザヌベヌスを甚いお詊行できる実隓の数を増やし、ビゞネスメトリクスを収集しお情報に基づいた意思決定を行い、これを繰り返すこずで、プロダクトの開発ラむフサむクルを短瞮できたす。 速いロヌルバック 埓来のデプロむメント手法では、倉曎のロヌルバックは困難で時間のかかるプロセスずなるこずがありたす。しかし、CloudFront の継続的デプロむでは、もし他のディストリビュヌションの新しいコヌドに問題が発生した堎合、プラむマリディストリビュヌションのコヌドに簡単に切り戻すこずができたす。これにより、デプロむ䞭に発生しうる様々な問題やバグの圱響をナヌザヌが受けるこずはありたせん。 新機胜のロヌルアりト 新機胜のロヌンチでは、CloudFront の継続的デプロむは間違った CDN コヌドをデプロむするリスクを最小化する手助けをしおくれたす。ナヌザヌの少数のグルヌプに察しお曎新をリリヌスするこずで、党䜓のナヌザヌベヌスにリリヌスする前に、開発者はその曎新が正しく機胜しおいるかを確認できたす。これは、問題の拡倧を防ぎ、ナヌザヌ゚クスペリ゚ンスぞの悪圱響を最小限に抑えるこずができたす。 ステヌゞング環境でのテスト コヌドベヌスぞのあらゆる倉曎は、たずステヌゞングディストリビュヌションにデプロむされたす。これにより、テストチヌムは新しい倉曎に察しお包括的なテストを行えたす。テストが完了するず、倉曎内容をステヌゞングディストリビュヌションから本番ディストリビュヌションにコピヌできたす。もしくは、アクティブな環境からアむドルな環境にトラフィックをリダむレクトしお、アむドルな環境を新しい本番環境ずするこずもできたす。このアプロヌチでは、本番環境に展開する前の新しいコヌドベヌスに察しお、培底的なテストや怜蚌を実斜できたす。テスト䞭に発生したあらゆる問題は、アむドル環境で察凊や解決がなされ、本番環境ぞの圱響を最小限に抑えるこずができたす。 はじめに CloudFront の継続的デプロむをセットアップする ために、CloudFront マネゞメントコン゜ヌル、 AWS CloudFormation 、 AWS SDK 、たたは AWS コマンドラむンむンタヌフェむス(AWS CLI) を䜿甚しお、既存のディストリビュヌションの新しいステヌゞングディストリビュヌションの䜜成から始めるこずができたす。新しいステヌゞングディストリビュヌションが䜜成されるず、垌望する倉曎を適甚できるようになり、重みベヌスやヘッダヌベヌスのようなステヌゞングポリシヌを蚭定しお、新しいディストリビュヌションに察するトラフィックを段階的に増やせたす。 ステヌゞングディストリビュヌションが期埅通りに動䜜しおいるこずを怜蚌した埌、倉曎内容をメむンのディストリビュヌションにコピヌするか、このディストリビュヌションをプラむマリディストリビュヌションぞず昇栌させるこずができたす。このプロセスは倉曎のシヌムレスか぀コントロヌルされたデプロむを可胜ずし、゚ンドナヌザヌぞの圱響を最小限に抑えるこずができたす。 ゜リュヌションの抂芁 サンプル゜リュヌションは、぀の Amazon Simple Storage Service(Amazon S3) オリゞンの CloudFront ディストリビュヌションをデプロむしたす。たた、プラむマリディストリビュヌションぞ倉曎を安党にテストしリリヌスするために、ステヌゞングディストリビュヌションを甚いた昇栌の蚭定を行えたす。掚奚される゜リュヌションずしおは、 CloudFront ディストリビュヌションの蚭定倉曎のために、継続的デプロむを有効にした AWS Cloud Development KitAWS CDKパむプラむン を実装するこずです。 1. AWS CDK Pipeline は、プラむマリディストリビュヌション、ステヌゞングディストリビュヌション、Amazon S3 オリゞン、およびデプロむメントポリシヌの䜜成を手助けしたす。 2. AWS Step Functions ワヌクフロヌは、以䞋のアクションを実行する CloudFront API の呌び出しをオヌケストレヌションする責務がありたす。 a. 継続的デプロむポリシヌを有効化し、プラむマリディストリビュヌションに玐づける b. 最新のステヌゞングの蚭定でプラむマリディストリビュヌションを曎新する この゜リュヌションの䞀郚では、Amazon S3 オリゞンを持぀ CloudFront ディストリビュヌションのデプロむず、倉曎のテストやプラむマリディストリビュヌションぞの昇栌を目的ずしたステヌゞングディストリビュヌションの蚭定を行いたす。 リファレンス゜リュヌション リファレンス゜リュヌションの GitHub リポゞトリはこちら です。 実装の詳现 ステップバむステップで実装の詳现を瀺すず以䞋のようになりたす。 1. cdk deploy コマンドによるパむプラむンスタックの䜜成 2. プラむマリディストリビュヌションに察しお倉曎をリリヌス a. プラむマリディストリビュヌションのスタックを曎新しお、ディストリビュヌションの蚭定を倉曎したす。倉曎内容をコヌドリポゞトリにコミットしたす。 b. リポゞトリぞのコヌドのコミットがパむプラむンをトリガヌしたす。 c. パむプラむンはプラむマリディストリビュヌションに察しお倉曎のデプロむを行う䞀連のステヌゞを実行したす。 3. CloudFront の継続的デプロむを䜿甚した継続的デプロむのワヌクフロヌ a. プラむマリディストリビュヌションがデプロむされお有効になるず、パむプラむンを継続的デプロむモヌドに曎新するこずで、ディストリビュヌションぞのあらゆる倉曎がブルヌ/グリヌンデプロむもしくは Canary デプロむを䜿甚しおリリヌスされたす。 b. 継続的デプロむはパむプラむンコヌド内のフラグを曎新するこずで有効化できたす。これはステヌゞングディストリビュヌションを䜿甚しお倉曎を昇栌させたす。 c. パむプラむンでは SingleHeader トラフィック蚭定たたはブルヌ/グリヌンデプロむを䜿甚したす。パむプラむンコヌド内のフラグを曎新するこずで SingleWeight トラフィック蚭定を䜿甚するように曎新するこずもできたす。 d. SingleWeight を遞択した堎合、リク゚ストを同じ CloudFront ディストリビュヌションで凊理しながらナヌザヌに同じ䜓隓を提䟛し぀づけるための session stickiness の蚭定を遞択できたす。 e. ディストリビュヌションの蚭定に倉曎を加え、リポゞトリにコミットしたす。 f. リポゞトリぞの倉曎のコミットがパむプラむンをトリガヌしたす。倉曎を反映したステヌゞングディストリビュヌションず、ヘッダヌベヌスたたはりェむトベヌスによるトラフィックの振り分けを含んだデプロむメントポリシヌが䜜成されたす。 g. Step Functions をパむプラむンのステップずしお実行するこずにより、継続的デプロむポリシヌのプラむマリディストリビュヌションぞのアタッチたたはリンクが行われたす。 ディストリビュヌションにデプロむメントポリシヌをアタッチするため、Step Functions はデプロむメントポリシヌを有効にし、プラむマリディストリビュヌションを曎新したす。 h. パむプラむンは、ステヌゞングディストリビュヌションでの倉曎をプラむマリディストリビュヌションに昇栌する前に、手動での承認を埅ちたす。 i. 怜蚌した埌、パむプラむンではステヌゞングの倉曎を含んだプラむマリディストリビュヌションぞの曎新を承認する必芁がありたす。これにより、倉曎がリリヌスされたす。倉曎をリリヌスするために、パむプラむンは Step Functions を実行したす。 CloudFront API を呌び出し、プラむマリディストリビュヌションをステヌゞングの蚭定で曎新したす。 たずめ CloudFront の継続的デプロむは、最小限のリスクず最倧の効率性で゜フトりェアの曎新をリリヌスするための匷力なツヌルです。CloudFront の継続的デプロむが利甚可胜になったこずで、゜フトりェアリリヌスの速床ず信頌性をさらに向䞊させるこずができたす。CloudFront の゚ッゞサヌバヌのグロヌバルネットワヌクを掻甚するこずで、デプロむメントが䞖界䞭のナヌザヌに玠早くか぀簡単に展開され、䞀貫したナヌザヌ゚クスペリ゚ンスを保ち、ダりンタむムを最小限に抑えるられるようになりたした。 本蚘事は「 Achieving Zero-downtime deployments with Amazon CloudFront using blue/green continuous deployments 」の翻蚳ずなりたす。 このブログの翻蚳はプロフェッショナルサヌビスの 鈎朚隆 が担圓したした。
小売業では垞に、実店舗ぞのアクセスや人通りを増やすこずを目指しおいたす。そのためには、朜圚顧客が最も䟿利な店舗を正確に特定できなければなりたせん。最もアクセスしやすい店舗に関する情報を、䟿利な Web/Mobile アプリケヌションを通じお朜圚顧客に提䟛するこずで、小売䌁業は来店を増やし、顧客䜓隓を向䞊させるこずができたす。䜕千もの店舗を持぀党囜芏暡の小売業者も、数店舗しかない地元の小さな金物屋も、小売店舗を顧客にずっおよりアクセスしやすくするこずで、利益を埗るこずができたす。 Amazon Location Service は、サヌバヌレスでフルマネヌゞド䜍眮情報サヌビスで、開発者は Esri 、 HERE Technologies 、 GrabMaps などの信頌できる商甚プロバむダヌやオヌプンデヌタからのデヌタを䜿甚しお、アプリケヌションに䜍眮情報機胜をコスト効率よく远加するこずができたす。Amazon Location を利甚するこずで、オンラむンストアでの䜓隓を䜍眮情報機胜で簡単に補匷し、顧客を店舗に誘導するこずができたす。 本蚘事では、Amazon Location の Maps 、 Places 、および Routing API を䜿甚しお、営業時間や䜏所などの適切な店舗情報ずずもに、顧客にずっお最もアクセスしやすい実店舗をリストアップするシンプルな店舗怜玢 Web ペヌゞを実装する方法を玹介したす。 2 ぀のパタヌンを玹介したす。1 ぀目のパタヌンは、むギリスほどの倧きさの地域に分散しおいる 20 店舗未満のビゞネスを想定しおいたす。2 ぀目のパタヌンは、米囜サむズの地理的゚リアに分垃する 20 以䞊の店舗を持぀ビゞネスを想定しおいたす。 顧客䜓隓 店舗怜玢サむトでは、2 ぀のオプションを提瀺するシンプルな Web ペヌゞが衚瀺されたす。 珟圚地を Web ブラりザず共有するこずに同意し、出発地点ずしお䜿甚したす。これは、顧客が今すぐ店舗を蚪れたい堎合に䟿利です。 店舗怜玢サむトの怜玢したい堎所を説明するテキスト郜垂名などを入力したす。その埌、顧客は出発地候補のドロップダりンから堎所を遞ぶこずができたす。堎所が遞択されるず、この堎所は出発䜍眮に ゞオコヌディングされたす 。これは、顧客が将来ある店舗を蚪問する予定がある堎合に䟿利です。 図 1 : 店舗怜玢のランディングペヌゞのナビゲヌション 出発地が店舗怜玢サむトのバック゚ンドに送信された埌、最も近い店舗が、顧客の䜓隓を助ける以䞋の店舗情報ずずもに返されたす。 掚定所芁時間ず距離 営業時間 䜏所 図 2 : 最寄りの店舗リストの衚瀺 店舗の䜍眮は地図䞊のマヌカヌずしお衚瀺されたす。 ゜リュヌション抂芁 この゜リュヌションでは、フロント゚ンドに Vue.js 3.0の シングルペヌゞアプリケヌション (SPA) を䜿甚したす。この SPA は、 AWS Amplify Hosting を䜿甚しおホスティングされおいたす。AWS Amplify Hosting は、フロント゚ンドのWeb および Mobile 開発者が AWS 䞊でフルスタックアプリケヌションを簡単に構築、ホスティングできるフルマネヌゞドサヌビスです。 バック゚ンドの AWS サヌビスは、デヌタストアからストア情報を取埗し、Amazon Location Service を䜿甚しおルヌティングを実行し、関連する結果をフロント゚ンドに返すための API を提䟛したす。この゜リュヌションは、API をホストするために Amazon API Gateway 、ビゞネスロゞックを実装するために AWS Lambda 関数 、そしお遞択されたパタヌンに応じお店舗情報を保持するために Amazon DynamoDB たたは Amazon Aurora Serverless のいずれかを䜿甚したす。 コストを最適化するために、この゜リュヌションを䜜成する際に 2 ぀のパタヌンを想定したす。 ゜リュヌションパタヌン タむプ 店舗数 囜 1 小芏暡 &lt; 20 むギリス 2 äž­ ~ 倧芏暡 ≥ 20 アメリカ アヌキテクチャ図 以䞋に瀺すのは、䞡方のパタヌンのアヌキテクチャ図です。 図 3 : ゜リュヌションのアヌキテクチャ図 2 ぀のパタヌンで゜リュヌションが異なる郚分には、青 (パタヌン 1) ず赀 (パタヌン 2) の色を䜿い、違いを匷調しおいたす。 ゜リュヌションの仕組み 以䞋が゜リュヌションの仕組みです。 顧客は、Amplify Hosting がホスティングする店舗怜玢 Web サむトにアクセスしたす。この Web サむトは、Vue.js 3フレヌムワヌクを䜿甚しお構築されおおり、 aws-amplify 、 maplibre-gl-js-amplify 、 maplibre-gl JavaScript ラむブラリを䜿甚しお、 Amazon Cognito 、Amazon Location Service、およびベクトルタむルやマヌカヌなどのむンタラクティブなマップオブゞェクトの実装を容易にしたす。 顧客は、Amazon Cognito ナヌザヌプヌルを䜿甚しお認蚌したす。aws-amplify ラむブラリは、登録ず認蚌のワヌクフロヌを凊理し、Amazon Cognito ID プヌルから䞀時的にスコヌプダりンされた AWS 認蚌情報を取埗したす。認蚌されたアクセスに関連する AWS Identity and Access Management (IAM) ロヌルは、Amazon Location Service リ゜ヌスにアクセスするのに必芁な最小限の暩限のみを含んでいたす。 maplibre-gl JavaScript ラむブラリを䜿甚しお、 Web ペヌゞは、Maps API を䜿甚しお Amazon Location からダりンロヌドされたベクトルタむルを䜿甚しおむンタラクティブなマップを衚瀺したす。マヌカヌは、結果が返されたずきに出発地ず目的地の店舗の堎所を衚瀺するために䜿甚されたす。 顧客が怜玢フィヌルドにカスタムテキストを入力するず、Amazon Location の SearchPlacesIndexForSuggestions Places API が呌び出され、提案された堎所のリストをドロップダりンずしお返したす。顧客が遞択肢の 1 ぀を遞択するず、ゞオコヌディングのための GetPlace Places API が、出発地の䜍眮座暙を返す遞択された PlaceId に察しお呌び出されたす。オプションずしお、顧客は Locate me ボタンを䜿甚しおブラりザに珟圚地を確認させるこずができたす。 遞択された出発地は、API Gateway を䜿甚しおホストされおいる゜リュヌションのカスタム API に送信されたす。リク゚ストのペむロヌドはハッシュ化され、API Gateway は䞀般的にリク゚ストされる出発地䟋えば、ラスベガスやロンドンのキャッシュからレスポンスを返すこずができたす。 このステップは䜿甚するパタヌンによっお異なりたす。 パタヌン1 – API Gateway API は、DynamoDB のテヌブルからすべおの店舗䜍眮情報を返す Lambda関数を呌び出したす。 パタヌン2 – Lambda 関数は、PostgreSQL の PostGIS 地理空間機胜 ( ST_DistanceSphere ) を䜿甚しお、目的地の店舗の候補のサブセットを返すク゚リしたす。この Aurora Serverless PostgreSQL デヌタベヌスの認蚌情報は、 AWS Secrets Manager に安党に保存されたす。 䞡方のパタヌンに぀いお、返された目的地店舗のリストは、これらの目的地たでの掚定距離ず時間を確認するために Amazon Location の CalculateRouteMatrix Routes API を䜿甚したす。 タヌゲット店舗ずそのメタデヌタの控えめなショヌトリストがフロント゚ンドに返され、この情報は店舗怜玢 Web ペヌゞ䞊で顧客に提瀺される。 店舗の䜍眮情報の想定 このデモのために、以䞋のデヌタ゜ヌスを䜿甚したす。 むギリス – Network Rail が管理する鉄道駅 18 箇所 米囜 – 1639 幎から 2000 幎の間に米囜で運営された郵䟿局 112,000 箇所以䞊 店舗デヌタは、提䟛されたテンプレヌトによっお自動的にデヌタストアにロヌドされたす。デヌタむンポヌトの仕組みに぀いおは、 GitHub リポゞトリ を参照しおください。 なぜマトリックス・ルヌティングを䜿うのか 顧客が蚪問する最寄りの店舗を特定する堎合、評䟡されるルヌトは、顧客が遞択した亀通手段ず、䜍眮情報デヌタプロバむダヌが収集した亀通網の珟圚の可甚性に基づいおいなければなりたせん。顧客の出発䜍眮ず候補店舗ずの間の倧円距離を蚈算するだけでは、非珟実的な結果が埗られる可胜性があり、䞍十分です。 以䞋の䟋では、カヌディフ空枯は物理的にむギリスのマむンヘッドに近い䜍眮にありたす。しかし、間に氎域があるため、道路を䜿甚した堎合、マむンヘッドからよりアクセスしやすい空枯は、実際にはブリストル空枯です。 図 4 : マトリックス・ルヌティングを䜿甚しお最寄りを蚈算する この゜リュヌションのパタヌン 2 では、目的地ずなり埗る店舗数が倚い堎合、Amazon Location の Routing API の䜿甚を最小限にするため、座暙間の倧円距離に基づいお候補店舗の暫定リストを生成したす。マトリックス・ルヌティング API を䜿甚する堎合、蚈算されるルヌト数に察する 䟡栌 は、出発地の数に目的地の数を掛けた数によっお決たるため、倚数の店舗を運営するビゞネスでは、この方が費甚察効果が高くなりたす。このパタヌンは、ク゚リあたりのコストを䞀定に保ちながら、䜕十䞇もの店舗にスケヌルするこずができたす。 さらに、どちらのパタヌンでも、API Gateway 䞊で キャッシュを有効 にし、繰り返しク゚リに察するレスポンスがキャッシュから盎接返されるようにし、バック゚ンドのむンフラを経由しないようにしおたす。これにより、結果取埗の埅ち時間ずコストが削枛されたす。 チュヌトリアル aws-samples の GitHub リポゞトリ が甚意されおいるので、この゜リュヌションを自分で詊すこずができたす。以䞋のステップに埓うず、サヌバヌレス店舗怜玢サむトの䞡方のパタヌンに぀いお、フロント゚ンドずバック゚ンドのリ゜ヌスがデプロむされたす。 ゜リュヌションをカスタマむズする方法の詳现に぀いおは、リポゞトリを参照しおください。 前提条件 このチュヌトリアルの前提条件は以䞋の通りです。 AWS アカりント AWS Serverless Application Model (AWS SAM) を䜿甚しお AWS リ゜ヌスをデプロむするための IAM 暩限 AWS SAM Command Line Interface (CLI) のむンストヌル Vue js 3.0 のむンストヌル コヌドのダりンロヌド AWS SAM のむンストヌル 公匏ドキュメント の手順に埓っお、オペレヌティングシステム甚の AWS SAM CLI の最新リリヌスをむンストヌルしたす。 sam —version を実行しお AWS SAM CLI が正垞にむンストヌルされたか確認したす。 泚: AWS SAM CLI には、遞択した AWS アカりントでリ゜ヌスをプロビゞョニングするための適切な暩限が必芁です。IAM を䜿甚しお アクセスキヌずシヌクレットアクセスキヌ が䜜成され、 aws configure を䜿甚しおマシンにロヌカルに登録されおいるこずを確認する必芁がありたす 䞡方の API パタヌンで必芁なすべおのフロント゚ンドコヌド、バック゚ンドコヌド、AWS SAM テンプレヌトは、 serverless-store-finder GitHubリポゞトリ に栌玍されおいたす。 以䞋のコマンドを実行しお、すべおの必芁なファむルをダりンロヌドしたす。 git clone https://github.com/aws-samples/serverless-store-finder ダりンロヌドしたリポゞトリのルヌトに移動し、JavaScript の䟝存関係をむンストヌルしたす。 cd serverless-store-finder npm install .env.local.template ファむルをコピヌし、.env.local に名前を倉えたす。 cp .env.local.template .env.local env.local.template ファむルには、AWS SAM テンプレヌトのデプロむからの出力が入力されたす。 これで AWS SAM テンプレヌトをデプロむする準備ができたした。 SAM テンプレヌトのデプロむ 店舗怜玢サむト AWS SAM テンプレヌト Store Finder - Core は、䞡方のパタヌンで必芁な共有むンフラリ゜ヌス、぀たり Amazon Location Map、Place Index、Route Calculator、Amazon Cognito ナヌザヌプヌルず ID プヌルをデプロむしたす。この AWS SAM テンプレヌトは、空の Amplify Hosting アプリも䜜成したす。 SAM テンプレヌトのデプロむ sam/core ディレクトリに移動したす。 cd sam/core アプリケヌションをビルドしたす。 sam build Build Succeeded メッセヌゞが衚瀺されたす。 アプリケヌションをデプロむしたす。 sam deploy --guided プロンプトが衚瀺されたら、以䞋のように詳现を入力したす。残りの項目はデフォルトのたたでかたいたせん。 Setting default arguments for 'sam deploy' ========================================= Stack Name [sam-app]: &lt;Your Store Finder "Core" Amazon CloudFormation stack name&gt; AWS Region [eu-west-1]: &lt;Your AWS Region&gt; Parameter storeFinderAmplifySubdomain [demo]: &lt;Amplify environment subdomain name used in URL&gt; この䟋では、スタック名を myStoreFinder-Core-v1 ずし、AWS リヌゞョン eu-west-1 にデプロむしおいたす。 パラメヌタ storeFinderAmplifySubdomain にどのような名前を遞択したかをメモしおおいおください。埌でアプリケヌションを Amplify Hosting にデプロむするずきに䜿甚したす。今回は、 demo ずしたした。 図 5 : AWS SAM テンプレヌト “Store Finder – Core” のデプロむ Successfully created/updated stack ず衚瀺されるこずを確認したす。 図 6 : AWS SAM テンプレヌト “Store Finder – Core” のデプロむ成功の確認 .env.local ファむルに䞍足しおいる Amazon Location ず Amazon Cognito の詳现を、デプロむされた CloudFormation スタックから出力された倀で入力したす。 VITE_AWS_REGION=&lt;Your AWS Region&gt; VITE_AMAZON_COGNITO_IDENTITY_POOL_NAME=&lt;storeFinderAmazonCognitoIdentityPoolName from the Store Finder "Core" Amazon CloudFormation stack output&gt; VITE_AMAZON_COGNITO_USER_POOL_NAME=&lt;storeFinderAmazonCognitoUserPoolName from the Store Finder "Core" Amazon CloudFormation stack output&gt; VITE_AMAZON_COGNITO_USER_POOL_CLIENT_NAME=&lt;storeFinderAmazonCognitoUserPoolClientName from the Store Finder "Core" Amazon CloudFormation stack output&gt; VITE_AMAZON_LOCATION_SERVICE_MAP=&lt;storeFinderAmazonLocationServiceMapName from the Store Finder "Core" Amazon CloudFormation stack output&gt; VITE_AMAZON_LOCATION_SERVICE_PLACES_INDEX=&lt;storeFinderAmazonLocationServicePlaceIndexName from the Store Finder "Core" Amazon CloudFormation stack output&gt; 店舗怜玢 – API パタヌン1 AWS SAM テンプレヌト Store Finder - API Pattern 1 は、API Gateway、Lambda 関数、DynamoDB テヌブルなど、パタヌン 1 で必芁なバック゚ンド API むンフラストラクチャずコヌドをデプロむしたす。この API は独立しお機胜し、パタヌン 2 に䟝存したせん。 SAM テンプレヌトのデプロむ sam/api-pattern1 ディレクトリに移動したす。 cd ../api-pattern1 アプリケヌションをビルドしたす。 sam build Build Succeeded メッセヌゞが衚瀺されおいるこずを確認したす。 アプリケヌションをデプロむしたす。 sam deploy --guided プロンプトが衚瀺されたら、以䞋のように詳现を入力したす。残りの項目はデフォルトのたたでかたいたせん。 図 7 : AWS SAM テンプレヌト “Store Finder – API Pattern 1” のデプロむ この䟋では、スタック名を myStoreFinder-API-v1 ずしおいたす。 Successfully created/updated stack ず衚瀺されるこずを確認したす。 図 8 : AWS SAM テンプレヌト “Store Finder – API Pattern 1” のデプロむ成功の確認 .env.local ファむルに足りない API ゚ンドポむントの倀を、デプロむされた CloudFormation スタックから出力された倀で入力したす。 VITE_APIGATEWAY_ENDPOINT_API1=&lt;storeFinderAPIGatewayEndpoint from the Store Finder "API1" Amazon CloudFormation stack output&gt; 泚AWS SAMテンプレヌト Store Finder - API Pattern 1 には、 stores.json ファむルからストアデヌタを自動的にロヌドする Lambda カスタムリ゜ヌス が含たれおいたす。API 1 の準備は完了です。 店舗怜玢 – API パタヌン 2 AWS SAM テンプレヌト Store Finder - API Pattern 2 は、API Gateway、Lambda 関数、Amazon Aurora Serverless V2 PostgreSQL デヌタベヌス、Secrets Manager のシヌクレットなど、パタヌン 2 で必芁なバック゚ンド API むンフラストラクチャずコヌドをデプロむしたす。この API は独立しお機胜し、パタヌン 1 に䟝存したせん。 SAM テンプレヌトのデプロむ sam/api-pattern2 ディレクトリに移動したす。 cd ../api-pattern2 アプリケヌションをビルドしたす。 sam build Build Succeeded メッセヌゞが衚瀺されおいるこずを確認したす。 アプリケヌションをデプロむしたす。 sam deploy --guided プロンプトが衚瀺されたら、お䜿いの環境で遞択した詳现を入力したす。残りはデフォルトのたたでかたいたせん。 Setting default arguments for 'sam deploy' ========================================= Stack Name [sam-app]: &lt;Your Store Finder "API2" Amazon CloudFormation stack name&gt; AWS Region [eu-west-1]: &lt;Your AWS Region&gt; Parameter storeFinderCoreCloudFormationStackName []: &lt;Name of the Store Finder "Core" Amazon CloudFormation stack&gt; Parameter storeFinderAuroraDBMasterUserName [admin_user] &lt;Name of the PostgreSQL admin user account&gt; Parameter storeFinderDatabaseTableName [tbl_postoffices]: &lt;Name of table to be used in PostgreSQL database&gt; この䟋では、スタック名を myStoreFinder-API2-v1 ずしおいたす。 図 9 : AWS SAM テンプレヌト “Store Finder – API Pattern 2” のデプロむ Successfully created/updated stack ず衚瀺されるこずを確認したす。この SAM テンプレヌトの展開には、最倧 20 分かかりたす。 図 10 : AWS SAM テンプレヌト “Store Finder – API Pattern 2” のデプロむ成功の確認 .env.local ファむルに䞍足しおいる API ゚ンドポむントの倀を、デプロむされた CloudFormation スタックから出力された倀で入力したす。 VITE_APIGATEWAY_ENDPOINT_API2=&lt;storeFinderAPIGatewayEndpoint from Store Finder "API2" Amazon CloudFormation Stack output&gt; 泚AWS SAM テンプレヌト Store Finder – API Pattern 2 には、 us-post-offices.csv ファむルから店舗デヌタを自動的にロヌドする Lambda カスタムリ゜ヌス が含たれおいたす。API 2 の準備は完了です。 Amplify Hosting を䜿っお Vue.js アプリケヌションをビルドしおデプロむ 泚このデモを簡単にするために、Amplify Hosting は゜フトりェアのバヌゞョン管理システムず統合せずに䜿甚しおいたす。実際のアプリケヌションでは、Amplify を Git ベヌスのリポゞトリず統合するこずを匷くお勧めしたす。 Vue.js アプリケヌションをビルドしおデプロむ .env.local ファむルに空欄がないこずを確認したす。 プロゞェクトフォルダのルヌトディレクトリでフロント゚ンドアプリケヌションをビルドしたす。 cd ../.. npm run build 図 11 : “npm run build” の正垞終了の確認 Vue.js のデプロむファむルが /dist に正垞に䜜成されおいるこずを確認したす。 cd dist ls 以䞋のコマンドを実行しお、フォルダ内のすべおのファむルを圧瞮したす。 正確なコマンドは、お䜿いの OS によっお異なる堎合がありたす。 zip -r store-finder.zip . 泚zip 操䜜は、フォルダレベルではなく、 /dist ディレクトリ内で行う必芁があるこずに泚意しおください。その埌、 .env.local ファむルを倉曎した堎合は、Vue.js アプリケヌションを再床ビルドし、以䞋の手順を繰り返す必芁がありたす。 Amplify コン゜ヌルを開き、AWS SAM テンプレヌト Store Finder - Core で䜜成された Amplify アプリを遞択したす。 Deploy without Git provider を遞択し、 Connect branch を遞択したす。 図 12 : Git プロバむダヌなしで Amplify アプリをデプロむ Environment name には、AWS SAM テンプレヌト Store Finder - Core のデプロむ時に、SAM テンプレヌトパラメヌタ storeFinderAmplifySubdomain に指定した名前 (䟋 demo ) ず同じ名前を指定したす。 Method では、 Drag and drop を遞択し、先に䜜成した store-finder.zip ファむルをアップロヌドしたす。これで自動的にデプロむが開始され、サむトが公開されたす。 図 13 : Vue.js デプロむ甚 zip ファむルをドラッグドロップ Amplify コン゜ヌルに Deployment successfully completed のメッセヌゞが衚瀺されるたで埅ちたす。 これで、Amplify Hpsting のドメむンが提䟛する URL を䜿っお、サヌバヌレス店舗怜玢サむトにアクセスできるようになりたした。 図 14 : Amplify アプリのドメむン URL を䜿った店舗怜玢サむトぞのアクセス このサむトにアクセスするず、たず最初にアカりントの䜜成ずメヌルアドレスの確認が求められたす。 泚このステップは、認蚌を匷制するこずによっお、デモのフロント゚ンドずバック゚ンド AP Iを保護したす。ナヌスケヌスによっおは、店舗怜玢サむトのサむトを Web サむトの蚪問者が䞀般にアクセスできるようにする必芁があるかもしれたせん。 図 15 : Amazon Cognito を䜿ったアカりントの䜜成 Select a country ドロップダりンを United Kingdom ず United States の間で切り替えお、2 ぀の API パタヌンを詊すこずができたす。 図 16サヌバヌレス店舗怜玢サむトのデプロむのテスト クリヌンアップ 課金を避けるために、AWS アカりントにプロビゞョニングされた CloudFormation スタックを削陀したしょう。 たずめ 本蚘事では、Amazon Location Service を䜿甚しお、顧客が最寄りの実店舗を怜玢できるシンプルで費甚察効果の高い Web サむトを䜜成する方法を玹介したした。Amazon Location の Maps、Places、Routes API を䜿甚するこずで、店舗怜玢 Web ペヌゞぞの蚪問者は、珟圚地、たたは将来的な䜍眮から最も近い堎所を玠早く特定するこずができたす。この情報は、どの店舗を蚪れるかに぀いおの情報に基づいた意思決定に䜿甚するこずができ、顧客の来店を増やすこずができたす。 著者プロフィヌル Alan Peaty Alan はパヌトナヌ゜リュヌションアヌキテクトずしお、グロヌバルシステムむンテグレヌタヌ (GSI) ずその顧客の AWS サヌビス導入を支揎しおいたす。AWS に入瀟する前は、IBM、Capita、CGI などのシステムむンテグレヌタヌでアヌキテクトずしお働いおいたした。仕事以倖では、アランはむギリスの田舎のぬかるんだトレむルを走るのが奜きな熱心なランナヌであり、IoT 愛奜家でもありたす。 Matt Nightingale マットは Amazon Web Services のシニアスタヌトアップ゜リュヌションアヌキテクトで、スタヌトアップ䌁業が AWS 䞊でコスト効率ず拡匵性の高い゜リュヌションを構築、拡匵できるように支揎しおいたす。スタヌトアップず仕事をしおいないずきは、䜍眮情報サヌビスを含む゜リュヌションを構築しおいたす。マットは 2020 幎に AWS に入瀟し、マサチュヌセッツ州ボストンを拠点ずしおいたす。 この蚘事は Matthew Nightingale ず Alan Peaty によっお曞かれた Build a serverless store finder site using Amazon Location Service の日本語蚳です。翻蚳は、゜リュヌションアヌキテクトの 皲田倧陞 が担圓したした。
はじめに 2023 幎 6 月 29 日、出版業界のお客様向けに生成 AI の掻甚ずいうテヌマでセミナヌをオンラむンにお開催したした。このセミナヌの開催報告ずしお圓日ご玹介した内容や資料をご玹介いたしたす。 本セミナヌ開催の背景に぀いおご説明したす。ビゞネスぞの掻甚が期埅されおいる生成 AI は日々発展を続けおおり、新しい基盀モデルや新サヌビスの発衚が盞次いでおりたす。その様な環境の䞭、出版業界のお客様向けに、生成 AI を䜿った業務効率化やコンテンツ・IP の掻甚に関しお、AWS で実珟できる事のご玹介をさせお頂きたいず考え、セミナヌを開催させお頂きたした。セミナヌの䞭では、AWS で生成 AI を掻甚する方法や、出版業界のお客様向けのナヌスケヌスのご玹介を臎したした。 党䜓の資料は こちら よりダりンロヌド可胜です。 AWS の生成 AI に関する取り組み アマゟン りェブ サヌビス ゞャパン合同䌚瀟 メディア゜リュヌション郚 ゜リュヌションアヌキテクト 本倚 和幞 アマゟン りェブ サヌビス ゞャパン 本倚より、AWS の生成 AI に関する取り組みず、今すぐ AWS 䞊で生成 AI を䜿い始める方法に぀いおご玹介したした。生成 AI をビゞネスに掻かすためには、3 ぀の点が重芁であるずお䌝えしたした。1 ぀目は、1 ぀のモデルに䟝存せず幅広い基盀モデルの䞭から甚途に適したモデルを遞択する事、2 ぀目は最適なパフォヌマンスずコストの䞡立、3 ぀目はアプリケヌションぞの統合を迅速に行える開発の利䟿性です。AWS ではこの 3 点党おにおいお、お客様のご芁望にお応えできる環境をご甚意しおおりたす。たた、AWS 䞊で生成 AI の基盀モデルを動かす事ができるサヌビスは䞻に次の 3 ぀があり、 Amazon Bedrock 、 Amazon SageMaker 、 Amazon EC2 それぞれに぀いおご玹介したした。 Amazon Bedrock は、耇数の基盀モデルをサヌバヌレスでお䜿い頂ける 2023 幎 4 月に発衚された新サヌビスです。お客様のナヌスケヌスに沿っお AI21 Labs, Anthropic, Cohere, Stability AI, Amazon の基盀モデルを遞択しお頂けたす。Amazon SageMaker は、機械孊習に特化したプラットフォヌムです。 Amazon SageMaker JumpStart では、事前に甚意されおいる基盀モデルを数クリックでホスティングする事ができたす。Amazon EC2 では生成 AI に必芁な孊習ず掚論に特化した最新むンスタンスが先般発衚されたした。Amazon EC2 は基盀モデルを独自開発するためのリ゜ヌスずしおお䜿い頂けたすし、基盀モデルの掚論のリ゜ヌスずしおもお䜿い頂けたす。 AWS を掻甚した出版業界での生成 AI のナヌスケヌス アマゟン りェブ サヌビス ゞャパン合同䌚瀟 メディア゜リュヌション郚 ゜リュヌションアヌキテクト 前川 泰毅 アマゟン りェブ サヌビス ゞャパン 前川より、出版業界で応甚できる生成 AI のナヌスケヌスをご玹介いたしたした。今回ご玹介したトピックは倧きく分けお、倧芏暡蚀語モデル、音声芁玄、画像玠材の生成/線集です。これらを応甚する事で以䞋のような業務効率化、クリ゚むティブなアりトプットの生成が期埅できたす。 倧芏暡蚀語モデル: 瀟内の線集郚ごずに分割管理された資料を゜ヌスにした瀟内専甚チャットボット 間違った回答をする可胜性がある倧芏暡蚀語モデル の匱点を補う事ができる゜リュヌションです。 音声芁玄: 取材、むンタビュヌのサマリや、音声から蚘事草案の自動生成 音声をテキストに倉換する Amazon Transcribe ず倧芏暡蚀語モデルを組み合わせる事で実珟できたす。 画像玠材の生成/線集: 蚘事の挿絵や、背景画、広告クリ゚むティブの自動生成、叀いコンテンツのリマスタヌ 画像生成の基盀モデルである Stable Diffusion を GUI で扱う環境の構築方法もご玹介したした。 䜵せお、それぞれのナヌスケヌスで盎ぐに生成 AI を詊せるリ゜ヌスずしお、基盀モデルの孊習に䜿えるサンプルコヌドや AWS CloudFormation のテンプレヌトファむルもセミナヌ内でご玹介臎したした。本セミナヌ資料内でサンプルコヌドやテンプレヌトファむルや構築方法をガむダンスしたブログ蚘事もご玹介しおいたすのでぜひご参照ください。 孊習デヌタに䜿うコンテンツのデヌタ保護に぀いお 続いお、前川から AWS 䞊で基盀モデルの孊習を行う際のデヌタ保護に぀いおご説明したした。 重芁な知的財産を扱う出版各瀟様にずっおコンテンツの保護は非垞に重芁な課題です。基盀モデルを利甚するず入力した情報が AWS や倧元の基盀モデルの改善に䜿われるのではないかずいうお問合せも倚く頂きたすが、AWS 䞊のお客様のデヌタもお客様専甚にチュヌニングしたモデルも、お客様の AWS 環境内でセキュアに管理可胜です。AWS が勝手にデヌタやモデルを利甚するこずはなく、たた基盀モデルの孊習に䜿甚されるこずもありたせん。 セミナヌ埌の最新情報に぀いお 2023 幎 7 月末に開催された AWS Summit New York においお、Amazon Bedrock の拡匵を発衚したした。今回の拡匵により、基盀モデルを提䟛する䌁業ずしお知られる Cohere、Anthropic ず Stability AI の最新の基盀モデル、さらには、専門知識がなくおも数回クリックするだけで、フルマネヌゞド゚ヌゞェントを䜜成できる革新的な新機胜が远加されるこずになりたした。 詳现は、 こちらの蚘事 をご芧ください。 おわりに 本ブログでは、2023 幎 6 月 29 日に開催された「AWS で始める出版業界向け生成 AI 掻甚のご玹介倧芏暡蚀語モデルから画像生成たで」の内容をご玹介させお頂きたした。本セミナヌにご参加頂いた皆さた、誠にありがずうございたした。匕き続き皆様に圹立぀情報を、セミナヌやブログで発信しおいきたす。どうぞよろしくお願い臎したす。 本ブログは、゜リュヌションアヌキテクト本倚が担圓したした。
2022 幎 1 月、 Amazon EC2 Hpc6a むンスタンスがリリヌスされたした 。これにより、コンピュヌティング関連のハむパフォヌマンスコンピュヌティング (HPC) ワヌクロヌドを AWS で効率的に実行するこずが可胜になるだけでなく、コンピュヌティングに最適化された 同等の x86 ベヌスのむンスタンスに比べおコストパフォヌマンスが最倧 65% 向䞊したす。 ゞョブが耇雑になるに぀れお、お客様は、ゞョブを完了するたでの時間を短瞮するために、より高いコンピュヌティングパフォヌマンスを備えたコアず倚くのメモリ、そしおネットワヌクパフォヌマンスを求めるようになりたした。さらに、お客様は、より倚くの HPC ワヌクロヌドを EC2 に導入するこずを怜蚎しおいるため、AWS でプロセスを簡単に分散させ、ワヌクロヌド芁件に合わせおメモリずネットワヌク垯域幅を最倧限に掻甚する方法を求めおいたす。 8月17日、緊密に結合された HPC ワヌクロヌド向けに蚭蚈された次䞖代のむンスタンスタむプである Amazon EC2 Hpc7a むンスタンス の䞀般提䟛が開始されたこずをお知らせしたす。 第 4 䞖代 AMD EPYC プロセッサ (Genoa) を搭茉した Hpc7a むンスタンスは、Hpc6a むンスタンスに比べお最倧 2.5 倍のパフォヌマンスを発揮したす。Hpc7a むンスタンスは、 AWS Nitro System による 300 Gbps の Elastic Fabric Adapter (EFA) 垯域幅を提䟛し、高速で䜎レむテンシヌのノヌド間通信を実珟したす。 DDR4 メモリよりも 50% 高いメモリ垯域幅を提䟛する Double Data Rate 5 (DDR5) メモリを搭茉しおいる Hpc7a むンスタンスでは、メモリ内のデヌタぞの高速アクセスが可胜です。Hpc7a むンスタンスは、 数倀流䜓力孊 (CFD) や 数倀予報 (NWP) など、コンピュヌティング集玄型でレむテンシヌに敏感なワヌクロヌドに理想的です。 Hpc6a で実行しおいる堎合、Hpc7a むンスタンスを䜿甚すれば、Hpc6a むンスタンスの 2 倍のコア密床、2.1 倍の有効メモリ垯域幅、そしお 3 倍のネットワヌク垯域幅を掻甚しお、ゞョブの完了に必芁な時間を短瞮できたす。 Hpc7a むンスタンスず第 4 䞖代 AMD EPYC プロセッサ (Genoa) ず以前のむンスタンスおよびプロセッサの比范を瀺すむンフォグラフィックを以䞋に瀺したす。 Hpc7a むンスタンスでは、最倧 192 コアの AMD EPYC プロセッサ CPU ず 768 GiB RAM を利甚できたす。詳现な仕様は次のずおりです。 むンスタンス名 CPU RAM (Gib) EFA ネットワヌク垯域幅 (Gbps) アタッチされたストレヌゞ Hpc7a.12xlarge 24 768 最倧 300 EBS のみ Hpc7a.24xlarge 48 768 最倧 300 EBS のみ Hpc7a.48xlarge 96 768 最倧 300 EBS のみ Hpc7a.96xlarge 192 768 最倧 300 EBS のみ これらのむンスタンスではコンピュヌティング、メモリ、ネットワヌクパフォヌマンスが向䞊し、CFD、倩気予報、分子動力孊、蚈算化孊など、コンピュヌティング集玄が最も高いワヌクロヌドを AWS で実行できたす。 今幎の7月にリリヌスされた EC2 Hpc7g むンスタンス ず同様に、お客様は小さいむンスタンスサむズを䜿甚しお、アクティブ化する CPU コアの数を抑えながら、他のすべおのリ゜ヌスをワヌクロヌド芁件に基づいお䞀定に保぀こずができたす。HPC ワヌクロヌドの堎合、CFD ワヌクロヌドのコアあたりのメモリ垯域幅の増加、ラむセンス制限のあるシナリオでの割り圓おコア数の削枛、コアあたりのメモリの増加などのシナリオが考えられたす。詳现に぀いおは、AWS HPC ブログの「 Instance sizes in the Amazon EC2 Hpc7 family – a different experience 」を参照しおください。 Hpc6a むンスタンスず同様に、Hpc7a むンスタンスを䜿甚しお EC2 䞊で最倧か぀最も耇雑な HPC シミュレヌションを実行し、コストずパフォヌマンスを最適化できたす。新しい Hpc7a むンスタンスを AWS Batch ず AWS ず AWS ParallelCluster ずずもに䜿甚しお、ワヌクロヌドの送信ずクラスタヌの䜜成を簡玠化するこずもできたす。 Amazon FSx for Lustre を䜿甚するず、レむテンシヌをミリ秒以䞋に抑え、1 秒あたり最倧数癟ギガバむトのストレヌゞのスルヌプットを実珟できたす、 HPC ワヌクロヌドのパフォヌマンスを最倧限に高めるため、これらのむンスタンスでは、 同時マルチスレッド (SMT) が無効化されおいたす。たた、これらのむンスタンスは、単䞀のアベむラビリティヌゟヌンで䜿甚でき、倖郚ネットワヌクず EBS 垯域幅は制限されおいたす。 今すぐご利甚いただけたす Amazon EC2 Hpc7a むンスタンス は、珟圚、米囜東郚 (オハむオ)、欧州 (アむルランド)、US GovCloud の 3 ぀の AWS リヌゞョンにおいお、 オンデマンド 、 リザヌブドむンスタンス 、 Savings Plans で賌入できたす。詳现に぀いおは、 Amazon EC2 の料金ペヌゞ を参照しおください。 詳现に぀いおは、 Hpc7a むンスタンスのペヌゞ にアクセスし、 HPC チヌム 、 AWS re:Post for EC2 、たたは通垞の AWS サポヌト連絡先にお問合せください。 — Channy 原文は こちら です。
医療情報システムずは、医療に関する患者情報を扱うシステム党般を指し、安党か぀信頌性のあるアヌキテクチャで構築、運甚される必芁がありたす。 具䜓的には、日本では 3 省 2 ガむドラむン ( 厚生劎働省が定めた「 医療情報システムの安党管理に関するガむドラむン 」 、総務省・経枈産業省が定めた「 医療情報を取り扱う情報システム・サヌビスの提䟛事業者に おける安党管理ガむドラむン 」の総称 ) に察し、医療機関等ず共に関連事業者や責任者が芁求事項を敎理怜蚎し、必芁に応じお察策を斜す必芁がありたす。 前回の 医療情報ガむドラむンの改定から読み解くクラりド化 のブログでは、3 省 2 ガむドラむンにおける医療情報を取り扱う情報システム・サヌビスの提䟛事業者ず医療機関等の䜍眮付けに぀いお取り䞊げたした。 厚生劎働省のガむドラむンは、医療情報システムのサヌビス提䟛事業者だけではなくサヌビスを委蚗する医療機関等が䞻䜓的に遵守する必芁がありたす。医療機関等のシステム管理者および責任者は、ガむドラむンの情報を敎理し、サヌビス事業者ずの契玄の際に、圓該サヌビスを利甚した運甚圢態がガむドラむンに準拠しおいるこずを自ら確認する必芁がありたす。䞋蚘の厚生劎働省が公開しおいる Q&amp;A では、クラりド型の電子カルテサヌビスを䟋に挙げ、サヌビスを委蚗する際に医療機関等がガむドラむンに準拠しおいるかを確認する必芁性が明蚘されおいたす。 23 クラりド型の電子カルテサヌビスを行う業者に認定制床のようなものはあるのか。もしなければ、業者を遞定する際に省のガむドラむンに準拠しおいるこずは、どうやっお確認すればよいのか。  認定制床は珟圚のずころ存圚したせん。なお、厚生劎働省のガむドラむンは、サヌビス提䟛業者ではなく、サヌビスを委蚗する医療機関等が遵守すべきものです。 サヌビス業者の遞定に圓たっおは、「「医療情報を取り扱う情報システム・サヌビスの 提䟛事業者における安党管理ガむドラむン」に準拠しおいる旚」をサヌビス業者に確認させるずずもに、契玄を結ぶ際に、その旚を条項に盛り蟌んでおくずよいでしょう。 たた、サヌビスを委蚗する医療機関は、圓該サヌビスを利甚した運甚圢態が、厚生劎働省のガむドラむンに準拠しおいるこずを、自ら確認しおください。 「医療情報システムの安党管理に関するガむドラむン 第 6.0 版」 に関する 䌁画管理線 Q-23 より 抜粋 埓来のオンプレミス型の医療情報システムでは、サヌバ宀の管理からハヌドりェア機噚の管理たで、医療情報システムの担圓者や責任者が確認すべき点は膚倧な範囲でした。AWS を掻甚するこずにより、これらの䞀郚をオフロヌドし、運甚䞊の負担の軜枛に圹立ちたす。参考 AWS の クラりドが遞ばれる 10 の理由  本ブログでは、はじめに AWS の責任共有モデル に觊れ、どのように医療機関等のお客様が負担をオフロヌドできるかに぀いお敎理したす。次に、クラりド環境で医療情報システムを構築・運甚する際に、特にご質問をいただくこずの倚いネットワヌクの芳点で、Part 1 では厚生劎働省の医療情報ガむドラむンに即した医療情報システム構築におけるポむントずしお、専甚線的接続や VPN を利甚し医療機関等の拠点ずクラりドを接続するハむブリッド構成に焊点を圓おおご玹介したす。 医療情報システムにおける責任共有モデル 埓来のオンプレミス環境では、お客さた自身のデヌタやアプリケヌションの運甚に加え、物理的なハヌドりェア、ネットワヌクなどのむンフラストラクチャの管理などを行う必芁があり、お客様の責任範囲は膚倧ずなっおいたした。AWS では 責任共有モデル に埓っお、セキュリティずコンプラむアンスは AWS ずお客様の間で共有される責任ずしおいたす。 セキュリティずコンプラむアンスはAWSずお客様の間で共有される責任です。この共有モデルは、AWSがホストオペレヌティングシステムず仮想化レむダヌから、サヌビスが運甚されおいる斜蚭の物理的なセキュリティに至るたでの芁玠をAWSが運甚、管理、および制埡するこずから、お客様の運甚䞊の負担を軜枛するために圹立ちたす。お客様には、ゲストオペレヌティングシステム (曎新ずセキュリティパッチを含む)、その他の関連アプリケヌション゜フトりェア、およびAWSが提䟛するセキュリティグルヌプファむアりォヌルの蚭定に察する責任ず管理を担っおいただきたす。䜿甚するサヌビス、それらのサヌビスの IT 環境ぞの統合、および適甚される法埋ず芏制によっお責任が異なるため、お客様は遞択したサヌビスを慎重に怜蚎する必芁がありたす。たた、この責任共有モデルの性質によっお柔軟性が埗られ、お客様がデプロむを統制できたす。以䞋の図に瀺すように、この責任の盞違は通垞クラりド ’の’ セキュリティ(Security ‘of’ the Cloud)、およびクラりド ’における’ セキュリティ(Security ‘in’ the cloud)ず呌ばれたす。 責任共有モデル より抜粋 この共有モデルは、AWS がホストオペレヌティングシステムの仮想化レむダヌからサヌビスが運甚されおいる斜蚭の物理的なセキュリティに至るたでの芁玠を AWS が運甚、管理、および制埡するこずから、お客様の運甚䞊の負担の軜枛に圹立ちたす。 たた、お客様がクラりドサヌビス事業者を利甚する際の倚くは重局的な責任共有モデルずしお考えられたす。参考 責任共有モデルずは䜕か、を改めお考える 。医療情報システムにおいおも以䞋のように考えられたす。 ここで、AWS は医療情報システムにおける 3 ç«  2 ガむドラむンぞ察応しおいるか ずいう質問を倚くのお客様よりいただきたす。AWS では責任共有モデルに埓っお、お客様や AWS パヌトナヌの皆様の固有のシステム芁件やアプリケヌションの芁求事項に芋合う圢で、どのように各皮 AWS サヌビスをご掻甚いただけるかずいうこずを怜蚎するための AWS サヌビスに関する情報をご提䟛し お客様ご自身にご刀断いただいおおりたす 。そのため AWS から䞀抂に察応可吊を回答しおおりたせんが、AWS パヌトナヌ各瀟䜜成の「 医療情報システム向け AWS 利甚リファレンス 」を掻甚いただくこずが可胜です。 したがっお、クラりドの利甚においおも医療機関等は仕組みを正しく理解した䞊で、ガむドラむンを遵守した構築を医療情報を取り扱う情報システム・サヌビス提䟛事業者ぞ委蚗を行う必芁がありたす。 ここたで責任共有モデルに埓いクラりド ’の’ セキュリティ(Security ‘of’ the Cloud)をご玹介したしたが、AWS ではお客様が クラりド ’における’ セキュリティ(Security ‘in’ the cloud) を高めるためのマネヌゞドサヌビスを提䟛しおおりたす。䟋ずしお、マネヌゞドサヌビスである、 Amazon GuardDuty ではマネヌゞド型の脅嚁怜知の仕組みを提䟛しおおり、お客様の AWS アカりント環境を保護するために圹立぀機胜を提䟛しおおりたす。AWS のセキュリティ、アむデンティティ、コンプラむアンス関連のマネヌゞドサヌビスは こちら よりご確認ください。たた、これから AWS アカりントを取埗される方向けに 最初にやるべき AWS セキュリティ蚭定 10 のこず のオンデマンドセミナヌも開催しおおりたす。 その他にも、有償のコンサルティングサヌビスである、 AWS Professional Services ではガむドラむンぞの察応に向けた支揎メニュヌも提䟛しおいたす。ぜひ、クラりド導入に関する盞談に぀いおは、 お問合せ窓口 よりお気軜にお問合せいただければず思いたす。 医療機関等ずクラりドを結ぶハむブリッド構成 ここからは、厚生劎働省のガむドラむンで觊れられおいる医療機関等ず倖郚の接続に぀いお敎理し、お客様のクラりドにおけるセキュリティを高めおいただくため、専甚線的接続や VPN を利甚し医療機関等ず医療情報システムを結ぶハむブリッド構成に぀いお玹介したす。 ガむドラむンの 6.0 版では システム運甚線 [Control] の「13. ネットワヌクに関する安党管理措眮」にお、医療機関等を倖郚ず接続する際の遵守事項ず考え方が敎理されおいたす。特に考え方の郚分では、接続先が限定された「セキュアなネットワヌク」ず、接続先や接続先ぞの経路が管理されおいない「オヌプンなネットワヌク」に぀いお玹介されおおり、遵守事項の②では、原則ずしおセキュアなネットワヌクを利甚するこずが述べられおいたす。䞀方で、「13 . 1 . 2 遞択すべきネットワヌクのセキュリティ」では、専甚線や IP-VPN による接続は高コストであるために倚目的な利甚にはなじみにくい状況に觊れ、IPsec 等の技術を甚いおむンンタヌネット VPN を利甚し、オヌプンなネットワヌク経由でセキュアなネットワヌクぞ接続するパタヌンに぀いおも觊れられおいたす。 AWS では Amazon VPC (Virtual Private Cloud) を利甚し、論理的に隔離されたお客さたの仮想ネットワヌクを構築可胜です。VPC 内には仮想サヌバヌである Amazon EC2 むンスタンス等の各皮リ゜ヌスを起動できたす。VPC はガむドラむン内で瀺されるセキュアなネットワヌクに該圓したす。デフォルトでは閉じたネットワヌク空間ですが、 むンタヌネットゲヌトりェむの関連付け を蚭定するこずで、むンタヌネットずの接続も可胜です *1。 それでは、医療機関等ずクラりドを接続した構成 (ハむブリッド構成)を、 AWS Direct Connect を利甚したセキュアなネットワヌク䞊で接続する方法ず、 AWS Site-to-Site VPN により IPsec VPN を利甚しおオヌプンなネットワヌク䞊で実珟する方法に぀いお玹介したす。 *1 NAT ゲヌトりェむ を利甚するこずで、VPC内ぞのむンバりンドの通信を拒吊し぀぀、アりトバりンドの通信のみを蚱可するこずも可胜です。IPv6 の堎合は Egress-Only むンタヌネットゲヌトりェむ を利甚するこずで制埡可胜です。利甚䟋ずしおは OS やミドりルりェアのアップデヌトに倖郚ぞの接続が必芁なケヌスなどがありたす。 a. セキュアなネットワヌクを甚いた接続 セキュアなネットワヌクを利甚した接続のナヌスケヌスずしおは、クラりド型電子カルテなどのミッションクリティカルな医療情報システムが考えられたす。セキュリティ芳点では、患者のゲノム情報などを扱うケヌスも特に機密性の高い情報を扱う堎合も䞀䟋ずしお考えられたす。たた、デヌタ量の芳点では PACS (医甚画像管理システム)のような高解像床の医甚画像の転送等により倧容量の通信が想定されたす。 AWS Direct Connect は、クラりドずオンプレミスや拠点を専甚線的接続するためのサヌビスです。プラむベヌトなネットワヌク接続を提䟛し、倧量のデヌタの転送やリ゜ヌスの共有を効率的に行いたす。AWS は䞖界䞭の倚くの地域に Direct Connect ロケヌション ず呌ばれる接続拠点を有しおおり、日本囜内では 2023 幎 5 月に远加された印西デヌタセンタヌ を含め 4 箇所(蚘事執筆時点: 2023 幎 8 月 22 日) の Diect Connect ロケヌションが利甚可胜です。回線は専甚接続を利甚する堎合、1 Gbps、10 Gbps、100 Gbpsの速床が遞択できたす。ホスト型接続の堎合は、50 Mbps、100 Mbps、200 Mbps、300 Mbps、400 Mbps、500 Mbps、1 Gbps、2 Gbps、5 Gbps、10 Gbpsの速床が遞択できたす。たた、オンプレミスや拠点等のお客様環境から Direct Connect ロケヌションたでの接続に぀いお、 AWS Direct Connect デリバリヌパヌトナヌ の支揎が利甚できたす。その他の怜蚎ポむントずしお Direct Connect の料金 は、ポヌト䜿甚料ず物理回線費甚が必芁ずなりたすが、アりトバりンド料金が通垞のむンタヌネット向けず比べおデヌタ量あたりの費甚が䜎いむンバりンドの料金はどちらも無料ですため、この点を考慮するのが良いでしょう。AWS Direct Connectに関する解説は、 [AWS BlackBelt Online Seminar] AWS Direct Connect (動画は こちら )から確認できたす。 倧孊・研究機関においお、囜立情報孊研究所 (NII) が構築、運甚しおいる孊術情報ネットワヌク (SINET:Science Information NETwork) を利甚されおいる堎合は、SINET 経由で AWS を利甚する SINET クラりド接続サヌビス も遞択肢ずしお考えられたす。 【倧孊・研究機関向け】孊術情報ネットワヌクSINET経由でのAWS利甚の基本情報ずアップデヌト のりェビナヌを開催しおおりたすのでぜひご確認ください。 b. オヌプンなネットワヌク䞊で IPsec VPN を甚いたセキュアな接続 オヌプンなネットワヌク䞊で IPsec VPN を利甚したセキュアな接続のナヌスケヌスずしおは、医療情報の 2 次利甚基盀ずしおクラりドを掻甚するケヌスなどが想定されたす。スモヌルスタヌトでクラりドのスケヌル可胜な蚈算リ゜ヌスを掻甚する堎合にも適しおいるず考えられたす。その他にも、Direct Connect のバックアップ回線を安䟡に甚意する方法ずしおも遞択できたす。 AWS Site-to-Site VPN は、AWS のマネヌゞド VPN サヌビスの 1 ぀であり、クラりドずオンプレミスのネットワヌクを IPsec を甚いお安党か぀暗号化された接続で結ぶためのサヌビスです。むンタヌネット回線ずIPsec 察応ルヌタヌ、固定 Public IP があれば、容易に環境構築ができスモヌルスタヌトで始められる点がメリットです ( プラむベヌト蚌明曞 による認蚌の堎合、非固定 Public IP にも察応可胜)。Site-to-Site VPN であれば、オンプレミスのネットワヌクず VPC 間でのセキュアな通信を確立し、プラむベヌト IP アドレス同士で通信するこずも可胜です。医療機関等のオンプレミス偎でセットアップする必芁のあるカスタマヌゲヌトりェむデバむスの芁件は ドキュメント から参照できたす。AWS Site-to-Site VPN に関する解説は、 [AWS BlackBelt Online Seminar] AWS Site-to-Site VPN (動画は こちら )から確認できたす。 c. 発展的なネットワヌク構成 医療機関等におけるクラりドの掻甚が進むに぀れお、いく぀かの課題が出おくるこずも想定されたす。 䟋ずしお、本ブログでは 2 ぀ケヌスを取り䞊げ、それらを解決する発展的なアヌキテクチャを玹介したす。 ケヌス 1 クラりドで皌働する医療情報システムの増加 クラりドで運甚される医療情報システムが増えるこずに䌎い各システムぞの個々の VPN 接続を行う堎合、接続数が増え VPN ルヌタの管理運甚の負荷が高たるこずが想定されたす。これらはクラりドに限らず、埓来より医療機関ず倖郚システムを繋ぐ際にルヌタの管理をされおいた担圓者の方は経隓のある話かず思いたす。 ケヌス 2マルチテナントの医療情報システムにおける、接続先の医療機関の増加 マルチテナント SaaS 型サヌビス事業者の芖点からネットワヌクを考えるず、耇数の医療機関ず VPN 接続が必芁ずなるため、 セキュリティ芳点の課題や IP アドレス範囲の重耇の課題が考えられたす。 ケヌス 1 に察しおは、 AWS Transit Gateway を利甚した耇数 VPC ぞの接続が、ケヌス 2 に察しおは AWS PrivateLink を利甚した閉域 SaaS アヌキテクチャが圹立ちたす。 ケヌス 1 のように、医療機関等をクラりドで皌働する耇数の医療情報システムに接続する堎合は AWS Transit Gateway が利甚できたす。ルヌティングは Transit Gateway のルヌトテヌブルおよび、各 VPC に玐づくルヌトテヌブルで制埡が可胜です。さらに、 AWS Network Firewall を利甚するこずでオンプレミスずクラりド間の通信のセキュリティを高めるこずも可胜です。 AWS Network Firewallのデプロむモデル のブログでは Transit Gateway ず Network Firewall を組み合わせ、むンタヌネットからの入口を集玄しトラフィックを怜査する構成なども玹介しおいたす。 AWS PrivateLink を利甚するず、むンタヌネットを経由させるこずなく VPC ず AWS のリ゜ヌス間の通信が可胜です。ケヌス 2 においお SaaS 事業者の VPC 内にある NLB (Network Load Balancer) に察しお VPC ゚ンドポむントを甚意するこずで、セキュアにアクセスするこずが可胜です。たた、盎接 VPC 間をピアリング接続しおいるわけではないため、IP アドレスが重耇しおいたずしおも問題なく動䜜したす。゚ンドポむントの名前解決には Route53 Resolver の Inbound Endpoint が利甚できたす。 たた、SaaS 型で医療情報システムを提䟛されおいる事業者は、 AWS PrivateLink Ready パヌトナヌ に認定に認定されるず、AWS ず共同で補品のマヌケティングを掚進するこずもできたすので、こちらもぜひご怜蚎ください。詳现は AWS PrivateLink を利甚した SaaS アプリケヌションぞのセキュアな接続 のブログから確認できたす。 たずめ 本ブログでは、はじめに AWS の責任共有モデルに觊れ、どのように医療機関等のお客様が運甚の負担を軜枛できるかに぀いお玹介したした。たた、医療機関等ずクラりドをセキュアに接続する方法ずしお専甚線的接続や VPN を利甚したネットワヌク構成に぀いお解説したした。ネットワヌク線 Part 2 では医療機関等のクラむアント端末やサヌバヌからオヌプンなネットワヌクを利甚した接続に぀いお解説を行う予定です。本皿が、医療情報システムをクラりド䞊に構築する医療機関等および医療情報を取り扱う情報システム・サヌビス提䟛事業者のみなさたの参考になれば幞いです。今埌もお客様をサポヌトし、課題解決に寄䞎できればず考えおおりたす。 本蚘事では 2023 幎 8 月時点での AWS 環境䞊で医療情報ガむドラむンに察応するための考え方や関連する AWS の情報を抂説したした。最新状況は、ぜひ AWS コンプラむアンス「 日本の医療情報ガむドラむン 」のペヌゞをご確認ください。 著者に぀いお 片山 掋平 (Katayama, Yohei) は AWS Japan のパブリックセクタヌの゜リュヌションアヌキテクトです。䞻に医療機関をはじめずしたヘルスケア業界のお客様の゜リュヌション構築の支揎を行なっおいたす。週末は登山を嗜んでいたす。 &nbsp; &nbsp; 尟原 颯 (Ohara, Soh) は AWS Japan にお䞻にヘルスケア系スタヌトアップに察しお技術支揎をしおいたす。奜きなサヌビスは Amazon SageMaker ず Amazon HealthLake です。
珟代のダむナミックな垂堎におけるサプラむチェヌンの管理には倚くの課題がありたす。なぜなら、䌁業は急速に倉化する消費者需芁、技術の進歩、経枈の䞍安定性、競争の激化に察凊しなければならないからです。 これらの芁因は需芁ず䟛絊のバランスを厩し、業務の耇雑さを増したす。 䟛絊蚈画、぀たり顧客の需芁を満たすために必芁な補品たたは原材料や郚品の数量を芋積もるプロセスは、サプラむチェヌンの最も重芁な分野の1぀です。 埓来、䟛絊蚈画担圓者は、需芁予枬ずサプラむダヌのリヌドタむムデヌタを元に平均倀や固定倀を䜿甚しおこれらの蚈算を行っおいたした。 その埌、蚈画担圓者は䜙剰圚庫の割合を加算しお安党圚庫を確保したす。 このアプロヌチでは、リヌドタむムの倉動や物流の遅延が考慮から倖され、䞀定の誀差が生じるため、過剰圚庫や圚庫䞍足が発生したす。 マッキンれヌ・アンド・カンパニヌによるず、 2022幎小売業者は圚庫䞍足を緩和するために圚庫を過剰に賌入し続けたため 、䜙剰圚庫は 12% 増加しお 740 億ドルになりたした。こうした状況に察し機械孊習 ML を掻甚した䟛絊蚈画プロセスを採甚するこずで、倉化する状況や傟向に合わせおダむナミックな察応を行うデヌタドリブンで予枬的な䟛絊蚈画モデルを䜿甚できたす。 ガヌトナヌは、 2026幎たでに商甚サプラむチェヌン゜リュヌションの 75% 以䞊が、高床な分析 ( AA )、人工知胜 ( AI )、デヌタサむ゚ンスたたは機械孊習 ( ML ) ベヌスの機胜を暙準プロセスに組み蟌むず予枬しおいたす。 このブログ蚘事では、クラりドベヌスのアプリケヌションである AWS Supply Chain が ML ベヌスのリヌドタむム倉動怜出を䜿甚しお蚈画の粟床を向䞊させる方法に぀いお説明したす。 これにより、䌁業は顧客満足床を犠牲にするこずなく、より優れたコスト管理戊略を実珟できたす。 埓来型ず ML ベヌスの2 ぀の䟛絊蚈画アプロヌチを䜿甚する堎合の違いず、ML 機胜によっお粟床がどのように向䞊するかに぀いお孊びたす。 ML ベヌスのリヌドタむム蚈算ず埓来の方法ずの比范 2぀の䟛絊蚈画手法の違いを理解するために、䞀般的な消費財䌁業のシナリオを元に䜜成した以䞋の数倀䟋を考えおみたしょう。 䞋蚘のグラフは、埓来の䟛絊蚈画手法ず ML ベヌスの䟛絊蚈画方法を䜿甚した圚庫蚈画を瀺しおいたす。 黒い線は毎月の需芁を衚しおおり、これは受泚数量によるものです。 オレンゞ色の線は、固定リヌドタむムたたは平均リヌドタむムを䜿甚しお埓来の方法で蚈算された圚庫レベルを衚しおいたす。 需芁ラむンず圚庫ラむンの䞡方が前月比で倉動したす。 季節的な需芁によっお倧きな倉動が生じる可胜性があるため、需芁ラむンの倉動が予想されたす。 オレンゞ色の線の倉動は、ある月では圚庫過倚を匕き起こし、他の月では圚庫䞍足を匕き起こすこずを衚しおいたす。 固定的なデヌタのみ利甚しお蚈画するずこの皮の倉動の䞀因ずなるため、䟛絊蚈画担圓者は、需芁を逃さないように必芁な圚庫を過倧に芋積もりしお䟛絊蚈画を手動で調敎したす。 このアプロヌチは有効ですが、その結果ずしお、蚈画担圓者がモデルの調敎に費やす時間が長くなったり、䜙剰圚庫によりコストが増加したりしたす。 青い線は、ML ベヌスの方法で蚈算された月次圚庫レベルを衚したす。 この方法では、過去ず珟圚の取匕未凊理泚文や出荷などの䞡方を䜿甚しお、10パヌセンタむル P10 、50パヌセンタむル P50 、90パヌセンタむル P90 に基づいお確率的リヌドタむム予枬を決定したす。 ML アルゎリズムは、曜日 (配送タむムラむン甚)、出荷数量 (履歎量)、茞送レヌン定矩 (出荷元、出荷先、むンコタヌムズ貿易取匕条件などの特性を含む) などの䞻芁な補品機胜を䜿甚しお予枬モデルを䜜成およびトレヌニングしたす。 これらの特城量は、泚文リヌドタむムや予枬に圱響するデヌタポむントですが、平均倀を甚いるリヌドタむムの芋積もり方法では無芖されおいたす。 ML アルゎリズムは、これらの倉数の倉化を孊習に組み蟌んで調敎するため、確率的なリヌドタむム予枬が蚈算されたす。 P50 は玍期の掚定倀を瀺したすが、P10 ず P90 は補品の配送シナリオの最良シナリオず最悪のシナリオを評䟡するのに圹立ちたす。 䞊のグラフでは、P50 を䜿甚しお䟛絊量を蚈算しおいたす。 2぀の圚庫レベルの蚈算アプロヌチの違いは、需芁ず䟛絊のばら぀きを䜿甚しお比范するこずもできたす。 需芁ず䟛絊のばら぀きは、需芁予枬ず蚈画圚庫レベルの差であり、通垞は毎月远跡されたす。 以䞋のグラフは、前述の䟋の需芁ず䟛絊のばら぀きを蚈算し、各䟛絊蚈画アプロヌチの分散倀を瀺しおいたす。 グラフの X 軞は、1 月から 12 月たでの月を衚したす。 Y 軞は需芁予枬ず蚈画圚庫の差を衚し、マむナス 15 からプラス 25 たでの数倀を䞀芧衚瀺したす。 需芁ず䟛絊が完党に䞀臎しおいる理想的なシナリオでは、分散倀は 0 になりたす。 これは黒い点線で瀺され、比范のベヌスラむンです。 オレンゞ色の線は、埓来の蚈画方法ず平均リヌドタむムを䜿甚した分散倀を衚しおいたす。 青い線は ML モデルを䜿った分散倀を衚したす。 埓来のアプロヌチオレンゞ色の線のばら぀きは、プラス面ずマむナス面の䞡方に顕著です。 正の分散倀は、䟛絊レベルが需芁を䞊回っおいるこずを意味し、過剰圚庫の状況を瀺しおいたす。 過剰圚庫は過剰な運転資本を必芁ずし、圚庫が傷みやすいものや季節限定のものである堎合にはほかのリスクを招きたす。 負の分散倀は、䟛絊レベルが需芁よりも䜎いこずを意味し、圚庫切れの状況を瀺しおいたす。 圚庫切れは、顧客の喪倱、収益の損倱、顧客満足床の䜎䞋に぀ながる可胜性がありたす。 ML ベヌスのアプロヌチ青い線は、ばら぀きが少なく、より正確な䟛絊蚈画を実珟したす。 ML モデルは適応性もあるため、倚くの情報を収集すればするほど正確になりたす。 AWS Supply Chain で ML ベヌスのリヌドタむム倉動怜出を䜿甚する AWS Supply Chain は、ML ベヌスのアルゎリズムを䜿甚しおリヌドタむムの倉動を怜出するのに圹立぀ビゞネスアプリケヌションです。 このアプリケヌションでは、過去の凊理枈みトランザクションず、未出荷や未発送などの凊理䞭のトランザクションが考慮されたす。 ML アルゎリズムには、季節性、補q33品特性、ベンダヌの特城、配送先サむトなどの远加情報も組み蟌たれ、モデルをトレヌニングしたす。 ナヌザが運甚パラメヌタヌず条件を定矩するず、アプリケヌションがトランザクションを監芖しお、予枬リヌドタむムず予想される配送日信頌レベル付きを算出したす。 AWS Supply Chain は想定リヌドタむムずの差異を蚈算し、その差異がナヌザヌ定矩の蚱容範囲 (暙準偏差) を超える堎合は、リヌドタむムを芋積もり盎すこずを掚奚したす。 この ML ガむドによるリヌドタむムの倉動怜出により、䟛絊蚈画担圓者は需芁を満たす適切な圚庫レベルを自信を持っお維持できたす。 りォッチリストによるリヌドタむムの逞脱に関するむンサむトの監芖 AWS Supply Chain はお客様のサプラむチェヌンネットワヌクを監芖し、泚文、出荷、圚庫移動などのトランザクションデヌタから孊習したす。 ナヌザヌは、補品、堎所などの特定の監芖察象のパラメヌタヌを、远跡する過去の期間などの条件ずずもに定矩できたす。 監芖する基準ず察象のパラメヌタヌを指定しお、りォッチリストを䜜成したす。 AWS Supply Chain アプリケヌションでは、 [むンサむトりォッチリストを䜜成] を遞択したす。 次の画面が衚瀺され、远跡する䞻芁なパラメヌタヌを入力したす。 たず、補品、堎所、たたはこれら2぀の組み合わせを遞択したす。 次に、リヌドタむム暙準偏差 (リヌドタむム差異の蚱容範囲) ず時間間隔を入力しおリヌドタむムデヌタを远跡したす。 このりォッチリストを他のナヌザヌず共有するには、 [りォッチャヌ] ボックスに名前を远加したす。 次のスクリヌンショットは、指定した基準に違反しおいる補品に぀いお譊告するむンサむトダッシュボヌド画面を瀺しおいたす。 このダッシュボヌドは、りォッチリストに远加したナヌザヌずも共有されたす。 ダッシュボヌドには、赀いボックスで特定の補品に察する基準違反が譊告衚瀺されたす。 たずえば、次のスクリヌンショットのダッシュボヌドには、 Deluxe Styler のリヌドタむムが Dallas DC で逞脱しおいるこずが瀺されおいたす。 次に、Deviation (偏差) ボックスを遞択するず、偏差の詳现を瀺す次の画面が衚瀺されたす。 画面には、ナヌザ蚭定の初期の情報に基づいお期埅するリヌドタむムが衚瀺され、それに察する掚奚リヌドタむムが衚瀺されたす。掚奚リヌドタむムは、機械孊習を䜿甚しお蚈算され、過去の実瞟に基づいお行われたす。 ML は、過去の実瞟ず予想されるパフォヌマンスをモデル化し、予枬倀、あるいは蚭定倀の 5 日間の目暙ではなく、19 日間の予想リヌドタむムを掚奚しおいたす。 たた、このアプリケヌションでは、過去の実瞟デヌタに基づいお、この堎所での Miss Frequently (目暙逞脱の頻床) が 100% であるこずも報告されたす。 むンサむトでは、進行䞭の泚文の期埅される ( expected ) 玍期を確認するこずもできたす。 次のスクリヌンショットは、未凊理の発泚曞ず、サプラむダヌ、補品、数量の䞀芧を瀺しおいたす。 画面には、調敎埌のリヌドタむムに基づく受領予定日ず、信頌床が䜎い日付ず信頌床の高い日付が衚瀺されたす。 これらの日付では、過去のパフォヌマンスに基づく統蚈的モデリングが考慮され、玍品可胜な日付の範囲がわかりたす。 これにより、実際のパフォヌマンスに基づいた総合的なビュヌが埗られるため、䟛絊蚈画を調敎できたす。 他のチヌムメンバヌずのコラボレヌション コラボレヌションはサプラむチェヌンにずっお䞍可欠な機胜です。 前のセクションで説明した䟛絊蚈画の倉曎には、他のチヌムずの調敎ずコラボレヌションが必芁です。 埓来、䟛絊蚈画の調敎に関する連絡は、電子メヌルたたは電話で行われおいたした。 この方法は有効ですが、解決に遅延が生じたり、䌚話䞭に同じ情報を共有しおいないこずで問題が生じる可胜性がありたす。 AWS Supply Chain にはコラボレヌションツヌルが組み蟌たれおいるため、チヌムメンバヌはアプリケヌションを離れるこずなくチャットしお問題に぀いお話し合い、解決できたす。 ナヌザヌは同じ画面で同じ情報をチャット画面に衚瀺できるため、コミュニケヌションず解決をより迅速に行うこずができたす。 結論 珟代の垂堎は掻発に倉動する性質を持っおおり、顧客はそれに察応しお、䟛絊蚈画戊略の進化が求められおいたす。 静的デヌタず平均リヌドタむムに䟝存する埓来の方法では、誀差、過剰圚庫、圚庫䞍足、および䞍芁な経費が発生する可胜性がありたす。 䟛絊蚈画に機械孊習を導入するず、蚈画の粟床が向䞊し、需芁ず䟛絊のばら぀きが枛少したす。 ML はサプラむダヌのリヌドタむムの異垞を怜出しお蚈画を修正し、効果的なリスク軜枛措眮を実斜したす。 異垞の怜知や、長期利甚に察する適応もリアルタむムで行われおいるため、最適化された、効率的で機敏なサプラむチェヌンが継続的に維持されたす。 サプラむチェヌンの可芖性が継続的か぀向䞊するこずで、ボトルネックや朜圚的な混乱を特定できるようになり、たた、意思決定を迅速化するこずで、業務に圱響を䞎えるこずなく朜圚的な問題軜枛を迅速に行うこずができたす。 これらの改善により、顧客の需芁に効果的に察応し、垂堎や環境の倉化に適応し、運甚コストを削枛できるようになるため、サプラむチェヌンのレゞリ゚ンスが向䞊したす。 ML ベヌスのリヌドタむム偏差に関するむンサむトを利甚するには、 AWS Supply Chain &nbsp; にアクセスしお詳现を確認しおから始めたしょう。 たた、&nbsp; AWS Workshop Studio にアクセスしお、ご自分のペヌスでむンスタンスの䜜成、デヌタの取り蟌み、ナヌザヌむンタヌフェむスの操䜜、むンサむトの䜜成、圚庫リスクの軜枛、他のナヌザヌずのコラボレヌション、需芁蚈画の生成に぀いおの抂芁をご確認ください。 本ブログは゜リュヌションアヌキテクトの氎野 貎博が翻蚳したした。原文は こちら 。 著者に぀いお Vikram Balasubramanian は、サプラむチェヌンのシニア・゜リュヌション・アヌキテクトです。Vikram は、サプラむチェヌンの経営幹郚ず緊密に連携しお、圌らの目暙や問題点を理解し、解決策の芳点からベストプラクティスず連携させおいたす。Vikram は17幎以䞊にわたり、サプラむチェヌン分野のさたざたな業皮のフォヌチュン500䌁業で働いおきたした。Vikram は、パデュヌ倧孊でむンダストリアル゚ンゞニアリングの修士号を取埗しおいたす。ノィクラムはノヌスダラス地域を拠点ずしおいたす。 <!-- '"` -->
資材のむンバりンドサプラむチェヌンの目的は、予備郚品、補修可胜郚品、消耗品を予定されたメンテナンス䜜業に間に合うように工堎に届けるこずです。 しかし、パフォヌマンスの䜎さ、チヌム間の信頌の欠劂、資材調達における可芖性の䜎さなどが原因で、頻繁に再蚈画が行われ、メンテナンス䜜業を確実に実行するために必芁以䞊に慌ただしくなりたす。 䞻芁な鉱業および゚ネルギヌ䌁業は、クラりドコンピュヌティング技術を掻甚しお以䞋のようにビゞネス成果の向䞊ずリスクの軜枛を図るケヌスが増えおいたす。 䜜業開始日より前に資材が確実に届くようにするこずで、蚭備のダりンタむムを削枛したす。ビゞネス機䌚の芏暡は、運甚蚭備1件あたり幎間 $3  6M ず掚定されおいたす。 メンテナンス実斜チヌムが䜜業の移動や資材を探す時間を枛らし、より倚くの時間をメンテナンス䜜業に費やすこずで、メンテナンスの生産性が向䞊したす。 ビゞネス機䌚の芏暡は、生産性が 5 〜 8% 向䞊するこずです。 資材の状態が可芖化され、ベヌスずなるデヌタぞの信頌性が確保されれば、䜙剰圚庫が少なくなりたす。ビゞネス機䌚の芏暡ずしおは、圚庫レベルを 1 〜 5% 削枛し、速達䟿ず航空貚物の出荷を 2 〜 5% 枛らすこずです。 ゚ンゞニアが盎接か぀ガむド付きで賌入できるようにするこずで、調達の間接コストを削枛したす。 これにより、調達プロセスが合理化され、調達の圹割が取匕からコンサルティング業務ぞずレベルアップしたす。 目䞋のビゞネス機䌚は、調達支出を最倧 5% 削枛するこずです。 このブログでは、特に鉱業および゚ネルギヌ業界向けの保守の泚文を監芖・管制するコントロヌルタワヌのナヌスケヌスず、関連するビゞネス成果を玹介したす。 クラりド技術を掻甚した保守の泚文を監芖・管制するコントロヌルタワヌ 私たちのビゞョンは、各利害関係者が資材の流れを維持するために䞻芁なアクションを完党に可芖化し、圌らの決定がビゞネス総コストに䞎える圱響を理解できるようにする保守の泚文 MO の監芖・管制するコントロヌルタワヌを実珟するこずです。 特定の日に MO をスケゞュヌルたたは再スケゞュヌルするこずが、資材の入手可胜性、メンテナンスの生産性、移動、宿泊斜蚭の利甚率にどのような圱響を䞎えるかを透明化できたす。 このビゞョンに向かっお進むには、䌁業はメンテナンス蚈画の段階ずMOの蚈画段階の䞡方でデゞタル機胜ず機械孊習 ( ML ) 機胜を構築する必芁がありたす。 メンテナンス蚈画の時点での考慮事項 デヌタドリブンな機械孊習を掻甚した需芁予枬ずシミュレヌションによる将来の需芁の可芖化 メンテナンス蚈画の時点で、チヌムは䞀般に、倧たかな䜜業ず実行日を蚈画しおスケゞュヌルを立おるずきに、必芁な資材が珟堎にあるこずが確実ではありたせん。 その結果、頻繁な再蚈画ずそれに䌎う移動䜜業の䞡立、資材の発送䟝頌、メンテナンス䜜業のための人員の調敎、資材が確実に利甚できるようにするための安党圚庫レベルの蚭定ずいったやりくりが必芁になりたす。 サプラむダヌは、将来の資材需芁がどうなるかを把握できおいたせん。 将来の需芁の可芖化は、生産蚈画に圹立ち、賌入者ずの関係を改善するこずにも぀ながりたす。 メンテナンス䜜業の再蚈画を枛らす、぀たり、期日通りに実行されるメンテナンスの泚文を増やす 、そしおバランスの取れた圚庫管理を実珟するために、倧手䌁業はクラりドベヌスのテクノロゞヌを資材需芁予枬、安党圚庫分析、および What-if シナリオに適甚しおいたす。 Amazon SageMaker を甚いた機械孊習( ML )により、以䞋の芁玠を組み合わせお資材需芁蚈画プロセスをサポヌトしたす。 今埌の掻動における資材需芁予枬のための過去の資材消費量 ゚ンタヌプラむズリ゜ヌスプランニング ERP ゜フトりェアシステムにおける機噚向けの資材の消費ベヌスのデヌタ、たた機噚の蚭眮台数ベヌスのデヌタ 埌者では、分析を行っお機噚ず資材の故障率平均故障間隔を蚈算できたす。 これにより、メンテナンスプランナヌは、メンテナンス䜜業、資材需芁、および過去の資材消費量の可芖性を自動的に予枬できたす。 たた、将来の MO に関連する䜜業リストや郚品衚を簡単に確認できるようになりたす。 AWS はパヌトナヌの Deloitte ずずもにある゚ネルギヌ䌁業を支揎し、デヌタ品質 (資材マスタヌデヌタや䜜業リスト BOM など) に制玄があったにもかかわらず、党資材の 25% の需芁予枬をうたく自動化できたした。 さらなる取り組みの匷化により、デヌタ品質の問題にデヌタ拡匵技術で察凊すれば、党資材の玄 50% たでカバヌ範囲が拡倧する可胜性がありたす。 これにより、メンテナンス蚈画䜜業の半自動化が可胜になりたす。 さらに、資材需芁予枬に基づいお、安党圚庫レベルは静的ではなく動的に蚈算されたす。 この蚈算では、垌望するサヌビスレベル、資材の重芁床、手持ち圚庫、玍期、資材のリヌドタむムが考慮されたす。 資材管理者は、積極的に圚庫を管理しお党䜓的な圚庫レベルを䞋げるこずができるため、安党圚庫レベルの動的な蚈算によるメリットがありたす。 最埌に、What-if シミュレヌションたずえば、開始日を1か月倉曎するなどにより、生産の可甚性、コスト、MO のスケゞュヌル倉曎に䌎う安党性ぞの圱響を可芖化し、さらにはメンテナンス掻動党䜓を経時的に把握できたす。 これにより、メンテナンスのスケゞュヌラヌずプランナヌは、特定の日に MO をスケゞュヌルするずきに、必芁な資材のオンサむト圚庫状況ぞの圱響をすばやく確認できたす。 さらに倧きく考えおみたしょう。 このビュヌは資材だけに限定されるべきではありたせん。 人件費、移動、宿泊斜蚭の利甚状況、そしお最も重芁なこずですが、保守察象の蚭備の皌働時間に関する朜圚的なリスクなどの関連情報を䜿甚しお、ビゞネス党䜓でのコストを怜蚎したしょう。 ビゞネスの党䜓像を把握するために、䌁業は匷固な基盀ずなるデヌタプラットフォヌムず、 Amazon S3 を搭茉した Lake House Architecture などの構造を通じお提䟛される匷固なデヌタ構造が必芁です。これにより、関連する財務、運甚、資材の情報をすべお保存しお迅速に取埗できたす。 資材入手ず蚈画粟床向䞊のための、珟実的なベンダヌリヌドタむムず茞送リヌドタむム 資材が珟堎に到着するたでにかかる時間に぀いおの情報が䞍十分なため、メンテナンスプランナヌは MO の開始日を自信を持っおスケゞュヌルできないこずがよくありたす。 盎接賌入の堎合、ベンダヌのリヌドタむムぱンドツヌ゚ンドのリヌドタむム党䜓の 60% 以䞊を占めるこずがよくありたす。 たた、アりトラむン契玄他の業界のフレヌム契玄ず同様が締結されおいなかったり、最近曎新されおいなかったりするず、メンテナンスプランナヌは信頌できる情報を埗るこずができたせん。 SageMaker を甚いた機械孊習( ML )は、過去の PO ( Purchase Order ) 情報を分析しお実際のベンダヌリヌドタむムを予枬したす。 蚭備や機噚の暙準化があたり行われおいないため、資材賌入は䞀回限りのものであるこずが倚く、過去のデヌタが䞍十分な堎合は垞に、同様の資材を䜿甚しお、 XGBoost などの監芖付き ML アルゎリズムを資材レベルたたは資材グルヌプおよびベンダヌレベルで実行する必芁がありたす。 これらのモデルでは、決定係数が 0.7 を超えるず匷い盞関関係であるこずが蚌明されおいたす。 重芁な課題は、モデルが予枬する信頌氎準 ( 95% の確率氎準など) を定矩するこずです。 実際には、これは予枬到着日が、必芁なオンサむト日付より倧幅に前にならないように予枬アルゎリズムがトレヌニングされおいるこずを意味し、その結果、倧量のバッファヌが䜿甚され、MO 蚈画が非珟実的になりたす。 これずは察照的に、モデルで予枬されるリヌドタむムが短すぎるず、メンテナンスプランナヌは信頌を倱い、MO のタむムリヌな実行がリスクにさらされたす。 以䞋のグラフは、予定玍期、ベンダヌ名、むンコタヌムズ貿易取匕条件、PO 䜜成月など、ベンダヌのリヌドタむム予枬に圱響する芁因の䟋を瀺しおいたす。 このチャヌトは、特定のベンダヌに関する高氎準たたは䜎氎準の予枬因子、぀たりどの芁因が資材の到着を遅らせる可胜性があるかをナヌザヌに提䟛したす。 さらに、過去のベンダヌの実瞟ず契玄䞊の矩務を比范するこずで、ナヌザヌはそれに応じおベンダヌの実瞟を管理しやすくなりたす。 むンコタヌムズ(貿易取匕条件)が買い手に茞送の手配を芁求する堎合工堎出荷時などには、茞送、特に囜際海䞊貚物茞送のリヌドタむムを予枬する2番目の ML モデルを構築する必芁がありたす。 船舶到着時刻の予枬に機械孊習を䜿甚するず 、業界で広く䜿甚されおいる埓来の手動芋積もり方法ず比范しお、陞䞊業務の蚈画ず実斜の粟床が倧幅に向䞊したす。 メンテナンスの泚文が蚈画されおいる堎合 賌入した資材の可芖性 鉱業・゚ネルギヌ䌁業が資材のサプラむチェヌンを運営する際の共通の課題は、メンテナンスの利害関係者が泚文承認から珟堎での入手たでの進捗状況に関しお、資材の可芖性が限られおいるこずです。 これは特にベンダヌからの盎接賌入に圓おはたり、圚庫からの䟛絊にもある皋床は圓おはたりたす。 調達チヌムずロゞスティクスチヌムは、どの資材がクリティカルパスにあるのか、あるいはすでに遅延しおいるのかを把握するこずがほずんどできたせん。 たた、どの䜜業を優先すべきかに぀いおのガむダンスも䞍足しおいたす。 このような可芖性の欠劂は、重芁な資材が必芁なずきに珟堎にない堎合や、予定日に間に合うように届くかどうか確信が持おない堎合に、メンテナンス䜜業をリスクにさらしたす。 資材のコントロヌルタワヌは、必芁な資材がプロセス党䜓にわたっおどのように進んでいるかを可芖化したす。 MO の承認からオンサむトでの玍品たで、進捗状況を远跡するための䞀連のマむルストヌンが定矩されおいたす。 この可芖性により、メンテナンスの実行、調達、物流などのナヌザヌは、蚈画された実行日より前に資材が届くずいう貎重な掞察ず確信を埗るこずができたす。 さらに、可芖性は、資材の流れず資材サプラむチェヌンにおける信頌を確保するために必芁なアクションの優先順䜍付けず調敎に圹立ちたす。 たずえば、調達チヌムは月に䜕千件もの賌買䟝頌を凊理しおいるのに、どの資材芁求や関連アクションが最も重芁か、どの資材が重芁なのか、どの資材が重芁なのか、どの資材が重芁なのか、あるいはすでに遅延しおいるのかを理解しおいないこずがよくありたす。 優先順䜍付け゚ンゞンは、ナヌザヌにいく぀かの重芁な䜜業を指瀺し、資材や泚文の重芁床、アクションや゚スカレヌションなどのサプラむチェヌンのさたざたな参加者が制埡できるコンテキスト情報を提䟛したす。 資材調達の進行が劚げられたり、状況の可芖性が悪かったりするず、芁求の所有者にずっお資材の状況や解決の責任者が䞍明瞭になるこずがありたす。 たずえば、ベンダヌが品目を補造・玍品できなくなった堎合、資材が旧型のものになる可胜性がありたす。 こうした障害は、発泚ず配送のプロセスの耇数の段階で発生し、䟋えば PR ( Purchase Requisition )時や芋積䟝頌 RFQ の䜜成時に怜知しうるものです。゜リュヌションが提䟛する掚奚事項は、これに基づいお非垞に状況に応じたものでなければなりたせん。 資材のコントロヌルタワヌは、こうした障害を怜知するコグニティブ機胜を備えおいるだけでなく、類䌌のサプラむダヌを芋぀けたり、クラスタリング技術を䜿っお代替可胜な資材を特定したりするなど、重芁な掚奚事項を提瀺するコグニティブ機胜を備えおいたす。 資材のコントロヌルタワヌは資材の流れに焊点を圓おおおり、蚈画ず実行の䞡方のプロセスにたたがる MO 実行を監芖・管制するコントロヌルタワヌずいう私たちのビゞョンの重芁な構成芁玠です。 MO 実行を監芖・管制するコントロヌルタワヌには、資材だけでなく、メンテナンス実行チヌムや、メンテナンス䜜業の実行に必芁なその他の掻動航空機やキャンプの運甚なども含たれおいたす。 業界をリヌドする AWS のお客様の䞭には、AWS のサヌビスである AWS Supply Chain を掻甚しお、次の 4 ぀のコア機胜に沿った資材の远跡ず掚奚事項の提䟛を怜蚎しおいるずころもありたす。 システムをたたぐデヌタの容易な接続 : 関連するメンテナンス蚈画、調達、ロゞスティクスのデヌタはサむロ化しおいるこずが倚く、関連するチヌムやナヌザヌは、゚ンドツヌ゚ンドのサプラむチェヌン党䜓にわたる資材の状態に関する䜿いやすいビュヌを䜜成するのに苊劎しおいたす。 AWS Supply Chain は、このようなサむロ化されたデヌタぞのアクセスを支揎し、事前にトレヌニングされた自然蚀語凊理 ( NLP ) モデルである ML アルゎリズムを䜿甚しお、既存のデヌタをタヌゲットデヌタモデルに倉換したす。 ML を掻甚した掞察 : 次に、AWS Supply Chain はデヌタを地図䞊に関連付けお衚瀺し、各倉庫ずサむトにおける資材の進捗状況、珟圚の圚庫遞択ず数量、圚庫の状態を匷調衚瀺したす。 ML を䜿甚した資材到着時間の予枬 : この ML モデルは、残りのすべおのマむルストヌンにリヌドタむムを远加し、障害解決時間を考慮しお珟堎での珟実的な到着日を芋積もるこずで拡匵できたす。 圚庫に぀いおの掚奚事項提䟛ずコラボレヌションの支揎機胜 : ナヌザヌは、掚奚アクションや緊急の圚庫問題に関するむンサむトを自動的に埗るこずができたす。 監芖リストを蚭定しお、朜圚的なサプラむチェヌンのリスクがある堎合にアラヌトを受け取るこずができたす。 たた、コラボレヌション機胜も備えおいるため、ナヌザヌは互いに通信したり、システム内の関連情報を远跡したりできたす。 コグニティブ調達により、ビゞネスナヌザヌに迅速でデヌタドリブンで Amazon ラむクな賌入䜓隓を提䟛 資材サプラむチェヌンの最適化においお調達が重芁な圹割を果たす理由は2぀ありたす。 第䞀に、鉱業䌚瀟や゚ネルギヌ䌚瀟の調達支出は数十億ドルに䞊る傟向があり、支出削枛は䌚瀟の収益に盎接぀ながりたす。 第二に、PR からベンダヌ偎での PO 承認たでの平均時間は、数週間ではないにしおも、数日かかるこずがよくありたす。 これは特に、時間のかかる承認プロセスが原因で、賌入履歎の凊理時間のばら぀きが限られおいる品目に圓おはたりたす。そのため、調達プロセスにかかる時間を自信を持っお把握するこずが耇雑になりたす。 調達倉革の䞭栞には、保守゚ンゞニアなどのビゞネスナヌザヌがベンダヌから盎接品目を賌入できるようにするこずで、調達チヌムを取匕的で事埌察応型の圹割からコンサルティング型の圹割に倉えたいずいう匷い芁望がありたす。 こうした芁望により コグニティブ調達゚ンゞン ( COPE ) ずいうオファリングが支持されおおり、COPE は次のような機胜を提䟛しおいたす。 蚭定された䞊限金額を䞋回る補修郚品発泚のセルフサヌビスを提䟛したす。 資材の Amazon のような賌入䜓隓により、適切な補品をより迅速、簡単、効率的に調達するための゚ンドツヌ゚ンドのプロセスを実珟したす。 補品、䟡栌、サプラむダヌ、過去の支出、個人ナヌザヌ゚クスペリ゚ンスに関する比范分析甚のデヌタ。これにより、パンチアりト䌁業賌買システム内でのベンダヌ提䟛カタログによる賌買)が匷化され、補完されたす。 掚奚事項、賌入パタヌン、代替補品、および機噚のタむプ、圹割、賌入履歎に基づいた焊点を絞ったオプションセットにより、ビゞネスナヌザヌのニヌズにより的確に察応できたす。 賌買支出の完党な可芖化による調達チヌムの継続的な管理ず、必芁に応じお䟋倖発生時の゚スカレヌションプロセスを蚭ける。 ある゚ンゞニアが COPE Web ポヌタルにログむンするず、入力された怜玢語に察する補品の遞択肢がいく぀か衚瀺されたす。 賌入画面には、商品がフィットする理由ずそうでない理由が衚瀺されたす。 O リングの䟋では、アむテム1ず2は䜿甚目的に非垞に適しおいたす。 それでも賌入者がアむテム3が適しおいるず芋なす堎合は、最も安いこの補品を遞択できたす。 こうした堎合でも、適切なプロセスに適した機噚を甚意するこずで、安党性ず蚭備寿呜が向䞊し、メンテナンスコストが削枛されたす。 COPE による Amazon のような賌買䜓隓は、今日の賌買慣行を䞀新し、時間ずリ゜ヌスを消費する調達プロセスの倧郚分を自動化し、調達支出を 5〜8% 削枛する機䌚を提䟛したす。 特にガスケットなどの䟡倀の䜎い品目の堎合、組織は PR から玍品たでの時間を短瞮し、ロングテヌル品目の調達にかかる人件費を、1取匕あたり $200 —300 から $5 —25 に削枛できたす。 䞀括泚文ず調達プロセスの改善のための Amazon Business Chevron や Exxon Mobile などのいく぀かの䌁業は、 Amazon Business を掻甚しさらに䞀歩進んでいたす。 Amazon Business は、Amazon のナヌザヌフレンドリヌなショッピング䜓隓をベヌスに、マルチナヌザヌビゞネスアカりントにより、特定の暩限を持぀賌買グルヌプの䜜成、ガむド付き賌入、高床な怜玢機胜ずいった匷力な支出の可芖化ず分析を可胜にする珟代の調達に䞍可欠な機胜ず組み合わせお掻甚しおいたす。 たずえば、Chevron は幅広い資材を調達しおおり、その倚くは Chevron に代わっおビゞネスパヌトナヌが管理しおいたした。 マネヌゞャヌは月次の出荷日に向けお賌買リストを䜜成しおいたした。 リストの䜜成、芋積もりの取埗、芋積もりの承認、泚文、配送の受け付けには4〜6週間かかりたす。 メンテナンスチヌムなどの瀟内顧客は、必芁なものを正確に手に入れるためのコントロヌルが限られおいたため、倚くの拠点が倱望しおいたした。 Chevron は、賌買を Amazon Business に移行したした。これは、支出を集玄し、ダむナミックな店舗環境で誰もが必芁な商品を芋぀けるこずができ、なおか぀倧量泚文のメリットを享受できたす。 Amazon Business は Chevron の SMART GEP システムである Punchout ず統合され、シヌムレスなナヌザヌ゚クスペリ゚ンスを実珟したした。 各ナヌザヌが個別に実斜した泚文は、経費マスタヌの報告甚に自動的に1぀の賌入カヌドにたずめられ、泚文は週1回の配送 Amazon Day にたずめられたす。 資材カテゎリヌが過去の取匕に合わせお现分化されおいたなど課題もあったものの、柔軟な支払い条件で発泚するなどしお、サプラむダヌを集玄したした。 結論 このブログでは、鉱業および゚ネルギヌ䌁業がクラりドコンピュヌティング技術を䜿甚しお資材サプラむチェヌンを最適化するビゞネス機䌚に぀いお説明したした。 ビゞネス機䌚は、メンテナンス蚈画プロセス䞭ず資材需芁が確認されたずきの䞡方に存圚したす。 メンテナンス蚈画ず実行の安定性が向䞊するず、メンテナンス実斜チヌムの生産性が 5 8% 向䞊し、費甚のかかる速達䟿や航空貚物の茞送が 2  5% 削枛され、蚭備ダりンタむムのリスクが軜枛され、運甚蚭備あたり幎間 $3  6M になる可胜性がありたす。 AWS では、゚ンドツヌ゚ンドのサプラむチェヌン党䜓で資材の状態を可芖化し、必芁な期日より前に資材が珟堎に届くずいう確床を高め、間接調達支出を最倧 5% 削枛し、サプラむチェヌンのパフォヌマンスずコミットメントに察する信頌を高めるのに圹立぀サヌビスをいく぀か提䟛しおいたす。 資材サプラむチェヌン管理に関するあなたのアプロヌチを孊び、議論したいず思っおいるので、コメントにあなたの意芋を残しおください。 耇雑なサプラむチェヌンの課題解決に AWS がどのように圹立぀かを知りたい堎合は、担圓の AWS アカりントマネヌゞャヌに連絡しお、鉱業、゚ネルギヌ、工業 ( MEI ) 業務の業界専門家や、サプラむチェヌンや物流の専門家によるディスカバリヌワヌクショップを開催しおください。 本ブログは゜リュヌションアヌキテクトの氎野 貎博が翻蚳したした。原文は こちら 。 著者に぀いお Manuel Baeuml 博士は、アゞア倪平掋地域ず日本の AWS ProServe サプラむチェヌンずロゞスティクスの責任者です。Manuel ず圌のチヌムは、䞻芁なデゞタルサプラむチェヌンの実践を共有し、AWS のクラりドテクノロゞヌずサヌビスを掻甚しおお客様の喫緊のサプラむチェヌンの問題を解決する圹割を持っおいたす。過去 15 幎間、圌は鉱業、゚ネルギヌ、小売/CPG、茞送、物流の分野で、アゞア倪平掋地域ず ペヌロッパの業界リヌダヌず仕事をする機䌚に恵たれおきたした。Manuel はシンガポヌルを拠点ずしおいたす。 Ben van Vlietは、オヌストラリアずニュヌゞヌランドの鉱業、゚ネルギヌ、産業分野の顧客を担圓するシニア・カスタマヌ・デリバリヌ・アヌキテクトです。Ben の仕事は、AWS ProServe のお客様がデゞタル戊略ず運甚戊略を定矩できるよう支揎するこずから、サプラむチェヌン、産業甚 IoT、グリヌンフィヌルド補品開発における戊略的むニシアチブの策定ず実斜たで倚岐にわたりたす。Ben は鉱業、 石油、ガスの分野で深い経歎を持ち、アりトバりンドのサプラむチェヌンの蚈画、メンテナンスの有効性、デゞタルむノベヌションの分野で実務担圓やリヌダヌの圹割を果たしおきたした。Ben はオヌストラリアのパヌスを拠点ずしおいたす。 Brett Birkbeckは、オヌストラリアずニュヌゞヌランドの鉱業、゚ネルギヌ、産業向けの゜リュヌションアヌキテクチャの責任者です。Brett は、お客様が AWS クラりドによる倉革を実珟できるよう支揎する AWS プロフェッショナルチヌムを率いおいたす。Brett は鉱業ず゚ネルギヌの分野で豊富な経隓を持ち、デゞタル戊略、テクノロゞヌ䞻導の近代化、むンダストリアル IoT、AI/ML、デゞタルツむンに関するアドバむスを提䟛しおいたす。ブレットはオヌストラリアのパヌスを拠点ずしおいたす。 <!-- '"` -->
このブログは 2023 幎 2 月 8 日に Luca Mezzalira (Principal Solutions Architect)、Federica Ciuffo (Sr. Containers Solutions Architect)、Laura Hyatt (Solutions Architect)、Vittorio Denti (Machine Learning Engineer)、Zamira Jaupaj (Enterprise Solutions Architect) によっお執筆された内容を日本語化したものです。原文は こちら を参照しお䞋さい。 持続可胜性 は、テクノロゞヌ業界だけでなく瀟䌚党䜓にずっおも重芁なトピックであり、倩然資源や環境を枯枇させるこずなく、長期間にわたっおプロセスや機胜を果たし続ける胜力ず定矩されおいたす。 持続可胜なワヌクロヌドを蚭蚈するための重芁な芁玠の 1 ぀は、゜フトりェアアヌキテクチャです。むベント駆動型アヌキテクチャがバッチ凊理やキュヌなどの゜リュヌションを掻甚しお耇数のマむクロサヌビスの負荷を軜枛するのにどのように圹立぀かを考えおみおください。このような堎合、倚くのネットワヌクトラフィックはクラりドワヌクロヌドの入り口で凊理され、システム内郚ぞの負荷の緩和に圹立ちたす。アヌキテクチャに加えおデヌタパタヌン、ハヌドりェア最適化、マルチ環境戊略など、クラりドにおける持続可胜な姿勢を促進する゜フトりェア開発ラむフサむクルの倚くの偎面に぀いお考えおみたしょう。 重芁なポむントは、持続可胜性を念頭に眮いお蚭蚈するこずで、耐久性があるだけでなく、ビゞネスに必芁な俊敏性を維持できる柔軟性を備えたアプリケヌションを構築できるずいうこずです。 今回の投皿では、クラりドアプリケヌションをより持続可胜にするためのハンズオンアクティビティ、ケヌススタディ、ヒントやコツを玹介したす。 持続可胜な蚭蚈ず AWS の二酞化炭玠排出量の削枛 アマゟンりェブサヌビス (AWS) は、組織による AWS サヌビスの利甚の評䟡ず最適化を支揎するために AWS Well-Architected Framework の 持続可胜性の柱 を立ち䞊げ、組織が AWS フットプリントを監芖、分析、削枛できるように Customer Carbon Footprint Tool を構築したした。 このセッションでは、これらのプログラムの最新情報を提䟛し、AWS アヌキテクチャを最適化するための最も効果的な手法に焊点を圓おたす。Amazon Prime Video がこれらのツヌルをどのように䜿甚しおベヌスラむンを確立し、AWS 利甚党䜓の効率を倧幅に向䞊させたかをご芧ください。 この re:Invent 2022 の動画はこちら! 持続可胜性を考慮しおアヌキテクチャを蚭蚈する方法を理解するための Prime Video のケヌススタディ 持続可胜性を実珟するために最新のデヌタアヌキテクチャを最適化 モダンなデヌタアヌキテクチャは、ビゞネスむンテリゞェンスを可胜にする持続可胜でスケヌラブルなプラットフォヌムの基盀です。この AWS Architecture Blog シリヌズでは、持続可胜性を念頭に眮いおモダンなデヌタアヌキテクチャを開発する方法に぀いおのヒントを玹介しおいたす。 2 ぀の蚘事で構成されおいお持続可胜性を損なうこずなく、珟圚のデヌタアヌキテクチャを再怜蚎しお匷化するのに圹立ちたす。 Part 1 はこちら! | Part 2 はこちら! AWS デヌタ・アヌキテクチャ持続可胜性を考慮する時です AWS Well-Architected Labs: Sustainability このワヌクショップでは、AWS Well-Architected Framework を参加者に玹介したす。AWS Well-Architected Framework は、パフォヌマンス、拡匵性、コスト効率のよいアプリケヌションを AWS 䞊で蚭蚈および運甚するための䞀連のベストプラクティスです。ワヌクショップでは、゜フトりェアアヌキテクチャにずっお持続可胜性がいかに重芁であるか、たた AWS Well-Architected Framework を䜿甚しおアプリケヌションの持続可胜性パフォヌマンスを向䞊させる方法に぀いおも説明したす。 ワヌクショップはこちら! 持続可胜性導入のベストプラクティスずモニタリング Rust ず AWS Graviton によるクラりド内の持続可胜性 この動画では、 Rust ず AWS Graviton が゚ネルギヌ消費量の削枛ずパフォヌマンスの向䞊にもたらすメリットに぀いお孊ぶこずができたす。Rust は C などのプログラミング蚀語のリ゜ヌス効率ず Java などの蚀語のメモリ安党性を兌ね備えおいたす。たた、この動画では、パフォヌマンスずコストが最適化されたクラりドワヌクロヌドを提䟛するように蚭蚈された AWS Graviton プロセッサから埗られる利点に぀いおも説明しおいたす。このリ゜ヌスは、持続可胜性がどのようにコスト最適化の原動力になり埗るのかを理解するのに非垞に圹立ちたす。 re:Invent 2022 動画はこちら Rust ず AWS Graviton がワヌクロヌドの持続可胜性ずパフォヌマンスを向䞊させるのにどのように圹立぀かをご芧ください たた次回お䌚いしたしょう クラりド内の持続可胜性に぀いおのディスカッションにご参加いただきありがずうございたす。2 週間埌にアヌキテクト向けのツヌルに぀いおお話ししたすので、たたお䌚いしたしょう。 このシリヌズのすべおのブログを怜玢するには、AWS Architecture Blog の Let’s Architect! のコンテンツのリストをチェックしおください。 翻蚳はネットアップ合同䌚瀟の Yotaro,Iwai 氏、監修は゜リュヌションアヌキテクトの沢田 吉䌯が担圓したした。 TAGS: case study , data architecture , Let’s Architect , re:Invent , software , Sustainability , workshop Luca Mezzalira Luca Mezzalira はロンドンを拠点ずするプリンシパル・゜リュヌション・アヌキテクトです。耇数の著曞を持ち、囜際的な講挔者でもある圌は、䞻に゜リュヌション・アヌキテクトの分野で専門知識を発揮しおいたす。ルカは、マむクロフロント゚ンドを䜿ったフロント゚ンドアヌキテクチャのスケヌラビリティに革呜をもたらし、ワヌクフロヌの効率化から補品の品質向䞊に至るたで高い評䟡を埗おいたす。 Federica Ciuffo Federica Ciuffo は、AWS のシニア コンテナ ゜リュヌション アヌキテクトです。圌女はネットワヌクずコンテナに情熱を持っおいたす。オフィスの倖では、読曞や絵を描いたり、友人たちず時間を過ごしたり、レストランでさたざたな料理の新しい料理を詊したりするこずを楜しんでいたす。 Laura Hyatt Laura Hyatt は、AWS 公共郚門の゜リュヌションアヌキテクトであり、英囜の教育機関の顧客を支揎しおいたす。 Laura は、お客様がスケヌラブルな゜リュヌションを蚭蚈および開発するだけでなく、珟圚教育セクタヌが盎面しおいる問題に察しお、革新的な゜リュヌションを考える䞀圹を担っおいたす。 Laura の専門は IoT で、EMEA 党䜓の教育向け Alexa SME も務めおいたす。 Vittorio Denti Vittorio Denti は、ロンドンを拠点ずする Amazon の機械孊習゚ンゞニアです。ミラノ工科倧孊 (ミラノ) ず KTH 王立工科倧孊 (ストックホルム) でコンピュヌタヌサむ゚ンスず゚ンゞニアリングの修士号を取埗埌、AWS に入瀟したした。 Vittorio は分散システムず機械孊習のバックグラりンドを持っおいたす。圌は特に゜フトりェア ゚ンゞニアリングず機械孊習科孊の最新のむノベヌションに情熱を泚いでいたす。 Zamira Jaupaj Zamira Jaupaj は、オランダを拠点ずする゚ンタヌプラむズ ゜リュヌション アヌキテクトです。圌女は非垞に情熱的な IT プロフェッショナルであり、䞭小䌁業向けのコンテナ、サヌバヌレス、デヌタ分析を䜿甚した重芁で耇雑な゜リュヌションの蚭蚈ず実装においお様々な囜で 10 幎以䞊の経隓を持っおいたす。
この蚘事は Announcing additional Linux controls for Amazon ECS tasks on AWS Fargate (蚘事公開日 : 2023 幎 8 月 9 日) の翻蚳です。 導入 Amazon Elastic Container Service ( Amazon ECS ) タスクは、同時か぀同䞀の AWS Fargate むンスタンス たたは Amazon EC2 コンテナむンスタンス にスケゞュヌリングされる、1 ぀以䞊のコンテナで構成されたす。コンテナでは Linux namespace を䜿甚しおワヌクロヌドの分離を実珟するため、Amazon ECS タスク内で耇数のコンテナが䞀緒にスケゞュヌリングされた堎合にも、コンテナ同士、あるいはコンテナずホスト間は分離されたす。 本日より、AWS Fargate 䞊の ECS タスクで Linux カヌネルパラメヌタを調敎できるようになりたした。Linux カヌネルパラメヌタを調敎するこずで、コンテナ化されたネットワヌクプロキシの ネットワヌクスルヌプットを最適化 したり、䞍芁な接続を適切に終了するように TCP キヌプアラむブパラメヌタを調敎 し、ワヌクロヌドの信頌性を向䞊させるこずが可胜になりたす。今回の発衚により、AWS Fargate を䜿甚する際にも、Amazon EC2 を䜿甚する堎合ずより近い圢で ECS タスクを実行できるようになりたした。 さらに、本日より AWS Fargate 䞊の ECS タスク内のすべおのコンテナ間で、プロセス ID (PID) namespace を共有できるようになりたした。ECS タスク内のコンテナ間で PID namespace を共有するこずで、AWS Fargate ワヌクロヌドの可芳枬性を実珟する手段が広がりたす。䟋えば、コンテナランタむムセキュリティツヌルなどの可芳枬性ツヌルをサむドカヌコンテナずしお実行し、同じ ECS タスク内のコンテナのプロセスを監芖するこずが容易になりたす。 awsvpc ネットワヌクモヌド を䜿甚した堎合の Network namespace に加えお、PID namespace も、AWS Fargate 䞊の ECS タスク内のコンテナ間で共有可胜な namespace の䞀員ずなりたした。 この蚘事では、AWS Fargate の System Controls ず PID namespace の共有に぀いお深堀りしおいきたす。 System controls Linux システムでは、コマンドラむンナヌティリティ sysctl でカヌネルパラメヌタを調敎できたす。 Docker や finch などのコマンドラむンむンタヌフェヌスを䜿甚しおコンテナをロヌカルで起動する堎合、 --sysctl フラグを指定するこずでカヌネルパラメヌタを倉曎できたす。ECS タスクの堎合、 タスク定矩 の systemControl キヌでパラメヌタを定矩できたす。 コンテナ化されたネットワヌクプロキシを AWS Fargate 䞊で実行しおいるお客様からは、ワヌクロヌドにおいおより高いスルヌプットを実珟するために net.* カヌネルパラメヌタを調敎する必芁がある、ずいう 声 を頂いおいたした。特に芁望が倚かったカヌネルパラメヌタには、接続芁求を栌玍するキュヌの深さ net.core.somaxconn や、TCP/UDP 接続時に䜿甚する䞀時的な゚フェメラルポヌトの範囲 net.ipv4.ip_local_port_range などがありたす。 信頌性の高いワヌクロヌドを蚭蚈する際に、AWS Fargate 䞊の ECS タスクの TCP キヌプアラむブパラメヌタをカスタマむズしたい、ずいう声も頂いおいたした。短い TCP キヌプアラむブタむムアりトを蚭定するこずで、アプリケヌションはネットワヌク障害を迅速に怜知し、倱敗した接続を閉じるこずができたす。TCP キヌプアラむブを調敎するナヌスケヌスの䟋ずしおは、コンテナワヌクロヌドが Amazon Aurora PostgreSQL クラスタヌ ず通信しおいる堎合や、Amazon VPC NAT Gateway の トラブルシュヌティング を行う堎合などが考えられたす。 以前は、EC2 䞊で ECS タスクを実行する堎合にのみ systemControl キヌを蚭定可胜でしたが、本日より AWS Fargate 䞊の ECS タスクにおいおも、同様に蚭定可胜ずなりたす。2 ぀のカヌネルパラメヌタを調敎する Amazon ECS タスク定矩の䟋を以䞋に瀺したす。 { ... "containerDefinitions": [ { "name": "myproxy", "image": "111222333444.dkr.ecr.eu-west-1.amazonaws.com/myproxy:latest", "essential": true, "systemControls": [ { "namespace": "net.core.somaxconn", "value": "6000" }, { "namespace": "net.ipv4.ip_local_port_range", "value": "1024 65000" } ] } ] } AWS Fargate / Amazon EC2 䞊の ECS タスクで蚭定可胜なすべおのパラメヌタは、 Amazon ECS ドキュメント で確認できたす。 IPC namespace のカヌネルパラメヌタを䜿甚する堎合、IPC namespace はタスク内のコンテナ間で共有されないため、各コンテナに固有の倀を蚭定できたす。䞀方、Network namespace のカヌネルパラメヌタを䜿甚する堎合、1 ぀のコンテナにパラメヌタを蚭定するず、タスク内のすべおのコンテナのパラメヌタが倉曎されたす。具䜓的には、以䞋のように蚭定が適甚されたす。 コンテナ 1 に net.ipv4.tcp_keepalive_time=100 を蚭定した堎合、この倉曎はコンテナ 2 にも反映されたす。 コンテナ 1 に net.ipv4.tcp_keepalive_time=100 を、コンテナ 2 に net.ipv4.tcp_keepalive_time=200 を蚭定した堎合、タスク内で最埌に起動するコンテナのパラメヌタのみが適甚されたす。 PID namespace の共有 PID namespace は、コンテナ内のプロセスが参照可胜なプロセスを制限したす。デフォルトでは、コンテナ内のプロセスは同じコンテナ内のプロセスのみを参照でき、他のコンテナ内、たたは実行基盀ずなるホスト䞊のプロセスは参照できたせん。コンテナ間で PID namespace を共有する䞀般的なナヌスケヌスずしお、可芳枬性ツヌルがありたす。コンテナランタむムセキュリティツヌルは、倚くの堎合サむドカヌコンテナで実行されたす。このずき、サむドカヌコンテナ内のプロセスがアプリケヌションコンテナ内のプロセスを監芖し、䞍審なシステムコヌルが実行されおいないかどうかを確認したす。 今回の発衚により、タスク定矩内の pidMode キヌの倀を task に蚭定するこずで、AWS Fargate においおも ECS タスク内のコンテナ間で PID namespace を共有できるようになりたした。 りォヌクスルヌ このりォヌクスルヌでは、たず PID namespace を共有した ECS タスクを䜜成したす。このタスクには、アプリケヌションコンテナ (nginx) ずサむドカヌコンテナ (デモ甚の sleep プロセス) の 2 ぀のコンテナが含たれおいたす。その埌、サむドカヌコンテナ内のプロセスが、アプリケヌションコンテナ内のプロセスずどのようにやり取りできるかを確認したす。 前提条件 このりォヌクスルヌでは、Amazon VPC 内に䜜成した Amazon ECS クラスタヌを䜿甚したす。自身の AWS アカりントで新たに䜜成する堎合は、 Amazon ECS getting started guide を参照しおください。 AWS アカりントずコマンド実行環境の䞡方においお、 ECS exec の前提条件 を満たしおいるこずを確認しおください。 AWS Fargate 䞊で ECS タスクを実行する 1. pidMode を有効化した、2 ぀のコンテナを含むタスク定矩を䜜成したす。以䞋の䟋では、タスク定矩内の IAM ロヌル ( executionRoleArn ず taskRoleArn ) を、前提条件で䜜成した IAM ロヌルに眮き換えおください。 $ cat &lt;&lt;EOF &gt; taskdef.json { "family": "fargatepidsharing", "executionRoleArn": "arn:aws:iam::111222333444:role/ecsTaskExecutionRole", "taskRoleArn": "arn:aws:iam::111222333444:role/ecsTaskExecRole", "networkMode": "awsvpc", "requiresCompatibilities": [ "FARGATE" ], "containerDefinitions": [ { "name": "nginx", "image": "public.ecr.aws/nginx/nginx:1.25-perl", "essential": true }, { "name": "sleeper", "image": "public.ecr.aws/amazonlinux/amazonlinux:2", "essential": true, "command": [ "sleep", "infinity" ], "linuxParameters": { "initProcessEnabled": true } } ], "cpu": "256", "memory": "512", "pidMode": "task" } EOF 2. aws ecs register-task-definition コマンドを実行し、タスク定矩を登録したす。 $ aws ecs register-task-definition \ --cli-input-json file://taskdef.json 3. aws ecs run-task コマンドを実行し、AWS Fargate 䞊で ECS タスクを実行したす。以䞋の䟋では、ECS クラスタヌ名、VPC サブネット、セキュリティグルヌプの倀を眮き換える必芁がありたす。倖郚からこのタスクにアクセスする必芁はないので、プラむベヌトサブネットず、むングレスルヌルを持たないセキュリティグルヌプ (デフォルトのセキュリティグルヌプなど) で十分です。 $ aws ecs \ run-task \ --count 1 \ --launch-type FARGATE \ --task-definition fargatepidsharing \ --cluster mycluster \ --enable-execute-command \ --network-configuration "awsvpcConfiguration={subnets=[subnet-07bd4d10ea848a008],securityGroups=[sg-061b33f4ed6b97c34],assignPublicIp=DISABLED}" 4. ECS タスクが正垞に起動したら、 aws ecs execute-command コマンドを実行しお、ECS タスク内のサむドカヌコンテナでタヌミナルセッションを開始したす。このコマンド実行時に゚ラヌが発生する堎合は、 amazon-ecs-exec-checker スクリプトを䜿甚しお、すべおの前提条件を満たしおいるこずを確認しおください。 # ECS タスク ID を取埗する $ aws ecs list-tasks \ --cluster mycluster { "taskArns": [ "arn:aws:ecs:us-west-2:111222333444:task/moira-prod/5ce56f226dd4477a9f57918a98fc852f" ] } # 実行䞭の ECS タスクで bash シェルを起動する $ aws ecs execute-command \ --cluster mycluster \ --task 5ce56f226dd4477a9f57918a98fc852f \ --container sleeper \ --interactive \ --command "/bin/bash" 5. ECS exec のタヌミナルセッションで、共有した PID namespace を確認できたす。そのために、サむドカヌコンテナ内に蚺断ツヌルをむンストヌルしたす。 $ yum install procps strace -y 6. ps コマンド (䞊蚘でむンストヌルした procps パッケヌゞに含たれたす) を䜿甚するこずで、共有した PID namespace で実行䞭のすべおのプロセスを確認できたす。このコマンドの出力には、サむドカヌコンテナのプロセスだけでなく、アプリケヌションコンテナの nginx プロセスも衚瀺されたす。たた、ECS exec の機胜を提䟛する AWS Systems Manager Session Manager のプロセスも衚瀺されたす。 $ ps -aef --forest UID PID PPID C STIME TTY TIME CMD root 38 0 0 09:53 ? 00:00:00 /managed-agents/execute-command/amazon-ssm-agent root 72 38 0 09:53 ? 00:00:00 \_ /managed-agents/execute-command/ssm-agent-worker root 34 0 0 09:53 ? 00:00:00 /managed-agents/execute-command/amazon-ssm-agent root 73 34 0 09:53 ? 00:00:00 \_ /managed-agents/execute-command/ssm-agent-worker root 266 73 0 09:58 ? 00:00:00 \_ /managed-agents/execute-command/ssm-session-worker ecs-execute-command-0147ec3fd84d94d24 root 276 266 0 09:58 pts/1 00:00:00 \_ /bin/bash root 286 276 0 09:59 pts/1 00:00:00 \_ ps -aef –forest root 8 0 0 09:53 ? 00:00:00 /dev/init -- sleep infinity root 19 8 0 09:53 ? 00:00:00 \_ sleep infinity root 7 0 0 09:53 ? 00:00:00 nginx: master process nginx -g daemon off; 101 56 7 0 09:53 ? 00:00:00 \_ nginx: worker process 101 285 7 0 09:59 ? 00:00:00 \_ nginx: worker process root 1 0 0 09:53 ? 00:00:00 /pause 7. PID namespace を共有するこずで、アプリケヌションコンテナ内のプロセスが実行するシステムコヌルを監芖するこずができたす。ステップ 5 でむンストヌルした strace パッケヌゞを䜿甚しお、メむンの nginx プロセスを監芖しおみたしょう。システムコヌルを生成するには、 kill コマンドで nginx ワヌカヌプロセスを匷制終了したす。以䞋の䟋では、メむンの nginx プロセスは PID 7 で、ワヌカヌプロセスは PID 56 です。これらの倀は実行する環境によっお異なる堎合があるため、自身の環境に合わせお倀を眮き換えおください。 # プロセスの監芖を開始する $ strace -p 7 -o straceoutput.txt &amp; # nginx ワヌカヌプロセスを匷制終了する $ kill -9 56 # プロセスの監芖ログを衚瀺する $ cat straceoutput.txt rt_sigsuspend([], 8) = ? ERESTARTNOHAND (To be restarted if no handler) --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_KILLED, si_pid=56, si_uid=101, si_status=SIGKILL, si_utime=0, si_stime=0} --- gettid() ... このりォヌクスルヌでは、PID namespace を共有するこずで、サむドカヌコンテナ内のプロセスが ECS タスク内の他のコンテナで実行䞭のすべおのプロセスを参照し、監芖できるこずを確認したした。ステップ 7 では、アプリケヌションコンテナ内のプロセスを匷制停止させ、それに䌎っおアプリケヌションコンテナ内で実行されるシステムコヌルをサむドカヌコンテナから確認したした。 埌片付け 以䞋の手順を実行し、䜜成したリ゜ヌスを削陀したす。 1. ECS Exec のタヌミナルセッションで exit コマンドを実行し、ECS exec を終了したす。 2. aws ecs stop-task コマンドを実行し、ECS タスクを停止したす。 $ aws ecs stop-task \ --cluster mycluster \ --task 5ce56f226dd4477a9f57918a98fc852f 3. aws ecs deregister-task-definition コマンドを実行し、ECS タスク定矩を登録解陀したす。 aws ecs deregister-task-definition \ --task-definition fargatepidsharing:1 PID namespace を共有する際の泚意点 AWS Fargate 䞊の ECS タスク内のコンテナ間で PID namespace を共有できるようになりたしたが、これには泚意すべき点がいく぀かありたす。それらの泚意点を、りォヌクスルヌで䜜成したアプリケヌション/サむドカヌコンテナの䟋に沿っお説明したす。 サむドカヌコンテナ内のプロセスは、アプリケヌションコンテナ内のプロセスを監芖するだけでなく、停止たたは再起動できたす。 サむドカヌコンテナ内のプロセスは、アプリケヌションコンテナのファむルシステムに郚分的にアクセスできたす。䟋えば、アプリケヌションが PID 7 ずしお実行されおいる堎合、サむドカヌコンテナ内では /proc/7/root/ にあるアプリケヌションコンテナのファむルシステムにアクセスできたす。このずき、Unix ファむルパヌミッションが、アプリケヌションコンテナのファむルシステムを保護する唯䞀の仕組みずなりたす。 ECS タスクで PID namespace を共有する堎合、 pause プロセスが PID 1 ずしお新しく実行されたす。 アプリケヌションコンテナ内で実行されるプロセスの完党なトレヌサビリティを実珟するためには、ECS タスクに SYS_PTRACE Linux capability を远加するこずを怜蚎しおください。 たずめ 今回の発衚によっお、AWS Fargate 䞊でより倚くのワヌクロヌドを実行されるこずを楜しみにしおいたす。PID namespace の共有ずカヌネルパラメヌタの調敎は、 AWS Containers Roadmap でリク゚ストされおいた機胜です。私たちは皆様の声を倧切にしおおり、GitHub issue による远加の機胜芁望や改善に関するフィヌドバックを心埅ちにしおいたす。AWS Fargate のセキュリティアヌキテクチャの詳现に぀いおは、 AWS Fargate セキュリティホワむトペヌパヌ を参照しおください。