TECH PLAY

Nginx

むベント

該圓するコンテンツが芋぀かりたせんでした

マガゞン

技術ブログ

ビデオホスティングはストレヌゞを倧量に必芁ずするビゞネスです。フルHD 1080p 解像床の映画を玄 100 䞇本扱う䞭皋床の事業者でも、玄 10 ペタバむトPBのストレヌゞが必芁になりたす。 Amazon Simple Storage Service  ã¯ã€ã‚¹ã‚±ãƒŒãƒ©ãƒ“リティ、パフォヌマンス、そしおコスト効率の面で長幎の実瞟がありたす。ずはいえ、継続的な FinOps プラクティスを適甚するこずで、コスト効率を高め、クラりドのコストモデルから埗られるビゞネス䟡倀を最倧化するこずができたす。 このブログでは、ビデオホスティングのお客様が Amazon S3 のコストを 70% 削枛するのに AWS がどのように圹立ったかを説明しおいたす。その成果は、AWS のネむティブツヌルを掻甚しお䜕癟䞇もの動画ファむルのラむフサむクルを理解し、その埌、Just-in-Timeの動画ホスティングプラットフォヌムのアヌキテクチャを埮調敎するこずで達成されたした。 AWS Cost and Usage Reports を䜿甚しお問題の芏暡を特定する ビゞネスの成長に䌎い、お客様は Amazon S3 のコストが着実に増加しおいるこずに気づきたした。S3 コストはむンフラ総コストの 40% を占めおいたした。コストの党䜓像を把握するには、通垞、 AWS Cost Explorer から始めるのが最適です。ただし、Amazon S3 のコストは、ストレヌゞクラスやアクセスパタヌンなど、さたざたな芁因の圱響を受ける可胜性があるため、 AWS Cost and Usage Reports CURを䜿甚しおより詳现な分析を行う必芁がありたす。 AWS ãƒ–ログ「 Analyze Amazon S3 storage costs using AWS Cost and Usage Reports, Amazon S3 Inventory, and Amazon Athena 」で説明されおいるアプロヌチに埓い、AWS は Amazon S3 の総コストを次のグラフのように 4 ぀の䞻芁な構成芁玠に詳しく分類したした。 図1: AWS Cost and Usage Reports のデヌタから生成されたS3のコスト内蚳 お客様は、S3 Standard、S3 Standard Infrequent Access、S3 Glacier Instant RetrievalGIRの 3 ぀の Amazon S3 ストレヌゞクラスを䜿甚しおいたした。䞀芋したずころ、S3 のコストの倧郚分88は GIR によるものでした。具䜓的には、GET API33.7ず Retrieval28.6のコストは、䞀般的な䜿甚パタヌンず比范しお異垞に高いようです泚Glacier Instant Retrieval クラスの堎合、S3 GET ず Retrieval のコストは S3 オブゞェクトにアクセスするたびに発生したす。 S3 GIR は「ほずんどアクセスされないが、ミリ秒単䜍で取埗する必芁がある長期にわたるデヌタ」を察象ずしおいるため、倧量の取埗操䜜は、意図したアヌキテクチャ蚭蚈ずプラットフォヌムの実際のアクセスパタヌンずの間に䞍䞀臎があるこずを瀺しおいたした。 アヌキテクチャず朜圚的な問題を理解する お客様のワヌクロヌドは、䞖界䞭の䌁業顧客向けのセヌルスおよびマヌケティングビデオをホストする SaaS プラットフォヌムです。ほずんどの動画は少人数の芖聎者が芖聎するこずを想定しおいたため、お客様は Just-in-Time ProcessingJITPアヌキテクチャを採甚したした。このアプロヌチにより、芁求された堎合にのみビデオセグメントを特定の圢匏にトランスコヌドし、同じビデオの耇数のレンディション蚳泚同䞀のオリゞナル動画を異なる解像床、ビットレヌト、フォヌマット、コヌデックなどに倉換したバリ゚ヌションのこずを保存する必芁がなくなるため、ストレヌゞコストを削枛できたす。 図2Just-in-Time ProcessingJITPアヌキテクチャ コストをさらに最適化するために、お客様は、動画ファむルが 30 日経過しおアクセスされる可胜性が少なくなった時点で、自動的に S3 GIR ストレヌゞクラスに移行する Amazon S3 ラむフサむクル蚭定 これにはいくらかのコストがかかりたすが、MB サむズのオブゞェクトではごくわずかですを実装したした。これらのファむルが䌑止状態のたたである限り、S3 GIR は S3 Standard ず比范しおストレヌゞコストを最倧 80% 削枛できるずいう考えでした。 ただし、GIR に保存されおいるファむルに予期せずアクセスされた堎合、Retrieval ず GET リク゚ストの远加料金が発生したす Amazon S3 の料金ペヌゞ に詳述されおいたす。1TB のビデオデヌタを GIR に保存するには 1 か月あたり玄 4 ドルS3 Standard では 21 ドルかかりたすが、同じデヌタを GIR から䞀床取埗した堎合、Retrieval ず GET のコストは合蚈で玄 30 ドルになり、意図した節玄額はすぐに盞殺されたす。 図3S3 GIR 内のファむルを取埗したずきのコストぞの圱響 その結果、コスト最適化の取り組みは、次の 2 ぀の重芁な問いに答えるこずに焊点を圓おたした。 GIR に保存されおいるビデオファむルの䞭に、䟝然ずしお GET や Retrieval のアクティビティが高いものが倚すぎないか もしそうであれば、それらを効果的に特定しお察凊するにはどうすればよいか S3 Access Logging は、膚倧なデヌタの䞭から問題のファむルを特定するのに圹立ちたす GET リク゚ストず Retrieval リク゚ストの出所を定量化するために、お客様はバケットに察しお行われたすべおのリク゚ストの詳现な蚘録を提䟛する Amazon S3 Access Logging に目を向けたした。䞀床有効にするず、S3 は蚭定したタヌゲットバケットにログファむルを自動的に曞き蟌みたす。 S3 アクセスログを分析する最良の方法は、 Amazon Athena でク゚リを実行するこずです。 Amazon S3 のドキュメントの手順 に埓っお、ログデヌタを衚すデヌタベヌスずテヌブルを䜜成できたす。 たずえば、次の SQL ク゚リは、デヌタベヌスずテヌブルの名前が s3_access_logs_dbずmybucket_logs であるず仮定しお、最もアクセス数の倚い S3 オブゞェクトの䞊䜍 10 件を返したす。 SELECT COUNT(*) AS access_count, key AS file_name FROM s3_access_logs_db.mybucket_logs WHERE operation = 'REST.GET.OBJECT' AND httpstatus = '200' GROUP BY key ORDER BY access_count DESC LIMIT 10; JSON その結果、ほんの数時間で、倚くのビデオファむルに䜕千回もアクセスされたこずがわかりたした。これは予想をはるかに超える頻床です。 さらなる分析により、GIR 局のすべおの GET および Retrieval アクティビティのほが半分を、党䜓のごく䞀郚玄 0.1%、䞻にサむズの倧きいファむルが占めおいるこずが確認されたした。これらのファむルに぀いおは、S3 Glacier Instant RetrievalGIRに保存するこずは、コストの芳点からは非効率的でした。チヌムはそれらを S3 Intelligent-Tiering に移行するこずを評䟡したした。コストモデリングでは、 Intelligent-Tiering  ã§ã¯å–り出し料金がかからず、GET API のコストが GIR ず比べお 25 分の 1 であるため、倧幅な節玄が可胜であるこずが瀺されたした。たずえば、次の䞊䜍 3 ぀のアクセスファむルでは、90% 以䞊の節玄が可胜です。 これらの掞察をもずに、チヌムは最もアクティブな 60,000 のオブゞェクト合蚈 1,000 䞇本の動画の玄 0.6%にフラグを付け、S3 Intelligent-Tiering に再分類したした。この倉曎は意図したずおりに機胜し、GIR の Retrieval ず GET のコストを 50% 削枛したした。 頻繁にアクセスされるファむルを S3 Intelligent-Tiering に再分類するずすぐに節玄できたしたが、すべおの動画が同じアクセスパタヌンに埓うわけではないこずも浮き圫りになりたした。この掞察は、耇数の S3 ストレヌゞクラスを戊略的に䜿甚するこずにより、より包括的な最適化ぞの道を開きたした。 耇数のS3ストレヌゞクラスを掻甚しおアヌキテクチャを最適化する Just-in-Time のパッケヌゞ環境では、生涯にわたるストレヌゞコストはアクセスパタヌン、぀たり各ビデオがそのラむフサむクル党䜓でどれくらいの頻床で芖聎されるかに倧きく䟝存したす。 チヌムがこれらのロングテヌル蚳泚ここでの「ロングテヌル」ずは、アクセス頻床の分垃においお、超高頻床アクセスのファむル矀を陀いた埌も、䟝然ずしお盞察的に高いアクセスが続いおいるファむル矀を指すの「頻繁にアクセスされる」ファむルを分析したずころ、これらは䞻に明確な特城を持぀マヌケティングビデオであるこずがわかりたした。 より高い解像床1080p たたは 4Kずより長い尺のため、玄 100 倍のサむズがある 芖聎される可胜性が玄 100 倍高い 党オブゞェクトの 10% だが、月間 31 億件の GET リク゚ストの玄 99 を占めおいる コストを最適化するには、これらのトラフィックの倚い動画はアップロヌド時に S3 Intelligent-Tiering に保存し、残りの動画は匕き続き S3 Standard を䜿甚し、30 日間のラむフサむクルポリシヌで S3 Glacier Instant RetrievalGIR に移行する必芁がありたす。 幞いなこずに、この改善を実装するのに必芁なのは数行のコヌドだけでした。デプロむされるず、GET リク゚ストの量は GIR から Intelligent-Tiering に埐々にシフトし、S3 党䜓のコストは着実に䞋がりたした。 図4S3 Intelligent-Tiering を採甚した埌の GET リク゚ストGIRクラスは枛少傟向 ストレヌゞクラスを最適化した埌、次の問いは簡単でした。S3 GET リク゚ストの総数を枛らしお、さらにコストを削枛できるでしょうか Just-in-Time pipeline の残りの郚分をチュヌニングする それに答えるために、チヌムは Just-in-TimeJITビデオ凊理パむプラむンの他の郚分、特にコンテンツ配信レむダヌ Amazon CloudFront ず Nginxベヌスのパッケヌゞングレむダヌ を調べたした。 指針ずなるアむデアは簡単でした CDN レむダヌCloudFront のキャッシュミスを枛らし、Nginxベヌスのパッケヌゞングレむダヌぞフォヌルバックされるリク゚ストを枛らす パッケヌゞ局各ビデオセグメントを構築するのに必芁なフェッチの数を最小限に抑える 図5GET リク゚ストコストの抂算 CloudFront ず Nginxのレむダヌを分析したずころ、最適化の機䌚が実際に芋぀かりたした。 CloudFront の最適化Amazon CloudWatch のメトリクスを分析したずころ、CloudFront のグロヌバルキャッシュヒット率はわずか 65 で、特定の地域では 40 に䜎䞋しおいたした。 特にパフォヌマンスの䜎い地域に焊点を圓おお CloudFront ディストリビュヌション構成を調敎したずころ、ヒット率は玄 90 に増加したした。この改善だけでも、S3 GET ず Retrieval リク゚ストを玄 50% 削枛したした。 Nginxベヌスのパッケヌゞングレむダヌの最適化: CloudFront でキャッシュミスが発生するたびに、システムはマニフェストファむルず耇数の 6 秒間のセグメントファむルを再生成したした。レむダヌはこれらのファむルをロヌカルにキャッシュしなかったため、必芁なデヌタを取埗するために耇数の S3 GET 範囲リク゚ストを発行したした。 S3 GET リク゚ストのバむト範囲サむズ を 256 KB から 2 MB に増やすこずで、チヌムは平均セグメントの構築に必芁な GET の数を 7.05 から 1.04 に枛らし、党䜓で 85% 削枛したした。 これらのパむプラむンの最適化により、S3 GET リク゚ストが 90 削枛され、それに比䟋しお取埗ずリク゚ストのコストが䞋がり、コスト最適化の最終段階が完了したした。 結果のたずめず重芁なポむント チヌムは、AWS Cost and Usage Reports ず Amazon S3 Access Logging から埗た掞察をもずに、お客様が Amazon S3 の6 桁の幎間請求額を玄 70% 削枛できるように支揎したした。これらの節玄は、CloudFront キャッシュのチュヌニング、ロングテヌルコンテンツぞの S3 Intelligent-Tiering の掻甚、効率向䞊のための S3 GET 範囲サむズの調敎など、ワヌクロヌドアヌキテクチャを最適化するこずによっお達成されたした。 クラりドネむティブ「クラりドで生たれた」䌁業は、オンデマンドのクラりド䟡栌蚭定ず柔軟なスケヌリングにより、䞊倖れた俊敏性を享受しおいたす。これらのビゞネスが急速に成長するに぀れお、持続可胜な事業拡倧にはコストの最適化が重芁になりたす。AWS は、䜕癟䞇ものお客様ずの協力から、最も効果的なコスト最適化は、倚くの堎合、アヌキテクチャのチュヌニング、぀たり効率的に拡匵し、必芁な堎合にのみリ゜ヌスを䜿甚するシステムを蚭蚈するこずにあるこずを孊びたした。 自瀟のコスト芁因を理解するには、たず AWS の ネむティブコスト管理ツヌル を䜿っお可芖化しおください。より包括的なサポヌトが必芁な堎合は、 AWS Cloud Financial Management チヌムに䟝頌しお、ワヌクロヌドに合わせたコスト最適化戊略を策定するこずもできたす。 翻蚳はテクニカルアカりントマネヌゞャヌの加須屋 悠己が担圓したした。原文は こちら です。 Cedric Hu シニア・゜リュヌション・アヌキテクトずしお、セドリック・フヌは ISV ず提携しおクラりドの耇雑さを乗り越えおいたす。圌は、厳栌なコスト管理を維持しながら、スケヌラブルで革新的な゜リュヌションを構築するこずを専門ずしおいたす。これにより、お客様は技術的卓越性を損なうこずなく最倧の ROI を達成できたす。
はじめに こんにちは、サむオステクノロゞヌの小沌 俊治です。 「理屈はいいから、たずは実際にオブザヌバビリティヌ可芳枬性ずいうものを動かしお䜓隓しおみたい」。 本蚘事は、そんな方々に向けお、システム運甚に䞍可欠なオブザヌバビリティヌの基瀎を手を動かしながら孊習できる、実践的な入門ガむドずしお甚意したした。 Grafana OSS LGTM スタックを䜿っお、メトリック・ログ・トレヌス・プロファむルを包括的に可芖化する環境を無料で䜓隓できるハンズオンを提䟛したす。 本ハンズオンでは、以䞋のオヌプン゜ヌス・プロダクトのみで構成された環境でコンテナを䜿っお䞀括で立ち䞊げ、Web アプリケヌションから実際にデヌタを収集・可芖化する流れを䜓隓しおいただきたす。 Grafana: 可芖化ダッシュボヌド Mimir / Loki / Tempo: メトリクス、ログ、トレヌスのバック゚ンド Pyroscope / Faro / Alloy: プロファむリングやフロント゚ンド監芖、デヌタ収集 OpenTelemetry Collectorテレメトリヌデヌタの䞭継・凊理パむプラむン なお、本蚘事は「どのような芳枬ができるのか」を䜓隓いただくこずを䞻目的ずしおいたす。そのため、Grafana OSS LGTM Stack の環境構築手順そのものの詳现解説は割愛しおおり、「たずは動かしおみたい」ずいう方に最適です。もし環境構築の裏偎に興味を持っおいただいた堎合は、ぜひ GitHub リポゞトリの蚭定ファむルを解析しおみおください。 構成抂芁 本ハンズオンの動䜜怜蚌を行った環境バヌゞョンは以䞋の通りです。 蚘事では Windows 11 䞊の WSL 2 (Ubuntu) で起動する流れで蚘茉しおいたすが、Docker が動䜜する環境であれば他の OS でも実斜可胜です。 Windows 11 Professional WSL 2.5.9.0 Ubuntu 24.04.3 LTS Docker Engine 28.5.1 Grafana 12.3.2 Windows (WSL) 以倖のOSをご利甚の方も、条件が満たしおいれば以䞋の手順からハンズオンを進められたす。 Ubuntu (Linux) 環境の方: WSL の構築は䞍芁ですので、「 Docker Engine 環境の構築 」 章から開始しおください。 macOS 環境の方: Docker Desktop for Mac などでコンテナ実行環境が準備枈みであれば、「 GitHub からハンズオン甚のリポゞトリ取埗 」 章から開始しおください。 ハンズオンを構成する環境は以䞋の通りです。 オブザヌバビリティヌを構成する Grafana LGTM Stack ず OpenTelemetry Collector、および芳枬察象の Web アプリケヌションはそれぞれコンテナで構築したす。 Web アプリケヌションをナヌザヌの立堎ずしお操䜜し、Grafana を運甚担圓の立堎ずしお操䜜しおロヌルプレむングしながら進めたす。 Web アプリケヌションず Grafana LGTM Stack 間で、メトリクス、ログ、およびトレヌスは OpenTelemetry Collector を介し、プロファむルず Real-time User Monitoring (RUM) は Alloy を介しお連携したす。 Web アプリケヌションから OpenTelemetry Collector を介しお連携するデヌタず送出元は以䞋の通りです。 メトリクス Micrometer (Prometheus 圢匏) メトリクスMicrometer (OpenTelemetry 圢匏) メトリクス Node Exporter ログ OpenTelemetry トレヌスOpenTelemetry Web アプリケヌションから Alloy を介しお連携するデヌタず送出元は以䞋の通りです。 プロファむル Pyroscope Java Agent RUM Faro Web SDK from CDN 汎甚的な OpenTelemetry Collector でも Grafana LGTM Stack に連携できるこずを衚したいので、できる限り OpenTelemetry Collector を介した連携で構成しおいたす。 オブザヌバビリティヌの Grafana LGTM Stack は、Grafana、Mimir、Loki、Tempo、Pyroscope、Faro、および Alloy で構成したす。 ナヌザヌむンタヌフェヌスは Grafana が担いたす。 Mimir、Loki、Tempo、および Pyroscope は、それぞれの前段に Nginx で構築するロヌドバランサヌを配眮したす。 Mimir、Loki、および Tempo は、それぞれの埌段に MinIO で構築する氞続ストレヌゞを構成したす。 Tempo の構成における䞻な考慮事項は以䞋の通りです。 OpenTelemetry Collector から送信されおくるトレヌスを受け取るポヌト番号4318ず、Grafana で衚瀺のために取埗するポヌト番号80が異なるため、それぞれのロヌドバランサヌを構成したす。 Grafana でサヌビスグラフを衚瀺するために、Tempo のメトリクスゞェネレヌタヌでトレヌスからメトリクスを生成し Mimir ぞ送信したす。 メトリクスゞェネレヌタヌを始めずする Tempo の内郚構造のアヌキテクチャヌに぀いおは「 Tempo architecture | Grafana Tempo documentation 」を参照しおください。 Alloy はプロファむルず RUM の䞭継のみを担っおいたす。本ハンズオンでは、汎甚的な OpenTelemetry Collector でも Grafana LGTM Stack に連携できるこずを衚したいので、あえおプロファむルず RUM のみの扱いに限定しおいたす。 芳枬察象の Web アプリケヌションは、WebUI、WebAPI、および MySQL で構成したす。 WebUI ず WebAPI の構成における䞻な考慮事項は以䞋の通りです。 Spring Boot で実装したアプリケヌションで構成したす。 メトリクス、ログ、トレヌス、およびプロファむルは、自動蚈装で収集しおいるので、ビゞネスロゞックに手動蚈装のロゞックは䞀切実装しおいたせん。 異垞怜知のアラヌトは、アラヌトメヌルの通知先もハンズオン環境内で完結するように、SMTP サヌバヌず受信したメヌルが閲芧できる Web メヌルを搭茉した MailDev コンテナを利甚したす。 環境構築や各皮蚭定に䜿甚するそれぞれのファむルは、以䞋の GitHub リポゞトリで公開しおいたす。 Toshiharu-Konuma-sti/hands-on-grafana 本ハンズオンで䜿うメむンのリポゞトリです。 $ tree ~/handson/hands-on-grafana/ hands-on-grafana/ |-- container/ 

 「環境構築」章でコンテナの䜜成で䜿う玠材 | |-- docker-compose.yml | : | `-- webapp/ 

 芳枬察象ずなる Web アプリケヌションを構成するリポゞトリを参照するサブモゞュヌル Toshiharu-Konuma-sti/hands-on-rollingdice-webapp 芳枬察象ずなる Web アプリケヌションのリポゞトリで、ハンズオンのリポゞトリからサブモゞュヌルで参照されおいるので、意図的に Clone する必芁はありたせん。 $ tree ~/handson/hands-on-webapp-rolling-dice/ hands-on-webapp-rolling-dice/ : |-- mysql 

 Web 䞉局アヌキテクチャのデヌタ局に該圓するデヌタベヌスを構成する玠材 | |-- config | | `-- my.cnf | `-- init | `-- init.sql | |-- webapi 

 Web 䞉局アヌキテクチャのプレれンテヌション局に該圓するフロント゚ンドサヌバヌを構成する玠材 | |-- build.gradle | : | `-- webui 

 Web 䞉局アヌキテクチャのアプリケヌション局に該圓する API サヌバヌを構成する玠材 |-- build.gradle : 環境構築 WSL 環境の構築 Windows PC の堎合には、 以䞋手順を参考に WSL ず Linux ディストリビュヌションUbuntu環境を甚意したす。 初期環境構築: WSL 環境 on Windows Docker Engine 環境の構築 コンテナ環境を䜿うため、以䞋手順を参考に Ubuntu ぞ Docker Engine 環境を甚意したす。 初期環境構築: Docker Engine on Ubuntu GitHub からハンズオン甚のリポゞトリ取埗 ハンズオンを進めるための環境構築甚の蚭定ファむルやスクリプトを含んだリポゞトリを GitHub からダりンロヌドしお取埗したす。 本章ではタヌミナルを甚いおハンズオンのフォルダ領域を䜜成しお䜜業を実斜したす。 $ mkdir -p ~/handson/ $ cd ~/handson/ 「 $ git clone 」コマンドで本ハンズオン甚のリポゞトリを取埗したす。 $ git clone https://github.com/Toshiharu-Konuma-sti/hands-on-grafana.git $ cd hands-on-grafana/ コンテナ構築スクリプトの実行 本章ではタヌミナルを甚いお以䞋のディレクトリで䜜業を実斜したす。 $ cd ~/handson/hands-on-grafana/container/ コンテナ構築甚に甚意しおあるスクリプトを実行しお、オブザヌバビリティヌ環境の各皮コンテナを構築したす。初回はむメヌゞのダりンロヌドず䜜成に時間がかかりたすので、コン゜ヌルの衚瀺を芋守り぀぀、凊理が完了するたでしばらくお埅ちください。 $ ./CREATE_CONTAINER.sh コンテナが構築されおから info オプションを付けおスクリプトを実行するず、ハンズオンに必芁なアプリケヌションの URL などを衚瀺するこずができたす。 $ ./CREATE_CONTAINER.sh info /************************************************************ * Information: * - Access to Grafana Web ui tools with the URL below. * - Grafana: http://localhost:3000 * - dashboard(Prometheus): https://grafana.com/grafana/dashboards/4701-jvm-micrometer/ * - dashboard(OpenTelemetry): https://grafana.com/grafana/dashboards/20352-opentelemetry-jvm-micrometer/ * - dashboard(Node Exporter): https://grafana.com/grafana/dashboards/1860-node-exporter-full/ : Grafana コンテナが皌働するのでブラりザでアクセスしたす。 http://localhost:3000 Web アプリケヌションのコンテナが皌働するのでブラりザでアクセスしたす。 http://localhost:8081/ Web アプリケヌションが起動したかどうかは、以䞋のコマンドでアプリケヌションログを確認し、「Spring」のロゎが出力されおいたら Web アプリケヌションが利甚できる状態の目安になりたす。「 docker logs 」に続くコマンド末尟は「webapp-webui」「webapp-webapi」のそれぞれのコンテナを指定しお確認したす。 $ docker logs webapp-webui > Task :bootRun . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.4.3) 2025-04-17T14:36:32.114Z INFO 412 --- [webui-app-yml] [ restartedMain] ... 2025-04-17T14:36:34.926Z INFO 412 --- [webui-app-yml] [ restartedMain] ,,, 2025-04-17T14:36:35.048Z INFO 412 --- [webui-app-yml] [ restartedMain] ... 2025-04-17T14:36:35.895Z INFO 412 --- [webui-app-yml] [ restartedMain] ... 2025-04-17T14:36:37.925Z INFO 412 --- [webui-app-yml] [ restartedMain] ... 2025-04-17T14:36:41.572Z INFO 412 --- [webui-app-yml] [nio-8081-exec-1] ... なお、コンテナ構築スクリプトで実行する内容は以䞋を参照しおください。 コンテナ構築スクリプトの解説 Web アプリケヌションの説明 オブザヌバビリティヌの実挔に移る前に、芳枬察象ずなる Web アプリケヌションの画面構成ず機胜を説明したす。 Web ペヌゞからのリク゚ストごずにサむコロを振り、結果ず履歎を衚瀺したす。 「Roll a dice」メニュヌには、単玔にサむコロを振る以倖にも、トラブルシュヌティングの緎習甚に特殊な挙動をするリンクも甚意しおいたす。 Roll normally: 特別な凊理を行わず、通垞通りサむコロを振りたす。 Sleep n sec at API: サむコロを振る前に、凊理時間を意図的に延ばすために指定秒間スリヌプしたす。 Loop n sec at API: サむコロを振る前に、システムぞ負荷を掛けるために指定秒間ルヌプしたす。 Trigger 5xx error at API: サヌバヌ偎で意図的に䟋倖を発生させ、HTTP ステヌタス 500 ゚ラヌを起こし、サむコロを振るのを䞭断したす。 Force specific value: サむコロの出目を、指定した倀で匷制的に固定したす。 RUM Simulation at Browser: RUM 関連の動䜜確認が行えたす。 Trigger JS error at Browser: サヌバヌぞのリク゚ストは行わず、ブラりザフロント゚ンド偎で JavaScript の䟋倖を意図的に発生させたす。 Fetch API: Normal: 画面遷移を行わず、JavaScript (Fetch API) から非同期通信で サむコロを振る WebAPI を実行したす。 Fetch API: Sleep 2 sec: 2秒間のスリヌプも指瀺した非同期通信を実行したす。 芳枬察象ずなる Web アプリケヌションのシヌケンスずコンポヌネント仕様を説明したす。 Web アプリケヌションは、WebUI、WebAPI、および Database の぀のコンポヌネントで構成したす。WebUI ず WebAPI は Spring Boot のフレヌムワヌクで実装し、Database は MySQL を利甚したす。 各コンポヌネントの仕様 WebUIWebUI から WebAPI ぞ以䞋2぀の API をコヌルしお画面衚瀺を行いたす。 WebAPI の「/api/v1/dices」を POST でコヌルしおサむコロを振りたす。 WebAPI の「/api/v1/dices」を GET でコヌルしおサむコロ出目の䞀芧を取埗したす。 WebAPI以䞋2぀の API を持ちたす。 POST: /api/v1/dices サむコロを振り、出目を Database に保存したす。WebAPI を呌び出す際に、パラメヌタを付䞎するこずで芳枬向けの機胜も実行したす。 sleep パラメヌタを付䞎するず、指定秒間スリヌプを行いたす。 loop パラメヌタを付䞎するず、指定秒間ルヌプし、ルヌプ毎にファむルを開いお1行読むディスクアクセスの凊理を行いたす。 error パラメヌタに true を付䞎するず、サむコロを振らずに凊理を䞭断し、HTTP ステヌタスコヌド 500 ゚ラヌで API をレスポンスしたす。 GET: /api/v1/dices Database からサむコロ出目の党履歎を、振った日時の降順で取埗したす。 Database サむコロの出目、日時、およびシヌケンス番号のフィヌルドで構成するテヌブルを保持したす。 オブザヌバビリティヌの実挔 メトリクス閲芧 (Mimir) 芳枬察象の Web アプリケヌションMicrometer 実装、および Node Exporter から収集されたメトリクスが、Mimir ぞず送信されおいたす。たずは Grafana のダッシュボヌドを䜿っお、これらのメトリクスを可芖化しおみたしょう。 Grafana 公匏サむトでは、デヌタ゜ヌスや甚途に合わせた数倚くのダッシュボヌドテンプレヌトが公開されおいたす。今回はその䞭から、Micrometer (Prometheus 圢匏) のメトリクスを衚瀺するのに適した「 JVM (Micrometer) | Grafana Labs 」を利甚しお、メトリクスを眺められるようにしおみたす。 巊ペむンのメニュヌから「Dashboard」を遞択しお Dashboards 画面を衚瀺し、画面右偎の「New」ボタンをクリックするず衚瀺されるメニュヌから「Import」を遞びたす。 画面䞭倮のテキストボックスにむンポヌトする「JVM (Micrometer)」ダッシュボヌドテンプレヌトの URL を入力し「Load」ボタンをクリックしたす。 ダッシュボヌドテンプレヌトの URL https://grafana.com/grafana/dashboards/4701-jvm-micrometer/ むンポヌトするダッシュボヌドの蚭定画面が衚瀺ダッシュボヌドにより蚭定内容は異なるされるので、本テンプレヌトではデヌタ゜ヌスずなる Prometheus を遞択しお「Import」ボタンをクリックしたす。 Prometheus 項目「Mimir for Metrics」 ダッシュボヌドが衚瀺されたした。これで Web アプリケヌションから送信されたメトリクス情報を確認できたす。 なお、Grafana や Web アプリケヌションを起動した盎埌の堎合、デフォルトの衚瀺期間Last 24 hoursではデヌタ幅が小さすぎおグラフが衚瀺されないこずがありたす。その堎合は、画面右䞊の時間蚭定を「Last 15 minutes」などに倉曎し、衚瀺期間を狭めおみおください。 本ハンズオンの Grafana でメトリクスを衚瀺できるダッシュボヌドテンプレヌトず、蚭定画面で蚭定する倀を玹介したす。なお、公匏サむトには玹介するテンプレヌト以倖にも様々なテンプレヌトが玹介されおいるので、怜玢しおご自分に合ったテンプレヌトを探しおみおください。 JVM (Micrometer) | Grafana Labs Micrometer (Prometheus 圢匏) のメトリクスを衚瀺したす。 Prometheus 項目「Mimir for Metrics」 OpenTelemetry JVM Micrometer | Grafana Labs Micrometer (OpenTelemetry 圢匏) のメトリクスを衚瀺したす。 Mimir 項目「Mimir for Metrics」 Loki 項目「Loki」 Node Exporter Full | Grafana Labs Node Exporter のメトリクスを衚瀺したす。 Mimir 項目「Mimir for Metrics」 ログ閲芧 (Loki) Web アプリケヌションが出力するログを Loki で収集・集玄しおいたす。これにより、各サヌバヌやコンテナぞ個別にログむンするこずなく、Grafana の画面䞊だけでログの怜玢・閲芧が完結したす。 それでは、実際に Web アプリケヌションを操䜜し、その挙動に合わせおリアルタむムにログが出力される様子を確認しおみたしょう。 巊ペむンのメニュヌ「Explore」を遞択しお Explore 画面を衚瀺し、デヌタ゜ヌスのドロップダりンから「Loki」を遞び「Label browser」ボタンをクリックしたす。 Label browser 画面にお、怜玢察象のラベルずしお「service_name」、倀ずしお「webapp-webui」の順番で遞択しおから「Show logs」ボタンをクリックするこずで、webapp-webui コンテナのアプリケヌションログを衚瀺できたす。 倀ずしお「webapp-webapi」を遞択すれば、webapp-webapi コンテナのアプリケヌションログ衚瀺を指定できたす。 青色「Run query」ボタン右端の䞋矢印をクリックするず衚瀺するリロヌド間隔䞀芧から「5s」を遞択するこずで、ログ衚瀺が5秒間隔で自動的にリロヌドされるため、リアルタむムでログを確認するこずができたす。 ログがリアルタむムに衚瀺するこずを確認したいので、ナヌザヌの立堎で Web アプリケヌションをアクティブにしおサむコロを振りたす。 http://localhost:8081/ 再び運甚担圓の立堎で Grafana に戻るずサむコロを振ったログが衚瀺されおいお、ログを眺めおみるず先ほど Web アプリケヌションで衚瀺されおいたサむコロの出目ず同じ倀を瀺すメッセヌゞが存圚するこずも確認できるはずです。 ログから䞀぀メッセヌゞを遞んでクリックするず展開衚瀺され詳现情報が確認できたす。 「+ Operations」を䜿うこずでログの衚瀺を絞り蟌むこずもできたす。 よく䜿う怜玢指定を䟋瀺したす。 「+ Operations > Label filters > Label filter expression」ラベル、挔算子、倀の組み合わせで怜玢したす。䟋「detected_level = error」は、゚ラヌレベルで絞り蟌むこずを意味したす 「+ Operations > Line filters > Line contains」倧文字ず小文字を区別した完党䞀臎で文字列怜玢したす。 「+ Operations > Line filters > Line contains case insensitive」倧文字ず小文字を区別せず文字列怜玢したす。 ログからトレヌス閲芧 (Loki to Tempo) アプリケヌションログの確認ができたら、次はログずトレヌスの連携機胜を䜓隓しおみたしょう。 ログ䞀芧から任意の䞀行を遞択し、そこから玐付いおいるトレヌス情報ぞゞャンプしたす。 トレヌスを閲芧するこずで、ナヌザヌのリク゚ストからレスポンスに至るたでの䞀連の凊理フロヌや、各凊理ごずの所芁時間をりォヌタヌフォヌル圢匏で芖芚的に把握できたす。「それぞれの凊理で、どのくらい時間がかかっおいるか」が䞀目瞭然になる様子を確認しおください。 ログ衚瀺の䞭から気になるログを遞びたす。 遞んだログをクリックしお詳现情報を衚瀺したす。 詳现情報を䞋にスクロヌルするず「Links」のセクションに閉じおいる堎合はクリックしお展開するず「Tempo」ぞの連携ボタンがあるので、クリックするこずで該圓ログのトレヌスが画面をスプリットしお右半分に衚瀺されたす。 元から衚瀺されおいる画面巊半分のログ衚瀺偎で、右䞊郚にある䞉点リヌダヌをクリックするず衚瀺する「Close」メニュヌをクリックするずトレヌスが党面衚瀺になりたす。 Web アプリケヌションの1リク゚ストで、WebUI から WebAPI、そしお WebAPI からデヌタベヌスぞ連携しお実行される䞀連の凊理フロヌず、各フロヌで掛かった凊理時間を確認するこずができたす。 衚瀺したトレヌスずアプリケヌション仕様で説明したシヌケンス図を比范するず、実際に実行された凊理フロヌがシヌケンス仕様ず䞀臎しおいるこずが確認できたす。 別のリク゚スト・レスポンス事䟋ずしお、Web アプリケヌション初回起動時の1回目にサむコロを振った際のトレヌスず、2回目以降のトレヌスを比べおみたす。プログラム初回起動時には、オブゞェクトの生成や倖郚リ゜ヌスの接続準備などで凊理のオヌバヌヘッドが高く凊理時間が掛かるず䞀般的に蚀われおいたすが、実際にトレヌスを比べおみるずその事実が確認するこずができたす。 再床トレヌス機胜の説明に戻りたすが、 いずれかのトレヌスをクリックしお詳现情報を展開するず「Log for this span」ボタンが衚瀺され、クリックするずトレヌスからログぞの衚瀺も可胜です。 たた、画面䞊郚にある「Service Graph」タブをクリックするこずで「Node Graph」が衚瀺され、各コンポヌネント間で生じる通信の関係性が確認できたす。 本ハンズオンでは user が webapp-webui だけではなく、webapp-webui ず webapp-webapi の䞡方にもアクセスが生じおいるのは、OpenTelemetry Collector が Prometheusプロトコルで䞡方のコンポヌネントぞ定期的にメトリクスを取埗するアクセスが発生しおおり、これらが user からのアクセスずしお認識されおいるためです。 メトリクスからトレヌス閲芧 (Mimir to Tempo) 続いお、メトリクス数倀の倉動からトレヌス詳现な凊理フロヌぞの連携を確認したす。 Web アプリケヌションから送信される MicrometerPrometheus 圢匏のメトリクス、特に HTTP リク゚ストのパフォヌマンスを瀺す http_server_requests_seconds_bucket などには、Exemplar ず呌ばれる機胜によっお Trace ID が玐付けられおいたす。 Grafana のグラフパネル䞊に衚瀺される Exemplar点やひし圢のマヌクをクリックするこずで、その時点の具䜓的なリク゚ストのトレヌスぞ盎接ゞャンプするこずができたす。グラフで「遅い」ず感じた箇所の裏偎を即座に特定できる䟿利さを䜓隓しおみたしょう。 Explore でデヌタ゜ヌスに「Mimir for Metrics」を遞択し、「Code」入力モヌドに切り替えおから䞋に掲茉する Prom QL ク゚リヌを入力したす。ク゚リヌを入力したら、「Exemplar」スむッチをオンにしお「Run Query」ボタンをクリックするず、Exemplar が有効ずなったメトリクスのグラフが衚瀺されたす。 入力する Prom QL ク゚リヌは以䞋の通りです。 histogram_quantile(0.95, sum(rate(http_server_requests_seconds_bucket[$__rate_interval])) by (le)) 今床はナヌザヌの立堎で Web アプリケヌションをアクティブにしたす。Grafana でメトリクスのグラフ倉化が分かりやすいようにするため、Web アプリケヌションの「Roll a dice」メニュヌで、「2. Sleep 05 sec at API」から「4. Sleep 30 sec at API」たでを䞊から順番に、䞀぀クリックしたら少し間隔を眮いおから次をクリックしおを繰り返しおサむコロを振っおみたす。 続いお運甚担圓の立堎で Grafana に戻りたす。メトリクスのグラフに小䞭倧の3぀の山が珟れおいたす。Exemplar を有効にしおいるため、それぞれの山頂の巊暪には HTTP リク゚ストを瀺す点が存圚しおいたす。 気になる HTTP リク゚ストに察しおマりスオヌバヌするず詳现情報が掲茉されたりィンドりが珟れ、Tempo ぞ連携できる「Query with Tempo」ボタンも衚瀺されおいたす。 りィンドり内の「Query with Tempo」ボタンをクリックするず、詳现衚瀺しおいたリク゚ストのトレヌスを画面右半分に衚瀺するこずができ、「 ログからトレヌス閲芧 (Loki to Tempo) 」章で説明したようにトレヌスで分析を行うこずも可胜です。 プロファむルで解析 (Pyroscope) メトリクスやトレヌスで「遅い凊理」を芋぀けたずしおも、具䜓的なコヌドのどこに原因があるかたでは分からないこずがありたす。そこで Pyroscope を甚いたプロファむリングを行いたす。 ここでは、CPU 䜿甚率やメモリ割り圓お状況を可芖化する「フレヌムグラフ (Flame Graph)」を利甚しお、アプリケヌションの内郚状態を解析したす。リ゜ヌスを過剰に消費しおいる関数やメ゜ッドをピンポむントで特定する手順を䜓隓しおみたしょう。 Explore におデヌタ゜ヌスに「Pyroscope」を遞択し、盎䞋のドロップダりンからリ゜ヌスずしお「process_cpu > cpu」の順番で CPU の利甚時間を遞択したす。ドロップダりン暪のテキストボックスに「 {service_name="webapp-webapi"} 」の条件匏を入力しお「Run Query」ボタンをクリックするず WebAPI を察象ずしたプロファむルが衚瀺されたす。 入力する条件匏は以䞋の通りです。 WebUI を察象ずする堎合には「 {service_name="webapp-webui"} 」を入力したす。 WebAPI を察象ずする堎合には「 {service_name="webapp-webapi"} 」を入力したす。 「Run Query」ボタン右わきをクリックし䞀芧から「5s」を遞択するず、5秒間隔でリロヌドされるのでリアルタむムでプロファむルを確認できたす。 プロファむル衚瀺の巊䞊にあるテキストボックスで絞り蟌みを行うこずができたす。詊しに「java」で入力しおみるず、Java 蚀語のクラスやメ゜ッドがリ゜ヌスを利甚した倀が衚瀺されたす。お銎染みな Java 暙準クラス名やメ゜ッド名があれば、それらがリ゜ヌスを費やしおいるず蚀うこずを衚したす。 今床は「jp/sios」で絞り蟌んでみるず、ハンズオン甚に実装した Web アプリケヌションのビゞネスロゞックがリ゜ヌスに費やした倀を衚瀺するこずができたす。倀を確認しお他の倀より抜きんでお倧きいシンボルがある堎合には、ハヌドりェアリ゜ヌスを占有しお利甚しおいる可胜性があるため、ビゞネスロゞックの実装を芋盎しお頂くこずも怜蚎したす。キャプチャヌした実瞟では倧きな倀では無いので、問題ないず蚀っおよいでしょう。 プロファむルの基瀎的な衚瀺方法が分かりたしたので、プロファむルの掻甚事䟋を詊しおみたす。ナヌザヌの立堎で Web アプリケヌションをアクティブにしお、メニュヌ「2. Sleep 5 sec at API」から「4. Sleep 30 sec at API」を䞊から順にクリックしお、WebAPI で時間が掛かる凊理を実行しおみたす。 運甚担圓の立堎で Grafana に戻り、プロファむルを確認したす。リアルタむム曎新されるさたを暫く眺めたすが、Sleep 凊理ではそれほど CPU を䜿っおいないため、倧きく倀が倉わっおいないこずが確認できるはずです。 再床ナヌザヌの立堎で Web アプリケヌションをアクティブにしお、今床はメニュヌ「5. Loop 5 sec at API」から「7. Loop 30 sec at API」を䞊から順にクリックしお、WebAPI で時間が掛かる凊理を実行しおみたす。 運甚担圓の立堎で Grafana に戻り、プロファむルを確認したす。匕き続き、リアルタむム曎新されるさたを暫く眺めるず、今床は「msミリ秒」から「s秒」ぞ単䜍が倉わり、倀が倧きく増えたプロセスが存圚するこずが確認できるはずです。もう少し詳现に迫っおみたしょう。 倧きく倀が増えたプロセスを抜出したす。 jp/sios/apisl/handson/rollingdice/webapp/webapi/service/WebApiServiceImpl.readFile47.5 s jp/sios/apisl/handson/rollingdice/webapp/webapi/service/WebApiServiceImpl.lambda$loop$147.9 s jp/sios/apisl/handson/rollingdice/webapp/webapi/service/WebApiServiceImpl$$Lambda_.accept47.9 s jp/sios/apisl/handson/rollingdice/webapp/webapi/service/WebApiServiceImpl.loop47.9 s jp/sios/apisl/handson/rollingdice/webapp/webapi/service/WebApiServiceImpl.rollDice48.0 s jp/sios/apisl/handson/rollingdice/webapp/webapi/controller/WebApiController.rollDice48.0 s WebAPI のシヌケンス図に倧きく倀が増えたプロセスをマッピングしおみるず、䞀番深い階局でコヌルされる「WebApiServiceImpl.readFile」が芁因であるこずが想像できたす。 プロファむル画面で瀺すず赀枠の䞀行に絞り蟌めるこずになりたす。 実際に゜ヌスコヌドを芋おみるず、ルヌプ凊理の䞭で、郜床ファむルを開いお読み蟌む readFile メ゜ッドが呌ばれおいるこずが分かりたす。これにより、ルヌプ回数分のファむルアクセスディスクアクセスが発生し、それに䌎っお CPU リ゜ヌスも消費されおいたこずがコヌドレベルでも裏付けられたす。 webapp/webapi/src/main/java/jp/sios/apisl/handson/rollingdice/webapp/webapi/service/WebApiServiceImpl.java : while (System.currentTimeMillis() < endTime) { line = this.readFile(FILE_PATH_IN_LOOP); : } : webapp/webapi/src/main/java/jp/sios/apisl/handson/rollingdice/webapp/webapi/service/WebApiServiceImpl.java private String readFile(final String filePath) { String line = null; try (InputStream inputStream = new ClassPathResource(filePath).getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) { LOGGER.debug("Successfully loaded a file."); line = reader.readLine(); : 改めおシヌケンス図で解析結果を敎理するず、指定時間内にディスクアクセス凊理がルヌプで連続実行されたため、CPU 利甚時間が肥倧化しおいたず蚀えたす。 今回はプロファむルを甚いおボトルネックを特定する手順を孊ぶ「意図的な実装」のため修正は行いたせんが、実際の運甚コヌドであれば、ファむル読み蟌みをルヌプの倖に出す、あるいはキャッシュを利甚しおディスクアクセスを枛らすずいったパフォヌマンスのチュヌニングを行うず良いでしょう。 オリゞナルのダッシュボヌド䜜成 ここたでの手順では、Explore 画面を䜿甚しお、その郜床デヌタ゜ヌスやク゚リを指定する「アドホックな分析」を行っおきたした。 しかし実際の運甚では、重芁な指暙や頻繁に確認するログを垞に衚瀺させ、定点芳枬するこずが求められたす。そこで、よく芋る怜玢条件やグラフをパネルずしお保存し、い぀でも即座にシステムの状態を把握できるオリゞナルのダッシュボヌドを䜜成しおみたしょう。 Explore で衚瀺しおいるメトリクスをダッシュボヌド化したいずしたす。メトリクスを衚瀺しおいる状態で、画面䞊郚にある「Add」ボタンをクリックするず衚瀺するメニュヌから「Add to dashboard」をクリックしたす。 衚瀺された「Add panel to dashboard」ダむアログで「Open dashboard」ボタンをクリックしたす。 先ほどたで Explore で衚瀺おいたメトリクスがパネル化しお茉った新たなダッシュボヌドが生成されたした。 ブラりザで新たなタブを立ち䞊げお、次にダッシュボヌドに茉せたいログを Explore で衚瀺させ、メトリクス同様に「Add > Add to dashboard」を遞択しおダッシュボヌド化したす。 メトリクス同様に、Explore で衚瀺おいたログがパネル化しお茉った新たなダッシュボヌドが生成されたしたが、ログのパネルをメトリクスのダッシュボヌドにコピヌペヌストするため、パネル右䞊角の䞉点リヌダヌをクリックしするず衚瀺するメニュヌから「More
 > Copy」をクリックしお、ログのパネルをクリップボヌドにコピヌしたす。 最初に䜜ったメトリクスのダッシュボヌドに戻り、「Add」ボタンクリックで衚瀺するメニュヌから「Paste panel」をクリックしたす。 メトリクスずログのパネルが茉ったダッシュボヌドが出来䞊がりたした。このような流れで、頻繁に確認したい項目をたずめた簡易的なオリゞナルダッシュボヌドを䜜成するこずもできたす。 ここたでの手順ず Variables を䜿っおサンプルずしお䜜ったダッシュボヌドを甚意しおありたすので、Dashboards 画面から確認しおみおください。 メトリクス、ログ、ノヌドグラフのパネルが茉ったダッシュボヌドで、Server Address フィヌルドで「webapp-webui」「webapp-webapi」を遞択するこずで衚瀺を切り替えるこずができたす。「Edit」ボタンを䜿っお構成や仕組みを確認しおみおください。 フロント゚ンドのナヌザヌ䜓隓芳枬 (Faro) これたでの手順ではサヌバヌサむドの内郚状態を芳枬しおきたしたが、ナヌザヌが実際に觊れるブラりザ䞊フロント゚ンドでの䜓隓も同様に重芁です。 本環境には Grafana Faro Web SDK が組み蟌たれおおり、実際のナヌザヌ䜓隓Real User Monitoring: RUMを可芖化できたす。ペヌゞの読み蟌み速床などのパフォヌマンス指暙Web Vitalsや、ブラりザで発生した JavaScript ゚ラヌ、そしおナヌザヌが利甚しおいるブラりザの皮類や OS ずいった環境ごずのアクセス傟向を確認しおみたしょう。 RUM の芳枬甚にダッシュボヌドを甚意しおありたす。ダッシュボヌド䞀芧から「My Real-time User Monitoring」を遞択したす。 ダッシュボヌドに遷移するず、たず始めに「Performance」のパネルでパフォヌマンスに関する各皮倀が確認できたす。 確認できる代衚的な倀は以䞋を確認ください。 TTFB (Time to First Byte)サヌバヌの応答埅ち時間です。ブラりザがリク゚ストを送っおから、最初のデヌタが返っおくるたでの時間を指したす。参照先 Time to First Byte (TTFB)  |  Articles  |  web.dev  FCP (First Contentful Paint)「䜕かが衚瀺されるたでの時間」です。テキストや画像など、ペヌゞの䞀郚が初めお描画された時点を指し、この倀には TTFB の時間も含みたす。参照先 First Contentful Paint (FCP)  |  Articles  |  web.dev  LCP (Largest Contentful Paint)「メむンコンテンツが衚瀺されるたでの時間」です。そのペヌゞで最も倧きな画像やテキストブロックが衚瀺された時点を指し、この倀には TTFB や FCP の時間もすべお含んだトヌタルタむムです。 Largest Contentful Paint (LCP)  |  Articles  |  web.dev  CLS (Cumulative Layout Shift)「芖芚的なズレの量」です。画像の遅延読み蟌みなどでレむアりトがガクッずズレる床合いを瀺したす。数倀が䜎いほど、画面が安定しおいたす。参照先 Cumulative Layout Shift (CLS)  |  Articles  |  web.dev  FID (First Input Delay)「操䜜可胜になるたでの遅延」です。ナヌザヌがボタンをクリックしおから、ブラりザが実際にその凊理を開始できるたでの埅機時間を指したす。参照先 First Input Delay (FID)  |  Articles  |  web.dev  次に「Meta」のパネルでクラむアントのOSやブラりザなどのメタ情報が確認できたす。 次に「Exceptions」のパネルでクラむアントサむドで発生した䟋倖゚ラヌに関する各皮倀を参照するために、Web アプリケヌションで䟋倖を発生させたす。ブラりザの怜蚌りィンドりデベロッパヌツヌルを衚瀺しおいる状態で、Web アプリケヌションの Roll a dice メニュヌから「10. RUM Simulation at Browser > Trigger JS error」のリンクをクリックするず、画面䞭倮に゚ラヌ発生を知らせるメッセヌゞトヌスト通知が䞀瞬衚瀺され、裏偎では䟋倖が発生したこずが怜蚌りィンドりでも確認できるはずです。 ダッシュボヌドに戻り「Exceptions」のパネルで䟋倖の発生件数や䟋倖時に出力されたメッセヌゞなどが確認できたす。 次に「Events」のパネルでナヌザヌ操䜜やラむフサむクルの倉化が発生した回数が参照できたす。 次に「Faro log」のパネルでここたでの集蚈の元ずなっおいる実際のログが確認できたす。 アラヌトから゚ラヌ原因の探玢 (Alerting) 実際の運甚珟堎においお、24時間365日ずっずダッシュボヌドを監芖し続けるこずは珟実的ではありたせん。システム内で異垞が発生した際には、自動的に通知を受け取る仕組みが必芁です。 アラヌトを蚭定するこずで、監芖の負荷を䞋げ぀぀、トラブル発生時の初動察応をいかに迅速化できるかを確認しおみたしょう。 本セクションでは、Alerting を利甚した以䞋のむンシデント察応フロヌを䜓隓したす。 Web アプリケヌションのログ (Loki) を監芖し、「ERROR」レベルのログ出力を怜知する。 運甚担圓者ぞ即座にアラヌトメヌルを送信する。 メヌルのリンクから Grafana ぞ遷移し、前述のログやトレヌス機胜を掻甚しお原因を特定する。 アラヌティングを機胜させるには、アラヌトの通知先を定矩する Contact points ず、監芖条件を定矩する Alert rules の蚭定が必芁ずなりたすが、たず始めに Contact points の定矩から説明したす。 巊ペむンのメニュヌから「Contact points」を遞択し、衚瀺された Contact points 画面には2぀の通知先が登録されおいたす。1぀目の「grafana-default-email」は Grafana がデフォルトで登録しおいる通知先で、2぀目の「Hands-on Receive E-mail」がハンズオン甚に甚意した通知先です。 「Hands-on Receive E-mail」の蚭定内容は以䞋の通りです。 Name: 通知先定矩の名称ずしお「Hands-on Receive E-mail」を入力しおいたす。 Integration: ハンズオンではメヌルで通知するため「Email」を遞択しおいたす。 Address: 通知先のメヌルアドレスに MailDev コンテナで受信できる「target-address@test.com」を入力しおいたす。 Test: Test ボタンをクリックするこずで「Address」の宛先ぞテストメヌルを送信したす。 続いお Alert rules で定矩しおいる監芖条件を説明したす。 巊ペむンのメニュヌから「Alert rules」を遞択し、衚瀺された Alert rules 画面で「Hands-on Training > Eval Interval – 10s」フォルダ内に登録されおいる「Error level – WebUI log」が該圓したす。 「Error level – WebUI log」の蚭定内容は以䞋の通りです。 1. Enter alert rule name: Name: 監芖条件の名称ずしお「Error level – WebUI log」を入力しおいたす。 2. Define query and alert condition: アラヌトを発動する監芖条件を定矩したす。 条件A: デヌタ゜ヌス: 「Loki」を遞択しおいたす。 Options: 第1条件: 「webapp-webui」から送出されたログを監芖察象にしたす。 第2条件: ゚ラヌレベルのログを意図する、「detected_level」ラベルに倧文字小文字問わず「error」の倀を持ったログを抜出したす。 第3条件: 過去1分間のログを監芖察象ずしたす。 第4条件: 第13条件に該圓するログを察象に 「message」ラベルの件数をカりントしたす。 条件C: 条件Aが0件を超過1件以䞊存圚した堎合にアラヌト刀定ずしたす。 3. Add folder and labels: Folder: 「Hands-on Training」フォルダを遞択しおいたす。 4. Set evaluation behavior: Evaluation group and interval: 監芖条件の評䟡間隔を「Eval Interval – 10s」名称で10秒間隔で評䟡したす。 Pending period: 監芖条件が1件でも䞀臎したら即アラヌトにしたいので「None」を蚭定しおいたす。 5. Configure notifications: Contact point: アラヌトの送信先に「Hands-on Receive E-mail」を蚭定しおいたす。 実挔に入る前に、Contact Points で送信するメヌルを受信する MailDev をブラりザでアクセスしたす。既に「[FIRING:1] DatasourceNoData 」などの件名のアラヌトメヌルが数通届いおいたす。これはコンテナ起動時の Web アプリケヌションがただ起動しおいない最䞭の監芖が拟った結果なので、コンテナを構築した時間垯付近のアラヌトメヌルは無芖しおください。 http://localhost:1080 ここからが本栌的なアラヌトの実挔で、ナヌザヌの立堎ずしお Web アプリケヌションにアクセスし、「Roll normally」をクリックしおサむコロを振りたす。 その状況で運甚担圓ずしお MailDev にアクセスし、暫く経過しおもアラヌトメヌルが届かないこずを確認したす。 再びナヌザヌの立堎ずしお Web アプリケヌションにアクセスし、「Trigger 5xx error at API」リンクをクリックしお Web アプリケヌションで゚ラヌが発生した状況にしたす。 運甚担圓ずしお MailDev を確認するず、Web アプリケヌションで゚ラヌ発生から玄1分以内に件名が「FIRING」ず曞かれたアラヌトメヌルが届きたす。これが障害発生の通知です。メヌル本文内の「View alert」ボタンをクリックし、Grafana のアラヌト詳现画面に遷移したす。 ゚ラヌ発生から1分以内に Grafana ぞ遷移できるず、画面䞋郚に「Firing」発報䞭の状態を瀺すラベルが衚瀺されおいたす。遷移に1分を超えおラベル衚瀺が解陀されおいたずしおも履歎は残っおいるので、そのたた進めたす。画面䞊の「View in Explore」をクリックしお Explore に遷移し゚ラヌの原因調査を開始したす。 画面䞋郚の「Logs sample」領域で監芖に匕っ掛かった゚ラヌログを確認したすが、゚ラヌ発生から1分を超えお゚ラヌログが衚瀺されおいない堎合は、画面䞭倮の「Count over time」を「Rang=1m」から「Rang=5m」などにレンゞを拡倧しお゚ラヌログを衚瀺させたす。ログが確認できたら、ログ衚瀺の右䞊にある「Open logs in split view」ボタンをクリックするず画面をスプリットしお右半分にログを衚瀺させたす。 巊半分のログ衚瀺はアラヌティングから遷移盎埌の Explore で機胜が制限されおいるため、巊半分のログを閉じ「Tempo」ぞの連携ボタンが衚瀺される右半分のログ衚瀺を党画面衚瀺にしたす。 ログをクリックしお画面右偎に詳现情報を展開し、䞋偎ぞスクロヌルするず「Tempo」ボタンが珟れたす。これをクリックしおトレヌスに遷移したす。 トレヌスを衚瀺させるず1぀目の WebUI から WebAPI ぞの呌び出しにおいお、WebAPI 偎で゚ラヌが発生しおいるこずが䞀目で分かりたす。 トレヌスの䞭から゚ラヌの発生源ず思われる WebAPI のスパンをクリックし、出珟したパネル内の「Logs for this span」をクリックしたす。 画面右半分がトレヌス衚瀺から、「Logs for this span」をクリックしたスパンに関連するログだけにフィルタリングされた WebAPI のログに切り替わりたす。 ログを泚芖しおいるず手掛かりになりそうなメッセヌゞが芋぀かりたす。 ログに蚘録されおいるメッセヌゞず゜ヌスコヌドを察比するず、䟋倖が発生しおいる箇所が芋぀かり、ここがアラヌトの原因であるこずが把握できたす。 webapp/webapi/src/main/java/jp/sios/apisl/handson/rollingdice/webapp/webapi/service/WebApiServiceImpl.java private void error(final Optional<Boolean> optError) { UtilEnvInfo.logStartClassMethod(); if (optError.isPresent() && optError.get()) { LOGGER.error( "!!! Intentional exception triggered: '{}' !!!", "HandsOnException"); throw new HandsOnException("Intentional error triggered by request parameter."); } } 実際の運甚では、把握した原因に察しお改修などで応急凊眮や恒久察応を行うこずで事故完了ずなりたすが、今回はデモずしお意図的に゚ラヌを発生させおいるので、該圓箇所は修正せずに、今埌は同じ操䜜をしないず蚀う誓いで事故完了の扱いずしたす。 ゚ラヌ発生から5分を経過するず、MailDev に゚ラヌ発生が解消されたこずを瀺す「RESOLVED」メヌルが届いおいるこずが確認できるので、これで゚ラヌ探玢の䞀連の流れが終了ずなりたす。 以䞊で、オブザヌバビリティヌの実挔はすべお終了です。お疲れ様でした メトリクスの可芖化からアラヌトを起点ずしたトラブルシュヌティングたでを䜓隓するこずで、オブザヌバビリティヌが実際の運甚でどう圹立぀のか、その「手觊り」を掎んでいただけたなら幞いです。 環境のクリヌンアップ オブザヌバビリティヌの実珟が䞀通り終わったら、これたでに利甚した環境をクリヌンアップしおハンズオンを終了したす。 コンテナ削陀スクリプトの実行 タヌミナルを甚いお、以䞋のディレクトリぞ移動したす。 $ cd ~/handson/hands-on-grafana/container/ 環境構築時にも䜿甚したスクリプトに down オプションを指定しお実行しお、オブザヌバビリティヌ環境の各皮コンテナを停止・削陀したす。 $ ./CREATE_CONTAINER.sh down スクリプトの実行が終わったら、 list オプションを付けおスクリプトを実行し、起動しおいるコンテナが存圚しない䞀芧に衚瀺されないこずを確認したす。 $ ./CREATE_CONTAINER.sh list ### START: Show a list of container ########## CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 以䞊で環境のクリヌンアップは完了です。お疲れ様でした。 続く Appendix では、このハンズオン環境を裏で支えおいる蚭定ファむルやスクリプトに぀いお解説したす。「どうやっおこの環境を䜜ったのか詳しく知りたい」ずいう方は、ぜひこのたたご芧ください。 Appendix ハンズオン環境の構築や蚭定手順で利甚しおいる各皮スクリプトや蚭定ファむルの実装内容に぀いお解説したす。 コンテナ構築スクリプトの解説 「 コンテナ構築スクリプトの実行 」章で䜿甚する「 CREATE_CONTAINER.sh 」スクリプトの凊理内容に぀いお解説したす。 コンテナの構築 本ハンズオン甚のリポゞトリは、別リポゞトリ「 Toshiharu-Konuma-sti/hands-on-rollingdice-webapp 」で管理されおいる Web アプリケヌションを参照するサブモゞュヌルを含んでいるので、サブモゞュヌル配䞋の゜ヌスコヌドを最新版で取埗したす。 $ git submodule update --init $ git submodule update --remote webapp 甚意した「docker-compose.yml」ず「docker-compose-webapp..yml」のコンテナ定矩ファむルで䞀気にコンテナを構築したす。 $ docker-compose \ -f docker-compose.yml \ -f docker-compose-webapp.base.yml \ -f docker-compose-webapp.mode.grafana.yml \ up -d -V --remove-orphans Creating network "intra-net" with driver "bridge" Creating network "hands-net" with driver "bridge" Creating grafana ... done : Creating webapi ... done コンテナ構築に利甚しおいるコンテナ定矩ファむルの内容は以䞋を参照しおください。 オブザヌバビリティヌ環境の構成ファむル解説 docker-compose.yml プロダクション環境の構成ファむル解説 docker-compose-webapp.base.yml docker-compose-webapp.mode.grafana.yml オブザヌバビリティヌ環境の構成ファむル解説 オブザヌバビリティヌ環境のコンテナを構築する各皮ファむルに぀いお説明したす。 コンテナ定矩docker-compose オブザヌバビリティヌ環境のコンテナを構築する「docker-compose.yml」ず環境倉数ファむルです。 docker-compose.yml 「x-healthcheck-minio」ノヌドでは、MinIO に察しお実斜するヘルスチェック凊理ずしお、9000番ポヌトが TCP 接続できるかどうかの確認を実装しおいたす。 「grafana」コンテナの特蚘事項は以䞋の通りです。 「environment」ノヌドの「GF_SMTP_HOST」にお、アラヌト通知でメヌル送信する際の SMTP サヌバヌを指定したす。 .env 「MINIO_ROOT_PASSWORD」にお、MinIO にアクセスするコンテナが接続時に必芁ずなるパスワヌドを指定したす。 Grafana 蚭定ファむル デヌタ゜ヌスの定矩ファむルです。 datasources.yaml メトリクス衚瀺甚に「Mimir for Metrics」デヌタ゜ヌス、ログ衚瀺甚に「Loki」デヌタ゜ヌス、トレヌス衚瀺甚に「Tempo」ず「Mimir for Trace」のデヌタ゜ヌスを甚意しおいたす。 ダッシュボヌドの定矩ファむルです。 dashboards.yaml 「My Explore Collection」「My Real-time User Monitoring」の2぀のダッシュボヌドが認識されるように定矩しおいたす。 my-explore-collection.json 「My Explore Collection」ダッシュボヌドの定矩ファむルで、Exemplar を有効にしたメトリクス、ログ、ノヌドグラフ、および CPU 利甚時間ずメモリ割圓お量のプロファむルを確認するこずができたす。 配眮䜍眮を瀺す「gridPos」ノヌドの考え方は以䞋の通りです。 「x」は暪幅を衚し、画面暪幅党䜓を仮想的な24ブロックで考えたす。 「y」ず「h」の関係は、瞊にA→B→Cずパヌツが䞊んでいた堎合、最初のパヌツは「0」から始たり「y+h」が次に続くパヌツの「y」になるため、 Aが「Ay=0, h=2」の堎合、次に続くBは「By=2, h=3」、その次に続くCは「Cy=5, h=4」ずなりたす。 my-real-time-user-monitoring.json 「My Real-time User Monitoring」ダッシュボヌドの定矩ファむルで、Faro から送信されおきた RUM を確認するこずができたす。 アラヌトの定矩ファむルです。 contact-points.yaml 「 アラヌトから゚ラヌ原因の探玢 (Alerting) 」章で説明しおいる Contact points を定矩しおいるファむルです。 alert-rules.yaml 「 アラヌトから゚ラヌ原因の探玢 (Alerting) 」章で説明しおいる Alert rules を定矩しおいるファむルです。 Mimir 蚭定ファむル Mimir に適甚する蚭定ファむルです。 mimir.yaml 「common.storage.backend」ず「common.storage.s3」ノヌドで、ストレヌゞに S3実際には互換ストレヌゞの MinIOを指定したす。 Loki 蚭定ファむル Loki に適甚する蚭定ファむルです。 loki.yaml 「common.storage.s3」ノヌドで、ストレヌゞに MinIO を指定したす。 Tempo 蚭定ファむル Tempo に適甚する蚭定ファむルです。 tempo.yaml 「metrics_generator」ノヌドで、サヌビスグラフの描画甚にトレヌスからメトリクスの生成ず、生成されたメトリクスの送信先を指定したす。 「storage.trace.backend」ず「storage.trace.s3」ノヌドで、ストレヌゞに MinIO を指定したす。 Alloy 蚭定ファむル Alloy に適甚する蚭定ファむルです。 config.alloy 「pyroscope.receive_http」ノヌドで Pyroscope から送信されおくるデヌタの受信ポヌトず、「pyroscope.write」ノヌドで送信先サヌバヌを指定したす。 「faro.receiver」ノヌドで Faro から送信されおくるデヌタの受信ポヌトず、「faro.receiver.output」ノヌドで送信先を定矩するノヌドを指定したす。送信先ずしお指定された「loki.writ」ず「otelcol.exporter.otlp」ノヌドで送信先のサヌバヌアドレスを指定したす。 ロヌドバランサヌ蚭定ファむル Mimir、Loki、Pyroscope の前段に配眮するロヌドバランサヌの Nginx に適甚する蚭定ファむルです。 nginx-mimir.conf nginx-loki.conf nginx-pyroscope.conf Tempo の前段に配眮するロヌドバランサヌの Nginx に適甚する蚭定ファむルです。 nginx-tempo-otlp.conf nginx-tempo-view.conf Tempo では、OpneTelemetry Collector からトレヌスが送られおくるポヌト番号4318ず、Grafana から衚瀺甚にアクセスしおくるポヌト番号80が異なっおいるため、それぞれのロヌドバランサヌを建おおいたす。 OpenTelemetry Collector 蚭定ファむル OpenTelemetry Collector コンテナに適甚する蚭定ファむルです。 otel-collector-config.yaml 「receivers.otlp.protocols.http」ノヌドで、Web アプリケヌションから OpenTelemetry 圢匏のメトリクスを HTTP で受信できるように指定したす。 「receivers.prometheus.config.scrape_configs」ノヌドの「job_name: “webapp”」蚭定で、OpenTelemetry Collector コンテナから Web アプリケヌションぞ Prometheus 圢匏でメトリクスを取埗するように指定したす。 「receivers.mysql」ノヌドで、MySQL サヌバヌからメトリクスを取埗するように指定したす。 プロダクション環境の構成ファむル解説 プロダクション環境のコンテナを構築する各皮ファむルに぀いお説明したす。 コンテナ定矩docker-compose アプリケヌションを構成する各コンテナを構築する「docker-compose-webapp.mode.grafana.yml」ファむルです。 docker-compose-webapp.mode.grafana.yml 「webapp-webui」ず「webapp-webapi」コンテナが起動する際に実行するコマンドを指定する「command」ノヌドでは、Web アプリケヌションを Pyroscope の自動蚈装でプロファむリングさせたいので、Web アプリケヌションの起動に「 ./gradlew bootRun 」は䜿わずに「 java -javaagent:pyroscope.jar 」コマンドを䜿い該圓のラむブラリをロヌドしながら起動したす。 たずめ 実際に手を動かしおログやメトリクスを远うこずで、「オブザヌバビリティヌ可芳枬性」ずいう蚀葉の解像床がぐっず䞊がったのではないでしょうか 耇雑な理論を孊ぶこずも倧切ですが、こうしお実際の画面でシステムの挙動を芋る䜓隓こそが、DevOps 実践ぞの第䞀歩だず考えおおり、今回の䜓隓を通しお、「意倖ず自分でも構築できそうだ」「この機胜は今の珟堎でも䜿えそうだ」ず、少しでも身近に感じおいただけたなら本望です。 なお、本蚘事で玹介した OSS 版の掻甚はもちろんのこず、運甚負荷を軜枛したい堎合には Grafana Cloud を遞択肢に入れるこずも可胜です。「たずは OSS で小さく始めお、芏暡が倧きくなったら Cloud ぞ」ずいった柔軟な䜿い分けも怜蚎いただけたす。 このデモ環境での䜓隓を切っ掛けに、ぜひ次は皆様自身のアプリケヌションやむンフラ環境でも、この「芋える化」に挑戊するモチベヌションに繋がれば幞いです。 ご芧いただきありがずうございたす この投皿はお圹に立ちたしたか 圹に立った 圹に立たなかった 0人がこの投皿は圹に立ったず蚀っおいたす。 The post Grafana OSS LGTM スタックで䜓隓する『オブザヌバビリティヌ入門』 first appeared on SIOS Tech Lab .
みなさん、こんにちは。゜リュヌションアヌキテクトの西村です。 今週も 週刊AWS をお届けしたす。 いきなりですが、 AWS Builder Center はご存じですかハンズオンワヌクショップで生成 AI やサヌバヌレスアヌキテクチャを実践したり、コヌド䟋やチュヌトリアルで具䜓的な実装方法を孊んだり、AWS Heroes や Community Buildersず繋がっお知芋を共有したり。さらに、AWS 補品チヌムぞのフィヌドバックや機胜提案もできたす。技術蚘事、ナヌザヌグルヌプ、実践的なラボたで、ビルダヌに必芁なリ゜ヌスが䞀箇所に集玄されおいる、それが AWS Builder Center です今週の週刊 AWS で気になったトピックがあれば、Builder Center でさらなる知識の深掘りもいかがですか それでは、先週の䞻なアップデヌトに぀いお振り返っおいきたしょう。 2026幎2月16日週の䞻芁なアップデヌト 2/16(月) Amazon EC2 がネスト仮想化をサポヌト Amazon EC2 でネスト仮想化がサポヌトされ、EC2 むンスタンス内に曎に仮想環境を䜜成できるようになりたした。埓来はベアメタルむンスタンスでしかネスト仮想マシンを䜜成できたせんでしたが、通垞の EC2 むンスタンス䞊でも KVM や Hyper-V を実行可胜になりたす。モバむルアプリの゚ミュレヌタヌ実行や自動車の車茉システムシミュレヌション、Windows 環境での Linux 実行など、より柔軟な仮想環境構築が可胜です。 AWS Backup が AWS 䞊の SAP HANA に察する PrivateLink サポヌトを発衚 AWS Backup が SAP HANA システム向けに AWS PrivateLink をサポヌト開始したした。これたで SAP HANA のアプリケヌション通信は PrivateLink を䜿っおプラむベヌトネットワヌク経由にできたしたが、バックアップ通信はパブリック゚ンドポむントを経由する必芁がありたした。今回のアップデヌトで、バックアップトラフィックもプラむベヌトネットワヌク経由でルヌティングできるようになり、むンタヌネットを経由しない完党にプラむベヌトな通信が実珟したす。金融、医療、政府機関など芏制の厳しい業界では HIPAA や PCI DSS などのコンプラむアンス芁件でプラむベヌト通信が求められるこずが倚く、このアップデヌトにより゚ンドツヌ゚ンドでプラむベヌトなデヌタ保護戊略を実装できたす。詳现は こちらのドキュメントをご参照ください。 Amazon DocumentDB 5.0 での長期サポヌト (LTS) の発衚 Amazon DocumentDB 5.0 で長期サポヌト (LTS) の提䟛が開始されたした。LTS 版ではデヌタベヌスのアップグレヌド頻床ずメンテナンス負荷を倧幅に軜枛できたす。新機胜の远加は行わず、重芁な安定性ずセキュリティパッチのみを適甚するため、本番環境での安定運甚を重芖する䌁業にずっお理想的な遞択肢です。詳现は こちらのドキュメントをご参照ください。 Amazon Aurora が保存時のサヌバヌサむド暗号化をサポヌト Amazon Aurora で新しく䜜成するデヌタベヌスクラスタヌに察しお、デフォルトで暗号化が自動適甚されるようになりたした。これたで手動で蚭定が必芁だった暗号化が、今埌は新芏䜜成時に自動で有効になりたす。AWS が管理する暗号化キヌを䜿甚するため、コストやパフォヌマンスぞの圱響はありたせん。セキュリティ蚭定の手間を省き぀぀、デヌタ保護を匷化できるのがメリットです。詳现は こちらのドキュメントをご参照ください。 AWS Glue 5.1 が 18 の远加リヌゞョンで利甚可胜に AWS Glue 5.1 が新たに倧阪リヌゞョンを含む 18 のリヌゞョンで利甚可胜になりたした。AWS Glue はサヌバヌレスなデヌタ統合サヌビスで、耇数のデヌタ゜ヌスからデヌタを発芋・準備・移動・統合できたす。AWS Glue 5.1 では Apache Spark 3.5.6 や Python 3.11 ぞの察応により性胜ずセキュリティが向䞊し、これたで読み取り専甚だった Lake Formation のアクセス制埡が曞き蟌み操䜜にも察応しおいたす。 2/17(火) Claude Sonnet 4.6 が Amazon Bedrock で利甚可胜に Amazon Bedrock で Claude Sonnet 4.6 が利甚可胜になりたした。このモデルは埓来の Claude Sonnet 4.5 から倧幅にアップグレヌドされ、コヌディングや゚ヌゞェント機胜、ビゞネス業務においお優秀な性胜を発揮したす。䌁業では衚蚈算䜜成、コンプラむアンス確認、デヌタ芁玄などの専門的な業務に掻甚でき、高品質な結果を効率的に埗られたす。詳现は こちらのリリヌス蚘事をご参照ください。 Amazon Connect で゚ヌゞェントの䌑暇申請がドラフトスケゞュヌルに含たれるようになりたした Amazon Connect で゚ヌゞェントの䌑暇申請がドラフトスケゞュヌルに含たれるようになりたした。これたでは、特定の日に゚ヌゞェントがスケゞュヌルされおいない理由を確認するのに、別の䌑暇スケゞュヌルを確認しお再調敎する必芁がありたした。このアップデヌトにより、䟋えば来月のスケゞュヌル䜜成時に、普段月〜金で働く゚ヌゞェントが最初の週にいない理由が䌑暇取埗だずすぐに刀明したす。スケゞュヌル管理者は公開前にカバレッゞ䞍足を玠早く特定し調敎できるため、より効率的な運甚が可胜になりたす。詳现は こちらのドキュメントをご参照ください。 Amazon Aurora MySQL 3.12 (MySQL 8.0.44 互換) が䞀般提䟛開始 Amazon Aurora MySQL の最新バヌゞョン 3.12 が提䟛開始されたした。MySQL 8.0.44 に察応し、セキュリティ匷化やバグ修正に加え、可甚性が向䞊しおいたす。既存のデヌタベヌスから手動アップグレヌドたたは自動曎新蚭定が可胜で、ダりンタむムを最小限に抑えながら最新機胜を利甚できたす。高いパフォヌマンスず安定性を求めるアプリケヌションに最適で、党おの Aurora MySQL 察応リヌゞョンで利甚可胜です。 2/18(æ°Ž) Amazon OpenSearch Service が Graviton4 (c8g、m8g、r8g) むンスタンスのサポヌトを拡匵 Amazon OpenSearch Service で最新の Graviton4 ベヌス EC2 むンスタンス (c8g, m8g, r8g, r8gd) のサポヌトが拡匵されたした。Graviton4 は埓来の Graviton3 ず比べお最倧 30% のパフォヌマンス向䞊を実珟し、コンピュヌト集玄型、汎甚、メモリ集玄型ワヌクロヌドで最高の䟡栌性胜比を提䟛したす。倧阪リヌゞョンなど 12 の新しいリヌゞョンでも利甚可胜ずなり、より幅広い地域でコスト効率の高い怜玢・分析凊理が可胜になりたす。詳现は こちらの Blog 蚘事をご参照ください。 Amazon Aurora DSQL が Kiro powers ず AI ゚ヌゞェントスキルず統合 Amazon Aurora DSQL が Kiro powers ず AI ゚ヌゞェントスキルず統合し、AI ゚ヌゞェントの支揎でデヌタベヌスアプリケヌション開発が倧幅に効率化されたした。これたで手動で行っおいたスキヌマ蚭蚈や性胜最適化を AI がサポヌトし、開発者は事前知識がなくおも安心しお Aurora DSQL を掻甚できたす。Kiro IDE でワンクリックむンストヌルでき、Claude や Cursor など䞻芁な AI コヌディング゚ヌゞェントで利甚可胜です。 AWS Certificate Manager が新しいガむドラむンに準拠するため、デフォルトの蚌明曞有効期間を短瞮 AWS Certificate Manager (ACM) でパブリック蚌明曞の有効期限が 395 日から 198 日に短瞮されたした。これは 2026 幎のセキュリティ暙準匷化に先立぀察応で、蚌明曞の曎新頻床が䞊がるこずでセキュリティが向䞊したす。既存蚌明曞はそのたた利甚でき、自動曎新も継続されるため远加䜜業は䞍芁です。さらに、゚クスポヌト可胜蚌明曞の䟡栌が玄半額に䞋がり (15 ドル→7 ドル)、コスト削枛にも぀ながりたす。詳现は こちらのドキュメントをご参照ください。 2/19(朚) Amazon EC2 M8i-flex むンスタンスが東京リヌゞョンで利甚可胜に Amazon EC2 M8i-flex むンスタンスが東京、゜りル、シンガポヌル、マレヌシア、フランクフルト、カナダ䞭倮リヌゞョンで利甚開始されたした。Intel Xeon 6 プロセッサを搭茉し、埓来の M7i-flex ず比范しお 15% のコストパフォヌマンス向䞊ず 2.5 倍のメモリ垯域幅を実珟したす。PostgreSQL で 30%、NGINX で 60%、AI 深局孊習で 40% の性胜向䞊が期埅でき、Web アプリケヌションやマむクロサヌビスに最適です。詳现は こちらの Blog 蚘事をご参照ください。 Amazon EC2 G7e むンスタンスが東京リヌゞョンで利甚可胜に Amazon EC2 G7e むンスタンスが東京リヌゞョンで利甚開始ずなりたした。NVIDIA RTX PRO 6000 Blackwell Server Edition GPU を搭茉し、埓来の G6e ず比范しお最倧 2.3 倍の掚論性胜を実珟したす。倧芏暡蚀語モデル (LLM) や生成 AI モデルの展開に最適で、最倧 8 GPU ず GPU あたり 96 GB のメモリを提䟛したす。グラフィックス凊理ず AI 凊理の䞡方が必芁な空間コンピュヌティングワヌクロヌドで最高のパフォヌマンスを発揮し、マルチモヌダル AI アプリケヌションの構築がより効率的になりたす。 2/20(金) Amazon RDS for Oracle が 2026 幎 1 月リリヌス曎新ず Spatial パッチバンドルをサポヌト Amazon RDS for Oracle が 2026 幎 1 月のリリヌスアップデヌト (RU) に察応したした。Oracle Database 19c ず 21c 向けのセキュリティ修正が含たれおおり、デヌタベヌスの安党性が向䞊したす。たた 19c 向けには Spatial Patch Bundle も提䟛され、地理空間デヌタを扱う Oracle Spatial 機胜のパフォヌマンスず信頌性が改善されたす。メンテナンス時間䞭の自動アップグレヌドも蚭定でき、運甚負荷の軜枛が可胜です。詳现は こちらのドキュメントをご参照ください。 2 月もあず週間ですこのたただんだん暖かくなるずいいですね それでは、たた来週 著者に぀いお 西村 å¿ å·±(Tadami Nishimura) / @tdmnishi AWS Japan の゜リュヌションアヌキテクトずしお、小売・消費財業皮のお客様を担圓しおいたす。デヌタガバナンスの芳点から、お客様がデヌタ掻甚を効果的に行えるようなデモンストレヌションなども倚く行っおいたす。奜きなサヌビスは Amazon Aurora ず Amazon DataZone です。趣味は筋トレで、自宅に埒歩分のトレヌニングルヌムを構築しお、日々励んでいたす。

動画

該圓するコンテンツが芋぀かりたせんでした

曞籍