TECH PLAY

AWS

AWS の技術ブログ

å…š3309ä»¶

この蚘事は Amazon EKS now supports Kubernetes version 1.29 (蚘事公開日: 2024 幎 1 月 23 日) を翻蚳したものです。 はじめに Amazon Elastic Kubernetes Service ( Amazon EKS ) チヌムは、 Amazon EKS 、 Amazon EKS Distro および Amazon EKS Anywhere (リリヌス 0.19.0) における Kubernetes バヌゞョン 1.29 のサポヌトを発衚できるこずを嬉しく思いたす。このバヌゞョンのテヌマは、矎しい芞術圢匏である「曌荌矅」で、それは宇宙の完璧さを象城しおいたす。そのため、リリヌス名は「Mandala」です。Kubernetes リリヌスチヌムは公匏リリヌス発衚の䞭で、このリリヌスは「コミュニティの盞互接続性、熱狂的なファンや専門家によっお織り䞊げられた掻気に満ちたタペストリヌ」を反映しおいるず述べおいたす。 アップグレヌドの前提条件 Amazon EKS で Kubernetes v1.29 にアップグレヌドする前に、完了する必芁がある重芁なタスクがいく぀かありたす。次のセクションでは、アップグレヌド前に察凊する必芁がある倉曎点の抂芁を説明したす。 FlowSchema ず PriorityLevelConfiguration の API バヌゞョンを曎新しおください。 非掚奚の flowcontrol.apiserver.k8s.io/v1beta2 API バヌゞョンの FlowSchema および PriorityLevelConfiguration は、Kubernetes v1.29 では提䟛されなくなりたした。 非掚奚のベヌタ API グルヌプを䜿甚するマニフェストたたはクラむアント゜フトりェアがある堎合は、v1.29 にアップグレヌドする前にこれらを倉曎する必芁がありたす。 詳现に぀いおは、 Deprecated API Migration Guide を参照しおください。 Kubernetes 1.29 のハむラむト この蚘事では、Kubernetes バヌゞョン 1.29 リリヌスの泚目すべき機胜匷化、および削陀ず非掚奚の䞀郚に぀いお説明したす。たず、このリリヌスでは v1beta2 Flow control API グルヌプの削陀など、いく぀かの重芁な倉曎がもたらされるこずに泚意するこずが重芁です。これは、v1.29 にアップグレヌドする前に、非掚奚 API グルヌプを䜿甚しおいるマニフェストたたはクラむアント゜フトりェアを曎新する必芁があるこずを意味したす。最埌に、v1.29 には、SidecarContainers のベヌタ版サポヌトなど、私たちが楜しみにしおいる機胜匷化がいく぀かありたす。Kubernetes バヌゞョン 1.29 の倉曎ずアップデヌトの完党なリストに぀いおは、Kubernetes の 倉曎ログ を確認しおください。 以䞋は、v1.29 のリリヌスに関しお私たち技術コミュニティが興奮しおいるいく぀かの機胜匷化です。完党なリストは こちら を参照しおください。 高床な Pod 管理機胜がベヌタ版に到達 Kubernetes v1.29 では、䞀連の高床なポッド管理機胜が導入されたす。これらは匷力な機胜ですが、その圱響を総合的にテストし、問題が発生した堎合のロヌルバック蚈画を立おおおくこずをお勧めしたす。䜕らかの問題が発生した堎合は、機胜を無効にしお kubelet を再起動するこずをお勧めしたす。 #753 がベヌタ版に移行し、SidecarContainers フィヌチャヌゲヌトがデフォルトで有効になりたした。この機胜により、Init コンテナを Pod が終了するたで実行し続けるこずができ、事実䞊、Init コンテナをサむドカヌコンテナに倉えるこずができたす。これは、Pod 内のメむンコンテナず䞊行しお実行する必芁がある、長時間実行する補助プロセスの管理の問題を解決したす。たずえば、Pod にメむンアプリケヌションコンテナず、メむンアプリケヌションからログを収集しお転送するロギングコンテナがある堎合、ロギングコンテナをサむドカヌコンテナずしお定矩できたす。これにより、メむンアプリケヌションコンテナが実行されおいる間、ロギングコンテナは実行ずログの収集を継続し、継続的なログの収集ず転送を行うこずができたす。 セキュリティ匷化 #2799 がベヌタ版に移行し、LegacyServiceAccountTokenCleanUp フィヌチャヌゲヌトがデフォルトで有効になりたした。この機胜により、Secret ベヌスの未䜿甚の埓来のサヌビスアカりントトヌクンを自動的にクリヌンアップできたす。具䜓的には、埓来の自動生成された Secret ベヌスのトヌクンが長期間 (デフォルトで 1 幎間) 䜿甚されおいない堎合、無効であるずラベル付けし、無効であるずマヌクされた埌、長期間 (デフォルトでさらに1幎間) 䜿甚が詊みられなかった堎合、自動的に削陀したす。䟋えば、Kubernetes クラスタヌが v1.22 で䜜成され、自動生成された Secret ベヌスのサヌビスアカりントトヌクンがあった堎合、v1.29 にアップグレヌドした埌でも、それらのレガシヌトヌクンが残っおいる可胜性がありたす。この機胜は、䞍芁になった叀い未䜿甚トヌクンを自動的にクリヌンアップし、朜圚的な攻撃察象領域を枛らすのに圹立ちたす。未䜿甚のトヌクンを䜿甚しおいるかどうかを確認するには、以䞋のコマンドを実行しおください。 kubectl get cm kube-apiserver-legacy-service-account-token-tracking -nkube-system #3299 が安定版に移行し、Kubernetes v1.29では、KMSv2 および KMSv2KDF フィヌチャヌゲヌトがデフォルトで有効になりたした。しかし、KMSv2 は珟圚 Amazon EKS ではサポヌトされおいないこずに泚意しおください。 これは、Kubernetes v1.29 で安定版に移行した最もクヌルな機胜の完党なリストではありたせん。完党なリストに぀いおは、 Graduations to stable を参照しおください。 削陀された API バヌゞョンず機胜 珟圚では、Kubernetes の新しいバヌゞョンがリリヌスされるず、Kubernetes API のバヌゞョンや機胜が非掚奚になったり、削陀されたりするこずは珍しくありたせん。このような堎合、 v1.29 にアップグレヌドする 前に、すべおのマニフェストずコントロヌラヌをこのセクションに蚘茉されおいる新しいバヌゞョンず機胜に曎新するこずが䞍可欠です。以䞋は v1.29 リリヌスの重芁な泚意点です。完党なリストに぀いおは、すべおの Deprecations and removals in Kubernetes v1.29 を参照しおください。 ノヌドの status.nodeInfo.kubeProxyVersion フィヌルドの非掚奚化 Node オブゞェクトの .status.kubeProxyVersion フィヌルドは珟圚非掚奚ずなり、Kubernetes プロゞェクトは将来のリリヌスでこのフィヌルドを削陀するこずを提案しおいたす。この非掚奚フィヌルドは正確ではなく、歎史的には kubelet によっお管理されおきたしたが、実際には kubelet は kube-proxy のバヌゞョンや kube-proxy が実行されおいるかどうかを知りたせん。クラむアント゜フトりェアでこのフィヌルドを䜿甚しおいる堎合は、䜿甚を䞭止しおください。情報は信頌できず、このフィヌルドは非掚奚になりたした。 Amazon EKS の Kubernetes バヌゞョンサポヌト Amazon EKS は珟圚、7 ぀の Kubernetes バヌゞョン (v1.23 〜 v1.29) を サポヌト しおいたす。Kubernetes v1.24 〜 v1.29 は暙準サポヌトで、v1.23 は珟圚延長サポヌト䞭です。Kubernetes バヌゞョン 1.24 は、2024 幎 2 月 1 日に延長サポヌトに入りたす。Amazon EKS の延長バヌゞョンサポヌトに぀いおは、 こちらのブログ蚘事 ず FAQ をご芧ください。延長サポヌトを利甚したくない堎合は、暙準サポヌトの Kubernetes バヌゞョンぞのアップグレヌドをご怜蚎ください。 たずめ この蚘事では、Kubernetes バヌゞョン v1.29 の泚目すべき倉曎点を説明し、利甚可胜ずなった最も゚キサむティングな機胜のいく぀かを玹介したした。 Kubernetes v1.29 リリヌスノヌト に蚘茉されおいるその他の改善点もぜひチェックしおください。クラスタヌを最新の Amazon EKS バヌゞョンにアップグレヌドする際にサポヌトが必芁な堎合は、 こちら のドキュメントを参照しおください。 簡単なアンケヌト にご参加いただき、今埌のブログ蚘事でご芧になりたい情報をお知らせください。 翻蚳はプロフェッショナルサヌビスの杉田が担圓したした。原文は こちら です。
AI/ML機械孊習の技術を実ビゞネスに掻甚できるか怜蚌するPoCProof of Concept抂念実蚌フェヌズにおいおは、察象範囲を絞った小さなデヌタセットでMLモデルの構築・評䟡を行うこずがありたす。䟋えば小売業においお、特定の店舗や商品カテゎリに絞り、需芁予枬モデルを構築しおみるケヌスなどです。 PoCでよい結果が埗られれば、党店展開や党商品展開など実ビゞネスぞの導入にむけおプロゞェクトが動きたすが、ここで課題が発生したす。倧芏暡デヌタが察象になったこずによる凊理時間やコストの増倧です。倧芏暡デヌタ凊理基盀をいちから怜蚎するず工数がかかり、本番導入ぞの障壁になる可胜性もありたす。 このような課題解決に向けお、私たちは 小売業で売り䞊げ数量の予枬を実珟するサンプル゜リュヌションを公開したした 。この蚘事では、Amazon Redshift Serverless ず Amazon SageMaker を䜿甚した倧芏暡デヌタ掻甚゜リュヌションで、実際にさたざたなサむズのデヌタで怜蚌を行い、本゜リュヌション利甚にかかるコストや時間を瀺すずずもに、怜蚌から埗られた゜リュヌション利甚のポむントを解説したす。 ゜リュヌション 倧芏暡デヌタ凊理を高速か぀䜎コストに実珟するための゜リュヌションを GitHub で公開しおいたす。この゜リュヌションは、小売業を想定したサンプルデヌタセットを䜵せお甚意しおおり、店舗別、商品別の売䞊個数の予枬倀を算出したす。アヌキテクチャの詳现は こちら を参照しおください。 䞻な凊理は、Amazon Redshift Serverless によるデヌタの前凊理や特城量生成、Amazon SageMaker によるMLモデルのトレヌニング、SageMaker による掚論店別・商品別の売り䞊げ数量予枬の3぀です。 Amazon Redshift Serverless は、倧芏暡なデヌタに察する分析や加工をコスト効率よく高速に実行できるデヌタりェアハりスのサヌビスです。機械孊習に必芁な前凊理をSQLで手軜に実行するこずができたす。たた、Serverless であるこずからむンフラストラクチャヌの管理が䞍芁であるため、運甚にあたっおむンフラストラクチャヌの専門家を配眮する必芁はありたせん。 Amazon SageMaker は、高性胜か぀䜎コストの機械孊習をあらゆるナヌスケヌスで実珟するための、包括的なツヌルセットを提䟛するフルマネヌゞドサヌビスです。SageMakerを䜿甚するこずで、ノヌトブック、デバッガヌ、プロファむラヌ、パむプラむン、MLOpsなどのツヌルを䜿っお、スケヌル可胜なMLモデルの構築、トレヌニング、デプロむができたす。たた、デヌタサむ゚ンティストやML゚ンゞニアが機械孊習モデルのトレヌニングずデプロむを迅速に開始できるようにする組み蟌みアルゎリズムスむヌトを提䟛しおいたす。 本゜リュヌションでは SageMaker ビルトむンアルゎリズムの LightGBM を利甚しおいたす。売り䞊げ数量予枬は倜間にバッチ凊理にお蚈算する運甚を想定し、SageMaker バッチ倉換ゞョブを甚いおいたす。デヌタ芏暡に察する凊理時間ずコストのベンチマヌクのため、MLモデルの予枬粟床は評䟡察象倖ずしおいたす。 サンプルデヌタセット ゜リュヌションには、䞋の衚に瀺すような商品マスタ、店舗マスタ、むベントカレンダ情報、倩気情報、トランザクション䌚蚈デヌタなどが甚意されおいたす。これらのデヌタは人工的に䜜成しおいたす。デヌタのさらなる詳现に぀いおは こちら をご参照ください。 ファむル名 デヌタ名 抂芁 categories.csv 商品カテゎリマスタ 商品の倧分類、䞭分類、小分類などのカテゎリに関する情報 event_calendar.csv むベントカレンダ 祝日や、党瀟的なむベントに関する情報。店舗からの入力が必芁な「店舗別むベント情報」は甚いない。 products.csv 商品マスタ 商品名、カテゎリ、䟡栌などの商品に関する情報 stores.csv 店舗マスタ 店舗タむプや所圚地などの店舗に関する情報 transactions.csv 䌚蚈蚘録 1䌚蚈凊理(トランザクション)を1レコヌドで蚘録。賌買商品詳现はtransaction_details.csvに蚘録 transaction_details.csv 䌚蚈明现 䌚蚈内容の詳现、賌買商品の皮類ごずにレコヌドを持぀ weather.csv 倩気情報 倖郚システムから取埗した日別、郜道府県別の倩気に関する情報 GitHubにあるサンプルデヌタ は、10MB皋床の小さなものです。今回の怜蚌ではより倧きなデヌタセットを䜜成し、4぀のデヌタセットに察しお怜蚌を行いたす。デヌタセット名ず特城は以䞋の通りです。 retail_small : GitHubにある小芏暡デヌタセット。20商品、3店舗、トランザクション5分に1回。 retail_medium : 䞭芏暡デヌタセット。3500商品、200店舗、トランザクション1分に1回。 retail_large : 倧芏暡デヌタセット。3500商品、2000店舗、トランザクション1分に1回。 retail_extra_large : 特倧芏暡デヌタセット。3500商品、20000店舗、トランザクション1分に1回。 各デヌタセットにおける各ファむルの詳现を以䞋に瀺したす。 ファむル名をクリックするずダりンロヌドするこずができたす。   デヌタセット ファむル名 レコヌド数 サむズ(.csv) サむズ(.csv.gz) 説明 retail_small categories.csv 14 864 B – – event_calendar.csv 19 1.6 KB – – products.csv 20 1.4 KB – 20商品 store.csv 3 200 B – 3店舗 weather.csv 90 6.4 KB – – transactions.csv 25059 2.1 MB – 各店舗5分に1回発生 transaction_details.csv 137559 8.2 MB – – TOTAL 箄 16 侇 10.3 MB – – retail_medium categories.csv 250 15.9 KB – – event_calendar.csv 19 1.9 KB – – products.csv 3500 267.1 KB – 3500商品 store.csv 200 16 KB – 200店舗 weather.csv 1410 99.8 KB – – transactions.csv.gz 8352200 726 MB 100 MB 各店舗1分に1回発生 transaction_details.csv.gz 45999200 2.9 GB 310 MB – TOTAL 箄 0.46 億 3.7 GB 0.4 GB – retail_large categories.csv 250 15.9 KB – – event_calendar.csv 19 1.9 KB – – products.csv 3500 267.1 KB – 3500商品 store.csv 2000 157 KB – 2000店舗 weather.csv 1410 99.8 KB – – transactions.csv.gz 83522000 7.2 GB 992 MB 各店舗1分に1回発生 transaction_details.csv.gz 459992000 30 GB 3.1GB – TOTAL 箄 4.6 億 37 GB 4 GB – retail_extra_large categories.csv 250 15.9 KB – – event_calendar.csv 19 1.9 KB – – products.csv 3500 267.1 KB – 3500商品 store.csv 20000 1.6 MB – 20000店舗 weather.csv 1410 99.8 KB – – transactions.csv.gz 835220000 74 GB 9.7 GB 各店舗1分に1回発生 transaction_details_storeid_1_2000.csv.gz 459992000 30 GB 3.1 GB – transaction_details_storeid_2001_4000.csv.gz 459992000 30 GB 3.1 GB – transaction_details_storeid_4001_6000.csv.gz 459992000 30 GB 3.1 GB – transaction_details_storeid_6001_8000.csv.gz 459992000 30 GB 3.1 GB – transaction_details_storeid_8001_10000.csv.gz 459992000 30 GB 3.1 GB – transaction_details_storeid_10001_12000.csv.gz 459992000 30 GB 3.1 GB – transaction_details_storeid_12001_14000.csv.gz 459992000 30 GB 3.1 GB – transaction_details_storeid_14001_16000.csv.gz 459992000 30 GB 3.1 GB – transaction_details_storeid_16001_18000.csv.gz 459992000 30 GB 3.1 GB – transaction_details_storeid_18001_20000.csv.gz 459992000 30 GB 3.1 GB – TOTAL 箄 46 億 374 GB 40 GB – retail_extra_largeデヌタセットのtransaction_details.csvに぀いおは、2000店舗ごずにファむルを分けおいたす。デヌタ内容はstore_id以倖は各店舗で同䞀です。 実隓凊理時間ずコストの蚈枬 4぀のデヌタセットに察しお、Redshift Serverless による前凊理、SageMaker による孊習、SageMaker による掚論の凊理時間ずコストを蚈枬したした。 実斜手順 GitHub䞊に準備されおいるretail_smallデヌタセットに察しおは、 クむックスタヌトガむド に埓っお実斜するこずができたす。その他3぀のデヌタセットに察しおは、デヌタセットをダりンロヌドしお実斜する必芁がありたす。以䞋にretail_extra_largeのケヌスに぀いおガむドしたす。 retail_extra_largeデヌタセットの怜蚌ガむド クむックスタヌトガむド:デプロむの準備 「4. 実行環境の準備」においお、AWS Cloud9 のリサむズは 500GB ずしたす。デヌタセットのダりンロヌドで必芁なためです。retail_medium、retail_largeは 100GB で十分 クむックスタヌトガむド:How to deploy 「1. cdk.jsonを線集」においお、パラメヌタの線集を行いたす。 “trainingInstanceType”の、”ml.m5.xlarge”を”ml.m5.4xlarge”に倉曎したす。SageMaker孊習ゞョブでのメモリ枯枇に察応。retail_medium、retail_largeは倉曎䞍芁 クむックスタヌトガむド:Operation 「3. テストデヌタをアップロヌド」においお、デヌタセットのダりンロヌド、.gzファむルの解凍、S3ぞのアップロヌドを行いたす。 たず、Cloud9 のタヌミナルで以䞋のコマンドを実行し、ファむルのダりンロヌドを行いたす。(retail_medium、retail_largeの堎合は、-Pオプションの栌玍先ディレクトリず、ダりンロヌドURLを倉曎しおください。 <Cloud9 タヌミナルで実行> cd /home/ec2-user/environment/retail-large-data-ml-e2e/test wget -P ./extralargedata/ https://d3rhanl4x81lsu.cloudfront.net/retail_extra_large/categories.csv wget -P ./extralargedata/ https://d3rhanl4x81lsu.cloudfront.net/retail_extra_large/event_calendar.csv wget -P ./extralargedata/ https://d3rhanl4x81lsu.cloudfront.net/retail_extra_large/products.csv wget -P ./extralargedata/ https://d3rhanl4x81lsu.cloudfront.net/retail_extra_large/store.csv wget -P ./extralargedata/ https://d3rhanl4x81lsu.cloudfront.net/retail_extra_large/weather.csv wget -P ./extralargedata/ https://d3rhanl4x81lsu.cloudfront.net/retail_extra_large/transactions.csv.gz wget -P ./extralargedata/ https://d3rhanl4x81lsu.cloudfront.net/retail_extra_large/transaction_details_storeid_1_2000.csv.gz wget -P ./extralargedata/ https://d3rhanl4x81lsu.cloudfront.net/retail_extra_large/transaction_details_storeid_2001_4000.csv.gz wget -P ./extralargedata/ https://d3rhanl4x81lsu.cloudfront.net/retail_extra_large/transaction_details_storeid_4001_6000.csv.gz wget -P ./extralargedata/ https://d3rhanl4x81lsu.cloudfront.net/retail_extra_large/transaction_details_storeid_6001_8000.csv.gz wget -P ./extralargedata/ https://d3rhanl4x81lsu.cloudfront.net/retail_extra_large/transaction_details_storeid_8001_10000.csv.gz wget -P ./extralargedata/ https://d3rhanl4x81lsu.cloudfront.net/retail_extra_large/transaction_details_storeid_10001_12000.csv.gz wget -P ./extralargedata/ https://d3rhanl4x81lsu.cloudfront.net/retail_extra_large/transaction_details_storeid_12001_14000.csv.gz wget -P ./extralargedata/ https://d3rhanl4x81lsu.cloudfront.net/retail_extra_large/transaction_details_storeid_14001_16000.csv.gz wget -P ./extralargedata/ https://d3rhanl4x81lsu.cloudfront.net/retail_extra_large/transaction_details_storeid_16001_18000.csv.gz wget -P ./extralargedata/ https://d3rhanl4x81lsu.cloudfront.net/retail_extra_large/transaction_details_storeid_18001_20000.csv.gz ダりンロヌドファむルに含たれる.gzファむルを解凍したす。 <Cloud9 タヌミナルで実行> gunzip extralargedata/*.gz 解凍したデヌタセットをCloud9からS3にアップロヌドしたす。たず、以䞋の upload_s3.sh  ãƒ•ァむルを䜜成したす。 <Cloud9 タヌミナルで実行> cd /home/ec2-user/environment/retail-large-data-ml-e2e/test touch upload_s3.sh upload_s3.sh を開き、以䞋の内容を蚘茉したす。 <upload_s3.shの䞭身> #!/bin/bash echo "create prefix in ${INPUTBUCKET}" echo "data size is ${DIR_SIZE}" aws s3 cp ${DIR_SIZE}/categories.csv s3://${INPUTBUCKET}/${PROCESSINGDATE}/categories/categories.csv aws s3 cp ${DIR_SIZE}/event_calendar.csv s3://${INPUTBUCKET}/${PROCESSINGDATE}/event_calendar/event_calendar.csv aws s3 cp ${DIR_SIZE}/products.csv s3://${INPUTBUCKET}/${PROCESSINGDATE}/products/products.csv aws s3 cp ${DIR_SIZE}/store.csv s3://${INPUTBUCKET}/${PROCESSINGDATE}/stores/store.csv aws s3 cp ${DIR_SIZE}/weather.csv s3://${INPUTBUCKET}/${PROCESSINGDATE}/weather/weather.csv aws s3 cp ${DIR_SIZE}/transactions.csv s3://${INPUTBUCKET}/${PROCESSINGDATE}/transactions/transactions.csv aws s3 cp ${DIR_SIZE}/transaction_details_storeid_1_2000.csv s3://${INPUTBUCKET}/${PROCESSINGDATE}/transaction_details/transaction_details_storeid_1_2000.csv aws s3 cp ${DIR_SIZE}/transaction_details_storeid_2001_4000.csv s3://${INPUTBUCKET}/${PROCESSINGDATE}/transaction_details/transaction_details_storeid_2001_4000.csv aws s3 cp ${DIR_SIZE}/transaction_details_storeid_4001_6000.csv s3://${INPUTBUCKET}/${PROCESSINGDATE}/transaction_details/transaction_details_storeid_4001_6000.csv aws s3 cp ${DIR_SIZE}/transaction_details_storeid_6001_8000.csv s3://${INPUTBUCKET}/${PROCESSINGDATE}/transaction_details/transaction_details_storeid_6001_8000.csv aws s3 cp ${DIR_SIZE}/transaction_details_storeid_8001_10000.csv s3://${INPUTBUCKET}/${PROCESSINGDATE}/transaction_details/transaction_details_storeid_8001_10000.csv aws s3 cp ${DIR_SIZE}/transaction_details_storeid_10001_12000.csv s3://${INPUTBUCKET}/${PROCESSINGDATE}/transaction_details/transaction_details_storeid_10001_12000.csv aws s3 cp ${DIR_SIZE}/transaction_details_storeid_12001_14000.csv s3://${INPUTBUCKET}/${PROCESSINGDATE}/transaction_details/transaction_details_storeid_12001_14000.csv aws s3 cp ${DIR_SIZE}/transaction_details_storeid_14001_16000.csv s3://${INPUTBUCKET}/${PROCESSINGDATE}/transaction_details/transaction_details_storeid_14001_16000.csv aws s3 cp ${DIR_SIZE}/transaction_details_storeid_16001_18000.csv s3://${INPUTBUCKET}/${PROCESSINGDATE}/transaction_details/transaction_details_storeid_16001_18000.csv aws s3 cp ${DIR_SIZE}/transaction_details_storeid_18001_20000.csv s3://${INPUTBUCKET}/${PROCESSINGDATE}/transaction_details/transaction_details_storeid_18001_20000.csv この、 upload_s3.sh をタヌミナルから以䞋のコマンドで䜿甚したす。INPUTBUCKET倉数にはS3バケット名(retaildatasolutionstack-inputbucketXXXの正しい名称)を蚘茉しおください。 <Cloud9 タヌミナルで実行> ### バケット名眮き換える export INPUTBUCKET=retaildatasolutionstack-inputbucketXXXXXXXX-XXXXXXXXXXXXX ### Cloud9のデヌタセットディレクトリ export DIR_SIZE=extralargedata for GENDATE in 2023-04-01 2023-04-15 2023-04-16 2023-04-17 do export PROCESSINGDATE=${GENDATE} bash upload_s3.sh done この埌は、 クむックスタヌトガむド:Operation 「4. ワヌクフロヌキック」から手順通りに実行したす。 蚈枬方法 Redshift Serverlessに぀いおは、AWS Step Functionsの”WakeUpRedshift”から”TrainingKicker”たでを凊理時間ずしたす。この䞭で”WaitForWakeUp”は600秒埅぀蚭定ずなっおいるので、凊理時間から600秒を匕いお算出したす。 Redshift Serverlessのコストに぀いおは、4回ゞョブを実行するので、合蚈コストを4で割った倀ずしたす。 SageMaker孊習に぀いおは、SageMakerトレヌニングゞョブの詳现画面から「請求可胜な時間秒」を取埗し、 むンスタンスの単䟡 から算出したす。 SageMaker掚論はバッチ倉換ゞョブの詳现画面から「およそのバッチ倉換所芁時間」を取埗し、むンスタンスの単䟡ず数から算出したす。 その他条件 リヌゞョン:東京リヌゞョン(ap-northeast-1 孊習むンスタンスタむプ: ml.m5.xlarge (retail_extra_largeのみ怜蚌ガむドで述べた通りml.m5.4xlarge) 掚論むンスタンスタむプ: ml.m5.xlarge cdk.jsonのパラメヌタ”inferenceInstanceCount”は1ずし、負荷分散しない堎合の掚論凊理時間を蚈枬する。 蚈枬結果 蚈枬は2023幎12月〜2024幎1月のものであり、最新の状況では異なる可胜性があるこずをご留意ください。 東京リヌゞョンにおけるml.m5.xlargeの時間あたり料金は0.298USD、ml.m5.4xlargeは1.19USDになりたす。トレヌニング、バッチ倉換ずもに デヌタセット デヌタサむズ Redshift Serverless 凊理時間 [秒] Redshift Serverless コスト [ドル] SageMakerå­Šç¿’ 凊理時間 [秒] SageMakerå­Šç¿’ コスト [ドル] SageMaker掚論 凊理時間 [秒] SageMaker掚論 コスト [ドル] TOTAL 凊理時間 [秒] TOTAL コスト [ドル] retail_small 10.3 MB 259 4.48 77 0.00637 120 0.00993 456 4.4963 retail_medium 3.7 GB 558 7.755 167 0.01382 240 0.01987 965 7.78869 retail_large 37 GB 2159 28.295 924 0.07649 1320 0.10927 4403 28.48076 retail_extra_large 374 GB 4136 70.58 2584 0.85416 12420 1.0281 19140 72.46226 凊理時間を [秒] から [時分秒] ぞ、コストを [ドル] から[円] ぞ倉換しお以䞋に瀺したす。(1ドル = 150円換算) コストは少数第2以䞋切り捚おで衚瀺しおいたす。 デヌタセット デヌタサむズ Redshift Serverless 凊理時間 [時分秒] Redshift Serverless コスト [円] SageMakerå­Šç¿’ 凊理時間 [時分秒] SageMakerå­Šç¿’ コスト [円] SageMaker掚論 凊理時間 [時分秒] SageMaker掚論 コスト [円] TOTAL 凊理時間 [時分秒] TOTAL コスト [円] retail_small 10.3 MB 4分19秒 672.0 1分17秒 0.9 2分0秒 1.4 7分36秒 674.4 retail_medium 3.7 GB 9分18秒 1163.2 2分47秒 2.0 4分0秒 2.9 16分5秒 1168.3 retail_large 37 GB 35分59秒 4244.2 15分24秒 11.4 22分0秒 16.3 1時間13分23秒 4272.1 retail_extra_large 374 GB 1時間8分56秒 10587.0 43分4秒 128.1 3時間27分0秒 154.2 5時間19分0秒 10869.3 さらに凊理時間を短瞮するために 前凊理に関しおは、デヌタの芏暡がさらに倧きくなり、凊理時間が問題になっおきた堎合は、Amazon Redshift Serverlessの凊理胜力をスケヌルさせるこずで察応するこずができたす。Amazon Redshift Serverlessではベヌスの凊理胜力をRPU (Redshift Processing Unit) ずいう単䜍で蚭定するこずができたす。この倀を倧きくするこずで凊理胜力を増倧させ、凊理の実行時間を短瞮するこずができたす。Amazon Redshift Serverlessの料金䜓系はRPUずク゚リ実行時間を掛け合わせたものであるため、䟋えばRPUを2倍にするこずで実行時間を半分にできたずするず、合蚈の料金が倉わるこずなく実行時間を短瞮するこずができたす。 SageMaker孊習に関しおは、今回は1むンスタンスで実斜したが、長時間になるこずはありたせんでした。しかし特城量の数やハむパヌパラメヌタによっおは長時間化する可胜性がありたす。その堎合の遞択肢ずしお、 SageMakerビルトむンアルゎリズムのLightGBMは分散孊習機胜を実装 しおいたす。 SageMaker掚論に関しおは、retail_extra_large堎合でも5時間匷、10000円匷皋床であったこずは、倜間のバッチ凊理を想定しおも実甚に耐えうる倀ず思われたす。たた、今回は掚論むンスタンスをで実斜したしたが、”inferenceInstanceCount”パラメヌタを1より倧きくするこずで分散しお掚論凊理を埗られるこずができたす。参考に、”inferenceInstanceCount”を4にした堎合、3時間27分が55分ずなりたした。単玔に1/4の時間にはなりたせんが、凊理時間をパラメヌタ倉曎のみで倧きく短瞮するこずができたす。 たずめ 本皿では、「 小売業で売り䞊げ数量の予枬を実珟するサンプル゜リュヌション 」を掻甚するこずで、コストを抑え぀぀、倧芏暡デヌタを短時間で凊理できるこずを瀺すために怜蚌を行いたした。POCのデヌタサむズでは問題にならなくおも、倧芏暡デヌタを利甚する本番環境ではコストや時間が課題になるこずがありたす。 今回の怜蚌では、デヌタサむズの増加にあたっお䞊列床をあげるこずで時間が短瞮できるこず、370GB、47億レコヌドのデヌタに察しお5時間匷、10000円匷皋床で凊理が可胜ずいう結果を埗たした。これは本゜リュヌションが倧芏暡デヌタにおいお高いコストパフォヌマンスを提䟛するこずを瀺しおいたす。 䞀方で、あくたで今回のデヌタセットに察しおの結果であり、別デヌタでも同じ性胜が出るずは限らない点に泚意が必芁です。デヌタや前凊理ロゞック、モデルパラメヌタで異なりたすので。本皿を参考に、自瀟のデヌタでも詊しおいただければず思いたす。 著者に぀いお 䌊藀 芳幞(Ito Yoshiyuki), シニア機械孊習゜リュヌションアヌキテクト 生成AIを含むAI/ML技術の支揎を担圓しおいたす。事業䌚瀟での経隓を生かし、ビゞネス䞊の課題を解決するためのAI/ML゜リュヌションの提案や導入支揎に努めおいたす。新しい技術に觊れるこずは楜しみの䞀぀で、積極的に手を動かしおいたす。 プラむベヌトでは育児に忙しい日々を送っおいたすが、フットサルやゞム通いを通じおストレスを発散しおいたす。 秋田 仁雅(Akita Yoshinori), プロトタむピング゚ンゞニア 普段は AWS を甚いおプロトタむプを開発するこずでお客様の課題を解決するプロトタむピング゚ンゞニアずいう業務を担圓。 平間 倧茔(Hirama Daisuke), Redshift スペシャリスト゜リュヌションアヌキテクト AWSでは䞻にデヌタりェアハりスサヌビスのAmazon Redshiftに関する技術支揎を担圓。パフォヌマンスチュヌニングが倧奜物。プラむベヌトでは最近レトロPCいじりにハマっおいたす。 䞋䜐粉 昭(Shimosako Akira, @simosako ), シニア゜リュヌションアヌキテクト (アナリティクス) AWS ではデヌタレむク、デヌタりェアハりス、BI 等アナリティクス領域専門の゚ンゞニアずしお掻動。分析システムを AWS 䞊で皌働させるための技術支揎を行い぀぀、オンラむンセミナヌやむベントを通じお、新しい考え方や技術を広くを䌝える掻動をしおいる。 最近は「週刊 AWS」で、AWS の最新情報を䌝える掻動も行っおいる。プラむベヌトは完党なむンドア掟でスポヌツ芳戊・芳劇・絵画や映画の鑑賞ず䜓を動かさないこずに時間を費やしおいるが、そろそろ運動する習慣を䜜らないずダバいのではず焊る日々。
このブログでは、倧芏暡蚀語モデルLLM、Amazon Bedrock、Amazon OpenSearch Service を䜿甚しおおすすめの映画を教えおくれるチャットボットを䜜成する方法をご玹介したす。このデモンストレヌションでは、幅広い゚ンタヌテむメントのメタデヌタを提䟛する IMDb and Box Office Mojo Movies/TV/OTT のラむセンス可胜なデヌタパッケヌゞを䜿甚したす。Amazon Web ServicesAWSの Media & EntertainmentM&Eのお客様の倚くは、 AWS Data Exchange を通じお IMDb デヌタのラむセンスを取埗しおいたす。これにより、コンテンツが芋぀けやすくなり、顧客゚ンゲヌゞメントず定着率が高たりたす。完党䞀臎ク゚リずセマンティック䞀臎ク゚リの䞡方においお、IMDb デヌタセット䞊に怜玢拡匵生成RAGチャットボットを構築する方法に぀いお説明しおいきたす。 背景 映画やテレビ番組を芋おいるずきに、「他にもこのような映画がないかな」、「この映画の俳優は他にどんな映画に出挔しおいるのかな」などず思ったこずはありたせんかこのブログ蚘事では、Amazon Bedrock サヌビスの LLM ず IMDb などの倖郚デヌタ゜ヌスを䜿っおこれらの質問に答える方法をご玹介したす。 この蚘事では、オンラむンの M&E プラットフォヌムで䌚話型怜玢を有効にしお、䜿いやすいナヌザヌ゚クスペリ゚ンスを提䟛する方法に぀いお順を远っお説明したす。昚今、LLM はさたざたな自然蚀語凊理や自然蚀語理解NLP/NLUタスクの分野で画期的な成果を䞊げおいたす。LLM は、未加工のナヌザヌの意図を正確に理解し、特定のコンテキストに沿った結果を生成するこずができたす。たた、いく぀かの䟋few-shot 孊習を䞎えるこずで、RAG 技術を通じおナレッゞベヌスに基づいお質問に答えるこずができたす。これらの技術ず IMDb のようなデヌタセットを䜵甚するこずで、ストリヌミングプラットフォヌムのナヌザヌは「トム・クルヌズが出挔するコメディヌ映画」や「ロンドンで撮圱されたトム・ホランド出挔のスパむダヌマンの映画」などの高床な怜玢ク゚リを䜜成するこずができたす。さらに、LLM の䌚話機胜のおかげで、ナヌザヌは掗緎されたク゚リから始める必芁がなくなりたす。ナヌザヌは LLM に䞀連の探玢的なク゚リを実行し、興味のある映画を絞り蟌むこずができたす。 IMDb ず Box Office Mojo Movie/TV/OTT のラむセンス可胜なデヌタセット AWS Data Exchange の IMDb デヌタセットは、16 億件を超えるナヌザヌ評䟡、1,300 䞇人を超えるキャストずクルヌのクレゞット、1,000 䞇本もの映画/テレビ/゚ンタヌテむメント䜜品、ならびに 60 か囜以䞊の䞖界の興行収入レポヌトデヌタを保持しおいたす。 倧芏暡蚀語モデルLLM 倧芏暡蚀語モデルLLMは、䞀連の単語やフレヌズを予枬できるように、膚倧な量のテキストデヌタを甚いた広範囲にわたるトレヌニングされた人工知胜AIモデルです。これらのモデルは、蚀語翻蚳、テキスト生成、感情分析など、さたざたな自然蚀語凊理業務に粟通しおいたす。特にラベル付けされたデヌタが䞍十分な状況で真䟡を発揮し、ラベル付けされおいないデヌタから単語の適切な文脈や解釈を予枬できるため、人の蚀葉に近いテキストを䜜成するこずができたす。 怜玢拡匵生成RAG 怜玢拡匵生成RAGは、コンテンツの怜玢ず生成を組み合わせたニュヌラルテキスト生成手法です。LLM の最近の進歩により、䞀貫性のある流暢なテキストを生成できるようになりたした。しかしながら、これらのモデルは生成機胜のみに䟝存しおいるため、事実に即した正確で䞀貫性のあるテキストの生成は苊手です。この問題を克服するために、研究者たちは、ニュヌラルテキスト生成ずニュヌラル情報怜玢を組み合わせた RAG を提案したした。たず、怜玢モデルを䜿甚しおナレッゞ゜ヌスから関連情報を取埗したす。ここで取埗した情報が、その埌のテキスト生成プロセスに情報を提䟛する基盀ずなりたす。次に、取埗した情報はニュヌラルテキスト生成モデルに統合されたす。この統合は、生成プロセスをガむドし、制玄を課す圹割を果たしたす。この方法を組み合わせた結果、生成モデルは、取埗した情報ず䞀貫性のある、より事実に即した出力を生成できるようになりたす。 Amazon OpenSearch Service Amazon OpenSearch Service は、むンタラクティブなログ分析、リアルタむムのアプリケヌションモニタリング、りェブサむト怜玢などを簡単に実行できるフルマネヌゞドサヌビスです。OpenSearch は、Elasticsearch から掟生したオヌプン゜ヌスの分散型怜玢および分析パッケヌゞ゜フトです。OpenSearch Service は、OpenSearch の最新バヌゞョンに加え、19 バヌゞョンものElasticsearchバヌゞョン 1.5 から 7.10をサポヌトしおいるほか、OpenSearch Dashboards ず Kibanaバヌゞョン1.5から7.10を利甚した芖芚化機胜も提䟛しおいたす。 アヌキテクチャ IMDb and Box Office Mojo Movie/TV/OTT のデヌタセットを䜿っお䌚話型怜玢ずチャットがどのように行われるかを芋おみたしょう。 次の図は、1ナヌザヌク゚リを受信しお結果を衚瀺するフロント゚ンドずしお機胜する Streamlit アプリ、2ク゚リを凊理しおレスポンスを埗る倚数のバック゚ンドコンポヌネントで構成される゜リュヌションアヌキテクチャを瀺しおいたす。 たずナヌザヌは、Streamlit アプリを操䜜しお怜玢するナヌスケヌスに関連するク゚リを入力したす䞊図に青䞞で衚瀺。これには、特定のゞャンルや特定の俳優が挔じる映画を怜玢する質問などが含たれたす。 バック゚ンドでは、Amazon Bedrock の LLM を䜿甚しお、ナヌザヌク゚リを OpenSearch ドメむン固有蚀語DSLク゚リたたぱンベディングに倉換したす。たずえば、䞋蚘のナヌザヌ怜玢ク゚リ "What movies are starring Tom Cruise?" トム・クルヌズが䞻挔しおいる映画は は䞋蚘の怜玢ク゚リに倉換されたす。 {"query":{"bool":{"must":[{"terms":{"stars.keyword": ["Tom Cruise"]}}]}}, "sort": [{"rating": {"order": "desc","missing":"_last", "unmapped_type" : "long"}}]} 怜玢ク゚リは、OpenSearch むンデックスここでは、党文むンデックスず kNN ベヌスむンデックスの䞡方を䜜成したすに保存されおいる IMDb and Box Office Mojo デヌタセット内の最も類䌌した蚘録を返したす。レスポンスには、映画のプロット、公開日、ゞャンル、ロケヌション、評䟡、監督、プロデュヌサヌなど、関連する映画に関する情報が含たれたす。 目的の出力を埗るための理想的なプロンプトや指瀺プロンプト゚ンゞニアリングは、LLM によっお異なる堎合があるこずに泚意しおください。 こちら で指瀺を倉曎しお、遞択した LLM に合わせお最適化するこずができたす。 怜玢結果を受け取った埌、ナヌザヌは仮想゚ヌゞェントのアクティブ化を遞択できたす。この゚ヌゞェントは、怜玢ク゚リに察するレスポンスドキュメントず LLM を䜿甚しお、怜玢結果で芋぀かった映画に関するいかなる質問にも回答できたす。さらに、チャットむンタラクションにはセッション固有のメモリが保持されるので、仮想゚ヌゞェントは回答する際に以前のナヌザヌ怜玢ク゚リを参照するこずができたす。 前提条件 この゜リュヌションを実装するには、AWS アカりントが必芁であり、OpenSearch サヌビスず Bedrock に粟通しおいる必芁がありたす。このアプリケヌションをテストするための倧たかな手順は次のずおりです。 IMDb デヌタセットの䜜成 IMDb ゚ンベディングの生成 OpenSearch むンデックスの䜜成 Streamlit アプリケヌションのロヌンチずテスト AWS CloudFormation によるリ゜ヌスのプロビゞョニング ゜リュヌションの構造をご理解頂いたずころで、゜リュヌションをアカりントにデプロむしおサンプルワヌクフロヌを実行するこずができたす。このワヌクフロヌは、Amazon OpenSearch Service ず Amazon SageMaker Studio ドメむンを適切な蚭定の VPC モヌドで起動したす。 スタックは、GitHub リポゞトリの cloudformation template を䜿甚しお、AWS CloudFormation コン゜ヌルの AWS Region us-east-1 䞊でロヌンチできたす。 1.     IMDb デヌタセットの䜜成 1.1 デヌタを Amazon S3 に゚クスポヌトする IMDb デヌタセットを䜿甚するには、以䞋の手順に埓いたす。 Step 1: AWS Data Exchange で IMDb デヌタにサブスクラむブする こちらのリンク https://console.aws.amazon.com/ から AWS Management Console にログむンする。 怜玢バヌで AWS Data Exchange を怜玢し、 [AWS Data Exchange] をクリックする。 巊偎のパネルの [Browse catalog] をクリックする。 [Browse catalog] の怜玢ボックスに [IMDb] ず入力する。 IMDb and Box Office Mojo Movie/TV/OTT DataSAMPLE たたは IMDb and Box Office Mojo Movie /TV/OTT DataPAID のいずれかにサブスクラむブする。 IMDb は毎日 1 回、デヌタセットを AWS Data Exchange に公開しおいたす。 Step 2: IMDb デヌタを ADX から Amazon S3 に゚クスポヌトする こちらの ワヌクショップ の手順に埓い、IMDb デヌタを ADX から Amazon S3 に゚クスポヌトする。 Step 3: ファむルを解凍しお title_essential_v1_complete.jsonl および name_essential_v1_complete.jsonl を取埗する 1.2 IMDb デヌタセットを凊理する IMDbデヌタをむンデックス䜜成に䜿甚するには、未加工デヌタを衚圢匏に凊理する必芁がありたす。たず、IMDbファむルを統合しお映画のタむトル情報を映画のキャスト/スタッフの情報ずマヌゞし、俳優や監督などのすべおの名前を1぀のデヌタセットにたずめたす。次に、それをMovieLensデヌタに含たれる映画の小さめのセットず合わせおサブセットを䜜成し、映画の数を枛らしお小さなカタログ状にしたす。このサブセットの䜜成は任意であり、デヌタセット党䜓を凊理するこずも可胜です。 2぀のIMDbデヌタセットcodeをマヌゞする手順は次のずおりです。   title_essential デヌタセットを列でフィルタリングする `[‘image’, ‘titleId’, ‘originalTitle’, ‘titleDisplay’, ‘principalCastMembers’, ‘principalCrewMembers’, ‘genres’, ‘keywordsV2’, ‘locations’, ‘plot’, ‘plotShort’, ‘plotMedium’, ‘plotLong’, ‘imdbRating’, ‘year’, ‘titleType’]` 列 principalCastMembers  åˆ—をカテゎリ別に分割し、Actors、Directors、Producers の 3 ぀の列を新たに䜜成する。これらの列には数字のIDしか含たれおいたせん name_essential デヌタセットのマッピングからキャストメンバヌ俳優、監督、プロデュヌサヌの実際の名前を含めお、映画デヌタセットに远加する。 キヌワヌド、ロケヌション、ポスタヌ URL の凊理枈みバヌゞョンを远加する。 結果を Parquet ファむルずしお S3 に保存する。䟋s3://<bucket>/<folder>/movies.parquet IMDb デヌタセットが䜜成されるず、远加の凊理ではデヌタセットのサむズを小さくするために、小さい方の MovieLens デヌタセットml-latest-small.zipの映画だけが保持されたす。デヌタスキヌマの䞀貫性を保ち぀぀、倧きな IMDb デヌタセットを凊理したい堎合は、このステップを省略できたす。 こちら のノヌトブックから、以䞋のステップを実行しおください。 未加工のIMDbデヌタセット党䜓をフィルタリングしお、Movie Lens デヌタセットに含たれる映画のみにする。 ロケヌションを凊理しお、郜垂名ず囜名の重耇を削陀する。 結果を Parquet ファむルずしお S3 に保存する。このファむルぞのデフォルトパスは s3://<bucket>/<folder>/imdb_ml_data.parquetです。 以䞋は、サンプルデヌタセットのサブセットのスナップショットです。 2.     ゚ンベディングの䜜成 前述のデヌタセットは、「トム・ハンクスの映画にはどんなものがある」などのク゚リをフィルタリングするのに圹立぀かもしれたせんが、「スナむパヌアクション映画にはどんなものがある」などのク゚リに答えるためには、デヌタセットを豊富なセマンティック情報でさらに匷化する必芁がありたす。 そのためには、 こちら のノヌトブックの指瀺に埓い、以䞋のタスクを実行しおください。 1.     movielens-20m デヌタセット からの信頌性の高いキヌワヌドで  IMDb キヌワヌドを匷化する。このステップは任意です。 2.     T5 large モデルの sentence-transformer を䜿甚しお、「プロット」、「キヌワヌド」、「プロット+キヌワヌド」列の゚ンベディングサむズ 768を生成する。 3.     ゚ンベディングを元の映画デヌタセットに远加し、Parquet ファむルずしお S3 に保存する。 次に、 リポゞトリ に戻り、 src/ フォルダで以䞋を実行したす。 python index_creation.py このコマンドは以䞋のタスクを実行したす。 Boto3 Python ラむブラリを䜿甚しお OpenSearch Service クラむアントを初期化する。 IMDb デヌタセットの空癜の゚ントリを NULL で埋める。 テキストず kNN ゚ンベディング怜玢甚に 2 ぀のむンデックスを䜜成し、ingest_data_into_os 関数を䜿甚しお結合されたデヌタフレヌムからデヌタを䞀括アップロヌドする。 むンデックスが䜜成されたら、 config.yml のドメむン名ずむンデックス名を曎新したす。 このデヌタ取り蟌みプロセスには 510 分かかりたす。この䟋では、テキストベヌスの怜玢ず kNN ゚ンベディングベヌスの怜玢を可胜にする 2 ぀のむンデックスが䜜成されたす。テキスト怜玢は、ナヌザヌが入力する自由圢匏のク゚リを映画のメタデヌタにマッピングしたす。「クリストファヌ・ノヌラン監督の映画」、「俳優トム・ハンクスが出おいる映画」などのク゚リは、監督やプロデュヌサヌなどの特定のメタデヌタにマッピングされるため、盎接テキスト怜玢に䜿甚されたす。しかし、「スナむパヌアクション映画にはどんなものがある」などの自由圢匏のク゚リは、゚ンベディングベヌスのセマンティック怜玢にルヌティングされたす。kNN ゚ンベディング怜玢では、゚ンベディングの朜圚空間から最も近い k 本の映画を芋぀けお出力ずしお返したす。 OpenSearch むンデックスの詳现に぀いおは、 こちらのブログ蚘事 を参照しおください。 3.     Streamlit アプリを䜜成 OpenSearch でテキスト怜玢ず kNN むンデックスが動䜜するようになったので、このナヌスケヌスのフロント゚ンドを䜜成する Python パッケヌゞである Streamlit を䜿甚しお ML を利甚したアプリケヌションを構築できたす。 コヌドを実行するには、たず Streamlit ず aws_requests_auth が Python 環境EC2 や ECS コンテナなどの適切なコンピュヌティングむンフラストラクチャにむンストヌルされおいるこずを確認する。提䟛されおいる コヌドリポゞトリ は Amazon SageMaker Studio 䞊で Streamlit を実行したす。以䞋のコマンドを䜿甚しお芁件をむンストヌルしたす。 pip install -r requirements.txt streamlit/フォルダヌに移動しお以䞋を実行し、Streamlit アプリの SageMaker Studio の URL を取埗する。 sh run.sh 次に、Streamlit アプリケヌションを実行しおポヌト番号を取埗する。 streamlit run chat.py SageMaker Studio の URL ずポヌト番号を{sm_studio_url}/{ port_number }/ のように組み合わせたす。 Streamlit アプリでは次のように衚瀺されたす。 怜玢ずチャット IMDb 䌚話型怜玢アプリケヌションに移動したら、以䞋を遞択できたす。 LLM このデモンストレヌションでは、LangChain を䜿甚しお、LLM ずしお Amazon BedrockClaude-V1を利甚しおいたす。 Task typeタスクタむプ 「怜玢Search」たたは「怜玢ずチャットSearch and Chat」。特定のク゚リにサブスクラむブしおいる IMDb デヌタセット内の映画だけを特定したい堎合は、「怜玢」を遞択したす。怜玢ク゚リで出力された映画に぀いおさらに質問できるようにチャットボットにもアクセスしたい堎合は、「怜玢ずチャット」を遞択したす。怜玢およびチャット機胜は、遞択した特定の LLM によっお実行されたす。 Question質問 怜玢のナヌスケヌスに察する質問を遞択したすタスクタむプに「怜玢」を遞択した堎合も、「怜玢ずチャット」を遞択した堎合も。アプリケヌションには䞀連のデフォルトの質問のほか、次に瀺すように独自の質問を远加するオプションが甚意されおいたす。 怜玢のナヌスケヌスに察する質問は、次のいずれかに分類されたす。 完党䞀臎:ロケヌション、俳優、プロット、評䟡、監督などに基づいた映画の怜玢 セマンティック䞀臎:他ず䌌おいる映画の怜玢 たずえば、「トム・クルヌズが䞻挔するアクション映画にはどのようなものがありたすか」ずいう質問をした堎合、LLM は、IMDb デヌタセット内の映画の䞭で、これず完党に䞀臎するものを怜玢し、次の出力を生成したす。 さらに、「怜玢ずチャット」機胜を遞択した堎合、次のチャットむンタヌフェヌスがアプリケヌションに出力されたす。 珟圚、チャットチェヌンはコンテキストの長さを維持するために䞀床に 5 ぀の質問に察応しおいたす。ただし、コンテキストの長さを䞀定に保぀ために、コンテキストをチャンク化したり、最埌の k 件の䌚話履歎をストヌリヌ化するなどの高床な方法を詊すこずもできたす。 レコメンデヌションによる怜玢結果の匷化 珟圚のシステムは怜玢むンデックスからコンテンツを汎甚的に取埗したすが、 Amazon Personalize のリランキング サヌビスなどの別のツヌルず連携させお、これたでにキャプチャされたナヌザヌ履歎に基づいお怜玢結果を䞊べ替えるこずもできたす。 たずめ 本蚘事では、Bedrock ず OpenSearch サヌビスによるテキスト怜玢ず kNN ベヌスの怜玢を䜿甚しお、IMDb デヌタセットの䞊に䌚話型怜玢を構築する゜リュヌションを構築する方法に぀いお説明したした。このアプリケヌションは LLM を䜿甚しお、ナヌザヌの質問を OpenSearch 経由でク゚リできるコマンドに倉換し、たた特定の映画に぀いおさらに質問するための䌚話型仮想゚ヌゞェントを提䟛したす。 この蚘事のコヌドサンプルの詳现に぀いおは、 GitHub リポゞトリをご芧ください。 参考リンク AWS Media Services AWS Media & Entertainment Blog (日本語) AWS Media & Entertainment Blog (英語) AWS のメディアチヌムの問い合わせ先: awsmedia@amazon.co.jp ※ 毎月のメルマガをはじめたした。最新のニュヌスやむベント情報を発信しおいきたす。賌読垌望は䞊蚘宛先にご連絡ください。 翻蚳は BD 山口、SA 石井が担圓したした。原文は こちら をご芧ください。
みなさん、こんにちは。゜リュヌションアヌキテクトの䞋䜐粉です。 今週も 週刊AWS をお届けしたす。 最近本圓に寒くなりたしたね。毎朝りォヌキングをしおいたのですが、最近は零床を䞋回るこずもあり、代わりに昌䌑憩にりォヌキングをするようになりたした。春になるたでは昌りォヌキングにしお、春になったらたた朝に戻そうず思っおいたす。 さお、AWSでは、AWS re:Inventの内容をたずめお日本語でお䌝えするAWS re:Invent Recapを幎初に実斜しおいたすが、今幎はむンダストリヌ線業界ごずず゜リュヌション線AWSサヌビスごずの぀に分けお実斜予定です。むンダストリヌ・゜リュヌション別に時間を区切っおいるので、興味があるずころに出やすい構成にしおいたす。ぜひご参加ください。 – AWS re:Invent Recap – むンダストリヌ線 2024 幎 1 月 30 日火〜 2 月 1 日朚 – AWS re:Invent Recap – ゜リュヌション線 2024 幎 2 月 6 日火〜 9 日金 それでは、先週の䞻なアップデヌトに぀いお振り返っおいきたしょう。 2024幎1月15日週の䞻芁なアップデヌト 1/15(月) 米囜祝日のためこの日の発衚はありたせんでした 1/16(火) AWS Transfer Family provides static IP addresses for SFTP connectors AWS Transfer for SFTP connector で固定的なIPアドレス蚭定がサポヌトされたした。SFTP Connector は、リモヌトのSFTPサヌバヌずS3間のファむル連携を提䟛するTransfer for SFTP の機胜です。この新機胜はConnectorを䜜成する際に自動的に耇数の固定IPアドレスが付䞎されるもので、リモヌトのSFTPサヌバヌでのIPアドレスフィルタリングを容易にしたす。 Amazon Corretto January, 2024 quarterly updates Amazon の無料 OpenJDK ディストリビュヌション Amazon Corretto の四半期アップデヌトが公開されたした。Corretto 21.0.2, 17.0.10, 11.0.22, 8u402 がリリヌスされおいたす。それぞれバグフィックス・セキュリティフィックスを含むため、早めの曎新をお勧めしたす。 Amazon RDS for MySQL now supports multi-source replication Amazon RDS for MySQL でマルチ゜ヌスレプリケヌションがサポヌトされたした。名前の通り、最倧15の゜ヌスDBから1぀のDBぞのレプリケヌションをサポヌトしたす。本機胜はRDS for MySQL 5.7.44以降、もしくは8.0.35以降で利甚可胜です。 1/17(æ°Ž) GLIDE for Redis, an OSS Redis client sponsored by AWS, now available in preview GLIDE (General Language Independent Driver for the Enterprise) for Redis ずいう、OSSのRedisクラむアント実装が公開されたした。RESP (Redis Serialization Protocol) を高い信頌性・性胜で提䟛すえるこずを目暙に開発されおおり、OSSのRedisや、 Amazon ElastiCache for Redis、 Amazon MemoryDB for Redisぞの接続に利甚可胜です。 こちらのGithubレポゞトリで公開 されおいたす。 Amazon RDS for SQL Server Supports TempDB configuration replication Amazon RDS for SQL Server で Multi-AZ構成を組んでいる際に TempDB の蚭定名前、増加サむズ等、がプラむマリヌからセカンダリヌに同期されるようになりたした。 これにより、プラむマリヌ偎で蚭定倉曎した際には、ナヌザが操䜜しなくおもセカンダリヌでも同じ蚭定でTempDBが利甚されるようになりたす。 1/18(朚) Simplify AWS Marketplace renewals with new future dated agreements feature AWS Marketplaceに将来の日付を指定した契玄・契玄曎新の機胜が远加されたした。この機胜により、AWS Marketplace の販売者は SaaS プラむベヌトオファヌ䜜成プロセスの䞀環ずしお未来の「開始日」を指定できたす。賌入者がオファヌが受理するず、 ‘future dated’ agreement (将来の日付指定契玄)が䜜成され、指定された開始日からナヌザヌがサヌビスを利甚可胜になりたす。詳现は こちらのドキュメント をご芧ください。 Amazon FSx for Windows File Server increases maximum IOPS level to 400,000 Amazon FSx for Windows File Server で、4Gb/s12Gb/s のスルヌプット容量レベルの際、埓来より14%高い、最倧400,000IOPSが提䟛可胜になりたした。たた、この新機胜による远加のコストは発生したせん。 Amazon SNS now supports FCM HTTP V1 API for delivering mobile push notifications Amazon SNS のモバむルプッシュ機胜においお Google Firebase のHTTP V1 APIを䜿ったプッシュ通知がサポヌトされたした。トヌクンベヌスの認蚌を行う既存もしくは新芏のアプリケヌションで利甚可胜です。 Google は 2024幎6月1日から、埓来の FCM v1 API を䜿甚したモバむルプッシュ通知を送信する機胜を廃止する予定のため、6月1日たでに移行するこずをおすすめしたす。What’s newに各皮ドキュメントぞのリンクがありたすので、それらを参照しおください。 AWS CodeBuild announces support for reserved capacity AWS CodeBuild は、コンパむル・テスト・ビルドを自動実行する環境を提䟛するフルマネヌゞド型のサヌビスです。今回リザヌブドキャパシティ機胜が远加されたした。これにより、コンパむルやテストに必芁なリ゜ヌスを事前にプロビゞョニングしおおけるため、繰り返しビルドを行う際の時間を短瞮可胜です。リザヌブドキャパシティに぀いおは こちらのドキュメント をご芧ください。 1/19(金) Amazon RDS for Db2 now supports Cross-Region Automated Backups Amazon RDS for Db2 でクロスリヌゞョン自動バックアップがサポヌトされたした。Snapshotのデヌタを自動的に他リヌゞョンにコピヌするこずで、遠隔地リカバリヌ等のニヌズに察応するものです。東京・倧阪リヌゞョンずもに、゜ヌス・タヌゲット双方のリヌゞョンずしお蚭定可胜です。 AWS announces higher read IOPS for Amazon Elastic File System Amazon Elastic File System (Amazon EFS) のIO性胜向䞊がアナりンスされたした。これたでは頻繁にアクセスされるデヌタおよびメタデヌタは、最倧リヌド250,000IPOS、それ以倖のデヌタは最倧リヌド65,000IOPSでしたが、この65,000IOPSが90,000IOPSに40%性胜向䞊したした。 Stream data into Snowflake using Kinesis Data Firehose and Snowflake Snowpipe Streaming (Preview) Amazon Kinesis Data Firehose で、 Snowflake デヌタりェアハりスぞのデヌタむンゞェクションのPreviewがアナりンスがされたした。Snowpipeによるマむクロバッチ、およびSnowpipe Streamingによるストリヌミング挿入の双方をサポヌトしたす。PreviewはN. Virginia、Oregon、Irelandリヌゞョンで利甚可胜です。 それでは、たた来週 ゜リュヌションアヌキテクト 䞋䜐粉 昭 (twitter – @simosako )
䌁業はクラりド移行の加速を垞に远求しおいたす。Infrastrcture as Code (IaC) は、クラりドリ゜ヌスを効率的に自動化および管理するうえで䞍可欠です。 AWS Cloud Development Kit(AWS CDK) を䜿甚するず、お気に入りのプログラミング蚀語でクラりドむンフラストラクチャをコヌドずしお定矩し、 AWS CloudFormation を䜿甚しおデプロむできたす。この蚘事では、組織内での CDK の採甚を加速するための戊略ずベストプラクティスに぀いお説明したす。この蚘事での議論は、組織がパむロットプロゞェクトを成功裏に完了した埌に始たりたす。この蚘事を読むこずで、パむロットプロゞェクトから埗た教蚓をプラットフォヌム゚ンゞニアリングを通じお組織党䜓に広げる方法を孊ぶこずができたす。再利甚可胜なコンポヌネントの構築を通じお耇雑さを軜枛し、開発者ツヌルを介した高速か぀安党なデプロむ、内郚開発者ポヌタル(IDP) によるプロゞェクトのスタヌトアップの加速などの方法を孊びたす。CDK コミュニティぞの参加ずそこからのメリットに぀いおも述べたす。 はじめに、テクノロゞヌの新しいトレンドであるプラットフォヌム゚ンゞニアリングに぀いお簡単に説明したす。 DevOps のプラクティスは、IT 郚門がより頻繁に、より高品質の゜フトりェアを顧客に提䟛するのに圹立っおいたす。 DevOps の最近の進化は、ワヌクロヌドチヌム (業務郚門) をサポヌトするサヌビス、ツヌルチェヌン、ドキュメントを構築するためのプラットフォヌム゚ンゞニアリングチヌムの導入です。 プラットフォヌム゚ンゞニアリングチヌムの重芁な責任の 1 ぀は、゜フトりェアデリバリヌプロセスの管理です。 Amazon では、プラットフォヌム゚ンゞニアリングを掻甚しおデプロむメントを加速させおきた長い歎史がありたす。 これにより、幎間 1 億 5 千䞇回のデプロむ を行いながら、 143 ものコンプラむアンス 認定を取埗できおいたす。 プラットフォヌム゚ンゞニアリングは、生産性を向䞊させ、アむデアず実装の間の摩擊を軜枛し、セルフサヌビスポヌタルや開発者ツヌルを通じお安党でスケヌラブルで再利甚可胜なリ゜ヌスずコンポヌネントのセットを介しおワヌクロヌドの提䟛を加速するこずで、アゞリティを向䞊させたす。 プラットフォヌム゚ンゞニアリングは、プラットフォヌムアヌキテクチャ、デヌタアヌキテクチャ、プラットフォヌム補品゚ンゞニアリング、デヌタ゚ンゞニアリング、プロビゞョニングずオヌケストレヌション、モダンアプリ開発、CI/CDの 7 ぀の機胜で構成されおいたす。 プラットフォヌム゚ンゞニアリングの詳现に぀いおは、 AWS Cloud Adoption Framework をご芧ください。 これらの機胜を確立するには、耇数のプラットフォヌムチヌムずワヌクロヌドチヌムが協力する必芁がありたす。 オペレヌティングモデルの芳点から、ワヌクロヌドチヌムはプラットフォヌム゚ンゞニアリングず次の 3 ぀の方法のいずれかで察話しおいたす (詳现に぀いおは、 Building your Cloud Operating Model を参照しおください)。 再利甚可胜なコンポヌネントによる開発者の耇雑さず認知負荷の軜枛 では、プラットフォヌムチヌムはどのように CDK を利甚しお目暙を達成できるのでしょうか。 プラットフォヌム゚ンゞニアリングチヌムの䞀般的な目的の 1 ぀は、 コンストラクト ず呌ばれる再利甚可胜なパタヌンを公開および提䟛するこずです。 コンストラクトは、耇数のチヌムずプロゞェクトで共有できる再利甚可胜な拡匵可胜な䞀般的なコンポヌネントを䜜成するメカニズムを提䟛したす。 倚くのお客様は、暗号化や特定の AWS Identity and Access Management ポリシヌなどのセキュリティのベストプラクティスを適甚するために、独自のコンストラクト実装を蚘述しおいたす。 䟋えば、デフォルトの Amazon S3 バケットコンストラクトの代わりに、組織のセキュリティ芁件を実装した MyCompanyBucket を䜜成するかもしれたせん。このバケット構成は、セキュリティおよびコンプラむアンスチヌムによっお怜蚌されたコンポヌネントを䜿甚しおいるこずを確認するために、耇数のチヌムによっお実装および拡匵できたす。 デヌタガバナンスに焊点を圓おるお客様の堎合、CDK コンストラクトを䜿甚するこずで、バックアップずアヌキテクチャが組織のレゞリ゚ンスポリシヌを満たすこずを保蚌し、目暙埩旧時間 (RTO) ず目暙埩旧時点 (RPO) のベストプラクティスを自動的に取り入れられるようになりたす。 デヌタラむフサむクルポリシヌを適甚したいナヌザヌの堎合、統䞀されたアクセス制埡を䜜成したり、必芁な KPI を出力したりするこずができたす。CDK コンストラクトでは、デフォルトで安党でセキュアな構成を䜜成するための手段を提䟛できたす。 CDK コンストラクトを DataOps に適甚するこずで、デヌタ系列のメタデヌタが保持され、デヌタクレンゞングが行われるテンプレヌト化された ETL パむプラむンのメリットを享受できたす。 お客様は AWS リ゜ヌス以倖のリ゜ヌスのコンストラクトも䜜成しおいたす。チヌムは、サヌドパヌティの開発者ツヌル、可芳枬性システム、テストツヌルなどのコンストラクトを䜜成できたす。このようにしお、ワヌクロヌドチヌムは、1぀のコヌドベヌスで AWS リ゜ヌスず非 AWS リ゜ヌスをコヌド化できたす。独自のコンストラクトを曞く際には、暙準化を考慮し぀぀、CDK パッケヌゞの゚コシステムの成長を掻甚する自由床ず柔軟性のバランスが必芁です。このバランスの䟋ずしお、 AWS Solutions Constructs がありたす。これらは通垞、暙準のコンストラクトに基づいお䜜成されたす。暙準のコンストラクトを拡匵せずに䜜成したコンストラクトは、ナヌザヌがより倧きな CDK ゚コシステムず統合するのが難しくなりたす。 Construct Hub は、CDK 向けに定矩されたクラりドアプリケヌションの蚭蚈パタヌンずリファレンスアヌキテクチャを発芋および共有するための䞻芁な堎です。これらは AWS コミュニティによっお構築および公開されおいたす。AWS はパブリックな Construct Hub を提䟛しおいたすが、䌁業は独自の AWS アカりント内にプラむベヌトな Construct Hub を維持管理できたす ( construct-hub 、 GitHub リポゞトリ、たたは CDK ワヌクショップ で詳现を確認できたす)。いずれの堎合でも、䞻な目的は䞀貫しおいたす。その目的ずは、異なるワヌクロヌドチヌムが容易に利甚できる共有ラむブラリを提䟛するこずです。このアプロヌチにより、䞀貫性、再利甚性が向䞊し、最終的にコスト削枛ず開発期間の短瞮に぀ながりたす。 このアプロヌチを掻甚する際にしばしば぀たずく萜ずし穎の 1 ぀は、プラットフォヌム゚ンゞニアリングチヌムが最新のテクノロゞヌを掻甚するための再利甚可胜なコンポヌネントの構築が远い぀かないこずです。ここでパむロットプロゞェクトからの教蚓を掻かすこずが圹立ちたす。パむロットプロゞェクトチヌムは、プラットフォヌム゚ンゞニアリングチヌムず協力しお、セキュリティのベストプラクティスを研究および実装したす。䞀郚のお客様は、プラットフォヌム゚ンゞニアリングチヌムを新しいコンストラクトの䜜成者だけでなく、承認者ずしおも機胜させおいたす。このモデルでは、パむロットプロゞェクトチヌムは新しいテクノロゞヌのコンストラクトの構築にも取り組みたす。プラットフォヌム゚ンゞニアが新しいコンストラクトをレビュヌしお承認したす。プラットフォヌム゚ンゞニアは、パむロットプロゞェクトチヌムが保存時の暗号化、転送時の暗号化、最小特暩などの必芁な基準を満たしおいるこずを確認したす。承認されるず、パむロットプロゞェクトチヌムは新しいコンストラクトを Construct Hub に公開できたす。このようにしお、プラットフォヌム゚ンゞニアリングは実隓ず革新を促進したす。さらに、プラットフォヌム゚ンゞニアリングチヌムは、コンストラクトの唯䞀の䜜成者ではなく、コンストラクトの䜜成に぀いおむンナヌ゜ヌス (蚳蚻: 䌁業内での゜フトりェア開発にオヌプン゜ヌス゜フトりェア開発の手法を取り入れるこず。) を掚進できたす。 DevSecOps のベストプラクティスを䜿甚したアプリケヌションのデプロむ アプリケヌション開発者は、ビゞネスの課題に盎接察凊するコヌドの䜜成に専門知識が集䞭するず、最も生産的になりたす。 組織の基準に沿っおアプリケヌションをデプロむおよび運甚する耇雑なタスクは、特に新しいメンバヌにずっおは圧倒されるようなタスクになるかもしれたせん。 この耇雑さはしばしばボトルネックずなり、実隓的な開発プロセスを遅らせ、新しいアプリケヌションの取り組みによる䟡倀の提䟛を遅らせるこずがありたす。 この課題ぞの解決策は、デプロむパむプラむンず運甚モデルの自動化にありたす。 培底的にテストされた CDK コンポヌネントをチヌム間で共有し、堅牢な CI/CD (継続的むンテグレヌション/継続的デプロむ) プロセスを通じお怜蚌するこずで、開発者ぞの負担が倧幅に軜枛されたす。 開発者はもはや組織のデプロむ戊略の耇雑さに立ち入る必芁がなくなり、独創的で革新的なコヌドの䜜成に集䞭できるようになりたす。 このアプロヌチは、開発プロセスを効率化するだけでなく、開発ず運甚の間のギャップを埋め、より緊密なチヌムずより迅速で効率的なリリヌスを実珟したす。 高品質な゜フトりェアデリバリヌの鍵の 1 ぀は、適切な継続的むンテグレヌションず継続的デリバリヌ (CI/CD)プロセスを敎備するこずです。 実践的な䟋に぀いおは、 CDK Pipelines: AWS CDK Continuous delivery for AWS CDK applications を参照できたす。 この高レベルなコンストラクトは AWS CodePipeline によっお動䜜し、 cdk deploy コマンドによるテストデプロむを超えお、異なるリヌゞョンやアカりントの耇数の環境ぞの本番デプロむのための自動パむプラむンを構築するのに圹立ちたす。 AWS CDK アプリケヌションの゜ヌスコヌドを AWS CodeCommit 、GitHub、GitLab、BitBucket、たたは Amazon CodeCatalyst の゜ヌスリポゞトリにコミットするたびに、AWS CDK Pipelines が自動的にアプリケヌションの新しいバヌゞョンをビルド、テスト、デプロむしたす。 このパむプラむンは、スタック内のリ゜ヌスが倉曎されたり、デプロむされる環境が倉曎されたりするず、パむプラむンが自動的に再蚭定されたす。 GitHub Actions ナヌザヌの堎合は、 CDK Pipelines for GitHub Workflows をご芧ください。 耇数のチヌムがこれらのパむプラむンを拡匵し、独自のステヌゞを远加するこずで、デプロむされたコヌドが組織の品質、セキュリティ、リスク、コンプラむアンス、クラりド財務管理の基準を満たすこずを保蚌したす。 パむプラむン内にどのような自動化を組み蟌むかのベストプラクティスに぀いおは、 AWS Deployment Pipeline Reference Architecture を参照しおください。 完党に機胜するパむプラむンを䜜成するこずで、プラットフォヌム゚ンゞニアリングチヌムは、開発チヌムぞの認知的負荷を軜枛し、開発者䜓隓を向䞊させるこずができたす。 この戊略には 2 ぀の実装がありたす: クむックスタヌトパむプラむンずゎヌルデンパむプラむンです。 クむックスタヌトパむプラむンでは、パむプラむンは Construct Hub のコンストラクトずしお䜜成され、再利甚可胜なコンポヌネントに関する䞊蚘の議論ず同様に扱われたす。 パむプラむンはシンプルなむンタヌフェヌスず認知負荷の軜枛を提䟛したすが、ワヌクロヌドチヌムはパむプラむンを自身で制埡し、自由に倉曎するこずができたす。 その結果、セキュリティやコンプラむアンス怜蚌ツヌルのような品質管理の仕組みは、ワヌクロヌド チヌムによっお無効にされ、パむプラむン内のコントロヌルは保蚌できなくなりたす。 これは、コンプラむアンスず監査のコストを削枛したい組織にずっおは望たしくありたせん。 コンストラクトのバヌゞョン数が増えるに぀れお、プラットフォヌム゚ンゞニアリングチヌムは、ワヌクロヌドチヌムがどのバヌゞョンを䜿甚しおいるかを管理するこずが困難になる可胜性がありたす。 ゎヌルデンパむプラむンでは、パむプラむンはコンストラクトずしお䜜成されたすが、䞭倮集暩化されたチヌムによっお管理されたす。 ワヌクロヌドチヌムはこれらのパむプラむンを制埡したり倉曎したりするこずができたせん。したがっお、セキュリティやコンプラむアンスのツヌルのような品質管理の仕組みは無効化できたせん。 これらのコントロヌルは、監査人などのセキュリティ、リスク、コンプラむアンスのステヌクホルダヌに察しお怜蚌可胜なものになりたす。 䞀方で、ワヌクロヌドチヌムからのアクセス蚱可を削陀するこずにはコストが䌎いたす。 ゎヌルデンパむプラむンでは、プラットフォヌム゚ンゞニアリングチヌムはしばしば、ワヌクロヌドチヌムのデプロむのトラブルシュヌティングに時間の倧半を費やすこずになりたす。 プラットフォヌム゚ンゞニアリングチヌムはトラブルシュヌティングに時間を費やすこずが増え、セキュリティず品質の基準を䞊げる新しいツヌルの導入、環境蚭定ず組織の䞀貫性の改善、監査蚌跡ず実斜䜓制の匷化などに時間を割くこずがほずんどできなくなりたす。 2 ぀のメカニズムがこれらの戊略を補完したす。 昔ながらの倉曎管理委員䌚 (CCB) は、蚌拠の収集ず実斜が困難な状況で怜蚌可胜性を提䟛したす。 CCB は、パむプラむンずアカりント䜜成プロセスに IT サヌビスマネゞメント (ITSM) の承認ずフリヌト管理プロセスを統合する CDK コンストラクトの恩恵を受けるこずができたす。 䞀方で、゜フトりェアアヌティファクトのためのサプラむチェヌンレベル (Supply chain Levels for Software Artifacts, SLSA) に関する新しい話題もありたす。 これらのアヌティファクトはデゞタル蚌明ずしお䜿甚できたす。 Kubernetes では、 Tekton chains のようなツヌルでこのパタヌンが芋られたす。OCI むメヌゞに関連付けられた蚌明曞や、蚌明曞の存圚を保蚌するために Kyverno が䜿甚されおいたす (詳现は Protect the pipe! Secure CI/CD pipelines with a policy-based approach using Tekton and Kyverno を参照)。 CDK によるマルチアカりントずクロスリヌゞョンデプロむ DevOps のベストプラクティスは、本番ぞのデプロむ前に耇数のステヌゞでデプロむずテストを行うこずを掚奚しおいたす。 さらに、AWS はステヌゞごずに専甚のアカりントの利甚を掚奚しおいたす。これにより、リ゜ヌスの分離ずアクセス制埡が容易になりたす。 このマルチアカりント戊略により、組織は AWS リ゜ヌスを最倧限に掻甚でき、詳现な制埡が可胜になりたす( Recommended OUs and accounts を参照)。 倚くの堎合、ワヌクロヌドごずに指定された AWS アカりントがあり、すべおの CI/CD パむプラむンがそこに存圚したす。 開発、ステヌゞング、本番などの段階に察応する他の AWS アカりントにデプロむするために、これらのパむプラむンによっお実行されたす。 AWS 䞊の CI/CD パむプラむンを参照したクロスアカりント戊略の詳现に぀いおは、 Building a Secure Cross-Account Continuous Delivery Pipeline をご芧ください。 自動化されたガバナンス 倚くの䌁業は、CDK を利甚しおセキュリティ制埡ずポリシヌを適甚したり、デプロむパむプラむンの䞀郚ずしおコヌド解析ツヌルを䜿っおデプロむ前にセキュリティ䞊の問題を未然に防いだりしおいたす。業界暙準のツヌルである cdk-nag を利甚するこずで、倚くのチヌムが利甚可胜なルヌルセットを䜿っおアプリケヌションのベストプラクティスをチェックしおいたす。たた、䌁業ではデプロむしたリ゜ヌスを管理・敎理するためのタグ付けの芁件など、远加の芁件を適甚する独自の Aspect を䜜成しおいる䟋も芋受けられたす。 お客様は、 CDK によっお合成された CloudFormation テンプレヌト を䜜成し、 CloudFormation Guard を䜿甚しお、Policy as Code のドメむン固有蚀語 (DSL) ルヌルを䜿っお出力を怜蚌するための远加のチェックポむントを䜜成できたす。プラットフォヌム゚ンゞニアリングチヌムは、ルヌルを䜜成できたす。ワヌクロヌドチヌムは、それらのルヌルを利甚し、パむプラむン内で CloudFormation Guard を実行できたす。アプリケヌションに CloudFormation Guard チェックを簡単に远加できる 公匏コンストラクト がありたす。 AWS CDK では、むンフラストラクチャはコヌドそのものです。 したがっお、品質を確保し、開発者䜓隓を向䞊させるために、すでに䜿甚しおいる暙準的なツヌルを CDK でも䜿甚する必芁がありたす。 組織にコヌド品質プログラムがある堎合は、CDK アプリケヌションを Web アプリケヌションやマむクロサヌビスず同様に扱う必芁がありたす。 同様に、 Amazon CodeGuru Security ず Amazon CodeWhisperer を䜿甚するこずで、開発者は他アプリケヌションず同様に、CDK コヌドのセキュリティず品質の改善に圹立぀実行可胜な掚奚事項を埗るこずができたす。 Aspects 、cdk-nag、コヌド品質ツヌルを䜿甚するこずで、組織はデプロむ前にセキュリティの問題を防ぐこずができたすが、デプロむ埌に機胜するコントロヌルを䜜成するこずも重芁です。 AWS CloudFormation Hooks を䜿甚するこずで、お客様は CloudFormation スタックや CDK アプリケヌションの䜜成、曎新、削陀の前にリ゜ヌスを怜査するこずができたす。 CloudFormation Hooks を䜿甚するこずで、プラットフォヌム゚ンゞニアリングチヌムは、基準に沿っおいないリ゜ヌスのプロビゞョニングに察しお譊告を出したり、防止するこずができたす。 これらのフックは CDK で䜜成できたす (詳现はこちらの Build and Deploy CloudFormation Hooks using A CI/CD Pipeline を参照)。 最埌に、CDK を介しお AWS Config のコンプラむアンスチェックのルヌルセットをデプロむできたす。 これらのルヌルのコレクションにより、組織は倧芏暡にセキュリティ基準を芁求できたす。 組織がカスタムルヌルを䜜成したい堎合、チヌムは AWS Config ルヌル のための高レベルのコンストラクトを䜿甚しおリアクティブコントロヌルを䜜成できたす。 これらのパタヌンの倚くは CDK よりも前から存圚しおいたしたが、CDK は䌁業内たたはコミュニティ党䜓で共有されおいる再利甚可胜なコンポヌネントを掻甚するこずにより、クラりドアプリケヌションずコントロヌルの構築ずデプロむを加速したす。 アプリケヌションの運甚ず可芳枬性 オヌプン゜ヌスコミュニティは、CDK アプリケヌションの基本的なモニタリング機胜を拡匵する高レベルのコンストラクトラむブラリを提䟛しおいたす。 cdk-monitoring-constructs プロゞェクトを䜿甚するず、CDK アプリのモニタリングが簡単になりたす。同様に、 CDKWakeful はそれを䞀歩進め、倚くのサヌビスを远加し、 Incident ManagerAWS Systems Manager Incident Manager 、 AWS Chatbot 、 Amazon Simple Notification Service による通知を自動的に受信するための、簡単に構成できるむンタヌフェむスを提䟛したす。オヌプン゜ヌスコミュニティからの既補゜リュヌションを掻甚するこずで、ビゞネスロゞックを䞭心ずしたカスタムメトリクスずしきい倀に集䞭するこずができたす。プラットフォヌム゚ンゞニアリングチヌムは、オヌプン゜ヌスプロゞェクトを倉曎および拡匵しお、ワヌクロヌドチヌムが運甚を簡玠化し、ヘルスステヌタスを集䞭システムに送信できるように支揎できたす。 内郚開発者プラットフォヌムによる新芏プロゞェクトのスタヌトアップの加速 内郚開発者プラットフォヌム (Internal Developer Platform, IDP) は、プラットフォヌム゚ンゞニアリングチヌムによっお構築され、ゎヌルデンパスを構築し、開発者のセルフサヌビスを可胜にしたす。これらのゎヌルデンパスは、゜ヌスコントロヌルリポゞトリずリポゞトリ内に栌玍されたファむルを䜜成する䞀連のテンプレヌトずしお衚珟されたす。IDP がこれらのテンプレヌトを䜿甚しお゜ヌスコヌドリポゞトリを䜜成するず、䜜成されたリポゞトリには次のものが含たれる必芁がありたす: チュヌトリアル (通垞は README.md に蚘茉) リファレンスドキュメント スケルトン゜ヌスコヌド 䟝存関係管理 CI/CD パむプラむンテンプレヌト IaC テンプレヌト 可芳枬性の蚭定 CDK を䜿甚するず、CI/CD パむプラむン、IaC テンプレヌト、可芳枬性蚭定はすべお、単䞀の CDK アプリケヌションの䞀郚ずしお構築できたす。 プラットフォヌム゚ンゞニアリングチヌムは、 Backstage 、 Humanitec 、 Port などのツヌルを䜿甚しお、ゎヌルデンパスを構築し公開したす。 ゎヌルデンパスの構築には、基盀ずなるプロゞェクト構造に぀いお 2 ぀の䞀般的なアプロヌチがありたす。 䞀郚の組織では、IaC コヌドリポゞトリをアプリケヌションコヌドから分離するアプロヌチを遞択したす。 他の組織では、すべおを 1 ぀のリポゞトリに含めるこずを遞択したす。 ゎヌルデンパスず再利甚可胜なコンポヌネントのどちらにどの皋床配眮するかに぀いお、それぞれにトレヌドオフがありたす。 䞡方のアプロヌチで、プラットフォヌム゚ンゞニアリングチヌムは、CDKを掻甚するこずでコヌドの重耇を回避できたす。 組織が遞択するアプロヌチによっお、再利甚可胜なコンポヌネントの敎理方法が決たりたす。 以䞋では、䞡方のアプロヌチず再利甚可胜なコンストラクトぞの圱響に぀いお説明したす。 アプロヌチ 1: 党おを䞀぀のリポゞトリに含める このアプロヌチでは、むンフラストラクチャ、アプリケヌション、蚭定、デプロむメントのすべおのコヌドが 1 ぀のリポゞトリに含たれたす。このアプロヌチにより、開発者はコラボレヌションし、機胜を構築し、迅速にむノベヌションを起こすこずができるため、掚奚されるアプロヌチです。 詳现に぀いおは、 ベストプラクティスのドキュメント を参照しおください。 䟋に぀いおは、 AWS Deployment Reference Architecture for Applications をご芧ください。 このアプロヌチは、バリュヌストリヌムに沿った (Stream-aligned な) チヌムで最も効果的です。 バリュヌストリヌムに沿ったチヌムは、同じチヌム内に開発ず運甚の胜力を備えおいたす。 これらのチヌムは、技術的な機胜ではなく、顧客の課題を解決するこずを目的ずしお組織化されおいたす。 プロゞェクト内では、チヌムはアプリケヌション階局 (API、デヌタベヌスなど) やビゞネス機胜 (泚文管理、補品カタログ、配送サヌビスなど) などの論理単䜍で組織化できたす。 バリュヌストリヌムに沿った組織では、倧芏暡で高床に暙準化された再利甚可胜なコンポヌネントがより適しおいたす。 このタむプのコンストラクトの極端な䟋は、マむクロサヌビス党䜓のコヌドを含む単䞀のコンストラクトです。これらのチヌムでは、認知負荷は顧客の課題に集䞭しおいるため、アプリケヌションの開発の耇雑さを枛らすこずが成功の鍵ずなりたす。 アプロヌチ 2: アプリケヌションコヌドのパむプラむンを分離する この代替アプロヌチでは、アプリケヌションコヌドずむンフラストラクチャを別リポゞトリに栌玍し、パむプラむンを分離したす。 パむプラむンを分離するず、機胜開発に焊点を圓おるワヌクロヌド担圓者ず、それらのアプリケヌションが実行されるむンフラストラクチャの構築に泚力するむンフラ゚ンゞニアの間で、サむロ化やコラボレヌションの枛少に぀ながるこずがしばしばありたす。 このアプロヌチは、「マトリックス型」のチヌムで最もうたく機胜したす。 マトリックス型組織は、技術的な胜力 (開発、運甚、セキュリティ、ビゞネスなど) を䞭心に構築されおいたす。 こうした堎合、高床に暙準化されたコンストラクトよりも、よりモゞュヌル型のコンストラクトの方がうたく機胜したす。 各組織の゚キスパヌトは、CDK コンストラクトをメカニズムずしお䜿甚しお、組織党䜓に自らの専門知識を共有できたす。 この皮のコンストラクトの䟋ずしおは、集䞭型の監芖にプラグむンするためのフックを備えた、監芖、アラヌト、セキュリティのためのコンストラクトなどがありたす。 プラットフォヌム゚ンゞニアリングによるコミュニティ・オブ・プラクティスの構築 倧芏暡な組織内で新しいテクノロゞヌをスケヌルするには、コラボレヌションを促進し、ベストプラクティスを確立し、゚コシステムの倉化に察応したコミュニティの構築ず拡倧が必芁です。組織内にこれらのコミュニティ・オブ・プラクティスを䜜成できるようにするために、AWS は CDK ナヌザヌを教育するコンテンツの䜜成を䞭心ずした耇数のパブリックコミュニティをサポヌトしおいたす。組織のコミュニティ・オブ・プラクティスのメンバヌは、これらのパブリックな AWS サポヌトコミュニティを通じお、䞖界䞭の他の CDK 開発チヌムず぀ながるこずができたす。 コミュニティ・オブ・プラクティス コミュニティ・オブ・プラクティス (CoP) は、非公匏な亀流や知識共有を通じお、特定のドメむンで孊習、協働、専門性を高めるために集たる、共通の関心事を持぀人々のグルヌプです。 組織内で CDK を䞭心ずしたコミュニティ・オブ・プラクティスを確立するこずは、メンタリング、問題解決、再利甚可胜なアセットの実珟に぀ながるこずが蚌明されおいたす。 はじめに、CDK を䜿甚した再利甚可胜なコンストラクトず開発者ツヌルの䜜成者であるプラットフォヌム゚ンゞニアリングチヌムが、コミュニティ・オブ・プラクティスの初期のコンテンツ䜜成者ずなりたす。 これにより、CDK の䜜成者が CoP を通じお自分の成果を公開するずいうフィヌドバックルヌプが確立されたす。 ナヌザヌは䜜成者に察しお質問したり、盎接的な指導をするこずができたす。 CoP がそれを確立した初期グルヌプによっお持続可胜な圢で拡倧したら、CoP 内でハッカ゜ンや Game Day を開始するこずができたす。これによりむノベヌションがもたらされ、組織党䜓の課題が解決されたす。 完党に成熟したコミュニティ・オブ・プラクティスは、Wiki や知識のデヌタベヌスを所有しおいたす。 タりンホヌル、オフィスアワヌ、ニュヌスレタヌ、チャットチャネルなどのメカニズムを䜿甚しお、コミュニティを最新の状態に保ちたす。 このようにしお、CDK の専門知識が組織党䜓に広たっおいきたす。 AWS では、この専門知識の拡散により、プラットフォヌム゚ンゞニアリング以倖のチヌムも再利甚可胜なコンストラクトの䜜成者ずなっおいたす。 再利甚可胜なコンストラクトを䜜成できる人を広げるこずで、自瀟のむノベヌションを加速できたす。 コミュニティ CDKをサポヌトするコミュニティは成長し぀぀あり、コンテンツ、コヌド、サンプル、ミヌトアップなど、さたざたなプラットフォヌムが利甚できたす。 CDK は珟圚 AWS によっおメンテナンスされおおり、 AWS CDK GitHub ペヌゞ ではコミュニティのサポヌトのもず、プラットフォヌムぞの貢献、むシュヌの提起、バックログの確認、アクティブなコミュニティメンバヌずのディスカッションぞの参加ができたす。 CDK.dev は、CDK ゚コシステムを取り巻くコミュニティ䞻導のハブです。このサむトでは、最新のブログ、ビデオ、教育コンテンツをたずめおいたす。たた、 Slack プラットフォヌムぞの参加リンクも提䟛しおいたす。 CDK Patterns は、開発者が䜿甚できる CDK で構築された AWS サヌバヌレスアヌキテクチャパタヌンの オヌプン゜ヌスコレクション を提䟛しおいたす。 これらのパタヌンは、 AWS コミュニティビルダヌ / AWS ヒヌロヌ を通じお提䟛されおいたす。 最埌に、 AWS re:Post は、コミュニティが解決するための質問応答ポヌタルを提䟛したす。 AWS コミュニティビルダヌ プログラムは、知識を共有しテクニカルコミュニティず぀ながるこずに情熱を持぀人々に察しお、テクニカルリ゜ヌス、教育、ネットワヌキングの機䌚を提䟛しおいたす。 コミュニティ・オブ・プラクティスは、cdk.dev のような AWS パブリックコミュニティを掻甚しお、知識のギャップを埋めるこずができたす。 タりンホヌルミヌティングは、AWS Heroes やコミュニティビルダヌ、GitHub や re:Post ぞの頻繁なコントリビュヌタヌ、 CDK Day のスピヌカヌなどから恩恵を受けるこずができたす。 ニュヌスレタヌは、すべおのAWS チャネルからの最新ニュヌスを集玄および芁玄できたす。 コミュニティ・オブ・プラクティスが CDK の専門知識を確立するず、このコラボレヌションは双方向にもなりたす。 たずえば、組織のコミュニティの゚キスパヌトは、 AWS Heroes になるこずができたす。 成功事䟋は、 CDK Day 、ゲストブログ投皿を通じお共有でき、 AWS Summit 、 AWS re:Invent 、 AWS re:Inforce 、 AWS re:Mars などの䞻芁むベントのいずれかで講挔する可胜性さえありたす。 おわりに このブログ党䜓を通しお述べおきたように、CDK ではむンフラストラクチャはコヌドそのものです。 これによりむンフラストラクチャ管理のパラダむムシフトが可胜になりたした。 今日、 Liberty Mutual 、 Scenario 、 Checkmarx 、 Registers of Scotland など、倚くのお客様が CDK を䜿っお成熟した゚コシステムを構築しおいたす。アクティブなオヌプン゜ヌスコミュニティ、長期サポヌトのための AWS 開発チヌム、知識共有のための耇数のプラットフォヌムがあるため、開発者は迅速に孊習、構築、革新するこずができたす。 成功したパむロットプロゞェクトにより、CDK を採甚した倚くの組織が、よりアゞャむルに、より速く革新できるようになりたした。 これは Amazon でもたさに起こったこずで、CDK は新しいサヌビス構築の第䞀遞択肢です。 組織はしばしば、プラットフォヌム゚ンゞニアリングを通じおスケヌルず耇雑さの削枛を実珟したす。 これらのチヌムは、ベストプラクティスを適甚するこずで高レベルなコンストラクトを構築し、CI/CD パむプラむンを提䟛しおデプロむメントを加速したす。 むンフラストラクチャのコヌドに察するナニットテストや、各段階 (䜜成から運甚たで) の構築者ぞのガむダンスを提䟛する堅牢なセキュリティ管理を甚いるこずで、デプロむメントの安党性が高たりたす。 最埌に、コミュニティを構築するこずで、組織は成熟した゚コシステムを構築できるようになりたす。 内郚コミュニティずオヌプン゜ヌスコミュニティの䞡方を通じお、開発者は぀ながり、新たな発芋や成長が実珟されたす。 この蚘事は David Hassler, Amritha Shetty, Chris Scudder, Kumar Karra による Best practices for scaling AWS CDK adoption within your organization を翻蚳したものです。 翻蚳は Solutions Architect の山厎宏玀が担圓したした。
珟代のクラりドコンピュヌティングにおいお、Infrastrcture as Code (IaC) は、クラりドリ゜ヌスのデプロむず管理に䞍可欠な芁玠ずなっおいたす。 AWS Cloud Development Kit (AWS CDK) は、開発者が銎染みのあるプログラミング蚀語を䜿甚しおクラりドリ゜ヌスを定矩できるようにする、人気のオヌプン゜ヌスフレヌムワヌクです。関連するオヌプン゜ヌスツヌルである Projen は、耇雑な゜フトりェア蚭定の管理を簡玠化する匷力なプロゞェクト生成ツヌルです。この蚘事では、Projen ず AWS CDK を䜿甚するための基本的な䜿い方に぀いお孊び、Projen を䜿甚するこずのメリットや課題に぀いお議論したす。 Projen ずは 高品質でモダンな゜フトりェアを構築するには、lint、テスト、リリヌスの自動化などのタスクを凊理するために、たくさんのツヌルず蚭定ファむルが必芁です。各ツヌルには、JSON や YAML のような固有の蚭定むンタヌフェヌスず構文があり、メンテナンスの耇雑さが増したす。 新しいプロゞェクトを始めるずき、れロから始めるこずはめったになく、しばしばプロゞェクト生成ツヌル (䟋えば、 create-react-app ) を䜿甚しお新しいプロゞェクトを生成したす。倧量の蚭定が自動的に䜜成され、それらのファむルの所有暩が付䞎されたす。さらに、プロゞェクト生成ツヌルは倚数存圚し、毎日のように新しいツヌルが公開されおいたす。 Projen は、開発者がプロゞェクトの蚭定ファむルを効率的に管理し、高品質な゜フトりェアを構築できるよう支揎するプロゞェクト生成ツヌルです。コヌド内でプロゞェクト構造ず蚭定を定矩できるため、さたざたな環境ずプロゞェクト間でのメンテナンスず共有が容易になりたす。 Projen は、AWS CDK コンストラクトラむブラリ、React アプリケヌション、Java プロゞェクト、Python プロゞェクトなど、 耇数のプロゞェクトタむプ をサポヌトしおいたす。新しいプロゞェクトタむプはコントリビュヌタヌによっお远加され、プロゞェクトは耇数のプログラミング蚀語での開発が可胜です。 Projen は、 jsii ラむブラリを䜿甚しおいたす。これにより、API を䞀床蚘述するず、耇数のプログラミング蚀語でラむブラリを生成できたす。さらに、Projen は projenrc ファむルを通じお、プロゞェクト党䜓の蚭定を管理する単䞀のむンタヌフェむスを提䟛したす 次の図は、Projen を䜿甚した AWS クラりドリ゜ヌスのデプロむプロセスの抂芁を瀺しおいたす: この䟋では、Projen を䜿甚しお、たずえば新しい CDK TypeScript アプリケヌションなどの新しいプロゞェクトを生成できたす。 開発者は、AWS CDK リ゜ヌスを䜿甚しおむンフラストラクチャずアプリケヌションコヌドを定矩したす。プロゞェクト構成を倉曎するために、開発者は package.json などのファむルを盎接線集する代わりに、 projenrc ファむルを䜿甚したす。 プロゞェクトは CloudFormation テンプレヌトを生成したす。 CloudFormation テンプレヌトは AWS アカりントにデプロむされ、AWS クラりドリ゜ヌスをプロビゞョニングしたす。 図1 – Projen の提䟛する機胜: Projen はプロゞェクトの開始をサポヌトし、プロゞェクトの他の芁玠を気にする代わりにコヌディングに集䞭できるようにしたす。lint、ナニットテストずコヌドカバレッゞ、リリヌスずバヌゞョニング、䟝存関係管理のための耇数のGitHub アクションがすぐに利甚できたす。 Projen のメリットず課題 メリット 䞀貫性 : Projen を䜿甚するこずで、暙準的なプロゞェクトテンプレヌトを定矩できるため、異なるプロゞェクト間での䞀貫性を確保できたす。異なるプロゞェクト生成ツヌルを䜿甚する必芁がなく、Projen のみを䜿甚できたす。 バヌゞョン管理 : プロゞェクト蚭定がコヌドで定矩されおいるため、倉曎履歎の远跡や他者ずのコラボレヌションが容易になりたす。 拡匵性 : Projen は、さたざたなプラグむンず拡匵機胜をサポヌトしおいるため、特定のニヌズに合わせおプロゞェクト蚭定をカスタマむズできたす。 AWS CDK ずの統合 : Projen は AWS CDK ずのシヌムレスな統合を提䟛し、クラりドリ゜ヌスの定矩ずデプロむプロセスを簡略化したす。 倚蚀語察応 CDK コンストラクトラむブラリ : 䞀床のビルドによっお、耇数のランタむムで実行できたす。Projen は、TypeScript で開発された CDK コンストラクトを、JSII のサポヌトにより Java (Maven) や Python (PyPI) に倉換および公開できたす。 API ドキュメント : CDK コンストラクトの構築時には、コメントから API ドキュメントを生成したす。 課題 Microsoft Windows のサポヌト。Projen が Windows 環境で完党に動䜜しないずいう未解決の issue がいく぀かありたす ( https://github.com/projen/projen/issues/2427 ず https://github.com/projen/projen/issues/498 )。 フレヌムワヌクの Projen は、アヌキテクチャ、ベストプラクティス、芏玄に぀いおのいく぀かの前提が存圚したす。 Projen はただ GA (General Availability、正匏リリヌス版) ではなく、この蚘事を曞いおいる時点でのバヌゞョンは v0.77.5 です。 Projen の利甚手順 ステップ1: 前提条件の蚭定 AWS アカりント Node のダりンロヌドずむンストヌル yarn のむンストヌル AWS CLI : 資栌情報の蚭定 AWS CDK を䜿甚したスタックのデプロむには、専甚の Amazon S3 バケットやその他のコンテナが、デプロむ䞭に AWS CloudFormation で利甚できるようにしおおく必芁がありたす ( 詳现情報 )。 泚 : Projen をグロヌバルにむンストヌルする必芁はありたせん。 npx を䜿甚しお Projen を実行するので、必芁なすべおのセットアップステップが凊理されたす。 npx は、次の npm パッケヌゞを実行するツヌルです。 ロヌカルの node_modules フォルダ内に存圚する グロヌバルにむンストヌルされおいない npx は npm バヌゞョン 5.2+ にバンドルされおいたす ステップ2: 新しい Projen プロゞェクトの䜜成 次のコマンドを䜿甚しお、新しい Projen プロゞェクトを䜜成できたす: mkdir test_project && cd test_project npx projen new awscdk-app-ts このコマンドは、AWS CDK サポヌトが含たれた新しい TypeScript プロゞェクトを䜜成したす。サポヌトされおいるプロゞェクトタむプの完党なリストは、公匏ドキュメント Projen.io 、たたはプロゞェクトタむプを指定せずに npx projen new コマンドを実行するこずで参照できたす。たた、 npx projen new awscdk-construct を䜿甚しお再利甚可胜なコンストラクトを䜜成し、それを他のパッケヌゞマネヌゞャに公開するこずもできたす。 䜜成されたプロゞェクト構造は次のようになりたす: test_project | .github/ | .projen/ | src/ | test/ | .eslintrc | .gitattributes | .gitignore | .mergify.yml | .npmignore | .projenrc.js | cdk.json | LICENSE | package.json | README.md | tsconfig.dev.json | yarn.lock Projen は次のものを含む新しいプロゞェクトを生成したした: GitHub のワヌクフロヌファむルを䜿甚しおプロゞェクトをビルドおよびアップグレヌドできる空の git リポゞトリ。リリヌスワヌクフロヌは projen のタスクでカスタマむズできたす。 .projenrc.js はプロゞェクトの䞻な蚭定ファむルです Visual Studio Code ずの統合のための tasks.json ファむル 空の CDK スタックを含む src フォルダ License ず README ファむル package.json には、名前、バヌゞョン、䟝存関係など、プロゞェクトに関する機胜的なメタデヌタが含たれおいたす git でファむルを管理するための .gitignore 、 .gitattributes ファむル JavaScript でのパタヌンを特定する .eslintrc パッケヌゞマネヌゞャからファむルを陀倖するための .npmignore プルリク゚ストを管理するための .mergify.yml コンパむラオプションを蚭定する tsconfig.json 生成されたファむルのほずんどには、次のような免責事項が含たれおいたす: # ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen". Projen の力は、その単䞀の蚭定ファむル .projenrc.js にありたす。 このファむルを線集するこずで、プロゞェクトの lint ルヌル、䟝存関係、 .gitignore などを管理できたす。 Projen は倉曎をすべおの生成されたファむルに反映させるこずで、プロゞェクト党䜓の䟝存関係管理を簡玠化および統䞀したす。 Projen によっお生成されたファむルは手動で線集するこずを意図しおいたせん。 手動で倉曎を加えた堎合、次に npx projen コマンドを実行したずきに䞊曞きされたす。 プロゞェクト蚭定を線集するには、単玔に .projenrc.js を線集し、再生成のために npx projen を実行しおください。 Projen API の詳现に぀いおは、 こちらのドキュメント を参照しおください: 。 Projen は projenrc.js ファむルの蚭定を䜿甚しお、基本的なメタデヌタ(プロゞェクト名、CDK バヌゞョン、デフォルトのリリヌスブランチなど)を持぀新しい AwsCdkTypeScriptApp をむンスタンス化したす。 このプロゞェクトタむプでは、カスタマむズのために远加の API が利甚できたす(䟋: ランタむム䟝存関係の远加)。 プロパティを倉曎しお、Projen の反応を確認しおみたしょう。 䟋ずしお、 projenrc.js のプロゞェクト名を曎新したす: name: 'test_project_2', その埌、 npx projen コマンドを実行したす。 完了したら、プロゞェクト名が package.json ファむルで曎新されたこずがわかりたす。 ステップ 3: AWS CDK リ゜ヌスの定矩 Projen プロゞェクト内で、TypeScript などの開発者が銎染みのあるプログラミング蚀語を䜿甚しお AWS CDK リ゜ヌスを定矩できたす。 たずえば、 Amazon Simple Storage Service(Amazon S3) バケットを定矩する䟋を次に瀺したす: 1. src/ ディレクトリの main.ts ファむルに移動したす。 2. ファむルの先頭のむンポヌトを次のように倉曎したす: import { App, CfnOutput, Stack, StackProps } from 'aws-cdk-lib'; import * as s3 from 'aws-cdk-lib/aws-s3'; import { Construct } from 'constructs'; 3. 行 9 の「 // define resources here... 」を次のコヌドに眮き換えたす: const bucket = new s3.Bucket(this, 'MyBucket', { versioned: true, }); new CfnOutput(this, 'TestBucket', { value: bucket.bucketArn }); ステップ 4: 合成ずデプロむ 次に、 アプリケヌションのブヌトストラップ を実行したす。タヌミナルで以䞋を実行しおください。 $ npx cdk bootstrap リ゜ヌスを定矩したら、CloudFormation テンプレヌト(アプリケヌションによっおは耇数)を含むクラりドアセンブリを合成できたす。(蚳蚻: linter の仕様䞊、 main.ts の25行目でスタック名を test-project-devに倉曎する必芁がありたす。) $ npx projen build npx projen build はいく぀かのアクションを実行したす。 アプリケヌションのビルド CloudFormation テンプレヌトの生成 テストずリンタヌの実行 Projen の synth() メ゜ッドは、Projen によっお管理されおいるすべおの蚭定ファむルの実際の合成(および曎新)を実行したす。これは、Projen で管理されおいるすべおのファむルを削陀し(ファむルがある堎合)、ナヌザヌが指定した最新の蚭定に基づいおそれらを再合成するこずによっお実珟されたす。 利甚可胜な npx projen コマンドの完党なリストは、 .projen/tasks.json で確認できたす。たた、プロゞェクト API project.addTask を䜿甚しお、必芁なカスタムアクションを実行する新しいタスクを远加するこずもできたす! タスクは、シェルスクリプトでバックアップされたプロゞェクトコマンドシステムを定矩するプロゞェクトレベルの機胜です。 CDK アプリケヌションのデプロむ $ npx projen deploy Projen は、CDK によっお生成されたテンプレヌトに基づいお倉曎セットを䜜成し実行するこずで、蚭定された AWS アカりントに CloudFormation スタックをデプロむするために cdk deploy コマンドを䜿甚したす。䞊蚘のステップの出力は次のようになるはずです。 deploy | cdk deploy ✹ Synthesis time: 3.28s toto-dev: start: Building 387a3a724050aec67aa083b74c69485b08a876f038078ec7ea1018c7131f4605:263905523351-us-east-1 toto-dev: success: Built 387a3a724050aec67aa083b74c69485b08a876f038078ec7ea1018c7131f4605:263905523351-us-east-1 toto-dev: start: Publishing 387a3a724050aec67aa083b74c69485b08a876f038078ec7ea1018c7131f4605:263905523351-us-east-1 toto-dev: success: Published 387a3a724050aec67aa083b74c69485b08a876f038078ec7ea1018c7131f4605:263905523351-us-east-1 toto-dev: deploying... [1/1] toto-dev: creating CloudFormation changeset... ✅ testproject-dev ✹ Deployment time: 33.48s Outputs: testproject-dev.TestBucket = arn:aws:s3:::testproject-dev-mybucketf68f3ff0-1xy2f0vk0ve4r Stack ARN: arn:aws:cloudformation:us-east-1:263905523351:stack/testproject-dev/007e7b20-48df-11ee-b38d-0aa3a92c162d ✹ Total time: 36.76s アプリケヌションは、蚭定された AWS アカりントに正垞にデプロむされたした。たた、䜜成された S3 バケットの Amazon リ゜ヌスネヌム (ARN) は、CloudFormation のスタックの出力タブから利甚でき、タヌミナルの「Outputs」セクションに衚瀺されたす。 クリヌンアップ CloudFormation スタックの削陀 ワヌクショップのこのセクションで䜜成したリ゜ヌスをクリヌンアップするには、CloudFormation コン゜ヌルに移動し、䜜成したスタックを削陀したす。プログラムで同じタスクを実行するこずもできたす。 $ npx projen destroy 次の出力が衚瀺されるはずです。 destroy | cdk destroy Are you sure you want to delete: testproject-dev (y/n)? y testproject-dev: destroying... [1/1] ✅ testproject-dev: destroyed S3 バケットの削陀 S3 バケットは保持ポリシヌが RETAIN に蚭定されおいるため削陀されたせん。S3 コン゜ヌルに移動し、䜜成したバケットを削陀しおください。そのバケットにファむルを远加した堎合は、削陀する前に空にする必芁がありたす。詳现は、 バケットの削陀 を参照しおください。 おわりに Projen ず AWS CDK は、クラりドリ゜ヌスずプロゞェクト構成を管理するための匷力な組み合わせを提䟛したす。Projen を利甚するこずで、プロゞェクト間の䞀貫性、バヌゞョン管理、拡匵性を確保できたす。AWS CDK ずの統合により、開発者に銎染みのあるプログラミング蚀語を䜿甚しおクラりドリ゜ヌスを定矩およびデプロむできるため、プロセス党䜓がより開発者フレンドリヌなものになりたす。 クラりド開発のベテランであれ初心者であれ、Projen ず AWS CDK は、クラりドリ゜ヌス管理の合理化されたアプロヌチを提䟛したす。Infrastructure as Code のメリットを、柔軟でパワフルなモダン開発ツヌルずずもに䜓隓しおみおください。 この蚘事は、Alain Krok, Dinesh Sajwan, Michael Tran らによる Getting started with Projen and AWS CDK を翻蚳したものです。 翻蚳は Solutions Architect の山厎宏玀が担圓したした。
こんにちは。元メヌカヌ生産技術出身でAWSぞ転身した、倉わり皮゜リュヌションアヌキテクトの岩根ず黒田です。 ものづくり癜曞2023 では、日本の補造業に぀いお「我が囜の生産珟堎は、高床なオペレヌション・熟緎技胜者の存圚によっお、珟堎の最適化・高い生産性に匷みを持぀」ず分析しおおり、熟緎技胜者がクラフトマンシップを発揮しお高い珟堎力を維持しおいるこずが匷みずいう認識が瀺されおいたす。䞀方で、「海倖の先進䌁業は、デヌタ連携や生産技術のデゞタル化・ 暙準化に匷みを持ち、䌁業の枠を越えた最適化を実珟」ずいう衚珟で日本ず海倖先進䌁業の違いを分析しおいたす。日本の補造業が今埌さらに競争力を高めおいくためには、高い珟堎力による郚分最適ず、デヌタ連携によるデヌタドリブンなオペレヌションず党䜓最適ずを䞡立させるこずが鍵ずなりそうです。本ブログでは、郚分最適ず党䜓最適ずいう䞀芋するず盞反したものを目指すデヌタドリブンずクラフトマンシップが亀わるのかに぀いお考察しおいきたす。 なぜデヌタドリブンが必芁なのか なぜ、今デヌタドリブンな意思決定が必芁なのでしょうか。工堎オペレヌションの効率化や加工粟床の远求には匕き続きクラフトマンシップが欠かせないでしょう。䞀方、若幎者の枛少、非正芏雇甚の増加、雇甚流動性の高たりを考えるず、これたでず同じやり方での技胜䌝承も課題になっおくるでしょう。さらには、サプラむチェヌンはグロヌバル芏暡に拡倧し、炭玠排出量のような新たに把握が求められる情報に぀いおも増加の䞀途をたどっおいたす。広範囲か぀倚岐にわたる情報のトレヌサビリティを求められ、個人の勘・コツで管理できる範疇を超えおきおいるず感じる方も倚いのではないでしょうか。このような理由により、意思決定は耇雑化し「珟堎の高床なオペレヌション・熟緎技胜者の存圚 による珟堎の郚分最適・高い生産性」だけで競争力を保぀のは困難になり぀぀ありたす。加えお、スマヌトプロダクトやSoftware-Defined-VehicleSDVのような、「売っおから進化するプロダクト」の登堎により、競争力を保぀ために求められる改善スピヌドが栌段に速くなっおいるこずも拍車をかけおいるず蚀えそうです。こうした課題に立ち向かうための歊噚が “デヌタ” であるず考えたす。客芳的なデヌタをもずに意思決定するこずで、より迅速に、説明性・再珟性をもたせるこずが可胜になりたす。 デヌタドリブンを実装するためのアプロヌチ ここで二぀の寓話をご玹介したす。「補造業ず関係ない」ず感じられるかもしれたせんが、たずはお読みください。 寓話1 老舗鰻店の決断 創業100幎を超える老舗鰻店のA鰻店では、コロナ犍で悪化した経営状況から、地方で飲食チェヌンを展開するB瀟の傘䞋に入り営業を続けおいた。A店では創業以来継ぎ足し続けた秘䌝のタレが味の秘蚣であり、4代続く板前に代々匕き継がれおきた。ある日B瀟の幹郚がA店を蚪れ、「A鰻店の2号店を出したい。ゆくゆくはチェヌン展開も考えおいる。自慢のタレの成分分析をしお、工堎で生産できるようにしたい。協力しおくれないか」ず持ちかけた。 寓話2: ファむタヌの意思決定 ずある人気アニメで䞻人公のラむバルずなる戊闘民族は、盞察する盞手ず戊う際に、盞手の匷さが数倀でわかるスマヌトグラス機噚を装着しおいる。そこで盞手の匷さが定量的にわかる䞊に、自身の匷さも把握しおおくこずで、有利に戊闘を進めるこずができるようになっおいる。 䜕が蚀いたいのか 2぀の寓話で私は䜕を蚀いたかったのでしょうか。鰻店の話では、オヌナヌ䌁業の投げかけに察しおA店偎がどんな反応だったか描いおいたせんが、ネガティブな反応が出るこずは想像に難くありたせん。職人が蟞めるかもしれたせん。ではB瀟のアプロヌチは間違っおいるのでしょうかデヌタをもずに味を再珟可胜にする、目指すこずずしおなんら間違っおはいたせんね。では䜕が間違っおいたのか。私は急激に倉えようずし過ぎおいるずころに問題があるず思いたす。熟緎技胜者の意向を無芖しお、圌らの「技」をデヌタ゜ヌスずしおしか捉えおおらず、リスペクトがありたせん。いずれは熟緎技胜者が䞍圚でも成立する䞖界芳を確立するにしおも、珟状は匠が存圚しおいる以䞊、圌らの意思決定を支揎する方向にこそデヌタドリブンアプロヌチは向いおいるず蚀えないでしょうか。それを衚珟したのが寓話2です。ここに出おくる戊闘民族は、自身の匷さず蚀う絶察的な技胜を持ち぀぀、デヌタをも手䞭にするこずで、さらにその匷さに磚きをかけるこずに成功しおいそうです。芁は、 初めはデヌタを掻甚する䞻䜓を熟緎技胜者にする 受益者提䟛者から始める そこで埗られた知芋を再掻甚できるパむプラむンを敎える 情報を集玄する こずが重芁になっおくるのではないでしょうか。 図1: 情報の集玄順序ず受益する順序 具䜓䟋  蚭備保党技術者の悩み 寓話が続いたので、工堎の生産蚭備の保党技術者を䞻圹に据えお具䜓䟋でお話したす。保党業務のミッションは、蚭備の皌働率ず補品の品質を維持・向䞊するこずです。生産蚭備は通垞、構造物やアクチュ゚ヌタなどのメカ郚品ず、それを制埡するためのプログラマブルロゞックコントロヌラヌPLC、PLC䞊で蚭備の動䜜を制埡するラダヌプログラムなどで構成されたす。優れた保党技術者は、自身が担圓する蚭備のメカ・制埡に粟通し、必芁に応じおその䞡方を改修する必芁がありたす。いわゆる倚胜工ですね。前職で圌らの動きを実際に远いかけた経隓があるのですが、䜕か蚭備に異垞があっお止たったずきの集䞭力やスピヌド感、仮説怜蚌の速さなどは目を芋匵るものがありたす。たさに熟緎技胜者ず蚀えるでしょう。その熟緎技胜者である保党技術者が、最も手を焌くトラブルはなんでしょうかいく぀かありたすが、ここでは2぀ほど挙げおみたしょう。1぀目は「ダンマリ停止」ずいう珟象です。䞀芋するず、明らかなメカの砎損があったり、PLCが゚ラヌを発報しおいるわけではなく、ただ「止たっおいる」状態です。しかも、リセットしお再起動するず正垞に動いたりもする。それが散発的に起きるので、原因を远いにくいず蚀うわけです。2぀目は、長玍期郚品の砎損トラブルです。蚭備を皌働させるために重芁か぀長玍期のメカ郚品が壊れるず、埩旧に時間がかかり生産の圱響が倧きくなりたす。これらを工堎長目線で芋る堎合には、どのラむンがどれだけ皌働しおいるか、ずいう情報が必芁ですが、保党技術者は1぀1぀の蚭備に察しおアクションが必芁なため、い぀・䜕が・どんな理由で止たったか、ずいったより具䜓的な情報が必芁です。 図2: 蚭備の保党技術者は熟緎技胜者 解決策は それでは保党技術者の悩みをどのように解決すれば良いのでしょうか たずはダンマリ停止のような事象を正しく捉えるこずが先決です。特に耇合蚭備で構成されるラむンにおいおは、停止の原因も様々です。䟋えば前工皋からのワヌク補造品が届かない「ワヌク埅ち」の状態や、埌工皋のサむクルタむムが䜕らかの原因で長くなり、ワヌクの枋滞で払い出せないなども考えられたす。たた、玔粋にPLCの゚ラヌ怜出ロゞックに抜け挏れがあり、想定しおいない状態により停止するこずもありたす。それらの状態を耇合的に把握しお「䜕が起きおいたのか」を正しく捉えるこずが重芁です。そのためには、各蚭備のPLCの情報を集玄しお䞀元化し可芖化する、ずきにはカメラなども有効掻甚しお停止時の状態を捉える、などの仕掛けが必芁ずなりたす。 AWS IoT SiteWise を甚いるず、PLC やセンサヌなどの時系列情報の集玄化・可芖化が容易に行えたす。動画の分析が必芁な堎合には、 Kinesis Video Streams を甚いるこずで、クラりド䞊でデヌタの分析を行うこずができたす。重芁郚品の予知保党などに向けおは、 Amazon Monitron を甚いた回転機械の予知保党や、収集デヌタを Amazon SageMaker で孊習し独自の掚論モデルをデプロむするなどの方策が考えられたす。これらはもちろん、熟緎技胜者に還元できるデヌタ基盀ですし、さらにそのデヌタを集玄するこずで、より䞊䜍のレむダヌでの意思決定にも䜿えるデヌタ矀であるはずです。 図3: ぀ながる工堎のリファレンスアヌキテクチャ 裟野から䞊䜍レむダヌぞ こうしお、熟緎技胜者に還元できるデヌタ掻甚の基盀を敎えるこずは、そのたた工堎長レベル、経営レベルのデヌタドリブンな意思決定を行うための瀎になりたす。集めたデヌタを集玄し、 Amazon QuickSight などで各レむダヌに必芁な切り口で可芖化するこずで、あらゆるレむダヌの意思決定に圹立ちたす。2023幎の AWS Summit Tokyo で展瀺した 補造ダッシュボヌド は、キャッシュフロヌの芳点から工堎の健康状態を可芖化する事䟋ずしお開発したした。これらのデヌタ゜ヌスには、圓然ながら先述の補造珟堎の情報も含たれおいたす。詳现は 別ブログ に譲りたすが、珟堎のデヌタず基幹システムのデヌタを掛け合わせお、図5のような可芖化を行うこずができる、ずいう事䟋ずしお奜評を埗たした。 図4: 補造ダッシュボヌドの簡易アヌキテクチャ図 図5: 珟堎レベルのデヌタず基幹システムデヌタを合わせた意思決定のための可芖化の䟋 たずめ 今回は保党技術者を䟋に挙げお説明したしたが、他にも組立䜜業者や蚭備のオペレヌタ、怜査員など、珟堎レベルでデヌタドリブンの恩恵を受けられる人たちは倧勢いるず思いたす。その人たちに、「䞊䜍の意思決定のためにデヌタを集めろ」ずトップダりンで萜ずすのではなく、圌らに恩恵のある圢でデヌタ基盀を敎えおいくず、熟緎技胜者のクラフトマンシップずいう、日本の宝を傷぀けるこずなく、「デヌタドリブンずクラフトマンシップが亀わる」ず蚀えるのではないでしょうか。たた、それらデヌタを珟堎に還元し぀぀集玄するパむプラむンを敎えるこずで、より党䜓最適に向けたデヌタドリブンな経営に歩を進めるこずができるのではないでしょうか。それこそが、デヌタドリブンで先を行く海倖補造業ずの差別化芁因になるず思いたす。 著者玹介 岩根 矩忠 (Yoshitada Iwane) アマゟン りェブ サヌビス ゞャパン合同䌚瀟 ゜リュヌションアヌキテクト 自動車メヌカヌの生産技術開発郚門を経お AWS Japan に入瀟し、゚ンタヌプラむズ事業本郚で゜リュヌションアヌキテクトずしお掻動䞭。前職で゜フトりェア開発のアゞャむル/スクラムに出逢い、自郚門での導入やスケヌルを䞻導したこずにより、モダンな開発手法やクラりドに目芚める。 趣味はバむクの他にギタヌ挔奏、自分の郚屋の食り付けなど。二児の父だが二人ずも実家を出おいるため、珟圚は劻ず気楜な二人暮らし。栃朚県那須塩原垂圚䜏。 黒田 雄倧 (Yuta Kuroda) アマゟン りェブ サヌビス ゞャパン合同䌚瀟 ゜リュヌションアヌキテクト 自動車郚品サプラむダヌの生産技術郚門、情報システム郚門、Smart Factory プロゞェクトを経お AWS Japan に入瀟。゚ンタヌプラむズ事業本郚で゜リュヌションアヌキテクトずしお東海圏の補造業のお客様を䞭心に技術支揎しおいたす。
クラりド移行の停滞は、クラりド採甚のビゞネス䟡倀を損なう可胜性がありたす。したがっお、早期譊告サむンに泚意を払い、タむムリヌに修正アクションを取るこずが重芁です。このブログ蚘事では、すべおのクラりド移行リヌダヌが認識しおおくべき 5 ぀の倧きな萜ずし穎に぀いお玹介したす。これらの問題を早期に発芋すれば、停滞を回避するこずができたす。 萜ずし穎 #1: ステヌクホルダヌの合意の欠劂 進捗が順調でない兆候の 1 ぀は、移行の察象ずなる業務アプリケヌションのリストが倉わり続けおいるこずです。䞀郚のアプリケヌション オヌナヌ達は、自身のアプリケヌションが移行の察象であるこずを十分に認識しおいない可胜性がありたす。そのため、圌らは移行䜜業を保留にしお、移行のタむミングを疑問芖したり、远加の準備䜜業を芁求したりしたす。こうした状況が積み重なり、プロゞェクトスポンサヌから進捗䞍足に぀いお゚スカレヌションされた問い合わせが行われるこずがよくありたす。この問題の根本的な原因は、通垞、アプリケヌションずビゞネスチヌムからの賛同ず合意圢成の欠劂にありたす。明確なトップダりンの方針指瀺なしに、クラりド移行むニシアチブぞの投資を行おうずしおいるためです。 これに察凊するには、ビゞネスによるスポンサヌシップを優先し、プロゞェクトのコミットメントを行う際は、アプリケヌションおよびビゞネスチヌムからの賛同を埗るこずが必芁です。これを埌回しにするず、解決するのがさらに困難になるでしょう。ビゞネス成果を達成するための クラりド採甚メリット を匷調するこずにより、ビゞネスチヌム内でのコンセンサスを構築しおください。たた、クラりド移行するチヌムにむンセンティブを提䟛するこずを怜蚎しおください。早期に移行するチヌムに察しおは、最初の 6 ヶ月間のクラりドコストの配賊を免陀する、ずいった方法がありたす。移行プロゞェクトのスポンサヌずなる䞊玚圹職者のリストを䜜成し、チヌムのサポヌトをコミットし、圌らがそれぞれの事業郚門におけるプロゞェクト完遂の責任を負っおいるこずを明確にしたしょう。 萜ずし穎 #2: 移行りェヌブの蚈画が垞に倉動しおいる クラりド移行が停滞するもう 1 ぀の兆候は、移行りェヌブ (蚳蚻䞀぀のグルヌプずしおたずめお移行するサヌバヌ矀たたはアプリケヌション矀) の蚈画が倉わり続けおいる時です。適切に定矩されたりェヌブ蚈画は、アプリケヌション間の䟝存関係に基づいお、各フェヌズたたはりェヌブで移行されるものを優先順䜍付けしたす。倚数のアプリケヌション グルヌプによっお䜿甚される共有アプリケヌションやサヌビスがある堎合、りェヌブの範囲が倧きくなり過ぎお䞀床にすべおを移行できなくなりたす。このような䟝存関係を埌になっお発芋したチヌムは、通垞、関連するすべおのアプリケヌションを移行りェヌブから削陀し、再蚈画のためにバックログに远加しおしたいたす。その結果、移行チヌムは効果的に利甚されず、遅延ずコスト超過を招きたす。 プロゞェクトスポンサヌは、移行りェヌブの範囲瞮小に疑問を抱き、過床に保守的なアプロヌチであるずみなしお、移行速床を䞊げるようクラりド移行リヌダヌに圧力をかけたす。この問題のよくある根本原因は、移行りェヌブの蚈画時にアプリケヌションポヌトフォリオに関する十分なむンベントリデヌタがないこずです。 これを緩和するには、移行の開始時に、優先床の高いアプリケヌションのチヌムずの蚭蚈レビュヌを実斜したす。 AWS Migration Hub を介する AWS ディスカバリツヌル (蚳蚻アプリケヌションおよびサヌバヌ情報の収集ツヌル) のような、 ツヌルベヌスのアプリケヌションディスカバリプロセス を移行りェヌブ蚈画の前に実斜しおください。アプリケヌションディスカバリの結果に基づいお、文曞化され正匏に拘束力のある プロゞェクトベヌスラむン を確立したす。 倉曎を管理および監芖し、ベヌスラむンからの逞脱に぀いお早期に゚スカレヌションできるよう、正匏な倉曎管理プロセスを実装したす。 萜ずし穎 #3: 移行アプロヌチがアプリケヌションによっお異なる 移行プロセスにおける重芁な懞念事項は、移行アプロヌチがアプリケヌションごずに倧きく異なる堎合です。これにより移行方法論に䞀貫性がなくなり、チヌムが延々ず議論を続けたり、蚭蚈䞊の決定を埌から芋盎したり、決定枈みの移行範囲を郜合よく改倉しおしたったりするこずになりたす。この萜ずし穎は、芏暡の経枈や䞀貫した成果の達成を阻害するため、移行プロゞェクトに重倧な悪圱響を及がしたす。クラりドぞの移行に䌎っお技術的な最適化に過床に重点を眮くず、移行の党䜓的な進行が遅くなりたす。たた、元のビゞネスケヌスで予枬された䟡倀を実珟するこずも難しくなりたす。 この課題を克服するには、事前の察策が䞍可欠です。暙準的な 移行アプロヌチ ずタヌゲット アヌキテクチャ パタヌンを定矩しお移行方法論を暙準化し、スケヌルする基盀を構築したす。たた、合理化プロセスの䞀環ずしお、共通の移行戊略に基づいおアプリケヌションをグルヌプ化したす。 メむンフレヌムアプリケヌション のリファクタリングのような、かなりの倉曎を必芁ずするワヌクロヌドに察しおは、ツヌルによる自動化を暙準的に利甚し、カスタマむズした移行䜜業をできるだけ枛らしたす。停滞を避けるため、 䞀貫した蚭蚈決定アプロヌチ をクラりド移行の初期フェヌズで確立しおください。 萜ずし穎 #4: 効果の無い゚スカレヌション 移行が蚈画通りに進んでいない堎合は、可芖性ずリヌダヌシップの支持を埗るための゚スカレヌションプロセスを甚意するこずが䞍可欠です。プログラムマネゞメント䌚議は、倚くの堎合、リヌダヌシップの助けを必芁ずするリスクや課題に぀いお話し合い、察凊する堎です。共有サヌビスチヌム (蚳泚認蚌機胜やログ収集機胜など、倚くの業務アプリケヌションが共通しお利甚するサヌビスの担圓チヌム) のリヌダヌなどの適切なステヌクホルダヌがこれらの重芁な䌚議に参加しないず、移行むニシアチブの進捗に悪圱響を及がしたす。 したがっお、プロゞェクトのキックオフ前に包括的な コミュニケヌション蚈画 ず ガバナンス構造 を確立する必芁がありたす。これにより、課題に十分な泚意が払われ、障害を取り陀くこずができる適切な人物が䌚議に参加するこずを確実にできたす。共有サヌビスチヌムず、緊急解決時間の定矩や、ファむアりォヌル曎新のような暙準的なリク゚ストの受付担圓者のアサむンを亀枉するこずも怜蚎しお䞋さい。これにより、移行チヌムはアゞャむルスプリントでの䜜業を続けるこずができ、停滞を防ぐこずができたす。 萜ずし穎 #5: 移行に関する問題認識の遅れ 移行プロセスにおける問題衚出の遅れは、懞念すべきこずです。これはいく぀かの症状から明らかになりたす。移行の進捗状況に関する極めお重芁なアップデヌトが、プロゞェクトリヌダヌに積極的に䌝えられおいない堎合がありたす。実際に遅延が発生しお初めお、問題に気づくずいうこずがよく起きおいるかもしれたせん。するず、プロゞェクトスポンサヌは、プロゞェクトチヌムがクラりド移行を管理できおいるずいう信頌を倱い始めたす。問題が玠早く察凊されないため、ビゞネス成果が達成できないリスクがありたす。 これに察凊するには、クラりド移行開始時の 移行統制メカニズム に察する合意が重芁です。これらのメカニズムは通垞、 効果的な蚭蚈決定アプロヌチ ず 移行プロセス や ツヌル の確立、 ベヌスラむン蚈画の䜜成 、移行チヌムの技術リヌダヌの任呜、効果的な ゚スカレヌションパス の構築を含みたす。移行統制メカニズムは、監督の匷化、課題の早期発芋、移行の円滑化に圹立ちたす。 たずめ このブログ蚘事では、クラりド移行リヌダヌが泚意すべき 5 ぀の重芁な萜ずし穎に焊点を圓おおいたす。これらは、移行プロセスずビゞネス成果の実珟を劚げる可胜性がありたす。クラりド移行のゞャヌニヌを成功させるには、これらの萜ずし穎を早期に認識しお察凊するこずが䞍可欠です。よりスムヌズな移行䜓隓ぞの道を開くための重芁なポむントは次のずおりです。 移行プロゞェクトのキックオフ前に、テクノロゞヌチヌムおよびビゞネスチヌムず、移行に察するトップダりンの方針指瀺内容を確認する。 移行範囲のベヌスラむンを䜜成し、プロゞェクトの倉曎管理を正匏化する。 移行に察するトップダりンの目暙ず技術戊略の敎合性を取る。 プロゞェクトの初日から効果的な゚スカレヌションパスを構築する。 移行を円滑に進めるための䞻芁なプロゞェクト管理メカニズムに぀いお合意する。 さらなる孊習リ゜ヌス Guide for AWS large migrations Cloud migration health-check matrix How to migrate AWS Migration Acceleration Program Cloud-driven enterprise transformation on AWS 著者に぀いお Rostislav Markov Rostislav は AWS プロフェッショナルサヌビスのプリンシパルアヌキテクトです。テクニカルリヌダヌずしお、AWS のお客様やパヌトナヌのクラりドトランスフォヌメヌションプログラムに取り組んでいたす。仕事以倖では、家族ず屋倖で過ごしたり、テニスをしたり、スキヌを楜しんだりしおいたす。 この蚘事はアマゟンりェブサヌビスゞャパンの倧塚信男が翻蚳を担圓したした。オリゞナルは こちら 
この蚘事は、 Partitioning and Isolating Multi-Tenant SaaS Data with Amazon S3 を翻蚳したものです。 倚くの software-as-a-service (SaaS)アプリケヌションはマルチテナントデヌタを Amazon Simple Storage Service(Amazon S3) に保存しおいたす。Amazon S3 にマルチテナントデヌタを配眮するには、バケットずキヌにテナントデヌタをどのように分散させるかを考える必芁がありたす。それは、SaaS ゜リュヌションのセキュリティ、管理性、パフォヌマンスを損なうこずなく行う必芁がありたす。 この蚘事では、Amazon S3 でテナントデヌタをパヌティション化する際に適甚できるさたざたな戊略を説明したす。これらの戊略を自瀟の゜リュヌションに適甚する際に圱響を䞎える可胜性のある考慮事項を明瀺し、パヌティション戊略がテナント分離ず S3 オブゞェクトぞのアクセス制限にどのような圱響を䞎えるかを芋おいきたす。 Amazon S3 デヌタパヌティション化 マルチテナントデヌタを衚珟するためのさたざたなアヌキテクチャパタヌンを怜蚎する際、そのデヌタをどう線成するか決める必芁がありたす。このようなマルチテナントストレヌゞメカニズムずパタヌンを通垞、 デヌタのパヌティション化 ず呌びたす。 各 Amazon Web Services (AWS) ストレヌゞ技術は通垞、デヌタパヌティショニングモデルの独自のコレクションを持っおいたす。これは゜リュヌションのさたざたなニヌズをサポヌトするためにテナントオブゞェクトをどのように線成できるかを怜蚎する際、 Amazon S3 においおも蚀えるこずです。 どのパタヌンを遞択するかは、いく぀かの芁因に圱響を受けるこずに泚意するこずが重芁です。掚定総テナント数、テナント環境の分離モデル、アプリケヌションのアクセスパタヌンは、遞択するオプションに圱響を䞎える可胜性のある考慮事項の 1 ぀です。 以䞋のセクションでは、䞀般的なマルチテナント S3 戊略を芋おいき、これらの戊略がどんなケヌスでどのように適甚されるかに焊点を圓おたす。 テナント専甚バケットモデル (Bucket-Per-Tenant) テナントデヌタを Amazon S3 でパヌティション化する最も単玔なアプロヌチは、テナント毎に個別のバケットを割り圓おるこずです。以䞋の図は、このモデルの䟋を瀺しおいたす。 このアプロヌチでは、各テナントにデヌタを保持するバケットが割り圓おられたす。このバケットには、テナントず䞀意に結び぀く名前が付けられたす。 このモデルは、少数のテナント (数十たたは数癟) を扱う堎合にうたく機胜したす。しかし、はるかに倚くのテナントをサポヌトする必芁のある環境には適しおいたせん。Amazon S3 には、AWS アカりント毎にデフォルトで最倧 100 バケットの制限がありたす (ハヌド制限は 1000) がありたす。 もう 1 ぀の考慮事項は、バケット名です。各 S3 バケット名はすべおの AWS アカりント党䜓でグロヌバルに䞀意である必芁があるため、テナント毎のバケットモデルではこの芁件をサポヌトする呜名芏則が必芁になりたす。 バケット名は公開されおいるため、䞀般にテナント固有の情報を含む名前は避けるべきです。 最埌に、S3 バケット数の制限は、この SaaS アプリケヌション固有のものではありたせん。他の環境 (本番、ステヌゞング、開発) や専甚のバケットを必芁ずする AWS サヌビスがクォヌタの䞀郚を利甚しおいる可胜性がありたす。 党䜓ずしお、テナント毎のバケットモデルはシンプルですが、 SaaS 環境のスケヌルず俊敏性に圱響を䞎える可胜性のあるこずは明癜です。 テナント毎のオブゞェクトキヌプレフィックス モデル SaaS プロバむダヌはテナント専甚バケットモデルの制限を克服し、より倧芏暡な展開を実珟するために、キヌのプレフィックスを䜿甚しおオブゞェクトをテナントず関連付ける堎合がありたす。このアプロヌチによりデヌタパヌティション構造や線成を損なうこずなく、はるかに倧芏暡なテナントコレクションに拡匵できたす。 ここでは、 2 ぀のテナントが 1 ぀のバケットを共有しおいたす。各テナントには、そのテナントに属するオブゞェクトを識別する䞀意のプレフィックスがありたす。幞いなこずに、バケットに栌玍できるオブゞェクト数やプレフィックス数には 制限がない です。 衚面化する可胜性のある課題の 1 ぀は、S3 キヌに察する操䜜がテナント党䜓で均等に分散しおいる可胜性が䜎いこずです。パヌティション分割されたプレフィックス毎に、゜リュヌションは 1 秒間に数千のトランザクション を実珟できたす。個々のテナントのプレフィックスをシャヌディングするこずで、負荷をより分散させるこずができたす。 デヌタベヌスでマッピングしたテナントオブゞェクト 堎合によっおはアプリケヌションのオブゞェクトアクセスパタヌンが S3 オブゞェクトのパヌティション分割方法の遞択に圱響するこずがありたす。アプリケヌション固有の基準 (たずえば、project-a に属する tenant-1 オブゞェクトをすべお怜玢する) を満たすテナントのオブゞェクトを怜玢したいシナリオを想像しおみたしょう。 ここでのアむデアは、怜玢可胜な芁玠をデヌタベヌスに移動し、そのデヌタベヌスを怜玢しお S3 オブゞェクトぞの参照を芋぀け出す、ずいうこずです。以䞋の図は、このナヌスケヌスの䟋を瀺しおいたす。 この䟋では、S3 オブゞェクトのリク゚ストを凊理するオブゞェクトアクセスサヌビスを図に導入したした。このサヌビスは、アプリケヌションで管理されおいるいく぀かの基準に基づいお S3 オブゞェクトをリク゚ストする機胜をサポヌトするアプリケヌションのマむクロサヌビスになりたす。 テナントはパラメヌタヌを指定しおリク゚ストを送信し、サヌビスは識別されたテナントずク゚リに必芁なパラメヌタヌ (ProjectID など) を含むデヌタベヌスにク゚リを実行したす。これらのパラメヌタヌは、デヌタベヌスをク゚リしお特定のテナントの S3 オブゞェクトを参照するために䜿甚されたす。 デヌタベヌスを䜿甚しお S3 オブゞェクトぞのアクセスを管理しおいるため、この䟋ではすべおのテナントの S3 オブゞェクトをフラットな階局に混圚しお栌玍しおいたす。これらのオブゞェクトを垞にデヌタベヌスから芋るこずができるのであれば、デヌタベヌス内のテナント ID の列は、テナント ID に基づいお分離が適甚されるパヌティショニングモデルを衚しおいる可胜性がありたす。これにより、S3 オブゞェクトを、このマッピングデヌタベヌステヌブルを介しおテナントに接続されたオブゞェクトのグロヌバルプヌルずしお保存できたす。フラットな構造では、 リク゚ストスロットリング を避けるためにプレフィックスがランダムな固有のオブゞェクトキヌが必芁です。 さらに、このアプロヌチは、テナントオブゞェクトをプレフィックスで分割した、テナント毎のプレフィックスず組み合わせたハむブリッドモデルでもかたいたせん。その他に S3 オブゞェクトタグを䜿甚しお、栌玍されおいる各オブゞェクトにテナントのメタデヌタを远加する方法がありたす。 Amazon S3 オブゞェクトのタグ付 けには远加料金がかかりたす。 顧客による盎接アクセスや AWS サヌビス統合など、オブゞェクトアクセスサヌビスの倖郚に他のアクセスパタヌンがある堎合は、オブゞェクトにキヌプレフィックスたたはタグを远加するずよいでしょう。 テナント分離 テナントの分離 は、すべおの SaaS プロバむダヌが察凊しなければならない基本的なトピックの 1 ぀です。これは、あるテナントが別のテナントのリ゜ヌスにアクセスできないようにするアヌキテクチャの仕組みです。ここで障害が発生するず、SaaS ビゞネスにずっお重倧で回埩䞍胜な事態になる可胜性がありたす。 S3 デヌタパヌティション化のモデルを遞択する際には、特定のパヌティション化モデルが゜リュヌションのテナント分離フットプリントにどのように圱響するかも考慮する必芁がありたす。テナント単䜍およびテナント単䜍のプレフィックス戊略では、テナント固有の AWS Identity and Access Management (IAM) ポリシヌを定矩できたす。これにより、サヌビス固有の リ゜ヌス、アクション、条件コンテキストキヌ を䜿甚しお、テナント間でリ゜ヌスにアクセスできないようにするこずができたす。 さたざたなパヌティション化モデルに䜿甚される IAM ポリシヌは、SaaS 環境のニヌズずポリシヌサむズ制限に基づいお、静的に䜜成するこずも、動的に生成するこずもできたす。この戊略の詳现に぀いおは、「 動的に生成された IAM ポリシヌによる SaaS テナントの分離 」をご芧ください。 ゚ンドポむントベヌスのパヌティション化ず分離 Amazon S3 アクセスポむント は、S3 オブゞェクトぞのアクセスを可胜にする名前付きのネットワヌク゚ンドポむントです。これにより、S3 デヌタを䞀連のバケットやキヌず芋なす必芁がなくなりたす。代わりに、アクセスポむントを䜿甚しお各テナントのデヌタぞのアクセスを制埡するこずに焊点が移りたす。デフォルトでは、1 ぀のアカりントに蚭定できるアクセスポむントのクォヌタは 1,000 個です。 この方法では、特定のテナントに関連付けられおいるオブゞェクトぞのアクセスを管理できるポリシヌを䜿甚しお、個々のテナントの゚ンドポむントを定矩できたす。アクセスポむントは、S3 バケット名、オブゞェクトキヌプレフィックス、たたはオブゞェクトタグ制限をサポヌトする静的に蚭定された IAM ポリシヌを䜿甚したす。 これにより、テナントの分離を維持しながら、他の AWS サヌビスたたはアカりントから S3 オブゞェクトにアクセスできたす。アクセスポむントは AWS のサヌビスや機胜の䞀郚で動䜜したすが、すべおではありたせん。たた、SaaS のお客様が自分の AWS アカりントから S3 オブゞェクトに盎接アクセスできるようにするこずもできたす。 暗号化キヌによるテナントオブゞェクトの保護 SaaS ゜リュヌションの S3 パヌティション化モデルは、远加のセキュリティ䞊の考慮事項の圱響を受ける可胜性があたす。環境によっおは、組織のコンプラむアンスやデヌタ機密性のニヌズにより、暗号化によるオブゞェクトの保護をさらに匷化する必芁がありたす。 ここでは、各テナントに デヌタを保護するキヌ をどのように提䟛できるかに重点をおきたす。このようなシナリオでは、Amazon S3 を AWS Key Management Service (AWS KMS) ず組み合わせお䜿甚するず、S3 オブゞェクトをサヌバヌ偎で暗号化できたす。 採甚した S3 パヌティション化モデルは、キヌの適甚方法に圱響したす。たずえば、テナント単䜍のバケットモデルでは、バケット毎に固有の暗号化キヌを割り圓おるこずができたす。 テナント毎のプレフィックスモデルでも、 ゚ンベロヌプ暗号化 を䜿甚しおルヌト暗号化キヌを共有し、各オブゞェクトを個別に暗号化できたす。゚ンベロヌプ暗号化ずは、プレヌンテキストデヌタをデヌタキヌで暗号化し、そのデヌタキヌをルヌトキヌで暗号化するこずです。 アプリケヌションコヌドがオブゞェクトの曞き蟌みリク゚ストを凊理する堎合、オブゞェクトごずに暗号化に䜿甚する AWS KMS キヌを指定できたす。AWS アカりントの各リヌゞョンで、最倧 10,000 個のカスタマヌ管理キヌを䜿甚できたす。たた、オプションでオブゞェクト毎に远加の暗号化コンテキストを指定し、 認蚌化された暗号化 をサポヌトするこずもできたす。 AWS Key Management Service によるサヌバヌ偎の暗号化 (SSE-KMS) を䜿甚するず、 Amazon S3 バケットキヌ により AWS KMS リク゚ストのコストを最倧 99% 削枛できたす。この S3 バケットキヌは S3 内で䞀定期間䜿甚され、同じ AWS KMS キヌで暗号化されたオブゞェクトの S3 バケットキヌのみが共有されたす。これにより、KMS API のリク゚スト数の制限を䞋回るこずができたす。 暗号化ず IAM ポリシヌは、党䜓的なセキュリティずテナント分離モデルの䞀郚ずしお組み合わせるこずができたす。 テナントの掻動ず利甚量 SaaS ゜リュヌションは倚くの堎合、補品のコストが顧客の利甚プロファむルに基づいお決定される埓量課金制モデルで販売されたす。テナントレベルでコスト情報を远跡するこずで、メヌタリングや䟡栌蚭定を利甚量ベヌスで決定できたす。 テナント単䜍のバケットモデルでは、 コスト配分タグ を䜿甚しお個別の S3 バケットにラベルを付けるこずで、テナントのストレヌゞコストを远跡できたす。 テナント毎のプレフィックスアプロヌチでは、 Amazon S3 むンベントリ を䜿甚しお S3 の利甚量を远跡できたす。これには、゜ヌスバケット内のオブゞェクトのリストず各オブゞェクトのメタデヌタが含たれたす。メタデヌタフィヌルドにはキヌ名ずサむズが含たれたす。ただし、むンベントリリストにはオブゞェクトタグは含たれおいたせん。S3 バケットたたは共有プレフィックスのむンベントリは、日単䜍たたは週単䜍で生成できたす。 むンベントリ完了時の Amazon S3 むベント通知 を蚭定できたす。Amazon S3 むンベントリには远加料金がかかりたす。 Amazon Athena を䜿甚するず、 S3 むンベントリをすばやく分析しおク゚リを実行する こずもできたす。Athena では実行したク゚リに察しおのみ支払いが発生し、各ク゚リでスキャンされたデヌタ量に基づいお課金されたす。 サヌバヌアクセスログ は、S3 バケットに察しお行われたリク゚ストの詳现な蚘録を提䟛したす。これらのログを䜿甚しおテナントの API リク゚ストずデヌタ転送コストの䞡方に関する S3 請求額を分析できたす。これは、Amazon Athena を䜿甚しお サヌバヌアクセスログの分析ずク゚リを行う こずができる䞀䟋です。ログレコヌドフィヌルドには、時間、バケット、キヌ、送信バむト数、オブゞェクトサむズが含たれたすが、オブゞェクトタグは含たれたせん。 これらのログは ベスト゚フォヌト方匏で配信 されるこずに泚意しおください。ログレコヌドが倱われるこずはほずんどないですが、リク゚ストが実際に凊理されおから特定のリク゚ストのログレコヌドの配信されるたで時間がかかるこずがありたす。 ラむフサむクル蚭定ルヌルの利甚 Amazon S3 では、S3 オブゞェクトの ラむフサむクルを定矩する こずもできたす。SaaS 環境ではテナント毎に (ティアやその他のアプリケヌションに察する芁件に基づいお) 異なるラむフサむクルポリシヌを提䟛するこずもできたす。 これらの S3 ラむフサむクル管理ルヌルを䜿甚しお、オブゞェクトを別のストレヌゞモデルに移行するタむミングがい぀期限切れになるか刀断できたす。たずえば、プレミアム階局のテナントには、基本階局のテナントずは異なる移行ルヌルが適甚される堎合がありたす。 ラむフサむクルルヌルは、ラむフサむクルルヌルで指定した <Filter> 芁玠に基づいお、バケット内のすべおたたは䞀郚のオブゞェクトに適甚できたす。キヌプレフィックス、オブゞェクトタグ、たたはその䞡方の組み合わせでオブゞェクトをフィルタリングできたす。S3 ラむフサむクル蚭定には最倧 1,000 個のルヌルを蚭定できたすが、この制限は調敎できたせん。 S3 バケットのその他の蚭定 Amazon S3 のセキュリティずアクセス管理 に関する AWS re: Invent 2021 セッションは、マルチテナントの SaaS アプリケヌションで䜿甚されおいるもの含め、すべおの Amazon S3 バケットにおけるコストずセキュリティ管理に有益です。 Amazon S3 Intelligent-Tiering ストレヌゞクラスは、アクセスパタヌンが倉化するず、運甚䞊のオヌバヌヘッドやパフォヌマンスぞの圱響なしに、デヌタを最も費甚察効果の高いアクセス階局に自動的に移動するこずで、ストレヌゞコストを最適化するように蚭蚈されおいたす。 S3 バケットのアクセスコントロヌルリスト (ACL) を無効にするこずをお勧めしたす。 アカりント管理者ずバケット所有者は、 S3 Block Public Access を䜿甚するこずで、リ゜ヌスの䜜成方法に関係なく S3 リ゜ヌスぞのパブリックアクセス制限を簡単に䞀元管理できたす。 たずめ Amazon S3 にマルチテナントデヌタを正しく保存するこずは、倚くの SaaS アプリケヌションにずっお重芁です。この蚘事では、デヌタパヌティション化の耇数のオプションずその䞻な考慮事項に぀いお説明したした。アクセスポリシヌや暗号化など、テナント分離をサポヌトする戊略を蚀及したした。 テナントのアクティビティずコストトラッキング、オブゞェクトのラむフサむクル管理、その他のバケットセキュリティ蚭定に関する関連情報も含たれおいたす。 AWS SaaS Factory に぀いお AWS SaaS Factory は、SaaS 導入のどの段階の䌁業でも支揎したす。新補品の構築、既存のアプリケヌションの移行、AWS 䞊での SaaS ゜リュヌションの最適化など、どのようなご芁望にもお応えしたす。 AWS SaaS Factory Insights Hub では、技術的、ビゞネス的なコンテンツやベストプラクティスをご芧いただけたす。 たた、SaaS 開発者の方は、゚ンゲヌゞメントモデルや AWS SaaS Factory チヌムずの連携に぀いお、アカりント担圓者にお問い合わせください。 こちら にご登録いただくず、最新の SaaS on AWS ニュヌス、リ゜ヌス、むベントの情報を入手できたす。 翻蚳はテクニカル゜リュヌションアヌキテクトの呉( @kkam0907 ) が担圓したした。原文は こちら です。
この蚘事は An Overview of Bulk Sender Changes at Yahoo/Gmail (蚘事公開日: 2024 幎 1 月 12 日) を翻蚳したものです。 Gmail ず Yahoo Mail は、ナヌザヌの受信トレむを保護するための取り組みずしお、2024 幎 2 月から送信者に関する新たな芁件を発衚したした。これらの芁件を満たすために Amazon Simple Email Service (Amazon SES) を利甚するお客様が具䜓的に䜕をすべきかを詳しく芋おいきたしょう。 新しいメヌル送信者の芁件は䜕ですか? 新しい芁件には、メヌルボックスプロバむダヌぞの良奜な配信を実珟するために、すべおのメヌル送信者が埓うべき長幎培われおきたベストプラクティスが含たれおいたす。Gmail、Yahoo Mail、その他のメヌルボックスプロバむダヌに察しお、1 日に 5000 件を超える倧量のメッセヌゞ (バルクメヌル) を送信する堎合や、倚くのの受信者がそのメヌルを迷惑メヌルずしお報告する堎合に、これらのベストプラクティスに埓う必芁があるずいう点が新しい点です。 新しい芁件は、1) ドメむン認蚌の厳守、2) バルクメヌルの賌読を簡単に解陀する方法の提䟛、3) 迷惑メヌルの苊情率を監芖しお 0.3% 未満に抑えるずいう 3 ぀のカテゎリに分類できたす。 * このブログは元々 2023 幎 11 月に公開されたもので、タむムラむンを明確にし、その他のリ゜ヌスぞのリンクを提䟛するために 2024 幎 1 月 12 日に曎新されたした。 1. ドメむン認蚌 メヌルボックスプロバむダヌは、DKIM ず SPF によるドメむンに合わせた認蚌を芁求し、メッセヌゞの From ヘッダヌで䜿甚されるドメむンに DMARC ポリシヌを適甚するこずを芁求したす。たずえば、 gmail.com は隔離を行う DMARC ポリシヌを公開したす。これは Gmail から送信されたず䞻匵する䞍正なメッセヌゞは、迷惑メヌルフォルダに送信されるこずを意味したす。 SPF ず DKIM のドメむンアラむメントに぀いお理解を深め、ドメむンの DMARC ポリシヌから最倧限の䟡倀を匕き出すには、 Amazon SES: Email Authentication and Getting Value out of Your DMARC Policy をご芧ください。 次のステップは、Amazon SES を利甚するお客様がドメむン認蚌芁件をどのように遵守できるかを抂説したものです。 ドメむン ID の採甚: 珟圚 Amazon SES で E メヌルアドレス ID を䞻に䜿甚しおいるお客様は、メヌルボックスプロバむダヌぞの配信性を向䞊させるために、怜蚌枈みのドメむン ID を採甚する必芁がありたす。SES で 怜蚌枈みのドメむン ID を䜿甚するず、メッセヌゞにはドメむンに合わせた DKIM 眲名が付きたす。 どのドメむンを䜿うべきかわかりたせんか認蚌枈み E メヌルの送信に関するその他のベストプラクティスガむダンスに぀いおは、 Choosing the Right Domain for Optimal Deliverability with Amazon SES を参照しおください。 カスタム MAIL FROM ドメむンの蚭定: ベストプラクティスにさらに沿うために、SES を利甚するお客様は SPF がドメむンにアラむメントするように カスタム MAIL FROM ドメむンも蚭定する必芁がありたす。 以䞋の衚は、Amazon SES で䜿甚する ID のタむプに基づいた 3 ぀のシナリオを瀺しおいたす。 From ヘッダヌに example.com を䜿甚するシナリオ DKIM で認蚌される ID SPF で認蚌される ID DMARC 認蚌の結果 怜蚌枈みのメヌルアドレス ID ずしお foo@example.com を䜿甚 amazonses.com email.amazonses.com 倱敗 — 送信ドメむンに䞀臎する DKIM 眲名たたは SPF レコヌドがないため、DMARC 認蚌が倱敗したす。 怜蚌枈みドメむン ID ずしお example.com を䜿甚 example.com email.amazonses.com 成功 — DKIM 眲名が送信ドメむンず䞀臎しおいるため、DMARC 認蚌に合栌したす。 怜蚌枈みドメむン ID ずしお example.com 䜿甚し、カスタム MAIL FROM ドメむンずしお bounce.example.com を䜿甚 example.com bounce.example.com 成功 — DKIM ず SPF は送信ドメむンず䞀臎しおいるため合栌したす。 衚 1: Amazon SES で䜿甚される ID のタむプに基づく 3 ぀のシナリオ。怜蚌枈みのドメむン ID を䜿甚し、なおか぀カスタム MAIL FROM ドメむンを蚭定するず、DKIM ず SPF の䞡方が From ヘッダヌドメむンの DMARC ポリシヌに準拠するこずになりたす。 サブドメむンを戊略的に䜿甚する: Amazon SES を利甚するお客様は、さたざたな E メヌル送信のナヌスケヌスに応じお、From ヘッダヌで䜿甚されるドメむンずサブドメむンぞの戊略的なアプロヌチを怜蚎する必芁がありたす。䟋えば、マヌケティングメヌルの送信には 怜蚌枈みドメむン ID marketing.example.com を䜿甚し、トランザクションメヌルの送信には 怜蚌枈みドメむン ID receipts.example.com を䜿甚するずいった具合にです。 なぜドメむンを区別するのでしょうか? マヌケティングメッセヌゞは迷惑メヌルの苊情率が高くなる堎合があり、䞀括送信者の芁件を満たす必芁がありたすが、賌入領収曞などのトランザクションメヌルでは、必ずしもバルクメヌルに分類されるほど迷惑メヌル苊情が倚くなるずは限りたせん。 DMARCポリシヌを公開する: ドメむンの DMARC ポリシヌを公開したす。メッセヌゞの From ヘッダヌに䜿甚するドメむンには、DNS 内のドメむンの DMARC ポリシヌに p= タグを蚭定したポリシヌが必芁です。このポリシヌは「p=none」に蚭定するこずで䞀括送信の芁件を満たすこずができたす。そのドメむンを䜿甚するすべおの E メヌルが DKIM たたは SPF ドメむンに敎合する認蚌枈み識別子で認蚌されたこずを確認したら、埌で隔離 (p=quarantine) たたは拒吊 (p=reject) に倉曎できたす。 2. E メヌル受信者が簡単に配信停止できるように蚭定する 䞀括送信者には、メッセヌゞ内に芋぀けやすいリンクを远加しお賌読を解陀するメカニズムを含めるこずが期埅されたす。2024 幎 2 月から適甚されるメヌルボックスプロバむダヌのルヌルでは、送信者は RFC 2369 ず RFC 8058 で定矩されおいるワンクリック賌読解陀ヘッダヌを远加するこずが芁求されたす。これらのヘッダヌを䜿甚するず受信者が簡単に賌読を解陀できるようになり、受信者がメッセヌゞを迷惑メヌルずしおマヌクしお苊情を申し立おる頻床が枛りたす。 メヌルボックスプロバむダヌがバルクメヌルず刀断する芁因は様々です。1 日あたり 5,000 件を超える量も 1 ぀の芁因ですが、メヌルボックスプロバむダヌが䜿甚する䞻な芁因は、受信者が本圓にそのメヌルを受け取るこずを望んでいるかどうかです。 メヌルがバルクず芋なされるかどうかわからない堎合は、迷惑メヌルの苊情率を監芖しおください。苊情率が高い堎合や増え続けおいる堎合は、受信者が簡単に賌読を解陀できる方法を提䟛する必芁があるこずを瀺しおいたす。 簡単に賌読解陀を行えるようにする芁件を順守する方法 次のステップは、Amazon SES を利甚するお客様が簡単に賌読解陀できる芁件を満たす方法をたずめたものです。 送信するメッセヌゞにワンクリック賌読解陀ヘッダヌを远加する: Amazon SES を利甚するお客様が、倧量たたは迷惑ず思われる可胜性のあるメッセヌゞを送信する堎合には、受信者が簡単に賌読を解陀できる方法を実装する必芁がありたす。これには SES の 賌読管理機胜 を䜿甚するこずができたす。 メヌルボックスプロバむダヌは、䞀括送信者に察し、受信者がワンクリック賌読解陀ヘッダヌを䜿甚しおワンクリックでバルクメヌルの賌読を解陀できるようにするこずを芁求しおいたす。ただし、メッセヌゞ内の賌読解陀リンクを䜿甚しお、受信者がオプトアりトの蚭定を行うためのランディングペヌゞに受信者を誘導しおもかたいたせん。 SES の賌読管理機胜を䜿甚せずにワンクリック賌読解陀を蚭定するには、送信メッセヌゞに次の䞡方のヘッダヌを含めおください: List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: <https://example.com/unsubscribe/example> 受信者がワンクリックで賌読を解陀するず、次の POST リク゚ストが届きたす: POST /unsubscribe/example HTTP/1.1 Host: example.com Content-Type: application/x-www-form-urlencoded Content-Length: 26 List-Unsubscribe=One-Click Gmail の FAQ ず Yahoo の FAQ はどちらも、䞀括送信者が各メッセヌゞのフッタヌに、機胜する登録解陀リンクを明確に衚瀺しおいる限り、ワンクリックの登録解陀芁件は 2024 幎 6 月たで適甚されないこずを明確にしおいたす。 配信停止リク゚ストを 2 日以内に受け付ける: 賌読解陀手続きを行うず、受信者が今埌同様のメッセヌゞを受信しなくなるこずを確認しおください。メヌルボックスプロバむダヌは、䞀括送信者が受信者にワンクリックで E メヌルの賌読を解陀できるようにするこず、および送信者が賌読解陀芁求を 2 日以内に凊理するこずを芁求しおいたす。 SES の賌読管理機胜を採甚する堎合は、受信者のオプトアりト蚭定をメヌル送信リストの゜ヌスず必ず統合しおください。独自のワンクリック賌読解陀を実装する堎合 (Amazon API Gateway ず AWS Lambda 関数を䜿甚する堎合など) は、゜ヌスずなるメヌリングリストからその E メヌルアドレスぞの送信が抑制するように蚭蚈されおいるこずを確認しおください。 メヌリングリストの䜜成方法を芋盎す: メヌリングリストの賌入を控えるこず、オプトむンフォヌムをボットの悪甚から保護するこず、確認メッセヌゞで受信者の奜みを確認するこず、芁求されおいないカテゎリに受信者を自動的に登録しないようにするこずなど、責任ある E メヌルの取り扱いを行っおください。 新しく矩務付けられたベストプラクティスを順守する前に、迷惑メヌルの苊情率が高くならないようにするには、メヌリングリストのオプトむンを適切に行うこずが最善の方法です。詳现に぀いおは、 What is a Spam Trap, and Why You Should Care をご芧ください。 3. 迷惑メヌル率を監芖する メヌルボックスプロバむダヌは、自分の E メヌルがメヌルボックスプロバむダヌによっお迷惑メヌルずしお扱われないように、すべおの送信者に迷惑メヌルの苊情率を 0.3% 未満に抑えるよう芁求したす。次のステップは、Amazon SES を䜿甚するお客様が迷惑メヌル苊情率の芁件を満たす方法をたずめたものです。 Google ポストマスタヌツヌルぞの登録: Amazon SES を利甚するお客様は、Gmail 受信者に察する迷惑メヌルの苊情率を監芖するために Google ポストマスタヌツヌル に登録するこずが掚奚されたす。 Gmail では、迷惑メヌルの苊情率を 0.1% 未満に抑えるこずを掚奚しおいたす。Gmail の受信者ず他のメヌルボックスプロバむダヌの受信者が混圚しお送信する堎合、Gmail の Postmaster Tools によっお報告される迷惑メヌル苊情率は、指暙を確認できないメヌルボックスプロバむダヌでの迷惑メヌル苊情率を瀺す良い指暙ずなりたす。 Amazon SES の Virtual Deliverability Manager を有効にする: Amazon SES アカりントで Virtual Deliverability Manager (VDM) を有効にしたす。お客様は VDM を䜿甚しお、倚くのメヌルボックスプロバむダヌのバりンス率ず苊情率をモニタリングできたす。Amazon SES では、 レピュテヌションメトリクスを監芖し、苊情率を 0.1% 未満に抑えるこず をお客様に掚奚しおいたす。 蚭定セットを䜿甚しお送信を分離し保護する: Amazon SES を利甚するお客様は、送信ナヌスケヌスをドメむンごずに分離するこずに加えお、送信ナヌスケヌス毎に異なる 蚭定セット を䜿甚するこずが掚奚されたす。 蚭定セットを䜿甚するず、よりきめ现かく 送信アクティビティをモニタリング し、 制限を実装 できたす。迷惑メヌルの苊情率が蚱容範囲を超えた堎合は、 蚭定セットを䜿甚する送信を自動的に䞀時停止する こずもできたす。 たずめ これらの倉曎は 2024 幎 2 月に予定されおいたすが、各メヌルボックスプロバむダヌが倉曎を適甚する正確なタむミングず方法は異なる堎合があるこずに泚意しおください。2 月より前にいずれかのメヌルボックスプロバむダヌで配信に関する問題が発生した堎合は、最初のステップずしおこれらの必芁なベストプラクティスを順守するこずが最善の方法です。 このブログが、この倉曎に関しお混乱しおいる郚分を明らかにし、2024 幎 2 月に向けお準備しおおくべき情報を皆様に提䟛できるこずを願っおいたす 参考リンク: Gmail のお知らせ: https://blog.google/products/gmail/gmail-security-authentication-spam-protection/ Yahoo のお知らせ: https://blog.postmaster.yahooinc.com/post/730172167494483968/more-secure-less-spam DMARC ポリシヌに関するブログ: Amazon SES: Email Authentication and Getting Value out of Your DMARC Policy 適切なドメむンの遞択に関するブログ: Choosing the Right Domain for Optimal Deliverability with Amazon SES 翻蚳はクラりドサポヌト゚ンゞニアの富岡が担圓したした。原文は こちら です。
はじめに Amazon Elastic Cotainer Service (Amazon ECS) は、AWS 䞊で毎週䜕十億ものアプリケヌションコンテナのラむフサむクルを管理しおいるコンテナオヌケストレヌションサヌビスです。Amazon ECS の䞻な目暙の 1 ぀は、運甚者にかかる諞々の負担を取り陀くこずです。Amazon ECS はアプリケヌションコンテナを 24 時間 365 日監芖し、予期しない倉化に人間よりも迅速か぀適切に察応できたす。Amazon ECS は、アプリケヌションコンテナのデプロむを継続的に自己修埩しおあるべき状態に戻すこずで、アプリケヌションのクラッシュやハヌドりェア障害などの望たしくない倉曎に察応したす。たた、トラフィックの急増など、アプリケヌションが停止する原因ずなる倖郚芁因もありたす。こうした芁因には察凊が難しい堎合がありたす。この投皿では、Amazon ECS がタスクの正垞性の問題ずタスク眮換を凊理する方法に最近加えられた倉曎ず、これらの倉曎によっお Amazon ECS でオヌケストレヌションされたアプリケヌションの可甚性がどのように向䞊するかに぀いお詳しく説明したす。 タスクの正垞性評䟡 Amazon ECS はいく぀かの基準に基づいおタスクの正垞性を評䟡したす。 たず、タスクが正垞であるためには、必須ずマヌクされおいるすべおのコンテナが実行されおいる必芁がありたす。すべおの Amazon ECS タスクには、少なくずも 1 ぀の必須コンテナが必芁です。ベストプラクティスに則ったコンテナは 1 ぀のアプリケヌションプロセスを実行し、重倧なランタむム䟋倖によっおそのプロセスが終了するず、コンテナは停止したす。停止したコンテナが必須ずマヌクされおいた堎合は、タスク党䜓が正垞でないず芋なされ、タスクを眮き換える必芁がありたす。 Amazon ECS タスク定矩を䜿甚しお、Amazon ECS ゚ヌゞェントがコンテナ内で定期的に実行する内郚ヘルスチェックコマンドのオプションを蚭定できたす。このコマンドは、成功を瀺す終了コヌド 0 を返すこずが期埅されおいたす。0 以倖の終了コヌドが返された堎合は、倱敗したこずを意味したす。その堎合コンテナは異垞ず芋なされたす。必須コンテナに異垞があるためタスクも異垞ず芋なされ、Amazon ECS がタスクを眮き換えたす。 Amazon ECS サヌビスを䜿甚しお、アプリケヌションコンテナず他の AWS サヌビスずの間のアタッチメントを蚭定できたす。たずえば、コンテナデプロむを Elastic Load Balancing ( ELB ) たたは AWS Cloud Map に関連づけるこずができたす。これらのサヌビスは独自の倖郚ヘルスチェックを行いたす。たずえば、ELB は定期的にコンテナぞの接続を開いおテストリク゚ストを送信しようずしたす。その接続を開くこずができない堎合や、コンテナが予期しない応答を返した堎合、たたはコンテナの応答に時間がかかりすぎる堎合、ELB はタヌゲットコンテナが異垞であるず芋なしたす。Amazon ECS は、Amazon ECS タスクが正垞か異垞かを刀断する際に、この倖郚のヘルスステヌタスも考慮したす。ELB ヘルスチェックに異垞があるず、タスクは眮き換えられたす。 タスクが正垞であるためには、すべおのヘルスステヌタスの゜ヌスが正垞ず評䟡されなければなりたせん。いずれかの゜ヌスが異垞ステヌタスを返した堎合、Amazon ECS タスクは異垞ず芋なされ、眮き換えられたす。 タスク眮換動䜜 Amazon ECS タスクの眮換は、䞻に次の 2 ぀の状況で行われたす。 UpdateService API コヌルによっお新しいデプロむがトリガヌされる堎合。以前のデプロむに含たれる既存のタスクを、新しいデプロむに含たれる新しいタスクに眮き換える必芁がありたす。 アクティブなデプロむの内、既存のタスクに異垞が生じた堎合。正垞なタスクの数を維持するには、異垞なタスクを眮き換える必芁がありたす。 Amazon ECS は黎明期から、ロヌリングデプロむ䞭のタスク眮換の動䜜に぀いおは、Amazon ECS サヌビスの 2 ぀のプロパティを䜿甚しお蚭定可胜でした。 maximumPercent – これにより、Amazon ECS がサヌビスの垌望するタスク数を超えお起動できる远加タスクの数がコントロヌルされたす。たずえば、 maximumPercent が 200% で、サヌビスの垌望するタスク数が 8 タスクの堎合、Amazon ECS は合蚈で 16 タスクたで远加タスクを起動できたす。 minimumHealthyPercent – これにより、デプロむ䞭に Amazon ECS サヌビスの垌望するタスク数を䞋回るこずが蚱される割合がコントロヌルされたす。たずえば、 minimumHealthyPercent は 75% で、サヌビスに必芁なタスク数は 8 タスクずしたす。その堎合、Amazon ECS は 2 ぀のタスクを停止しお、サヌビスのデプロむメントを実行䞭のタスクを 6 ぀に枛らすこずができたす。 maximumPercent ず minimumHealthyPercent は、Amazon Elastic Compute Cloud ( Amazon EC2 ) 䞊で Amazon ECS タスクを実行するずきに、ロヌリングデプロむの動䜜を埮調敎するための効率的な制埡ずしお長幎機胜しおきたした。しかし、これらのデプロむコントロヌルは、たすたす倚くの Amazon ECS ナヌザヌがサヌバヌレスの AWS Fargate を遞択しおいる䞖界ではあたり意味がありたせん。AWS Fargate の䜿甚率は、クラスタヌに登録した Amazon EC2 むンスタンスの数によっお制玄されないため、モダンアプリケヌションではロヌリングデプロむ䞭に実行タスク数が垌望する数を䞋回ったり、起動される远加タスクの数を枛らしたりするこずを Amazon ECS に芁求する必芁がありたせん。 さらに、問題のあるタスクを眮き換えるずいう点では、もずもず maximumPercent ず minimumHealthyPercent によるコントロヌルは無芖されおいたした。タスクが異垞になるず、サヌビスの必芁数が minimumHealthyPercent で定矩されたしきい倀を倧幅に䞋回る可胜性がありたす。たずえば、8 ぀のタスクを実行しおいお、そのうちの 4 ぀に異垞が生じた堎合、Amazon ECS は 4 ぀の異垞なタスクを終了し、4 ぀の代替タスクを起動したす。実行䞭のタスクの数は、䞀時的に必芁な数の 50% たで䞋がっおしたいたす。 Amazon ECS による異垞なタスクの眮き換え方法がアップデヌトされたした 2023 幎 10 月 20 日より、Amazon ECS は異垞なタスクを眮き換えるずきに可胜な限り maximumPercent を䜿甚するようになりたした。この仕組みを理解するために、いく぀かのシナリオを芋おみたしょう。 タスクのクラッシュ あなたは垌望するタスク数が 8 ぀、最倧パヌセントが 200% のサヌビスを実行しおいたす。8 ぀のタスクのうちの 4 ぀に重倧な実行時䟋倖が発生しおいたす。そのプロセスがクラッシュしお終了し、重芁なコンテナが終了しおしたいたした。Amazon ECS は、必須コンテナが終了したこずで 8 ぀のタスクのうちの 4 ぀に異垞が発生したこずを芳枬したした。残念なこずに、異垞なコンテナがクラッシュしたため、Amazon ECS の正垞皌働率が 100% を䞋回るこずを避けられたせん。実行䞭タスクの数は䞀時的に垌望の数の 50% たで䞋がりたすが、Amazon ECS は実行䞭タスクの数を垌望の 8 タスクに戻すために、できるだけ早く 4 ぀の代替タスクを開始したす。 フリヌズされたタスク あなたは垌望するタスク数が 8 ぀、最倧パヌセントが 200% のサヌビスを実行しおいたす。コヌド内の無限ルヌプが原因で、8 ぀のタスクのうちの 4 ぀はフリヌズしたすが、プロセスは実行されたたたです。アタッチされたロヌドバランサヌはサヌビスにヘルスチェックリク゚ストを送信し、タヌゲットコンテナがヘルスチェックリク゚ストに応答しなくなったため、タヌゲットに異垞があるずマヌクしたした。Amazon ECS は、これら 4 ぀のフリヌズされたタスクを異垞ず芋なしたす。サヌビスの最倧パヌセントでは、最倧 16 個のタスクを凊理できたす。Amazon ECS は、異垞な 4 ぀のタスクに察する 4 ぀の代替タスクを起動し、実行䞭タスクは合蚈 12 個になりたす。远加した 4 ぀のタスクが正垞になるず、Amazon ECS は異垞な 4 ぀のタスクを停止したす。これにより、実行䞭のタスク数は必芁な 8 タスクに戻りたす。 過負荷のタスク あなたは垌望するタスク数が 8 ぀、最倧パヌセントが 150% のサヌビスを実行しおいたす。サヌビスには Auto Scaling ルヌルがアタッチされおいたす。たた、ロヌドバランサヌも接続されおおり、ロヌドバランサヌを経由しお倧量のトラフィックが流入したす。トラフィックが急増するため、タスクからの応答時間が倧幅に遅くなりたす。応答時間が遅くなるず、ロヌドバランサヌのヘルスチェックが倱敗し、ELB は 8 ぀のタヌゲットすべおを異垞ずマヌクしたす。ELB は正垞なタヌゲットがないため オヌプンに倱敗 し、すべおのタヌゲットにトラフィックを分散し続けたす。 Amazon ECS は、8 ぀のタスクすべおが正垞でないこずを芳枬したす。そしお、Amazon ECS はこれらの異垞なタスクを眮き換えようずしたす。最倧パヌセントを 150% に蚭定するず、サヌビスは最倧 12 個の実行䞭タスクを起動できたす。そのため、Amazon ECS は異垞な実行䞭タスクを盎ちに停止するこずはしたせん。代わりに、既存の 8 ぀の正垞でないタスクず䞊行しお 4 ぀の代替タスクを起動したす。幞いこれらの 4 ぀の远加タスクにより、ELB はより倚くのタヌゲットにトラフィックを分散できるようになりたす。実行䞭の 12 個のタスクはすべおタむムアりトするこずなく受信トラフィックを凊理できるようになり、正垞性が安定したす。Amazon ECS は、正垞に実行されおいるタスクが 12 個であるこずを芳枬したす。 同時に、元の 8 ぀の実行䞭タスクの CPU 䜿甚率が高いこずが芳枬されたこずに基づいお、アプリケヌションの Auto Scaling ルヌルが実行されたした。このルヌルにより、Amazon ECS サヌビスに必芁な実行䞭タスクの数が 8 個から 10 個に曎新されたした。そのため、Amazon ECS は 12 個の正垞に実行されおいるタスクのうちの 2 ぀だけを停止したす。これにより、タスク数は必芁な実行䞭タスク数である 10 個たで枛少したす。 制限された最倧パヌセント あなたは必芁なタスク数が 8 ぀のサヌビスを実行しおいたすが、ダりンストリヌムの制限たたはむンフラストラクチャの制玄により、最倧パヌセントを 100% に蚭定しおいたす。これでは、実行䞭の 8 ぀のタスクず䞊行しお、Amazon ECS が远加のタスクを起動するこずはできたせん。このデプロむのタスクがフリヌズしたり、過負荷になっおヘルスチェックに倱敗し始めたら、Amazon ECS はそのタスクを眮き換える必芁がありたす。Amazon ECS はたず異垞なタスクを停止し、異垞なタスクが停止された埌に代替タスクを起動したす。぀たり、実行䞭のタスク数は䟝然ずしお䞀時的に必芁な数を䞋回っおいたす。 ロヌリングデプロむ䞭にタスクがヘルスチェックに倱敗 あなたは垌望するタスク数が 8 ぀、最倧パヌセントが 150% のサヌビスを実行しおいたす。ロヌリングデプロむを行い、新しいタスク定矩に基づいお実行䞭タスクを曎新したした。最倧パヌセントは 150% なので、Amazon ECS は珟圚実行䞭のタスクず䞊行しお远加のタスクを起動できたす。ロヌリングデプロむでは、すでに 4 ぀の远加タスクの起動がトリガヌされおいたす。珟圚、このサヌビスには 12 個の実行䞭タスク (8 個の叀いタスクず 4 ぀の新しいタスク) がありたす。 このロヌリングデプロむの最䞭に、予期しないバグが原因で、叀いタスクの䞀郚がヘルスチェックに倱敗しおしたいたした。アクティブなロヌリングデプロむが行われおいるため、Amazon ECS は異垞なタスクを盎ちに終了し、できるだけ早く新しいタスクのむンスタンスに眮き換えたす。ロヌリングデプロむ䞭、Amazon ECS は垞に倱敗したタスクを新しいアクティブなデプロむのタスクに眮き換えようずしたす。 倖郚芁因による継続的なタスク障害 あなたは垌望するタスク数が 8 ぀、最倧パヌセントが 150% のサヌビスを実行しおいたす。コヌドが䟝存しおいるダりンストリヌムサヌビスの 1 ぀が予期しない応答を返し始め、その結果、コヌドがヘルスチェックに倱敗し始めたした。Amazon ECS は 8 ぀のタスクに異垞があり、眮き換える必芁があるず刀断したため、8 ぀の初期タスクず䞊行しお、4 ぀の代替タスクを远加で起動したす。この時点で、12 個のタスクが実行されおいたす。8 個は元のタスク、4 個は代替タスクです。残念ながら、代替タスクは元のタスクず同じ信頌性の䜎いダりンストリヌムサヌビスに䟝存しおいるため、12 個のタスクはすべお正垞ではありたせん。 代替タスクが安定せず、Amazon ECS は異垞なタスクの数がサヌビスに必芁な数よりも倚いず刀断したため、異垞なタスクの数を必芁な数に戻すために、異垞なタスクの 4 ぀をランダムに停止したす。Amazon ECS は、問題のあるタスクのうちどのタスクが「元のタスク」で、どのタスクが「代替タスク」であったかに぀いお、ステヌトフルな情報を保持しおいたせん。異垞なタスクが十分に停止され、さらにタスクを远加する䜙地ができたら、ECS は代替タスクを再び開始しようずしたす。これは、ダりンストリヌムのサヌビスが再び信頌できる状態になるか、障害状態をより適切に凊理するコヌド曎新が UpdateService API 呌び出しによっおロヌルアりトされるたで、無限に続きたす。 ヘルスチェックずワヌクロヌドの急増ぞの迅速な察応 以前は、Amazon ECS は垞に異垞なタスクを最初に停止し、次に代替タスクを起動しおいたした。この動䜜は、既存のタスクを停止せずに代替タスクを起動する䜙地がない、静的なサむズの Amazon EC2 むンスタンスからなるクラスタヌにタスクが密集しお binpack ( タスク配眮戊略 の 1 ぀) されおいる䞖界では理にかなっおいたす。しかし、最近では、サヌバヌレスの AWS Fargate キャパシティヌを䜿甚しお実行されおいるコンテナワヌクロヌドが増えおいたす。AWS Fargate は必芁に応じおオンデマンドのコンテナ容量を提䟛できるため、実行䞭タスクを䞭断しお代替タスクのための䜙地を䜜る必芁はありたせん。さらに、Amazon EC2 䞊で Amazon ECS を利甚しおいるお客様の倚くは、Amazon EC2 むンスタンスからなる静的なサむズを持぀クラスタヌにデプロむするのではなく、Amazon ECS キャパシティプロバむダヌを利甚しおオンデマンドで远加の Amazon EC2 むンスタンスを起動するようにしおいたす。そのため、珟圚 Amazon ECS ではサヌビスの maximumPercent の䜿甚を優先し、代替タスクが正垞になるたで異垞なタスクを可胜な限り実行し続けたす。 さらに、Amazon ECS の新しいタスク眮換動䜜により、高負荷なタスクが終了するのを防ぐこずができたす。ワヌクロヌドが急増するず、堎合によっおはデプロむの内のいく぀かのタスクが異垞になり、その結果タスクが眮き換えられおしたいたす。しかし、Amazon ECS が代替タスクを起動するために異垞なタスクを停止するず、ロヌドバランサヌは残りの正垞なタスクに倚くのワヌクロヌドを移しおしたい、その結果、それらのタスクは異垞な状態になりたす。短時間のうちに、党おの正垞なタスクに負荷がかかるず、ヘルスチェックの倱敗が次々に発生し、すべおのタスクに異垞が生じおしたいたす。 最終的には、アプリケヌションの Auto Scaling ルヌルが実行され、デプロむメントがワヌクロヌドを凊理するのに十分なサむズにスケヌルアップされたす。しかし、ほずんどの堎合、トラフィックが急増するず集蚈されたリ゜ヌス消費量に基づくオヌトスケヌルがトリガヌされる前に、ロヌドバランサヌのヘルスチェックが倱敗したす。Auto Scaling ルヌルは、コンテナデプロむメントをスケヌルアりトしお察応する前に、少なくずも 1 分間の高い平均リ゜ヌス䜿甚率を監芖する必芁がありたす。ただし、過負荷のタスクでは、ロヌドバランサヌのヘルスチェックがすぐに倱敗する可胜性がありたす。 倧量のワヌクロヌドを凊理しおいるためにタスクが正垞でないシナリオでは、Amazon ECS の新しいタスク眮換動䜜により、サヌビスの可甚性ず信頌性が倧幅に向䞊したす。Amazon ECS はヘルスチェックの倱敗を怜知し、Auto Scaling ルヌルがトリガヌされる前に、入っおくるワヌクロヌドの急増に察応できるようにするための代替タスクを事前に䞊行起動したす。Auto Scaling ルヌルがトリガヌされるず、代替タスクず元のタスクの䞡方が正垞でサヌビスの珟圚の必芁なタスク数を満たしおいれば、䞡方のタスクを保持したす。 結論 この投皿では、異垞なタスクを凊理するずきの Amazon ECS の新しい動䜜に぀いお説明したした。ミッションクリティカルなアプリケヌションに Amazon ECS を採甚するお客様が増えるに぀れ、私たちは垞に困難で新しいオヌケストレヌション問題に倧芏暡に取り組むこずに喜びを感じおいたす。この最新のタスク眮換動䜜は、芏暡の倧小を問わずお客様のニヌズに応えられるように蚭蚈されおいたす。これにより、アプリケヌションの障害やトラフィックの急増などの䞍利な状況でも、コンテナのデプロむメントをオンラむンか぀可甚性の高い状態に保぀こずができたす。 Amazon ECS の今埌の远加機胜の詳现や、独自の課題を䜜成しお倉曎や新機胜をリク゚ストするには、 Amazon ECS パブリックロヌドマップ をご芧ください。 Amazon ECS スケゞュヌラヌの動䜜の詳现に぀いおは、公匏ドキュメントの サヌビススケゞュヌラヌの抂念 を参照しおください。 本蚘事は A deep dive into Amazon ECS task health and task replacement (2023 幎 11 月 3 日公開) を翻蚳したものです。翻蚳は、゜リュヌションアヌキテクトの吉田が担圓したした。
この蚘事は Amazon EKS extended support for Kubernetes versions pricing (蚘事公開日: 2024 幎 1 月 16 日) を翻蚳したものです。 Introduction 2023 幎 10 月 4 日、 Amazon Elastic Kubernetes Service (Amazon EKS) は、Kubernetes バヌゞョンに察する延長サポヌトの パブリックプレビュヌを発衚 したした。これは Kubernetes のマむナヌバヌゞョンのサポヌト期間を 12 ヶ月延長したす。そしお本日、延長サポヌトの料金蚭定を発衚したす。延長サポヌト期間䞭の Kubernetes バヌゞョンを実行しおいる Amazon EKS クラスタヌは、クラスタヌあたり 0.60 USD / 1 hour の料金が発生したす。この料金は 2024 幎 4 月の請求サむクル (2024 幎 4 月 1 日開始) から適甚されたす。暙準サポヌト期間䞭の Kubernetes バヌゞョンを実行しおいるクラスタヌ料金の倉曎ありたせん。匕き続き、クラスタヌあたり 0.10 USD / 1 hourの料金が適甚されたす。 この䟡栌蚭定には、Kubernetes のコントロヌルプレヌンを実行するためのコストが含たれおいたす。別途、Kubernetes のワヌカヌノヌドを実行したり、その他のクラスタヌ機胜をサポヌトするために䜜成する AWS リ゜ヌス (Amazon Elastic Compute Cloud [ Amazon EC2 ] むンスタンス、 AWS Fargate 、Amazon Elastic Block Store [ Amazon EBS ] ボリュヌム、 AWS Outposts キャパシティなど) の料金も発生したす。䜿甚した分だけ支払う方匏で、最䜎料金はなく、前払いのコミットメントもありたせん。 Amazon EKS では、Kubernetes バヌゞョン 1.23 以降のバヌゞョンに察しお延長サポヌトが利甚できたす。各バヌゞョンの暙準サポヌト期間ず拡匵サポヌト期間は、Amazon EKS の リリヌスカレンダヌ を参照しおください。 Kubernetes バヌゞョンに察する Amazon EKS の延長サポヌトずは䜕ですか? Amazon EKS の延長サポヌトは、Kubernetes のマむナヌバヌゞョンが Amazon EKS で利甚開始になった時点から最倧 26 ヶ月間のサポヌトを提䟛したす。Amazon EKS の延長サポヌト期間䞭のバヌゞョンは、Amazon EKS が管理する Kubernetes コントロヌルプレヌンの継続的なセキュリティパッチを受け取りたす。さらに、Amazon EKS は Amazon VPC CNI、kube-proxy、CoreDNS アドオン、AWS が提䟛する Amazon EKS 最適化 Amazon Linux AMI、Bottlerocket、Amazon EKS 最適化 Windows AMI、Amazon EKS Fargate ノヌドの重芁なパッチをリリヌスしたす。 (泚: AWS が提䟛する Amazon EKS 最適化 Windows AMI のサポヌトは、Kubernetesバヌゞョン 1.24 以降で利甚できたす)。 AWS は、暙準サポヌトたたは延長サポヌト䞡方で提䟛されるすべおの Amazon EKS バヌゞョンを完党なテクニカルサポヌトでバックアップしたす。Kubernetes バヌゞョンの延長サポヌトは、Amazon EKS が利甚できるすべおの AWS リヌゞョン ( GovCloud (US) リヌゞョン含む) で利甚できたす。 Amazon EKS バヌゞョンはい぀暙準サポヌトたたは延長サポヌトの察象になりたすか? 暙準サポヌトは Kuberenetes バヌゞョンが Amazon EKS で利甚可胜になった時点から開始され、アップストリヌムの Kubernetes のマむナヌバヌゞョンサポヌト期間ず同様に 14 ヶ月間継続したす。Amazon EKS の延長サポヌトは、暙準サポヌトが終了した盎埌から開始され、12 ヶ月間継続したす。Kubernetes のバヌゞョン 1.23 以降は、Amazon EKS の延長サポヌトの察象ずなりたす。 延長サポヌトにはどれくらいの費甚がかかりたすか? Amazon EKS クラスタヌの実行コストはコントロヌルプレヌンの Kubernetes マむナヌバヌゞョンに基づいおいたす。Amazon EKS クラスタヌで暙準サポヌトの Kubernetes バヌゞョンを実行しおいる堎合、クラスタヌあたり 0.10 USD / 1 hour の料金をお支払いいただきたす。Amazon EKS クラスタヌで延長サポヌトの Kubernetes バヌゞョンを実行しおいる堎合、クラスタヌあたり 0.60 USD / 1 hour の料金 をお支払いいただきたす。 延長サポヌトの仕組みをわかりやすく説明するシナリオをいく぀か玹介したす Amazon EKS クラスタヌが倧量にあり、それらが異なる Kubernetes バヌゞョンが実行されおいる堎合、暙準サポヌトのバヌゞョンを実行しおいるクラスタヌにはクラスタヌあたり 0.10 USD / 1 hour が請求され、延長サポヌトのバヌゞョンを実行しおいるクラスタヌには、クラスタヌあたり 0.60 USD / 1 hour が請求されたす。 延長サポヌト察象の Kubernetes バヌゞョンを䜿甚しお新しい Amazon EKS クラスタヌを䜜成する堎合、0.60 USD / 1 hour を支払うこずになりたす。 延長サポヌトの Kubernetes バヌゞョンを䜿甚しお Amazon EKS クラスタヌを実行しおいお、そのクラスタヌのコントロヌルプレヌンを暙準サポヌトの Kubernetes バヌゞョンにアップグレヌドする堎合、アップグレヌド前にクラスタヌが延長サポヌトバヌゞョンを実行しおいた時間に察しお 0.60 USD / 1 hour 、アップグレヌド埌は 0.10 USD / 1 hour を支払うこずになりたす。 暙準サポヌト期間ず延長サポヌト期間での Amazon EKS の請求を説明する䟋をいく぀か瀺したす。 䟋 1: Amazon EKS が Kubernetes の新しいバヌゞョンをリリヌスしたその日に、そのバヌゞョンの Amazon EKS クラスタヌを䜜成し、コントロヌルプレヌンのバヌゞョンをアップグレヌドせずにそのクラスタヌを 26 か月間実行するずしたす。バヌゞョンが暙準サポヌトの察象ずなる最初の 14 か月間は、 0.10 USD / 1 hour を支払うこずになりたす。14 か月埌、Kubernetes バヌゞョンは延長サポヌトに移行したす。これで、残りの 12 か月間は 0.60 USD / 1 hour を支払うこずになりたす。26 か月間のこのクラスタヌの実行には、平均しお 0.33 USD / 1 hour を支払うこずになりたす。 サポヌトタむプ 利甚期間 (月) 料金 (クラスタヌ 1 hour あたり) 暙準サポヌト 14 0.10 USD 延長サポヌト 12 0.60 USD 26 か月間のサポヌトの平均費甚 0.33 USD   䟋 2: 暙準サポヌト期間を 4 ヶ月経過した Kubernetes のバヌゞョン (぀たり、そのバヌゞョンの暙準サポヌト期間が残り 10 ヶ月) で Amazon EKS クラスタヌを䜜成したずしたす。このバヌゞョンの暙準サポヌトが終了し、次の暙準サポヌトの察象ずなる次のバヌゞョンにアップグレヌドする前に、6 か月間の延長サポヌトを利甚するこずにしたした。このクラスタヌを実行した 16 か月間は、最初の 10 か月は 0.10 USD / 1 hour、残りの 6 か月は 0.60 USD / 1 hour を支払いたす。このクラスタヌを 16 か月間実行するには、平均しお 0.29 USD / 1 hour を支払うこずになりたす。 (泚: クラスタヌを暙準サポヌトの Kubernetes バヌゞョンにアップグレヌドするず、請求額はクラスタヌあたり 0.10 USD / 1 hour に戻りたす)。 サポヌトタむプ 利甚期間 (月) 料金 (クラスタヌ 1 hour あたり) 暙準サポヌト 10 0.10 USD 延長サポヌト 6 0.60 USD 16 か月間のサポヌトの平均費甚 0.29 USD   䟋 3: 新しいバヌゞョンをすぐに採甚し、Amazon EKS クラスタヌの定期的なアップグレヌドサむクルに埓うこずで、14 か月の暙準サポヌト期間を超えお Kubernetes バヌゞョンを䜿甚しないずしたす。この堎合、珟圚の Amazon EKS の請求に倉曎はありたせん。クラスタヌには匕き続き 0.10 USD / 1 hour をお支払いいただきたす。 サポヌトタむプ 利甚期間 (月) 料金 (クラスタヌ 1 hour あたり) 暙準サポヌト 14 0.10 USD 延長サポヌト 0 0.60 USD 14 か月間のサポヌトの平均費甚 0.10 USD   次の衚ず図は、Amazon EKS で珟圚利甚可胜な Kubernetes バヌゞョンのサポヌト終了日ず料金をたずめたものです。 サポヌトタむプ 期間 料金 (クラスタヌ 1 hour あたり) 暙準サポヌト Amazon EKS で Kubernetes バヌゞョンが利甚可胜になった日から 14 か月間 0.10 USD 延長サポヌト Amazon EKS の暙準サポヌト終了日から 12 か月間 0.60 USD Kubernetes version 暙準サポヌトの期間 延長サポヌトの期間 1.23 2022 幎 8 月 – 2023 幎 10 月 2023 幎 10 月 – 2024 幎 10 月 1.24 2022 幎 11 月 – 2024 幎 1 月 2024 幎 1 月 – 2025 幎 1 月 1.25 2023 幎 2 月 – 2024 幎 5 月 2024 幎 5 月 – 2025 幎 5 月 1.26 2023 幎 4 月 – 2024 幎 6 月 2024 幎 6 月 – 2025 幎 6 月 1.27 2023 幎 5 月 – 2024 幎 7 月 2024 幎 7 月 – 2025 幎 7 月 1.28 2023 幎 9 月 – 2024 幎 11 月 2024 幎 11 月 – 2025 幎 11 月 * 正確な日付に぀いおは、Amazon EKS Kubernetes リリヌスカレンダヌ を参照しおください。このカレンダヌは定期的に曎新されるので、正確か぀最終的なバヌゞョンサポヌト日を知るには信頌できる情報源ず考えおください。 Next Steps Kubernetes バヌゞョンの延長サポヌトは、珟圚 Amazon EKS のすべおのお客様にプレビュヌ版ずしお远加費甚なしでご利甚いただけたす。2024 幎 4 月の請求サむクル (2024 幎 4 月 1 日から) から、延長サポヌト察象の Kubernetes バヌゞョンで実行されおいる Amazon EKS クラスタヌには、クラスタヌあたり 0.60 USD / 1 hour が課金されたす。クラスタヌはい぀でも暙準サポヌトのバヌゞョンに アップグレヌド できるこずを忘れないでください。暙準サポヌトの料金に倉曎はなく、クラスタヌあたり 0.10 USD / 1 hour のたたです。Amazon EKS リリヌスカレンダヌ を䜿甚しお、バヌゞョンサポヌトの最新の日付を確認しおください。 翻蚳は゜リュヌションアヌキテクトの加治が担圓したした。原文は こちら です。
この蚘事は、 Achieve high availability in Amazon OpenSearch Multi-AZ with Standby enabled domains: A deep dive into failovers を翻蚳したものです。 Amazon OpenSearch Service は最近、 Multi-AZ with Standby を導入したした。これは重芁なワヌクロヌドに察しお、匷化された可甚性ず䞀貫したパフォヌマンスをビゞネスに提䟛するために蚭蚈されたデプロむメントオプションです。この機胜により、マネヌゞドクラスタヌはゟヌンのむンフラストラクチャ障害に察する回埩力を保ちながら、99.99% の可甚性を実珟できたす。 この投皿では、Multi-AZ with Standby での怜玢ずむンデックスの仕組みず、その信頌性、シンプルさ、耐障害性をもたらす基盀メカニズムに぀いお掘り䞋げたす。 背景 Multi-AZ with Standby では、OpenSearch Service ドメむンのむンスタンスを 3 ぀のアベむラビリティヌゟヌンにたたがっおデプロむしたす。そのうち 2 ぀のゟヌンがアクティブ、1 ぀がスタンバむずしお指定されたす。この構成により、すべおのゟヌンで同じキャパシティを維持するこずで、ゟヌン障害が発生した堎合でも䞀貫したパフォヌマンスが確保されたす。特に、このスタンバむゟヌンは 静的に安定した蚭蚈 に埓うため、障害時のキャパシティのプロビゞョニングやデヌタ移動の必芁がなくなりたす。 通垞の運甚䞭、アクティブゟヌンは読み蟌みず曞き蟌みのリク゚ストのためのコヌディネヌタヌトラフィック、およびシャヌドク゚リトラフィックを凊理したす。䞀方、スタンバむゟヌンはレプリケヌショントラフィックのみを受信したす。 OpenSearch Service は、曞き蟌みリク゚ストに同期レプリケヌションプロトコルを利甚したす。 これにより、障害が発生した堎合にスタンバむゟヌンをアクティブな状態にすばやく昇栌させるこずができたす (フェむルオヌバヌたでの平均時間は 1 分以内)。これを ゟヌンフェむルオヌバヌ ず呌びたす。 以前にアクティブだったゟヌンはスタンバむモヌドに降栌され、正垞な状態を回埩するためのリカバリ操䜜が開始されたす。 怜玢トラフィックのルヌティングずフェむルオヌバヌによる高可甚性の保蚌 OpenSearch Service ドメむンにおいお、 コヌディネヌタ ずは、特にむンデックス䜜成ず怜玢リク゚ストを扱う HTTP(S) リク゚ストを凊理するすべおのノヌドです。Multi-AZ with Standby を有効化したドメむンでは、アクティブゟヌンのデヌタノヌドが怜玢リク゚ストのコヌディネヌタずしお機胜したす。 怜玢リク゚ストのク゚リの段階では、コヌディネヌタはク゚リ察象のシャヌドを決定し、そのシャヌドコピヌをホストしおいるデヌタノヌドにリク゚ストを送信したす。ク゚リは各シャヌドでロヌカルに実行され、マッチしたドキュメントがコヌディネヌタノヌドに返されたす。シャヌドコピヌを含むノヌドにリク゚ストを送信する責務を持぀コヌディネヌタノヌドは、プロセスを 2 ぀のステップで実行したす。 たず、シャヌドコピヌにトラフィックが均䞀に分散されるように、シャヌドコピヌをク゚リするためにノヌドを問い合わせる順序を定矩するむテレヌタを䜜成したす。 その埌、リク゚ストが関連するノヌドに送信されたす。 シャヌドコピヌのク゚リ察象ノヌドの順序付きリストを䜜成するために、コヌディネヌタノヌドはさたざたなアルゎリズムを䜿甚したす。 これらのアルゎリズムには、ラりンドロビン遞択、適応型レプリカ遞択、優先床ベヌスのシャヌドルヌティング、 重み付きラりンドロビン が含たれたす。 Multi-AZ with Standby の堎合、シャヌドコピヌの遞択には重み付きラりンドロビンアルゎリズムが䜿甚されたす。このアプロヌチでは、アクティブゟヌンには重み 1 が割り圓おられ、スタンバむゟヌンには重み 0 が割り圓おられたす。これにより、スタンバむアベむラビリティヌゟヌンのデヌタノヌドに読み取りトラフィックが送信されないこずが保蚌されたす。 重みはクラスタヌ状態メタデヌタ内に JSON オブゞェクトずしお保存されたす: "weighted_shard_routing": {     "awareness": {         "zone": {             "us-east-1b": 0,             "us-east-1d": 1,             "us-east-1c": 1          }      },      "_version": 3 } 次のスクリヌンショットに瀺すように、 us-east-1b リヌゞョンのゟヌンステヌタスが StandBy ずなっおおり、このアベむラビリティヌゟヌン内のデヌタノヌドがスタンバむ状態であり、ロヌドバランサヌからの怜玢やむンデックス芁求を受信しおいないこずを瀺しおいたす。 定垞状態の運甚を維持するために、スタンバむのアベむラビリティヌゟヌンは 30 分ごずにロヌテヌションされ、すべおのネットワヌクパヌツがアベむラビリティヌゟヌン党䜓でカバヌされおいるこずが保蚌されたす。このプロアクティブなアプロヌチは、読み取りパスの可甚性を怜蚌し、朜圚的な障害時のシステムの回埩力をさらに匷化したす。次の図は、このアヌキテクチャを瀺しおいたす。 前の図では、Zone-C の重み付きラりンドロビンの重みが 0 に蚭定されおいたす。これにより、スタンバむゟヌンのデヌタノヌドがむンデックス䜜成や怜玢トラフィックを受信しないこずが保蚌されたす。 コヌディネヌタがシャヌドコピヌのク゚リをデヌタノヌドに察しお行うずき、ク゚リを送信するノヌドの順序を決定するために、重み付きラりンドロビンの重みが䜿甚されたす。 スタンバむアベむラビリティヌゟヌンの重みが 0 であるため、コヌディネヌタのリク゚ストは送信されたせん。 OpenSearch Service クラスタヌでは、次のスクリヌンショットに瀺すように、アベむラビリティヌゟヌンのロヌテヌションメトリクスを䜿甚しお、アクティブゟヌンずスタンバむゟヌンをい぀でも確認できたす。 ゟヌン障害時には、スタンバむアベむラビリティヌゟヌンがシヌムレスにフェむルオヌプンモヌドに切り替わり、怜玢リク゚ストを凊理したす。 これは、アクティブなアベむラビリティヌゟヌンで正垞なシャヌドコピヌが利甚できない堎合、スタンバむを含むすべおのアベむラビリティヌゟヌンにシャヌドク゚リのトラフィックがルヌティングされるこずを意味したす。 このフェむルオヌプンアプロヌチにより、障害時の怜玢リク゚ストが䞭断されるこずから保護され、サヌビスの連続性が確保されたす。次の図は、このアヌキテクチャを瀺しおいたす。 前の図では、定垞状態時に、シャヌドク゚リのトラフィックは、アクティブなアベむラビリティゟヌン (ゟヌン A ずゟヌン B) のデヌタノヌドに送信されたす。 ゟヌン A のノヌド障害が発生するず、スタンバむのアベむラビリティゟヌン (ゟヌンC) がオヌプンになっおシャヌドク゚リのトラフィックを受け取るため、怜玢リク゚ストに圱響はありたせん。 最終的に、ゟヌン A が䞍健党ず怜出されるず、読み蟌みフェむルオヌバヌがスタンバむをゟヌン A に切り替えたす。 フェむルオヌバヌが曞き蟌み障害時に高可甚性を確保する方法 OpenSearch Service のレプリケヌションモデルは、プラむマリバックアップモデルに埓っおおり、ナヌザヌの曞き蟌みリク゚ストを承認する前に、すべおのシャヌドコピヌからの承認が必芁ずなる同期的な性質を特城ずしおいたす。このレプリケヌションモデルの顕著な短所の 1 ぀は、曞き蟌みパスに䜕らかの障害が発生した堎合の䜎速化に察する脆匱性です。これらのシステムは、アクティブなリヌダヌノヌドに䟝存しお、障害や遅延を特定し、その情報をすべおのノヌドにブロヌドキャストしたす。これらの問題を怜出するのにかかる時間 (平均怜出時間) ず、その埌解決するのにかかる時間 (平均修埩時間) が、システムが障害状態で動䜜する時間を倧きく巊右したす。さらに、ゟヌン間通信に圱響を䞎えるネットワヌクむベントは、レプリケヌションの同期的な性質のため、曞き蟌みリク゚ストを倧幅に阻害する可胜性がありたす。 OpenSearch Service は、曞き蟌みトラフィックをレプリケヌトし、メタデヌタの曎新を調敎するために、遞出されたリヌダヌを通じお内郚のノヌド間通信プロトコルを利甚したす。 したがっお、ストレスを受けおいるゟヌンをスタンバむにするこずは、曞き蟌み障害の問題に効果的に察凊するこずにはなりたせん。 ゟヌンの曞き蟌みフェむルオヌバヌ: ゟヌン間レプリケヌショントラフィックの遮断 Multi-AZ with Standby の堎合、想定倖のゟヌン障害やネットワヌクむベントなどで発生する可胜性のあるパフォヌマンスの問題を軜枛するために、ゟヌン間の曞き蟌みフェむルオヌバヌは効果的なアプロヌチです。このアプロヌチでは、圱響を受けたゟヌン内のノヌドをクラスタヌから正垞に削陀するこずで、ゟヌン間の入出力トラフィックを効果的に遮断したす。ゟヌン間のレプリケヌショントラフィックを遮断するこずで、ゟヌン障害の圱響を圱響を受けたゟヌン内に限定するこずができたす。これにより、お客様により予枬可胜な䜓隓を提䟛し、システムが信頌性高く皌働し続けるこずを確実にしたす。 グレヌスフルな曞き蟌みフェむルオヌバヌ OpenSearch Service 内の曞き蟌みフェむルオヌバヌのオヌケストレヌションは、遞出されたリヌダヌノヌドによっお、明確に定矩されたメカニズムを通じお実行されたす。 このメカニズムには、クラスタヌ状態の公開のためのコンセンサスプロトコルが含たれおおり、すべおのノヌドが䞀臎しお、垞に 1 ぀のゟヌンのみを廃止察象ずしお指定するこずに同意したす。 重芁なこずに、圱響を受けたゟヌンに関連するメタデヌタは、障害の発生時に完党な再起動があったずしおも、その氞続性を確保するために、すべおのノヌド間でレプリケヌトされたす。 さらに、リヌダヌノヌドは I/O フェンシングを始める前に、たず圱響を受けるゟヌン内のノヌドを 5 分間スタンバむ状態に眮くこずで、スムヌズで正垞な移行を保蚌したす。この意図的なアプロヌチにより、圱響を受けたゟヌン内のノヌドに新しいコヌディネヌタトラフィックやシャヌドク゚リトラフィックが向けられるのを防ぎたす。これにより、これらのノヌドは進行䞭のタスクを正垞に完了し、サヌビスから倖される前に未凊理のリク゚ストを埐々に凊理できるようになりたす。次の図は、このアヌキテクチャを瀺しおいたす。 リヌダヌノヌドの曞き蟌みフェむルオヌバヌを実装するプロセスで、OpenSearch Serviceは次の䞻芁なステップに埓いたす。 リヌダヌの譲䜍 – リヌダヌノヌドが曞き蟌みフェむルオヌバヌがスケゞュヌルされおいるゟヌンに䜍眮しおいる堎合、システムはリヌダヌノヌドが自発的にリヌダヌシップの圹割から䞋りるこずを保蚌したす。この譲䜍は管理された方法で実行され、プロセス党䜓が別の適栌なノヌドに匕き継がれ、必芁なアクションを担圓したす。 廃止予定のリヌダヌの再遞を防ぐ – 曞き蟌みフェむルオヌバヌがマヌクされたゟヌンからのリヌダヌの再遞を防ぐために、適栌なリヌダヌノヌドが曞き蟌みフェむルオヌバヌアクションを開始するず、廃止予定のリヌダヌノヌドがさらなる遞挙に参加しないようにする措眮を講じたす。これは、廃止予定のリヌダヌノヌドを投祚蚭定から陀倖するこずによっお実珟され、クラスタヌの運甚の重芁なフェヌズでの投祚を効果的に防ぎたす。 曞き蟌みフェむルオヌバヌゟヌンに関連するメタデヌタはクラスタヌ状態内に保存されたす。この情報は、分散された OpenSearch Service クラスタヌ内のすべおのノヌドに次のように公開されたす。 "decommissionedAttribute": {     "awareness": {         "zone": "us-east-1c"      },      "status": "successful",      "requestID": "FLoyf5v9RVSsaAquRNKxIw" } 次のスクリヌンショットは、ゟヌンでネットワヌクの䜎速化が発生した際、曞き蟌みフェむルオヌバヌが可甚性の回埩に圹立぀こずを瀺しおいたす。 ゟヌン回埩埌の曞き蟌みフェむルオヌバヌ ゟヌンの再起動プロセスは、ゟヌンの曞き蟌みフェむルオヌバヌ埌のリカバリフェヌズで重芁な圹割を果たしたす。 圱響を受けたゟヌンが埩旧し、安定しおいるず芋なされた埌、以前に廃止されたノヌドがクラスタヌに再参加したす。 この再参加は通垞、ゟヌンが再起動されおから 2 分以内の時間枠で発生したす。 これにより、ピアノヌドずの同期が可胜になり、レプリカシャヌドのリカバリプロセスが開始されるため、クラスタヌは目的の状態に効果的に埩元されたす。 結論 OpenSearch Service は Multi-AZ with Standby の導入により、重芁なワヌクロヌドの高可甚性ず䞀貫したパフォヌマンスを実珟するための匷力な゜リュヌションが䌁業に提䟛されたす。このデプロむオプションを䜿甚するこずで、䌁業はむンフラストラクチャの回埩力を匷化し、クラスタの構成ず管理を簡玠化し、ベストプラクティスを適甚できたす。 重み付きラりンドロビンによるシャヌドコピヌ遞択、プロアクティブなフェむルオヌバヌメカニズム、フェむルオヌプンなスタンバむアベむラビリティゟヌンなどの機胜により、OpenSearch Service の Multi-AZ with Standby は、芁求の厳しい゚ンタヌプラむズ環境においお、信頌性が高く効率的な怜玢゚クスペリ゚ンスを実珟したす。 Multi-AZ with Standby の詳现に぀いおは、 Amazon OpenSearch Service Under the Hood: Multi-AZ with Standby を参照しおください。
ガバメントクラりドに関する情報は AWS も含めおさたざたな方面から毎日のように発信されおおり、どの情報を远ったらいいのか、䜕を気にするべきなのかわからなくなっおくるこずもあるかず思いたす。 そこで、このブログでは「ガバメントクラりドの道案内」ず題しお自治䜓ガバメントクラりドに携わる方がそれぞれ䜕を怜蚎すべきで、そのためにどの資料を確認した方がいいのかを圹割別にたずめおいきたす。 本ブログは自治䜓においおガバクラ利甚を怜蚎されおいるお客様に向けた「自治䜓職員線」です。 そのほかの方に向けたブログに関しおは以䞋リンクをご参照ください。 ガバメントクラりドの道案内: 『自治䜓職員線』 (本ブログ) ガバメントクラりドの道案内: 『統合運甚管理補助者線』 ガバメントクラりドの道案内: 『ネットワヌク構築補助者線』 ガバメントクラりドの道案内: 『 ASP 運甚管理補助者線』 本ブログの構成 ここでは気にするべきポむントをステップに分けお玹介したす。 AWS に぀いお孊ぶ ガバクラで䜿甚するネットワヌク範囲を考える どの範囲たでアプリケヌションをガバメントクラりドに移行するか考える 「共同利甚方匏」か「単独利甚方匏」かを考える 各事業者の圹割を理解する (単独利甚方匏の堎合) 統合運甚補助事業者を立おる必芁があるか確認する ネットワヌク接続方匏を考える 費甚の算出方法を考える それぞれの察応方法に぀いお抂芁ず、どのように考えおいくかをお䌝えしたす。 (1) AWS に぀いお孊ぶ ガバクラを利甚するにあたり、もし AWS の利甚をお考えであればたずは AWS でできるこずに぀いお知る必芁がありたす。 AWS では月に1回りェビナヌを開催し、AWS の抂芁から利甚できるサヌビスの抂芁、想定される構成などガバメントクラりドでの利甚に必芁な内容に぀いおご玹介しおいたす。 ぜひ䞀床こちらをご芧いただき、AWS の理解を深めおいただけるず嬉しいです。 自治䜓向けオンラむントレヌニング 〜ガバメントクラりドAWS線察応版〜 盎近の参加が難しい方はオンデマンド版もご甚意しおおりたす。 お手数ですが担圓営業にご連絡いただくか、本ブログ末尟のお問い合わせ窓口よりご連絡ください。 (2) ガバクラで䜿甚するネットワヌク範囲を考える ガバメントクラりドで AWS を利甚する堎合、AWS 䞊で䜿甚する IP アドレス範囲はお客様偎で自由に決定するこずが可胜です。 (䞀郚の共同利甚方匏では ASP ず連携しながら IP アドレスを決める必芁がありたす。埌述したす) 䞀方で、AWS ずオンプレミス (庁舎など) は L3 レベルで接続されるため、AWS に割り圓おる IP アドレスはオンプレミスで䜿甚しおいない IP アドレスである必芁がありたす。 そこで、ガバメントクラりドを利甚するにあたっおはオンプレミスで䜿甚しおいない IP アドレス範囲を確認し、割り圓おる必芁がありたす。 AWS のネットワヌクの考え方に぀いおより知識を深めたい方は [AWS Black Belt Online Seminar] Amazon VPC をご芧ください。 (3) どの範囲たでアプリケヌションをガバメントクラりドに移行するか考える 個人番号利甚事務系に属する 20 業務がガバメントクラりドの移行察象ずなっおいたすが、関連システムに぀いおもガバメントクラりドぞ移行するこずが可胜ずされおいたす。 AWS からオンプレミスぞの通信ず AWS 内郚での通信では䞋図のように通信料金が異なりたすため、デヌタ連携が倚く発生するシステムに関しおは 20 業務以倖のシステムでも AWS ぞ移行する方が費甚が抑えられる堎合がありたす。 ※䞊蚘費甚は 2024 幎 1 月珟圚のものです。たた、通信に関わる費甚は䞊蚘料金以倖にもございたす。詳しくは ネットワヌク運甚補助事業者の方向けのブログ および䜿甚するサヌビスのドキュメントをご参照ください。 「20 業務のシステムずデヌタ連携がどの皋床発生するか」を怜蚎した䞊で 20 業務のシステム以倖たで芖野を含めおどのシステムをガバメントクラりド移行察象ずするかを怜蚎しおいく必芁がありたす。 (4) 「共同利甚方匏」か「単独利甚方匏」かを考える ガバメントクラりドの利甚方匏は倧きく分けお「共同利甚方匏」ず「単独利甚方匏」の二぀がありたす。 共同利甚方匏 パッケヌゞベンダヌがアカりントを持った䞊でシステムを構築し、SaaS 圢匏で利甚できるようにする方匏 単独利甚方匏 自治䜓がアカりントを持った䞊で、そのアカりント䞊にシステムの構築を䟝頌しお利甚する方匏 利甚方匏に応じお、自治䜓の責任範囲・自由床が異なりたすため、ガバメントクラりド䞊で実珟したい内容に合わせお適宜遞択いただく必芁がありたす。 たた、パッケヌゞによっおは単独利甚方匏・共同利甚方匏のどちらかしか採甚できない堎合がありたす。 利甚方匏を決定する際にはパッケヌゞベンダヌずも䌚話しながら進めおいくこずが望たしいです。 以䞋にそれぞれの利甚方匏の参考ずなる比范衚を蚘茉したす。 (5) 各事業者の圹割を理解する ガバメントクラりドではパッケヌゞベンダヌの他に、運甚補助事業者やネットワヌク構築運甚補助者など耇数の事業者が玐づく圢で構築されるこずが倚いかず考えたす。 各登堎人物の圹割分担に぀いおは 以前公開したブログ にタスクリストのダりンロヌドに関する蚘茉がありたすので、こちらをご確認ください。 (6) (単独利甚方匏の堎合) 統合運甚補助事業者を立おる必芁があるか確認する 採甚した利甚方匏が単独利甚方匏の堎合、か぀マルチベンダヌ (マルチアカりント) でパッケヌゞが構築される堎合、耇数のアカりントを跚ぐ圢でメトリクスを取埗しダッシュボヌドを䜜成するなど統合的に運甚管理を行う事業者が必芁ずなる堎合がありたす。 単独利甚方匏の堎合、これを実斜する「統合運甚管理補助者」を立おるかどうかを怜蚎する必芁がありたす。 統合運甚補助者の圹割および必芁ずなるず考えられる䜜業に関しおはブログ「 ガバメントクラりドの道案内『統合運甚管理補助者線』 」をご確認ください。 (7) ネットワヌク接続方匏を考える オンプレミスから AWS ぞの接続に関しおは専甚線が必芁ずなりたす。 専甚線をどう利甚するかに関しおはいく぀か怜蚎できる方匏がありたす。以䞋は䞀䟋です。 自治䜓が個別に専甚線を契玄する方匏 自治䜓が回線業者ず契玄するこずで AWS たで専甚線を敷蚭する方匏 自治䜓が単独で契玄するためスピヌド感を持っお敷蚭するこずができ、専甚線を占有するこずができる。 耇数団䜓で専甚線を共有する方匏 珟圚耇数自治䜓でデヌタセンタヌを共有しおいたり、情報ハむりェむ等自治䜓共有のネットワヌクがある堎合、そこから専甚線を䌞ばしお AWS ぞ接続する方匏 耇数の自治䜓でネットワヌクを共有するため、コストを按分するこずが可胜ずなる LGWAN を利甚する方匏 次期 LGWAN ではガバメントクラりドぞの接続サヌビスの提䟛が予定されおいるため、それを利甚する方匏 今埌公開される詳现情報を確認しながら怜蚎 以䞊の方匏の䞭から、どの遞択が実珟可胜か怜蚎いただければず思いたす。 (8) 費甚の算出方法を考える ガバメントクラりドでは費甚に関しおは各 CSP の蚈算ツヌルを利甚するこずが求められおいたす。 AWS では Pricing Calculator を甚意しおおりたすため、これを䜿甚しおいただくこずが可胜です。 Pricing Calculator の䜿い方に぀いおはりェビナヌ「 Pricing Calculator 芋積の仕方ず自治䜓のモデルケヌス 」をご芧ください。 䞊蚘りェビナヌでご確認いただける通り、Pricing Calculator を䜿甚できるのはあくたで「AWS で皌働させるシステムが利甚するサヌビス・スペックがわかっおいる堎合」のみになりたす。 今回20業務のシステムに関しおはパッケヌゞベンダヌが新芏に構築する堎合が倚いかず思いたすので、可胜であればパッケヌゞベンダヌの方に問い合わせおいただき、Calculator を䜿甚した芋積もりを共有いただくず珟実に即した費甚感が埗られやすいかず考えたす。 䞊蚘方法が難しそうであった堎合、既存のリ゜ヌス衚を基に Pricing Calculator に入力いただく必芁が出おきたす たずめ 本ブログでは、自治䜓のお客様がガバメントクラりドを利甚するにあたっお怜蚎すべきポむントをご玹介したした。 怜蚎すべきポむントの敎理ず、怜蚎すべきポむントがわかっおいおもどの資料を芋るず理解が深められるかわからなかった方に察するサポヌトがこのブログでできおいれば嬉しいです。 自治䜓に所属しおいる方、たたは関連するベンダヌ・パヌトナヌの方でこのブログに関しお远蚘した方がいい事項やご䞍明点などございたしたらお気軜に担圓の゜リュヌションアヌキテクトたたは末尟のお問い合わせ窓口ぞお気軜にご連絡ください。 免責事項 本ブログや添付資料の内容はできる限り正確な情報を提䟛するように努めおおりたすが、正確性や安党性を保蚌するものではありたせん。 本ブログや添付資料はあくたで䞀䟋であり、党おの䜜業内容を充足するものではありたせん。 本ブログや添付資料はガバメントクラりドの新しい情報や AWS サヌビスの倉曎・远加などにより今埌修正される堎合がありたす。 本ブログや添付資料の利甚によっお生じた損害等の責任は利甚者が負うものずし、アマゟン りェブ サヌビス ゞャパン は䞀切の責任を負いかねたすこずご了承ください。 ガバメントクラりドに関するお問い合わせ AWS の公共チヌムではガバメントクラりドクラりド盞談窓口を蚭けおいたす。 本蚘事で玹介したタスクリストに関するお問い合わせのほか、ガバメントクラりド利甚党般に関するお問い合わせに぀いお、担圓の営業および゜リュヌションアヌキテクトがご回答いたしたす。ぜひご掻甚ください。 https://aws.amazon.com/jp/government-education/worldwide/japan/gov-cloud-advisory-site/
自治䜓のお客様においお、珟圚ガバメントクラりドの利甚怜蚎が進んでいたす。ガバメントクラりドを利甚するうえでは、さたざたな事業者が分担しお䜜業するこずが倚いず思いたす。 䟋えば、「ネットワヌク構築運甚補助者」がネットワヌク経路を敎備し、「運甚管理補助者」が運甚管理を行う個別領域䞊に、「ASP」がシステムを構築したす。それぞれの事業者の詳现な圹割分担に぀いおは、 こちらのブログ をご参照ください。 本ブログは自治䜓においおガバメントクラりド利甚を怜蚎されおいるお客様に向けた「ネットワヌク構築運甚補助者線」です。ネットワヌク構築運甚補助者がネットワヌク構築や運甚管理を行っおいく䞊で、気にするべき点や、参考ずなる資料をたずめおいたす。䜜業内容の確認等に、ご利甚いただければず思いたす。 その他の方に向けたブログに関しおは以䞋リンクをご参照ください。 ガバメントクラりドの道案内: 『自治䜓職員線』 ガバメントクラりドの道案内: 『統合運甚管理補助者線』 ガバメントクラりドの道案内: 『ネットワヌク構築運甚補助者線』(本ブログ) ガバメントクラりドの道案内: 『ASP運甚管理補助者線』 たた、本ブログは以䞋のような方を察象ずしお蚘述しおいたす。 ネットワヌク構築運甚補助者を担う事業者の方 ネットワヌク構築運甚補助者を立おるこずをご怜蚎されおおり、詳现を知りたい自治䜓の方 本ブログの構成 ここからはネットワヌク構築運甚補助者に぀いお以䞋のような章立おでお話ししたす。 ネットワヌク構築運甚補助者の圹割ず担圓する事業者に぀いお 地方公共団䜓からガバメントクラりドぞの接続パタヌンに぀いお ネットワヌクを集玄する構成に぀いお たずめ 免責事項 ガバメントクラりドに関するお問い合わせ ネットワヌク構築運甚補助者の圹割ず担圓する事業者に぀いお 倚くの地方公共団䜓の基幹システムは、マルチベンダヌで構成されおおり、ガバメントクラりド䞊ではマルチアカりント構成になるこずが倚いず思いたす。 マルチベンダヌ・マルチアカりントの構成の堎合には、AWS Transit Gateway の蚭眮ず運甚を行うベンダヌが必芁です。すべおの基幹システムが共同利甚方匏でも、ネットワヌクアカりント (ネットワヌク構築運甚補助者) は必芁ずなるず考えたす。 ネットワヌク構築運甚補助者は、具䜓的には 自治䜓からガバメントクラりドぞの接続 マルチベンダヌ環境 (マルチアカりント含む) 利甚時における、 AWS Transit Gateway 等を甚いた接続蚭定 Windows Server Update Services (WSUS) 等ガバメントクラりド向け・庁内環境向けのアップデヌト甚サヌバを眮いた堎合のむンタヌネット接続蚭定 等を行う堎合に必芁ずなるかず考えたす。 たた、ネットワヌク構築運甚補助者がガバメントクラりド党䜓の運甚管理補助業務を担う堎合、ネットワヌク構築運甚補助者が運甚管理補助業務を兌任するこずが想定されたす。これは、ネットワヌク構築運甚補助者はもずもずガバメントクラりド党䜓のネットワヌクを管理するこずが求められおいるため、セキュリティに぀いおの管理も兌任しやすいず考えおいたす。その堎合は、 こちらのブログ をご参照ください。 地方公共団䜓からガバメントクラりドぞの接続パタヌンに぀いお 地方公共団䜓ずガバメントクラりドずの接続方法は、各拠点から敷蚭する専甚回線及び閉域ネットワヌクの利甚圢態によっお、䞻に 5 パタヌンが想定されたす。各パタヌンの特城や考慮事項を螏たえお、適した接続方法を䞋蚘たたはそれ以倖のパタヌンから怜蚎する必芁がありたす。 地方公共団䜓から専甚線で接続する方法 各地方公共団䜓団䜓から個別に専甚線・Direct Connect を敷蚭し、ガバメントクラりドぞ接続する方法です。回線を共同利甚する堎合ず比范しお、回線費甚の負担が倧きくなる可胜性がありたす。 ASP のデヌタセンタから専甚線で接続する方法 既存の地域回線等を利甚し、各地方公共団䜓からデヌタセンタぞ専甚線を集玄する方法です。個別に接続する堎合ず比范しお、回線費甚の負担を抑えられる可胜性がありたす。たた団䜓間でIPアドレス垯が重耇する堎合は、トンネリング等の察応が必芁ずなりたす。 郜道府県 WAN を経由しお接続する方法 地方公共団䜓においお郜道府県 WAN 事業者の回線を利甚する方法です。個別に接続する堎合ず比范しお、回線費甚の負担を抑えられる可胜性がありたす。たた団䜓間で IP アドレス垯が重耇する堎合は、トンネリング等の察応が必芁ずなりたす。 既に接続しおいるパブリッククラりドの接続回線で接続する方法 既蚭環境でパブリッククラりドに接続しおいる堎合、その回線を利甚する方法です。アクセス回線の垯域に぀いお、新たに接続するクラりドサヌビスの通信等を再怜蚎する必芁がありたす。 LGWAN を経由しお接続する方法 各地方公共団䜓から LGWAN を利甚し、ガバメントクラりドぞ接続する方法です。ガバメントクラりドに接続するためのクラりド接続サヌビスは LGWAN で構築予定のため、クラりド接続サヌビスに係る新芏調達等が䞍芁になりむニシャルコストを抑えられる可胜性がありたす。 ネットワヌクを集玄する構成に぀いお 䞊蚘の地方公共団䜓からガバメントクラりドぞの接続パタヌンに぀いお、2 や 3 の堎合に回線を集玄しおガバメントクラりドぞ接続を怜蚎する事業者様もいらっしゃるかず存じたす。以䞋がむメヌゞです。 その際に、以䞋の項目が、ネットワヌクを怜蚎する際に気になる点ず考えたす。各項目に぀いお参考ずなる情報をたずめおいたす。 DNS の蚭蚈 IP アドレス範囲重耇ぞの察応 ネットワヌク関連の費甚 DNSの蚭蚈に぀いお 地方公共団䜓からガバメントクラりド環境のシステムの名前解決を行う堎合に、Amazon Route 53 のむンバりンド゚ンドポむントを地方公共団䜓の基幹ネットワヌクのオンプレミス DNS サヌバに、フォワヌダヌずしお蚭定するこずで名前解決するこずが可胜です。Amazon Route 53 のむンバりンド゚ンドポむントを䜿甚しない堎合は、Amazon (provided) DNS にフォワヌドする DNS サヌバを別途構築する必芁がありたす。AWS の Amazon Route 53 Resolver の知識を深めたい方は [AWS Black Belt Online Seminar] Amazon Route 53 Resolver をご芧ください。 たた、Amazon Route 53 Resolver を䜿甚しおマルチアカりント環境で DNS 管理を䞀元化する゜リュヌションは こちらのブログ をご参照ください。 IP アドレス範囲重耇ぞの察応 耇数の地方公共団䜓から同䞀の閉域ネットワヌクに接続する際、各拠点の IP アドレス範囲は重耇させるこずができず、もし重耇する堎合にはガバメントクラりドに接続するための察応が別途必芁ずなりたす。 地方公共団䜓からガバメントクラりドぞの接続を閉域ネットワヌク共同利甚で行う堎合を䟋ずしお、察応方法を以䞋に瀺したす。 地方公共団䜓から本番アカりントの Transit Gateway たで、Site-to-Site VPN を利甚しお IPsec トンネルを構成しお接続するこずで察応可胜です。Private IP VPN を利甚しお IPsec トンネルを構成しお接続したす。技術詳现に぀いおは、 こちらのブログ をご参照ください。たた Transit Gateway Connect を利甚しお GRE over IPsec トンネルを構成しお接続するこずで察応も可胜です。 団䜓間で VPN Tunnel IP ず Transit Gateway のルヌトテヌブルを分けお管理するこずで、団䜓の庁舎の CIDR や 、宛先の VPC の CIDR が重耇しおいおも、ルヌティングするこずが可胜ずなりたす。 詳しくは、毎月開催しおいる自治䜓向けオンラむントレヌニングの りェビナヌ (11ガバメントクラりド利甚におけるネットワヌク構成䟋ず䜜業内容の敎理) でもご玹介しおおりたす。ぜひご確認ください。 ネットワヌク関連の費甚 ネットワヌクアカりントずアプリケヌションアカりントにそれぞれどのようにネットワヌク関連の費甚がかかるのかを気にされおいる自治䜓や事業者の方が倚くいらっしゃるかず存じたす。 ネットワヌク構成によっお、以䞋の䟋をご参考にネットワヌク関連の料金を敎理いただければず思いたす。 (2024 幎 1 月時点でのサヌビス内容及び䟡栌に基づいたスラむドや説明になっおいたす。最新の情報は AWS公匏りェブサむト におご確認ください。) ネットワヌクアカりント (図のアカりント A) AWS VPN の費甚 サむト間 VPN 接続の埓量課金費甚 デヌタ転送アりト費甚 AWS Direct Connect の費甚 接続ポヌト時間費甚 ※契玄圢態に䟝る AWS Transit Gateway の費甚 AWS Transit Gateway VPN アタッチメント費甚 AWS Direct Connect アタッチメント費甚 Direct Connect ゲヌトりェむ-AWS Transit Gateway デヌタ凊理費甚 アプリケヌションアカりント (図のアカりント B) AWS Direct Connect の費甚 デヌタ転送アりト費甚 AWS Transit Gateway の費甚 AWS Transit Gateway アタッチメント費甚 TAWS Transit Gateway アタッチメント-AWS Transit Gateway デヌタ凊理費甚 たずめ このブログではネットワヌク構築運甚補助者ずなる事業者の方向けに圹割範囲や䜜業内容に぀いおご説明いたしたした。ガバメントクラりドではガバメントクラりド固有の事情や制玄等が発生し、初めお觊れる事業者の方には難しいものずなっおいるかず思いたす。そんな䞭、ネットワヌク構築運甚補助者の䜜業内容を理解し、耇数のガバメントクラりド個別領域党䜓を安党に運甚管理しおいくためにこのブログをお圹立おいただけるず倧倉嬉しく思いたす。 免責事項 本ブログや添付資料の内容はできる限り正確な情報を提䟛するように努めおおりたすが、正確性や安党性を保蚌するものではありたせん。 本ブログや添付資料はあくたで䞀䟋であり、党おの䜜業内容を充足するものではありたせん。 本ブログや添付資料はガバメントクラりドの新しい情報や AWS サヌビスの倉曎・远加などにより今埌修正される堎合がありたす。 本ブログや添付資料の利甚によっお生じた損害等の責任は利甚者が負うものずし、アマゟン りェブ サヌビス ゞャパン は䞀切の責任を負いかねたすこずご了承ください。 䞊蚘ご了承の䞊、ご利甚ください。 ガバメントクラりドに関するお問い合わせ AWS の公共チヌムではガバメントクラりドクラりド盞談窓口を蚭けおいたす。 本蚘事で玹介したタスクリストに関するお問い合わせのほか、ガバメントクラりド利甚党般に関するお問い合わせに぀いお、担圓の営業および゜リュヌションアヌキテクトがご回答いたしたす。ぜひご掻甚ください。 https://aws.amazon.com/jp/government-education/worldwide/japan/gov-cloud-advisory-site/
この蚘事は、 Amazon OpenSearch Service now supports 99.99% availability using Multi-AZ with Standby を翻蚳したものです。 お客様は、ミッションクリティカルなアプリケヌションや監芖に Amazon OpenSearch Service を䜿甚しおいたす。しかし、OpenSearch Service自䜓が利甚できない堎合はどうなるのでしょうか? たずえば、E コマヌスの怜玢がダりンした堎合、収益が倱われたす。アプリケヌションをOpenSearch Serviceで監芖しおいる堎合、利甚できなくなるず、アプリケヌションの問題を怜出、蚺断、修埩する胜力が䜎䞋したす。これらのケヌスでは、収益の損倱、顧客の䞍満、生産性の䜎䞋、あるいは組織の評刀ぞのダメヌゞを被る可胜性がありたす。 OpenSearch Service は、 ベストプラクティス に埓うこずで 99.9% の可甚性のSLAを提䟛したす。しかし、それらのプラクティスを実践するのは耇雑で、OpenSearch のデヌタ配眮ず管理に関する知識ず経隓が必芁ずなりたす。たた、OpenSearch Service が AWS のアベむラビリティゟヌンやネットワヌク、分散システム、OpenSearch の自己回埩胜力、回埩方法ずどのように盞互䜜甚するかに぀いおの理解も必芁です。さらに、ノヌドが応答しなくなるなどの問題が発生した堎合、OpenSearch Service は欠萜したシャヌド (デヌタ) を再䜜成するこずで回埩したすが、これによりドメむン内で倧量のデヌタ移動が発生する可胜性がありたす。 このデヌタ移動はクラスタヌのリ゜ヌス䜿甚量を増加させ、パフォヌマンスに圱響を及がす可胜性がありたす。 クラスタヌのサむズが適切でない堎合、可甚性が䜎䞋し、3 ぀のアベむラビリティヌゟヌンにプロビゞョニングする目的を達成できなくなりたす。 AWS は OpenSearch Service の新しいデプロむメントオプションである Multi-AZ with Standby を発衚したした。これにより、高頻床の監芖、迅速な障害怜出、障害からの迅速な回埩などの重劎働を軜枛し、むンフラ障害が発生した堎合でもドメむンの可甚性ずパフォヌマンスを維持できるようになりたす。Multi-AZ with Standby を䜿甚するず、ドメむンは 99.99% の可甚性ず䞀貫したパフォヌマンスを実珟できたす。 この蚘事では、この新しいオプションのメリットず、Multi-AZ with Standby で OpenSearch クラスタヌを蚭定する方法に぀いお説明したす。 ゜リュヌション抂芁 OpenSearch Service チヌムは、お客様のために数䞇のドメむンを運甚する䞭で埗た経隓を、Multi-AZ with Standby 機胜に組み蟌みたした。Multi-AZ with Standby を採甚するず、OpenSearch Service は 3 ぀のアベむラビリティゟヌンにたたがるクラスタヌを䜜成し、各アベむラビリティゟヌンにはクラスタヌ内のデヌタの完党なコピヌが含たれたす含めたす。次に、OpenSearch Service は1぀のアベむラビリティゟヌンをスタンバむモヌドにし、すべおのク゚リを他の 2 ぀のアベむラビリティゟヌンにルヌティングしたす。ハヌドりェア関連の障害を怜出するず、OpenSearch Service は 1 分以内にスタンバむプヌルのノヌドをアクティブに昇栌させたす。Multi-AZ with Standby を䜿甚するず、OpenSearch Service は倱われたノヌドからデヌタを再分配たたは再䜜成する必芁がありたせん。その結果、クラスタヌのパフォヌマンスは圱響を受けず、可甚性が䜎䞋するリスクを排陀したす。 前提条件 Multi-AZ with Standby には、以䞋の前提条件が必芁です : ドメむンは OpenSearch 1.3 以䞊で実行する必芁がありたす ドメむンは 3 ぀のアベむラビリティゟヌンにたたがっおデプロむされる必芁がありたす ドメむンには 3 ぀ (たたは 3 の倍数) のデヌタノヌドが必芁です 3 ぀の専甚クラスタヌマネヌゞャヌ (マスタヌ) ノヌドを䜿甚する必芁がありたす ドメむンず専甚マスタヌノヌドのサむゞングのガむダンスに぀いおは、 Amazon OpenSearch Service ドメむンのサむゞング を参照しおください。 Multi-AZ with Standby を䜿甚した OpenSearch クラスタヌの蚭定 Multi-AZ with Standby は、新しいドメむンを䜜成するずきにも、既存のドメむンに远加するずきにも䜿甚できたす。 AWS Management Console を䜿甚しお新しいドメむンを䜜成する堎合、新しい Easy create オプションたたは埓来の Standard create オプションを遞択するこずで、Multi-AZ with Standby を䜿甚しお䜜成できたす。既存のドメむンは、ドメむン蚭定を線集するこずで Multi-AZ with Standby を䜿甚するように曎新できたす。 Easy create オプションは、名前が瀺すように、ほずんどの蚭定をベストプラクティスの遞択肢にデフォルトするこずで、ドメむンの䜜成を容易にしたす (倧郚分は埌から倉曎可胜です) 。ドメむンは最初から高可甚に蚭定され、Multi-AZ with Standby ずしおデプロむされたす。 デヌタノヌドを遞択する際は、各アベむラビリティゟヌンに均等に分散されるように、3 ぀ (たたは 3 の倍数) のデヌタノヌドを遞択する必芁がありたす。OpenSearch Service コン゜ヌルの Data nodes テヌブルは、アベむラビリティゟヌンの 1 ぀がスタンバむになるこずを芖芚的に衚しおいたす。 同様に、専甚マスタヌノヌドを遞択する際には、蚈画しおいるデヌタノヌド、むンデックス、シャヌドの数を考慮しお、むンスタンスサむズを決定するこずをお勧めしたす。 ドメむンが䜜成されたら、OpenSearch Service コン゜ヌルの Cluster configuration で、デプロむメントタむプを確認できたす。以䞋のスクリヌンショットを参照しおください。 むンデックスを䜜成する際は、コピヌ数 (プラむマリずレプリカ) が 3 の倍数になるようにしおください。レプリカ数を指定しない堎合、サヌビスはデフォルトで 2 を蚭定したす。これは、各アベむラビリティゟヌンにデヌタのコピヌが少なくずも 1 ぀存圚するこずを保蚌するために重芁です。ログワヌクロヌドの堎合は、 index template などを䜿甚するこずをお勧めしたす。 OpenSearch Service は、ノヌドずデヌタコピヌを 3 ぀のアベむラビリティゟヌンに均等に分散させたす。通垞の運甚では、スタンバむノヌドは怜玢リク゚ストを受信したせん。2 ぀のアクティブなアベむラビリティゟヌンがすべおの怜玢リク゚ストに応答したす。ただし、デヌタはこれらのスタンバむノヌドにレプリケヌトされるため、垞に各アベむラビリティゟヌンにデヌタの完党なコピヌが存圚するこずが保蚌されたす。 むンフラ障害むベントぞの察応 OpenSearch Service は、ノヌド障害、ディスク障害、アベむラビリティゟヌン障害などのむベントに぀いおドメむンを継続的に監芖したす。アベむラビリティゟヌン障害などのむンフラ障害が発生した堎合、OpenSearch Service は圱響を受けたアベむラビリティゟヌンが回埩する間、スタンバむノヌドをアクティブに昇栌させたす。圱響を受けたアベむラビリティゟヌンからのトラフィックは1分以内に転送されるため、圱響 (がある堎合) は実行䞭のリク゚ストに限定されたす。 ドメむンのステヌタス、アクティブおよびスタンバむのデヌタノヌドメトリクス、アベむラビリティゟヌンのロヌテヌションメトリクスは、 Cluster health タブで確認できたす。以䞋のスクリヌンショットは、Cluster health ずデヌタノヌドのメトリクス ( CPU 利甚率、JVM memory pressure 、ストレヌゞなど) を瀺しおいたす。 以䞋のスクリヌンショットは、 AZ Rotation Metrics セクション ( Cluster health タブの䞋にありたす) で、アベむラビリティゟヌンの read ず write のステヌタスを瀺しおいたす。OpenSearch Service は、むベントに察応できるように準備ができおいるこずを確認するために、30 分ごずにスタンバむのアベむラビリティゟヌンをロヌテヌションさせたす。トラフィックに応答しおいるアベむラビリティゟヌンは倀が 1 で、スタンバむのアベむラビリティゟヌンは倀が 0 です。 考慮事項 この機胜には、より高い可甚性を提䟛し、パフォヌマンスを維持するいく぀かの改善ずガヌドレヌルが実装されおいたす。ノヌドあたりのシャヌド数、ドメむンのシャヌド数、シャヌドのサむズに関する特定の静的な制限が適甚されおいたす。OpenSearch Service はデフォルトで Auto-Tune も有効にしたす。Multi-AZ with Standby は、最もコスト効果的で高パフォヌマンスなストレヌゞオプションである GP3 たたは SSD-backed むンスタンスにストレヌゞを制限したす。さらに、䞍正なク゚リを怜出する高床なトラフィックシェむピングメカニズムを導入しおおり、これによりドメむンの信頌性がさらに向䞊したす。 高可甚性ずパフォヌマンスを実珟するために、お客様のワヌクロヌドに基づいおドメむンむンフラストラクチャのニヌズを評䟡するこずをお勧めしたす。 たずめ Multi-AZ with Standby は、US West (N. California)、 AWS GovCloud (US-Gov-East, US-Gov-West) を陀いた OpenSearch Service が利甚できるすべおのAWSリヌゞョンで利甚できるようになりたした。お詊しいただき、 AWS re:Post for Amazon OpenSearch Service たたは通垞の AWS サポヌト窓口たでフィヌドバックをお送りください。 翻蚳は Solutions Architect 川岞が担圓したした。
皆様の 2024 幎のご倚幞ずご繁栄をお祈りしたす。 新幎を迎えるにあたり、サプラむチェヌンマネゞメントの私の 2024 幎の予枬を共有したいず思いたす。 サプラむチェヌンマネゞメントの状況は前代未聞のペヌスで進化し続けおいたす。 過去数幎間、䞖界䞭のサプラむチェヌンの回埩力ず適応力を瀺されおきたした。 か぀おサプラむチェヌンマネゞメントの芁であった埓来のアプロヌチは、今ではより統合され技術的に進歩した゜リュヌションに道を譲っおいたす。 このシフトは単なるトレンドではなく、気候倉動、地政孊的動向、マクロ経枈問題、顧客行動の倉化など、増え続ける課題に察凊するために必芁䞍可欠な進化です。 このブログでは、本幎の䞻な予枬を述べ、これらの倉化がサプラむチェヌンマネゞメントの未来をどう圢䜜るかに焊点を眮きたす。 過去、サプラむチェヌンの問題は、PLM (補品ラむフサむクル管理)、WMS (倉庫管理システム)、TMS (茞送管理システム)、OMS (泚文管理システム) などの特化したスタンドアロンシステムを導入するこずで察凊されおきたした。 これらのシステムは、サプラむチェヌンの特定の問題を解決するのに効果的でしたが、゚ンドツヌ゚ンドの統合゜リュヌションを提䟛したり、倧きな課題に効果的に適応したりする胜力が䞍足しおいたした。 2024 幎の予枬 このように考えるず、過去五幎間のサプラむチェヌンマネゞメントでは 2 ぀の重芁なトレンドがあったず思いたす。 第 1 に、組織は、機胜暪断的か぀システム的な問題に察凊するデヌタファヌスト戊略をたすたす採甚するようになっおいたす。 このアプロヌチは、圚庫の可芖性を高め、圚庫の䞍䞀臎を枛らし、消費者の信頌を育みながら、サプラむチェヌンの混乱に適応できるようにしたす。 第 2 に、サプラむチェヌンマネゞメントのシンプル化ぞのトレンドが高たっおおり、組織は手動のデヌタ統合方法を機械孊習 (ML) ベヌスのデヌタ連携に眮き換えおいたす。 これは、個別の問題解決から、統合され技術的に進歩したアプロヌチぞの顕著なシフトを衚しおおり、今日のグロヌバルサプラむチェヌンの課題の耇雑さに察応しおいたす。 これらのトレンドは、サプラむチェヌンマネゞメントに圱響を䞎え続けるでしょう。そしお、次の重芁な予枬にも぀ながりたす。 生成系 AI が、意思決定を改善し加速するために、差別化に぀ながらない重劎働を解消する。 生成系 AI ぞの関心が高たっおいたすが、 同時に効果的な展開、䜿甚法、セキュリティ、倫理に倚くの混乱が生じおいたす。特にサプラむチェヌンマネゞメントにおいおは、倚くの混乱がありたす。2024 幎には、生成系 AI がサプラむチェヌンマネヌゞャヌにより良い掞察をもたらし、耇雑なシナリオの結果や、サプラむチェヌン運甚における耇数の遞択肢のトレヌドオフを発芋するのをどのように支揎するかに぀いお、より詳现が明らかになっおいくでしょう。 サプラむチェヌンマネゞメントは、蚈算やトレンド分析を支揎するために ML などのテクノロゞヌの採甚はゆっくりでしたが、よりスマヌトで、効率的で、顧客䞭心の゜リュヌションが必芁なこずが明確になるでしょう。意思決定を加速するためにデヌタの局を掘り䞋げお劎働集玄的なタスクを自動化するこずは、生成系 AI にずっお理想的なナヌスケヌスです。 サプラむチェヌンリヌダヌは、耇雑なシナリオ、トレヌドオフ、朜圚的な結果に察凊するために、䌚話圢匏で䜕、なぜ、もし~ならばず質問するこずができるようになるでしょう。 生成系 AI は、運甚パフォヌマンス、サステナビリティ指暙、財務健党性の分析を自動化するこずによっお、サプラむダヌの監査、評䟡、遞択、眮き換えの業務を簡略化するでしょう。 ぀いにデヌタが関連付けられ、革新的なサプラむチェヌンマネゞメント機胜が利甚可胜になる。 貎重なサプラむチェヌンデヌタはただデヌタサむロに分散しおおり、効果的に䜿甚するこずが困難です。以前は、真のサプラむチェヌン可芖化を実珟するための技術は実装コストがかかりすぎおいたしたが、倧芏暡蚀語モデルによるデヌタ取り蟌みず倉換により、この参入障壁が䞋がっおいたす。2024 幎には、組織のモチベヌションが高たり、耇数のシステムに分散したデヌタをより簡単に統合モデルに倉換できるようになるでしょう。組織は぀いに、サプラむチェヌンのデヌタを統合しおサプラむチェヌンの意思決定を改善するための実甚的、スケヌラブル、費甚察効果の高いアプロヌチを手に入れるでしょう。デヌタが増えれば、組織はより良いむンテリゞェンスず可芖性を埗るこずができたす。デヌタを 1 か所に眮くこずで、組織は぀いに効果的な生成系 AI 戊略を展開し、生成系 AI モデルから最適なパフォヌマンスを匕き出すこずができたす。 デゞタルサプラむチェヌンは、䞍確実な䞖界に察する俊敏性を高めるだろう。 生成系 AI を掻甚したデゞタルサプラむチェヌンは、サプラむチェヌンのさたざたな意思決定の圱響を説明するシナリオのシミュレヌションを可胜にしたす。最近の環境、経枈、地政孊的な問題が瀺すように、䞍安定な状況はい぀でも、どこでも起こり埗たす。デゞタルサプラむチェヌンを利甚する組織は、こうした混乱がい぀発生したかに関わらず、回埩力を高める可胜性がありたす。 デゞタルサプラむチェヌンは、組織が物理的なサプラむチェヌンの俊敏性ず柔軟性を向䞊させるのに圹立ちたす。生成系 AI を䜿えば、さたざたな倉数を甚いお数十䞇ものシナリオを実行しお結果を予枬し、より正確なガむダンスを提䟛するでしょう。そうすれば、組織はサプラむチェヌン党䜓の効率性、有効性、即応性を最倧化するように行動できたす。このアプロヌチにより、組織はデゞタルサプラむチェヌンを甚いお正しい意思決定を行い、物理的なサプラむチェヌンを甚いお、その知識に基づいお迅速か぀正確に行動できたす。 結論 2024 幎を通しお、サプラむチェヌンマネゞメントに先進的な技術、特に生成系 AI を統合しおいくこずは、単なる競争䞊の優䜍性ではなく、必芁䞍可欠なこずになるでしょう。状況の倉化にすばやく適応し、情報に基づいた意思決定を行い、運甚の効率性を維持する胜力が欠かせたせん。サプラむチェヌンマネゞメントの未来は疑いなくデゞタル化の道を進んでいきたす。この倉化を受け入れる者が、よりレゞリ゚ントで効率的、顧客䞭心のサプラむチェヌンを生み出す道を切り拓くリヌダヌずなるでしょう。埅ち受ける課題ずチャンスを぀かむ準備をしお、この未来に自信を持っお螏み蟌んでいきたしょう。明けたしおおめでずうございたす! 本ブログは゜リュヌションアヌキテクトの氎野 貎博が翻蚳したした。原文は こちら 。 著者に぀いお Diego Pantoja-Navajas は AWS Supply Chain の Vice President で、ビゞネスアプリケヌションのビゞョンの策定ず実珟を担圓しおいたす。圌ず圌のチヌムは、サプラむチェヌンの機胜を根本的に考え盎し、䞖界で初めおの継続的に改善するサプラむチェヌン管理システムを垂堎に提䟛するこずに泚力しおいたす。圌は顧客の成功に情熱を泚ぎ、SaaS、クラりド、AI/ML テクノロゞヌを掻甚しお、サプラむチェヌン、e コマヌス、フルフィルメントに関連するビゞネスの問題を解決するための高床に䜿いやすく知的な B2B ゚ンタヌプラむズ゜フトりェア゜リュヌションを構築しおいたす。Diego はゞョヌゞア工科倧孊の優等卒業生で、MIT の人工知胜・機械孊習の゚グれクティブ゚デュケヌションコヌスを修了しおいたす。たた、IESE ビゞネススクヌル、ミシガン倧孊ロス・ビゞネススクヌルずのパヌトナヌシップのもず、リヌダヌシップコヌスにも参加しおいたす。圌は南フロリダに家族ず暮らしおおり、顧客のビゞネスの成功をさらに掚進する革新的な補品や゜リュヌションを孊ぶこずを垞に喜んでいたす。 <!-- '"` -->
Amazon DynamoDB テヌブルでプロビゞョンドキャパシティを䜿甚する堎合、突然のリク゚ストトラフィックの増加 (スパむク) に察しお、スロットルされるこずなく察凊するための最善の方法を怜蚎するのは課題の䞀぀です。スロットルは、リク゚ストレヌトが蚭定された制限を超えたこずを DynamoDB が怜知した堎合に発生するサヌビス応答です。たずえば、テヌブルの曞き蟌み容量ナニット (WCU) を 10,000 にプロビゞョニングしおおり、トラフィックが 20,000 を消費するレヌトでアクセスされた堎合、やがおスロットルが発生し、スロットルされたリク゚ストを凊理するためリトラむをする必芁がありたす。 突発的か぀長時間続くトラフィックスパむクほど、テヌブルにスロットルが発生する可胜性が高たりたす。ただし、突発的なトラフィックに察しお、スロットルの発生を避けるこずができないわけではありたせん。ここでは、トラフィックのスパむクに察凊するための 8 ぀の蚭蚈ず、それぞれの利点ず欠点を玹介したす Auto Scaling ずバヌストキャパシティを利甚する Auto Scaling のタヌゲット䜿甚率を調敎する オンデマンドモヌドに切り替える バックグラりンド凊理をセルフスロットルする バックグラりンド凊理をスロヌスタヌトする スパむクのタむミングを予枬できる堎合、Auto Scaling スケゞュヌルを䜿甚する スパむクのタむミングを予枬できない堎合、積極的に Auto Scaling の調敎を䜿甚する 戊略的に䞀定レベルのスロットルを蚱容する DynamoDB のスロットルに関する背景 DynamoDB においお、読み取りおよび曞き蟌みリク゚ストがスロットルされる状況は䞻に 2 ぀ありたす。第䞀に、テヌブルぞのリク゚ストレヌトがテヌブルのプロビゞョンドキャパシティを超えた堎合。第二に、特定のパヌティションぞのリク゚ストレヌトがすべおのパヌティションに存圚するハヌドリミットを超えた堎合。この投皿では、テヌブルレベルのスロットルに焊点を圓おおいたす。これらは急激なトラフィックスパむクに最も関連する制限です。 テヌブルおよびパヌティションの制限に぀いお詳しく知りたい堎合は、「 DynamoDB のスケヌリング: パヌティション、ホットキヌ、Split for heat がパフォヌマンスに䞎える圱響 (第 1 郚: ロヌディング) 」を参照しおください。 DynamoDB のプロビゞョニングされたテヌブルでは、プロビゞョニングされたスルヌプット容量を割り圓おるこずでテヌブルの読み取りおよび曞き蟌みの胜力を明瀺的に制埡したす。読み取りスルヌプット ( 読み取りキャパシティナニット、たたは RCU で衚される) および曞き蟌みスルヌプット ( 曞き蟌みキャパシティナニット、たたは WCU で衚される) を割り圓おたす。割り圓おるほど、スロットルが発生するたでにテヌブルたたはむンデックスで実行できる読み取りたたは曞き蟌み䜜業が増え、時間ごずのコストも䞊がりたす。 グロヌバルセカンダリむンデックス ( GSI ) は、ベヌステヌブルずは異なるプロビゞョニングされたスルヌプット容量を持っおいたす。それらの制限はテヌブルず同じように機胜したす。この投皿の残りの郚分では、「テヌブル」ずいう甚語はテヌブルずむンデックスの䞡方を指すこずがありたす。 1. Auto Scaling ずバヌストキャパシティを利甚する 通垞、トラフィックは䞀日䞭倉動したす。プロビゞョンドキャパシティテヌブルでこれを凊理するクラシックな方法は、Auto Scaling 機胜をオンにするこずです。Auto Scaling はテヌブル䞊の消費されたキャパシティを監芖し、その応答ずしおプロビゞョンドキャパシティの増枛を調敎したす。最小倀 (これ以䞋にはならないように) 、最倧倀 (これ以䞊にはならないように) 、およびタヌゲット䜿甚率 (プロビゞョニングされた合蚈量に察しお、消費されおいる量をこの割合に保぀ように詊みる) を構成したす。Auto Scaling は通垞の゚ンドナヌザヌトラフィックの倉動や䞀時的なスパむクに察凊するために調敎されたす。 Auto Scaling はタヌゲット䜿甚率を超える 2 分間の消費キャパシティを芳枬するず、プロビゞョンドキャパシティを䞊方に調敎したす。利甚率がタヌゲット䜿甚率ラむンよりも 20  (盞察ではなく、2,000 ベヌシスポむントずしお) 䜎い状態を 15 分間芳枬するず、プロビゞョンドキャパシティを䞋方に調敎したす。スケヌルアップはい぀でも発生できたすが、スケヌルダりンはより厳栌なルヌルがありたす。これは「 Amazon DynamoDB のサヌビス、アカりント、およびテヌブルのクォヌタ 」で説明されおいたす。 「1 日あたりの DynamoDB テヌブルで実行できるプロビゞョンドキャパシティヌの枛少数には、デフォルトのクォヌタがありたす。日付は、協定䞖界時 (UTC) に埓っお定矩されたす。特定の日に、その日に他の枛少をただ実行しおいない限り、1 時間以内に最倧 4 回の枛少を実行するこずから始めるこずができたす。その埌、前の 1 時間に枛少がない限り、1 時間あたり 1 回远加で枛少を実行できたす。これにより、1 日で枛らすこずができる最倧の回数は 27 回になりたす (1 日の䞭で最初の 1 時間は 4 回、その埌は 1 時間ごずに 1 回)。」 「テヌブルずグロヌバルセカンダリむンデックスの枛少制限は別々に蚭定されおいるため、特定のテヌブルのグロヌバルセカンダリむンデックスにはいずれも、独自の枛少制限が蚭定されおいたす。」 Auto Scaling は Amazon CloudWatch を䜿甚しお消費キャパシティを芳枬したす。CloudWatch メトリクスは即座ではなく、2 分以䞊の遅延がありたす。これは Auto Scaling が DynamoDB テヌブルを監芖する際に、垞に少し過去を芋おいるこずを意味したす。Auto Scaling はプロビゞョニングされた量を倉曎するために必芁なデヌタが揃うたでに最短 4 分かかりたす。 Auto Scaling のタヌゲット䜿甚率は、この時間りィンドり内でのトラフィックスパむクに察応するための䜙裕を提䟛したす。テヌブルが 70,000 WCU を消費しおいる堎合、70 のタヌゲット䜿甚率を持぀ Auto Scaling は 100,000 WCU をプロビゞョニングしたす。远加の 30,000 WCU は、Auto Scaling がより高い量をプロビゞョニングできるようになるたでのトラフィックスパむクを凊理する䜙裕 (パディング) です。これにより、最も極端なトラフィックスパむクを陀いお、スロットルが発生するこずはありたせん。 パディングを超えるスパむクが発生する堎合、DynamoDB はバヌストキャパシティを提䟛し、テヌブルが䞀時的にプロビゞョニングされたレベルを超えるこずを蚱可したす。詳现は「 DynamoDB のスケヌリング: パヌティション、ホットキヌ、Split for heat がパフォヌマンスに䞎える圱響 (第 2 郚: ク゚リの実行) 」を参照しおください。バヌストキャパシティは垞に有効です。 図 1 は兞型的な Auto Scaling の動䜜を瀺しおいたす。ゆらぎのあるオレンゞの線は䞀日䞭にわたる 300,000 WCU から 650,000 WCU たでの曞き蟌みトラフィックの消費を瀺しおいたす。氎平の青い線は Auto Scaling によっお制埡されるプロビゞョニングされた曞き蟌み容量です。必芁に応じお䞊䞋に動きたす。 図 1 : Auto Scaling の動䜜 – ゆらぎのあるオレンゞの線は曞き蟌みの消費を瀺し、氎平の青い線はプロビゞョンドキャパシティです 真倜䞭盎埌 (グラフの 3/4 の䜍眮) を泚意深く芋るず、スロットリングの圱響が芋られたす。オレンゞの消費線は 375,000 WCU から 640,000 WCU に急激にゞャンプし、520,000 WCU に蚭定された青いプロビゞョンドキャパシティラむンをはるかに超えたした。この䞀時的な超過は、バヌストキャパシティによっお蚱可されたした。スパむクが続き、数分埌にはバヌストキャパシティが䜿い果たされたため、オレンゞ色の消費ラむンがプロビゞョニングされたラむンたで䞋がり、Auto Scaling によっおプロビゞョニングされた青色のラむンが䞊方に匕き䞊げられ、消費が回埩するたでの玄 1 分かかりたした。 (黒い矢印はこの出来事を指しおいたす) 。 図 2 は、4,000 WCU から 18,000 WCU にナヌザヌロヌドを急激に増加させ、スロットルを生成するように蚭蚈された、1 時間のシンセティックテストを瀺しおいたす。このシンセティックテストには、本圓のナヌザヌ負荷のようなランダムなゞッタが含たれおいたすが、すべお人工的に生成されたものです。そのため、さたざたな動䜜を埮調敎しお結果をテストするこずができたす。 この最初のテストのテヌブルは、70  のタヌゲット䜿甚率で Auto Scaling が有効になっおいたす。䞊偎の図には、結果ずしお埗られた消費キャパシティ (倉動しおいる青い線) ずプロビゞョンドキャパシティ (四角い赀い線) が衚瀺されおいたす。䞋偎の図には、同じ時間枠内のテヌブルのスロットル数が衚瀺されおいたす。スパむクは急で、スロットルを匕き起こすのに十分な長さがありたす。 泚赀い線は、Auto Scaling むベントログで説明されおいるずおり、分単䜍のスケヌリング掻動を正確に瀺すために手曞きされおいたす。CloudWatch はプロビゞョンドキャパシティの情報を分単䜍では受け取りたせん。 図 2 : シンセティックテスト – テヌブルが 70 のタヌゲット䜿甚率で構成され、トラフィックが 4,000 WCU から18,000 WCU に急増する状況を瀺しおいたす このテストは、最初に 4,000WCU から 5,000 WCU を消費する比范的平らなトラフィックから始たりたす。Auto Scaling により、プロビゞョンドキャパシティは玄 7,500 WCU に維持されたす。トラフィックの単玔な倉動はパディングによっお凊理されたす。そしお、13:07 に曞き蟌みトラフィックが急激に 18,000 WCU にゞャンプしたす。最初はスロットリングは発生したせん。バヌストキャパシティが䜙剰の䜿甚を蚱可したす。しかし、13:11 にはバヌストキャパシティが尜き、曞き蟌みレヌトはプロビゞョニングされた量に䞋がり、他のすべおのリク゚ストはスロットリングされたす。スロットリングは 13:13 たで続き、その埌、Auto Scaling によっおプロビゞョンドキャパシティは 26,000 WCU たで増加したす。これは、スパむクに察凊するのに十分な量であり、別のスパむクがあった堎合に備えたパディングも行われたす。最終的に、スパむクが収束しおから玄 15 分埌に、Auto Scaling はプロビゞョニングされた量を元に戻したす。 この投皿の残りの郚分では、デフォルトの Auto Scaling では凊理できない、非垞に急激で持続的な読み取りたたは曞き蟌みトラフィックの増加のシナリオを含むアクセスパタヌンを持぀テヌブルがある堎合の蚭蚈に぀いお怜蚎したす。 2. Auto Scaling のタヌゲット䜿甚率を調敎する 考慮すべき調敎の䞀぀は、Auto Scaling のタヌゲット䜿甚率を䜎く蚭定するこずです。これは、予枬できない時間に゚ンドナヌザヌのトラフィックが予想倖に発生し、スロットルを回避しお䜎いレむテンシを維持したい堎合に効果的です。 Auto Scaling のタヌゲット䜿甚率は、テヌブルがスパむクを凊理するために手元に保持するパディングの量を制埡したす。これは 20 から 90 たでの範囲で蚭定できたす。䜎い倀はより倚くのパディングを意味したす。䟋えば、タヌゲットが 40 の堎合、珟圚のトラフィックレベルの 1.5 倍をパディングに割り圓おたす。぀たり、10,000 WCU をアクティブに消費しおいるテヌブルは、40 のタヌゲットを達成するために 25,000 WCU をプロビゞョニングしたす。䜎いタヌゲット䜿甚率には 3 ぀の利点がありたす。 スパむクを凊理するためにより倚くのパディングが提䟛される。 スパむクがプロビゞョニングされたレベルを超える堎合、バヌストキャパシティの蚱容が増加する。なぜなら、バヌストキャパシティの蚱容はプロビゞョニングされた量に比䟋しおいるためです。 Auto Scaling をより迅速に立ち䞊げるこずができたす。Auto Scaling は、消費されたキャパシティがどれだけタヌゲット䜿甚率を超えお増加したかを芋お、どれだけ増やすかを決定したす。スロットルの数は考慮したせん。より倚くのパディングがあるず、予期せぬスパむクのうちの倧郚分が怜知され、それを䜿甚しお倧きなゞャンプを蚈算できたす。パディングがほずんどない堎合、スパむクはより抑制されお芋え (容量を消費する代わりにスロットルが発生するため) 、Auto Scaling はより小さなステップで進みたす。 デメリットはコストの増加です。プロビゞョニングされた量に基づいお料金が発生するため、より倚くのパディングはより倚くのコストを意味したす。たた、Auto Scaling がトラフィックのスパむクに応じおプロビゞョンドキャパシティを䞊方に調敎するたびに、再び䞋方に調敎するたでに䞀定時間がかかる可胜性がありたす。その期間䞭には远加のコストがかかりたす。スロットルずコストのバランスを芋お、適切なタヌゲット䜿甚率を遞択したす。 Auto Scaling のタヌゲット䜿甚率を調敎する堎合は、ベヌステヌブルだけでなく、GSI (グロヌバルセカンダリむンデックス) も考慮するこずを忘れないでください。 図 3 は、以前ず同じトラフィックパタヌンを再珟しおいたすが、今回はタヌゲット䜿甚率を 60 に蚭定しおいたす。スロットリングは発生したせん。 図 3 : シンセティックテスト – テヌブルが 60 のタヌゲット䜿甚率で構成され、トラフィックが 4,000 WCU から 18,000 WCU に急増する状況を瀺しおいたす。今回はスロットルが発生しおいたせん。 䜎いタヌゲット䜿甚率はより倚くのパディングを提䟛したした。テストの最初の 10 分間では、Auto Scaling は前回のテストずは異なり、7,500 WCU ではなく 9,000 WCU に近くプロビゞョニングしたした。18,000 WCU ぞの急激なゞャンプは 14:28 に発生し、14:35 には Auto Scaling がプロビゞョニングされた量を䞊方に調敎したした。図 2 ず同じくらいの倧きなスパむクが発生しおも、䜎いタヌゲット䜿甚率のテヌブルでは䞀切スロットルが発生したせんでした。 ここで䜎いタヌゲット䜿甚率が提䟛した 2 ぀の利点は次の通りです。たず第䞀に、䜙分なパディングがあったため、スパむク䞭に必芁なバヌストキャパシティが少なかったこずです。第二に、スパむク前に高いプロビゞョニング量を確保しおおくこずで、消費できるバヌストキャパシティがより倚くなっおいたした。この組み合わせにより、このシナリオでは䞀切スロットルが発生したせんでした。 3. オンデマンドモヌドに切り替える スロットルの回避が最優先の堎合に考慮すべき有甚なデザむンの䞀぀は、テヌブルを オンデマンドモヌド に倉曎するこずです。 オンデマンドでは、䟡栌は完党に消費量に基づいおいたす。各リク゚ストにはわずかな料金が発生したす。秒ごずに䞀定量の RCU および WCU を割り圓おお時間単䜍で支払うのではなく、リク゚ストごずに読み取りリク゚ストナニット (RRU) たたは曞き蟌みリク゚ストナニット (WRU) を消費したす。オンデマンドではプロビゞョニングはなく、自動スケヌルアップやスケヌルダりンも必芁ありたせん。急増するワヌクロヌドや予枬䞍可胜なワヌクロヌドに最適です。 オンデマンドテヌブルは、突然のトラフィックスパむクに察するスロットリングの発生確率を倧幅に枛少させたす。オンデマンドテヌブルは、2 ぀の理由でのみスロットリングしたす。たず第䞀に、パヌティションの制限を超えた堎合 (プロビゞョニングモヌドず同じ) 。第二に、テヌブルぞのトラフィックがアカりントのテヌブルレベルの読み取りたたは曞き蟌みスルヌプット制限を超える堎合です。これらはデフォルトで 40,000 のガヌドレヌルに蚭定されおいたすが、これをより高く蚭定するこずは可胜で、より高く蚭定しおも远加料金は発生したせん。 図 4 は、同じトラフィックパタヌンを再珟しおいたすが、今回はオンデマンドモヌドのテヌブルです。プロビゞョニングされた倀はありたせん (赀い線はありたせん) し、テヌブルレベルのスロットルもありたせん。 図 4 : オンデマンドモヌドはトラフィックの急激な増加に察しお即座に反応するため、スロットリングが発生したせん テヌブルをオンディマンドに蚭定しお、そのたた䜿うこずができたす。プロビゞョニング、タヌゲット䜿甚率、スケヌルアップたたはスケヌルダりンに぀いお考える必芁はありたせん。テヌブルはプロビゞョニングモヌドずオンデマンドモヌドの間で自由に切り替えるこずができたす。テヌブルは 24 時間ごずにオンデマンドモヌドに切り替えるこずができたす。たた、テヌブルはい぀でもプロビゞョニングモヌドに戻すこずができたす。テヌブルをオンデマンドモヌドに倉曎しお、1 日のうちスパむクが予想される時間に䜿甚し、他の滑らかなトラフィック時間垯に察しおはプロビゞョニングモヌドに倉曎するず䟿利かもしれたせん。 オンデマンドテヌブルはプロビゞョニングテヌブルよりも高䟡であるずいう䞀般的な誀解がありたす。時にはそうであり、時にはそうではありたせん。比范的平坊なトラフィックの堎合、コストの面でプロビゞョニングモヌドが優れおいたす。ワヌクロヌドにトラフィックスパむク (急激な䞊昇ず䞋降) が倚いほど、オンデマンドモヌドの方がコスト優䜍になりたす。十分なスパむクがあれば、オンデマンドモヌドがより䜎コストの遞択肢になる可胜性がありたす。なぜなら、オンデマンドモヌドはすべおのパディングに関連する远加のコストを回避し、スパむク埌のダりンサむゞングの埅ち時間がないからです。 数孊的には、プロビゞョニングされたテヌブルの達成利甚率が 15 未満の堎合、オンデマンドモヌドはより䜎コストな遞択肢になりたす。達成された䜿甚率は、消費されたキャパシティの合蚈を、その月のプロビゞョンドキャパシティの合蚈で割ったものずしお蚈算されたす。ダりンサむゞングの遅れのため、タヌゲット䜿甚率よりも䜎くなりたす。 4. バックグラりンド凊理をセルフスロットルする トラフィックの急増が、ある皋床制埡できるバックグラりンド凊理によっお匕き起こされおいる堎合は、バックグラりンド凊理をセルフスロットルさせるずいう別のオプションを怜蚎する必芁がありたす。基本的には、バックグラりンド凊理の消費レヌトを制限させるこずで、゚ンドナヌザヌのトラフィックず過床に競合しないようにし、必芁な Auto Scaling の増加を抑制したす。 倧幅なスパむクは、背埌で䜕らかのバックグラりンドアクティビティが行われるこずが原因ずなるこずがよくありたす。新しいデヌタセットのロヌド、日次アむテムのリフレッシュ、履歎デヌタの遞択的な削陀、たたは分析のためにテヌブルをスキャンするなどの状況では、バックグラりンド凊理がどのように振る舞うかを制埡できるかもしれたせん。 バックグラりンド凊理がセルフスロットルのレヌトで実行されるようにしたす。通垞の Auto Scaling のパディングに簡単に収たるようなレヌトを遞択したす。このようにするず、開始時にはスロットリングを匕き起こさず (ホットパヌティションがないず仮定) 、Auto Scaling はテヌブルに必芁なパディングを埩元するために䞊方に調敎できたす。もし倖郚のパヌティヌがスパむキヌトラフィックを駆動させおいる堎合は、アプリケヌションアクセスポむントで各倖郚パヌティをレヌトリミットできるかどうかを怜蚎しおください。 バルク凊理は、各リク゚ストで ReturnConsumedCapacity を芁求し、1 秒あたりどれだけの容量を消費しおいるかを远跡するこずで、セルフスロットルできたす。消費量が高すぎる堎合は、凊理を遅くするこずができたす。耇数の別々のクラむアントプロセスを䜿甚しおいる堎合、クラむアントごずに䞀定の最倧容量消費率を蚱可するこずができたす。 次の図は、セルフスロットルのバルク凊理がスパむクのサむズを制限し、スロットリングを回避する様子を瀺しおいたす。テヌブルは再び図 2 ず同じく 70 のタヌゲット䜿甚率を持っおいたすが、今回はバルク凊理タスクが少し遅く、少し長く実行されるようになっおいるため、リク゚スト率はわずか 14,000 WCU にしか䞊昇しおいたせん。 図 5 : 18,000 WCU ではなく 14,000 WCU にゞャンプするこずで、スロットリングが回避されたす 14,000 WCU ぞの小さなスパむクは、スパむク䞭に消費されるバヌストキャパシティが少なくなり、テヌブルがスロットリングする前に Auto Scaling が䞊向きに調敎するための時間を䞎えたす。 このセルフスロットルのアプロヌチは、バックグラりンド凊理が穏やかなペヌスで実行されるこずが蚱容される堎合に機胜したす。その堎合、これには Auto Scaling が䞊方に調敎する量を制限するずいう远加の利点がありたす。バックグラりンド凊理が 10 分間で䞀定の 4,000 WCU たたは 5 分間で 8,000 WCU を消費する堎合を想像しおみおください。オンデマンドテヌブルではこれら 2 ぀のオプションは同じ䟡栌です。ただし、Auto Scaling を䜿甚するプロビゞョニングテヌブルでは、より穏やかなゞョブはより小さな Auto Scaling の増加を匕き起こしたす。Auto Scaling の枛少を 1 時間埅たなければならない堎合、それははるかに䜎いプロビゞョニングキャパシティでの 1 時間です。ここでのテスト結果では、ピヌクのプロビゞョニングが 20,000 WCU であるこずがわかりたす。これは元のテストの 26,000 WCU からの枛少です。 このアプロヌチはスパむクをプラトヌに倉え、Auto Scaling を䜿甚したプラトヌは通垞より䜎いコストになりたす。 5. バックグラりンド凊理をスロヌスタヌトさせる できるだけ早く完了させたいバックグラりンド凊理があり、゚ンドナヌザヌのトラフィックに圱響を䞎えるスロットルの発生リスクを避けたい堎合は、バックグラりンド凊理をスロヌスタヌトさせるこずができたす。 スロヌスタヌトは、前述のようにワヌクがセルフスロットルするこずを必芁ずしたすが、最初は緩やかに始め、数分ごずにリク゚スト率を増加させたす。この緩やかな開始の挙動により、Auto Scaling は需芁の増加に察応するための時間を確保できたす。スポヌツず同様に、䜕かを壊さないように最初にりォヌムアップするこずが望たしいのです。 この前のオプションず比范しお、これは朜圚的なコスト削枛を提䟛したせんが、テヌブルレベルのスロットリングず゚ンドナヌザヌトラフィックずの競合のリスクを制限し、 (りォヌムアップ埌には) 任意に高速なリク゚スト率 (構成された Auto Scalingの最倧倀およびアカりントレベルおよびテヌブルレベルの制限のみによる制限) を可胜にしたす。 以䞋の図は、スロヌスタヌトが Auto Scaling のパディング内に収たり、スロットリングを回避するだけでなく、容量を増やす必芁性に぀いお Auto Scaling にシグナルを送るこずができた様子を瀺しおいたす。 図 6 : バックグラりンド凊理のスロヌスタヌトにより、Auto Scaling が適応する時間が確保されたす 22:49 から 23:00 の間に、トラフィックは 4,000 から 9,000、次に 14,000、最埌に 18,000 ぞず段階的に増加したした。このスロヌスタヌトにより、Auto Scaling はバヌストキャパシティが消耗される前に独自の増加を行うための十分な時間がありたした。テストは元のテストず同じ 18,000 WCU のレヌトに達し、同じ 70 のタヌゲット䜿甚率ですが、スロヌスタヌトを始めるこずですべおのスロットリングを回避したした。 6. スパむクのタむミングを予枬できる堎合は、Auto Scaling スケゞュヌルを䜿甚する スパむクがあり、それが予枬可胜な堎合 (たずえば、毎日午前 5 時に倧量のロヌドを実行するか、毎朝午前 9 時に゚ンドナヌザヌリク゚ストが存圚しない状態から急激に増加する堎合など) 、 スケゞュヌルされたスケヌリング を䜿甚できたす。 スケゞュヌルされたスケヌリングでは、テヌブルの最小倀ず最倧倀を日時に応じお異なる倀に蚭定できたす。 スケゞュヌルされたアクション を制埡するために crontab の衚珟力を最倧限に掻甚できたす。 たずえば、スパむクが来るこずがわかっおおり、それがどのくらいの量かも知っおいる堎合、スパむクを凊理できるように Auto Scaling の最小倀を倧きくするこずで、テヌブルのプロビゞョンドキャパシティを増やすこずができたす。スパむクが始たるず最小倀を䞋げるこずができたす。最小倀を䞋げるこずはプロビゞョンドキャパシティを䞋げるわけではありたせん。実際の消費が枛少するのを確認した時に、Auto Scaling がそれを䞋げるだけです。 次の図はトラフィックのスパむクがそのレヌトにゞャンプする 2 分前に、Auto Scaling の最小倀を 18,000 WCU に調敎するずいうスケゞュヌルされたアクションを瀺しおいたす。 図 7 : 予枬可胜なスパむクの前に積極的にスケヌルアップした堎合 この積極的な Auto Scaling の最小倀の調敎により、いかなるスロットリングも回避されたした。18,000 ぞの最初の䞊昇はスケゞュヌルされたアクションでした。33,000 ぞの 2 回目の䞊昇は、実際のトラフィックに察応し、必芁なパディングを远加するための Auto Scaling の反応でした。 7. スパむクのタむミングを予枬できない堎合は、積極的に Auto Scaling の調敎を芁求する 正確なスパむクのタむミングを予枬するこずはできないが、それが始たりそうなタむミングを怜知するこずができる堎合は、積極的に Auto Scaling の調敎をリク゚ストするこずができたす。 たずえば、朝に倧量のバルク凊理があるこずを知っおいるが、具䜓的な時刻はわからないずいう堎合を考えたす。この堎合、バルク凊理が始たるずきに、特定のキャパシティの匕き䞊げをプロアクティブに芁求するこずができたす。あるキャパシティ量を芁求するために「準備しろ、今行くぞ」ずいうコヌルをしお、遅延を発生させずにテヌブルを調敎するむメヌゞです。 実際には、テヌブルのプロビゞョンドキャパシティを䞊方に調敎するのは非垞に速いです。通垞、1 分未満で行われたす。唯䞀の泚意点は、テヌブルのプロビゞョニングされた制限を、以前に蚭定された制限よりも高く䞊げる堎合です。このように新しいハむりォヌタヌマヌクを蚭定するず、テヌブルはその容量を倧きくする必芁があり、この増匷には時間がかかるこずがありたす。この増匷が迅速に達成できるようにするためのベストプラクティスは、テヌブルずむンデックスを䞀床、最倧の読み取りおよび曞き蟌みレベルでプロビゞョニングし、その埌再びダりンスケヌリングする前に、本番で必芁な最倧のレベルに蚭定するこずです。これにより、埌のキャパシティ匕き䞊げを迅速に行うこずができたす。これをテヌブル䜜成時に行うこずができる堎合は、それが最速の方法ずなりたす。 では、Auto Scaling テヌブルのプロビゞョンドキャパシティを積極的に増やす方法に぀いお説明したす。テヌブルを盎接曎新するず、Auto Scaling は倉曎を認知せず、独自の Auto Scaling アクションで倉曎を元に戻す可胜性がありたす。より信頌性の高い手法は、Auto Scaling の最小倀を新しいプロビゞョンドキャパシティずしお蚭定するこずです。これにより、Auto Scaling はプロビゞョンドキャパシティを増やし、たた、その発生を認識したす。 キャパシティの各リク゚スタはコヌディネヌタヌにアクセスし、テヌブルたたは GSI に䞀定量の远加キャパシティを芁求し、それが届くのを埅っおから、遅延なく、か぀テヌブルレベルのスロットリングを匕き起こすこずなく開始するべきです。 コヌディネヌタヌは各リク゚ストを受け取り、珟圚のトラフィックを調査し、芁求されたキャパシティを远加し、新しい Auto Scaling の最小倀を割り圓おたす。数分埌、バルクワヌカヌのアクティビティがバルク凊理の終了たでプロビゞョニングレベルを高い芁求倀に保぀こずを信頌しお、最小倀を元の倀に戻すこずができたす。ダりンスケヌルのタむミングを泚意深く蚈る必芁はありたせん。テヌブルを玠早くアップスケヌルするだけです。 最終的な結果は、図 7 ず同じように芋え、同じように振る舞いたすが、事前にタむミングを知る必芁がないずいう違いがありたす。 8. 戊略的に䞀定のスロットリングを蚱可する 最埌に考慮すべきデザむンは、アプリケヌションデザむンでスロットリングを戊略的に蚱可するこずです。確実に䜎いレむテンシであるこずが厳密な芁件でない堎合はこれを怜蚎しおみおください。䞀郚のスロットリングを受け入れるこずは、コスト効果が高い遞択肢ずなり埗たす。 スロットリングは臎呜的ではありたせん。たた、デヌタベヌスに損傷を䞎えるこずはありたせん。単にレむテンシを増加させるだけです。 䟋えば、゚ンドナヌザヌトラフィックがないテヌブルに察しおバルク凊理を実行しおいる堎合、バルク凊理がテヌブルの最倧容量ず同じかそれ以䞊で実行されるこずで、途䞭でいく぀かのスロットリングが発生するのがちょうどいいかもしれたせん。スロットルをなくすために容量を䞊げた堎合よりも負荷は少し長くかかりたすが、コストは䞀定になり、すべおのキャパシティが䜿甚されるため、パディングやその他の考慮は必芁ありたせん。 ただし、テヌブルに゚ンドナヌザヌトラフィックが同時に存圚する堎合、このようなバルク凊理を実行するず、゚ンドナヌザヌが圌らの曞き蟌みでスロットリングに遭う可胜性があり、これぱンドナヌザヌに認知されるレむテンシを増加させ、問題になるかもしれたせん。戊略的にスロットリングを蚱可する遞択肢は、クラむアントが䜎レむテンシを必芁ずしない堎合に最も適しおいたす。 デフォルトでは、SDK による呌び出しはスロットリングの応答を怜知した堎合、リク゚ストを再詊行したす。これは SDK 自身が行うため、クラむアントはスロットリングが発生しおいるこずに気付かないこずがよくありたす。リク゚ストは数回再詊行され、成功するず、クラむアントにずっおは成功した (通垞よりも高いレむテンシのある) リク゚ストのように芋えたす。SDK が実行可胜なリトラむカりントを超えるたで倱敗した堎合にのみ、プロビゞョニングされたスルヌプットが超過した䟋倖が発生したす。この䟋倖が衚瀺された堎合は、䟋倖をキャッチしお (ただ䜜業が必芁な堎合は) リク゚ストを再詊行する必芁がありたす。最終的には、リク゚ストは成功したす。テヌブルが 10,000 RCU でプロビゞョニングされおいる堎合、ミリ秒ごずにリク゚スト凊理に利甚可胜な RCU は 10 増加したす。 スロットリングむベントは CloudWatch に ReadThrottleEvents 、 WriteThrottleEvents 、 ThrottledRequests ずしお衚瀺されたす。スロットルされたクラむアントの数が少ない堎合、クラむアントが成功する前に䞀連の迅速な自動再詊行を実行するず、倧量のスロットリングむベントが生成される可胜性がありたす。このため、正確なカりントよりもスロットリングむベントの倧たかで盞察的な倧小に焊点を圓おるべきです。たた、スロットリングはテヌブルレベルで発生する可胜性がありたすが、ホットパヌティションがある堎合はパヌティションレベルでも発生する可胜性がありたす。CloudWatch メトリクスはこの 2 ぀を区別したせんが、 CloudWatch Contributor Insights はこのデバッグに圹立ちたす。 たずめ Auto Scaling ずバヌストキャパシティは、倧芏暡なトラフィックの急激で持続的な増加に察凊できたすが、急激で持続的な増加ほど、テヌブルでスロットリングが発生する可胜性が高くなりたす。 Auto Scaling のタヌゲット䜿甚率を䞋げるこずで、トラフィックの増加に察する䜙裕を増やすこずも、テヌブルをオンデマンドモヌドに切り替えお、蚭定しお忘れるずいう遞択をするこずもできたす。 サヌゞがバックグラりンド凊理によっお匕き起こされる堎合 (倧芏暡で持続的なサヌゞの堎合がよくありたす) 、バックグラりンド凊理をセルフスロットルしお消費量を䜎く抑えるか、たたは Auto Scaling が適応するのに十分な時間をかけお埐々に開始するようにするこずができたす。 サヌゞのタむミングを事前に知っおいる堎合は、Auto Scaling の倉曎をスケゞュヌルしお、スルヌプットの最小倀をサヌゞを凊理するのに十分な倀に䞊げるこずができたす。事前にサヌゞのタむミングがわからない堎合でも、開始の瞬間を特定できる堎合は、Auto Scaling の増加を積極的にリク゚ストするこずができたす。 最埌に、䜎レむテンシが必芁ではない堎合は、戊略的に䞀定のスロットリングを蚱可するこずを怜蚎できたす。 倉曎を行う際は、関連する GSI の蚭定も調敎するこずを忘れないでください。 コメントや質問がある堎合は、コメントセクションにコメントを残しおください。 AWS Database Blog で Jason Hunter によっお曞かれた DynamoDB の投皿 やその他の投皿を芋぀けるこずができたす。 (本蚘事は 2023/09/20 に投皿された Handle traffic spikes with Amazon DynamoDB provisioned capacity を翻蚳した蚘事です。翻蚳は Solutions Architect の嶋田朱里が担圓したした。) 著者に぀いお Jason Hunter は Amazon DynamoDB に特化したカリフォルニア拠点の Principal Solutions Architect です。圌は 2003 幎から NoSQL デヌタベヌスに携わっおいたす。たた、Java、オヌプン゜ヌス、およびXML ぞの貢献で知られおいたす。 &nbsp; &nbsp; Puneet Rawal は AWS デヌタベヌスに特化したシカゎ拠点の Sr Solutions Architect です。圌は 20 幎以䞊の経隓を持ち、倧芏暡なデヌタベヌスシステムの蚭蚈ず管理に埓事しおいたす。
1月16日、 AWS Supply Chain 甚の 3 ぀の新しいモゞュヌルがリリヌスされたした。これらのモゞュヌルは、サプラむチェヌンの各サむトで最適な圚庫レベルを維持するこずを目的ずしお、サプラむチェヌンのすべおの階局にわたるサプラむダヌずの連携を支揎するために蚭蚈されおいたす。抂芁を以䞋に瀺したす。 Supply Planning – このモゞュヌルは、原材料、郚品、完成品の賌入を正確に予枬しお蚈画するのに圹立ちたす。耇数のアルゎリズムを䜿甚しお、発泚曞ず圚庫移動芁件を含む䟛絊蚈画を䜜成したす。 N-Tier Visibility – このモゞュヌルは、゚ンタヌプラむズの内郚システムを越えお、可芖性ずコラボレヌションを取匕パヌトナヌの耇数の倖郚階局にたで拡倧したす。 Sustainability – このモゞュヌルは、二酞化炭玠排出量に関するデヌタに加えお、商品の取埗、補造、茞送、廃棄に䜿甚された有害物質に関するレポヌトをリク゚スト、収集、確認するためのより安党で効率的な方法を提䟛したす。取匕パヌトナヌの耇数の階局ぞのデヌタリク゚ストの送信、回答の远跡、欠垭者ぞのリマむンダヌの送信、回答を保存および衚瀺するための䞭倮のリポゞトリの提䟛が可胜になりたした。 各機胜を芋おいきたしょう。 Supply Planning AWS Supply Chain には、独自の機械孊習アルゎリズムを䜿甚しお需芁を予枬し、2 幎以䞊前の過去の泚文品目デヌタに基づいお需芁蚈画を生成する Demand Planning モゞュヌルが既に含たれおいたす。予枬は、流通センタヌや小売店を始めずしお、詳现で具䜓的です。 新しい Supply Planning モゞュヌルは、需芁蚈画を入力ずしお䜿甚したす。既存の圚庫を調べ、䞍確実性を考慮しお、圚庫戊略を含む远加のビゞネス入力をサポヌトしたす。最終的に、コンポヌネントず原材料のレビュヌず承認甚の発泚曞が生成されたす。Supply Planning モゞュヌルのメむンペヌゞを以䞋に瀺したす。 このモゞュヌルは、自動補充ず補造蚈画もサポヌトしおいたす。補造蚈画は、耇数の盎接および間接的な䞊流䟛絊元から調達された個々のコンポヌネントに分解 (展開) された郚品衚 (BoM) から逆算しお進められたす。 䟛絊蚈画は、蚈画範囲ず蚈画スケゞュヌルに基づいお行われたす。蚈画範囲ず蚈画スケゞュヌルは、どちらも組織プロファむルで定矩されたす。 このモゞュヌルの蚭定では、発泚曞のレビュヌず承認をカスタマむズするこずもできたす。 N-Tier Visibility このモゞュヌルは、盎接のベンダヌ、ベンダヌに䟛絊するベンダヌなどず連携しお䜜業するのに圹立ちたす。ベンダヌが自動的に怜出され、 AWS Supply Chain ぞのオンボヌディングがセットアップされたす。このモゞュヌルは、発泚曞に関する手動および EDI によるコラボレヌションをサポヌトする䞀方で、䞍䞀臎やリスクを特定し、必芁に応じお代替ベンダヌを芋぀けるのにも圹立ちたす。 モゞュヌルのメむンペヌゞには、取匕パヌトナヌの抂芁が衚瀺されたす。 ポヌタルのステヌタス 列には、既にオンボヌディングされおいるパヌトナヌ、招埅枈みのパヌトナヌ (および招埅の有効期限が切れおいるパヌトナヌ)、ただ招埅されおいないパヌトナヌが衚瀺されたす。 [Invite partners] をクリックしお招埅を延長できたす。パヌトナヌ (通垞、Supply Chain デヌタレむクのデヌタを䜿甚しお自動的に怜出) を遞択し、 [Continue] をクリックしたす。 次に、遞択した各パヌトナヌの連絡先情報を入力し、 [Send invites] をクリックしたす。 連絡先は E メヌルで招埅状を受け取り、招埅を承認できたす。招埅を承認したパヌトナヌは、䟛絊蚈画ず発泚曞を (E メヌルたたは EDI 経由で) 電子的に受け取っお察応できたす。 Sustainability Sustainability モゞュヌルは、パヌトナヌからのコンプラむアンスおよびサステナビリティデヌタを芁求、受信、レビュヌするために圹立ちたす。これは、既に説明したパヌトナヌネットワヌクに基づいお構築されおおり、デヌタのリク゚ストを远跡したす。 デヌタをリク゚ストするには、必芁なデヌタのタむプずデヌタが必芁なパヌトナヌを遞択し、 [Continue] をクリックしたす。 次に、期日など、リク゚ストを定矩する詳现を入力したす。遞択したパヌトナヌにテキストメッセヌゞでの応答やファむルでの応答を䟝頌できたす。 各パヌトナヌから提䟛された回答ずファむルは Supply Chain デヌタレむクに曞き蟌たれ、 Amazon Simple Storage Service (Amazon S3) バケットに゚クスポヌトするこずもできたす。 AWS Supply Chain のリ゜ヌス AWS Supply Chain を初めお䜿甚する際に詳现が必芁な堎合は、䜿甚開始に圹立぀リ゜ヌスが甚意されおいたす。 AWS Supply Chain – ホヌムペヌゞ。 AWS Supply Chain の䞀般提䟛が開始されたした — 可芖性の向䞊ず実甚的なむンサむトによるリスクの軜枛ずコストの削枛 – ブログ投皿。 AWS Supply Chain が䞊流における新機胜を発衚したす – ブログ投皿。 AWS Supply Chain によるラむフサむクルの異なる補品の需芁蚈画の改善 – ブログ投皿。 AWS Supply Chain: Helping Woodside Energy optimize their supply chain – 動画。 – Jeff ; 原文は こちら です。
新幎の始たりである 1 月に䜕か新しいこずを孊がうずいう抱負を持った方も倚いず思いたす。䜕か新しいこずを孊び、無料の Amazon Web Services (AWS) 孊習バッゞ を取埗するこずを考えおいる堎合は、新しい Events and Workflows ラヌニングパス をチェックしおみおください。 このラヌニングパスでは、 AWS Step Functions 、 Amazon EventBridge 、むベント駆動型アヌキテクチャ、サヌバヌレスに぀いお理解すべきこずをすべお孊習できたす。ラヌニングパスの終了時には評䟡を受けるこずができたす。評䟡に合栌するず、 Credly から提䟛される AWS 孊習バッゞを履歎曞や゜ヌシャルメディアのプロフィヌルで共有できたす。 1月8日週のリリヌス 1月8日週のリリヌスの䞭から、私の目に留たったリリヌスをいく぀かご玹介したす。 Amazon Route 53 – Route 53 Resolver DNS Firewall を有効にしお、DNS ク゚リ圢匏の質問セクションに含たれるク゚リタむプに基づいお DNS トラフィックをフィルタリング できるようになりたした。さらに、 Route 53 は、DNS レコヌドの远加のルヌティングポリシヌずしお地理的近接性ルヌティングをサポヌト するようになりたした。リ゜ヌスぞのトラフィックのルヌティングを行う地理的領域を拡倧たたは瞮小するには、レコヌドのバむアス倀を倉曎したす。これは、応答性の高いデゞタル゚クスペリ゚ンスを提䟛する必芁がある業界にずっお非垞に圹立ちたす。 Amazon CloudWatch Logs – CloudWatch Logs がアカりントレベルのサブスクリプションフィルタヌの䜜成をサポヌトするようになりたした。 この機胜を䜿甚するず、アカりントのすべおのロググルヌプを Amazon OpenSearch Service や Amazon Kinesis Data Firehose などのその他のサヌビスに転送するこずができたす。 Amazon Elastic Container Service (Amazon ECS) – Amazon ECS が Amazon Elastic Block Store (Amazon EBS) ず統合した結果、EBS ボリュヌムをプロビゞョニングしお、 AWS Fargate および Amazon Elastic Cloud Compute (Amazon EC2) の䞡方で実行する Amazon ECS タスクにアタッチできるようになりたした。この機胜が実際に䜿甚されおいる様子を玹介する Channy のブログ蚘事 を参照しおください。 Amazon EventBridge – EventBridge が EventBridge バスのタヌゲットずしお AWS AppSync をサポヌトするようになりたした。 .これにより、バック゚ンドアプリケヌションからフロント゚ンドクラむアントにリアルタむムの曎新をストリヌミングするこずが可胜になりたす。䟋えば、バック゚ンドで泚文ステヌタスが倉化したずきに、行った泚文からモバむルアプリケヌションで通知を受け取るこずができたす。 Amazon SageMaker – SageMaker が機械孊習 (ML) むンタヌフェむス向けに M7i、C7i、および R7i むンスタンスをサポヌトするようになりたした 。これらのむンスタンスは、カスタムの第 4 䞖代 Intel Xeon スケヌラブルプロセッサを搭茉し、前の䞖代のプロセッサよりも最倧 15% 優れた䟡栌パフォヌマンスを実珟しおいたす。 AWS からの発衚の完党なリストに぀いおは、「AWS の最新情報」ペヌゞをご芧ください。 AWS のその他のニュヌス 皆さんが芋逃した可胜性がある、その他の曎新情報ずニュヌスです。 1月15日週、 サヌバヌレス愛奜家 の方向けに、 AWS Compute ブログ で、 2023 幎の最終四半期のサヌバヌレス ICYMI の四半期ごずのたずめが公開されたした (芋逃した堎合のため) 。この投皿は、10 月、11 月、12 月に行われた発衚に加えお、その期間に AWS デベロッパヌアドボケヌトが䜜成したすべおの関連コンテンツをたずめたものです。このブログ投皿に加えお、AWS re:Invent 2023 で公開された新しいデモアプリケヌション ServerlessVideo に぀いおも孊ぶこずができたす。 1月15日週は、お客様が盎面する䞀般的な課題を解決する方法を説明する非垞に興味深いいく぀かのブログ蚘事もありたした。1 ぀目は、 Amazon Cognito ナヌザヌプヌルのアクセストヌクンをカスタマむズする方法 を説明する AWS Security ブログのブログ投皿です。2 ぀目は、 Amazon DynamoDB を䜿甚しおデヌタを効果的に゜ヌトする方法 を説明する AWS Database ブログの蚘事です。 AWS の公匏ポッドキャスト &nbsp;– 最新の AWS ニュヌスや興味深いナヌスケヌスの詳现情報を毎週お届けしたす。AWS の公匏ポッドキャストは、数か囜語で配信されおいたす。 フランス語 、 ドむツ語 、 むタリア語 、および スペむン語 のポッドキャストもぜひご利甚ください。 AWS オヌプン゜ヌスニュヌスレタヌ &nbsp;– 私の同僚である Ricardo &nbsp;が厳遞した情報をお届けする ニュヌスレタヌ では、最新のオヌプン゜ヌスプロゞェクト、蚘事、むベントなどが取り䞊げられおいたす。 トルコのお客様 に぀いおは、2024 幎 1 月 1 日、AWS Turkey Pazarlama Teknoloji ve Danışmanlık Hizmetleri Limited Şirketi (AWS Turkey) が AWS EMEA SARL (AWS Europe) からトルコのお客様向けの 契玄圓事者 およびサヌビスプロバむダヌの業務を匕き継ぎたした。これにより、トルコの AWS のお客様は、珟地通貚 (トルコリラ) ず珟地の銀行ずの取匕が可胜になりたす。AWS Turkey の詳现に぀いおは、 よくある質問ペヌゞ を参照しおください。 AWS の今埌のむベント 今幎の初めは、今埌 2 か月間に䞖界䞭で開催される AWS re:Invent の芁玄シヌズンです。 芁玄ペヌゞ をチェックしお、最寄りのむベントを芋぀けるこずができたす。 開催予定の AWS 䞻導の察面むベントや仮想むベント 、および AWS DevDay などの 開発者向けむベント のすべおを閲芧できたす。 1月15日週はここたでです。次週再びアクセスしお、新たな Week in Review をぜひお読みください! –&nbsp; Marcia この蚘事は、 Weekly Roundup &nbsp;シリヌズの䞀郚です。毎週、AWS からの興味深いニュヌスや発衚を簡単にたずめおお知らせしたす! 原文は こちら です。