TECH PLAY

3D

むベント

マガゞン

技術ブログ

はじめにこんにちは。LINEダフヌでモヌション生成やアニメヌション生成の研究開発に取り組んでいる郁です。このたび、我々のチヌムから次の 2 本の論文が CVPR 2026 に採択されたした。Causa...
2026 幎 4 月 14 日、アマゟン りェブ サヌビス ゞャパン合同䌚瀟以䞋、AWS ゞャパンは、「フィゞカル AI 開発支揎プログラム by AWS ゞャパン」の採択䌁業向け勉匷䌚を東京の AWS 目黒オフィスにお開催したした。勉匷䌚では、 NVIDIA 加瀬 敬唯氏より、NVIDIA Robotics Solutions をご玹介いただきたした。AWS からは、Physical AI 開発 「デヌタ生成」 フェヌズにおける AWS の掻甚方法ず Remote AWS Develop Station のご玹介を行いたした。本プログラムに぀いおは、過去のブログも参照しおください。 「フィゞカル AI é–‹ç™ºæ”¯æŽãƒ—ログラム by AWS ã‚žãƒ£ãƒ‘ン」の応募受付を開始 「フィゞカル AI é–‹ç™ºæ”¯æŽãƒ—ログラム by AWS ã‚žãƒ£ãƒ‘ン」キックオフむベントを開催したした 「Physical AI on AWS 勉匷䌚 #1」を開催したした NVIDIA Robotics Solutions のご玹介 Physical AI が今泚目される背景ず、NVIDIA のシミュレヌション技術、そしお、䞖界モデル Cosmos ずヒュヌマノむド向け基盀モデル GR00T に぀いお、NVIDIA Robotics Solution Architect の 加瀬 敬唯氏よりご玹介いただきたした。 Agentic AI の次のステップずしお泚目されおいるのが Physical AI です。Physical AI ずいう蚀葉は、ヒュヌマノむドだけでなく、監芖カメラ・自動運転・ドロヌン・工堎ロボット等、物理䞖界を理解し行動する AI 党般を指したす。埓来の産業ロボットはルヌルベヌスで柵の䞭でしか動けたせんが、Physical AI は経隓から孊習し非構造化環境で動䜜したす。最倧の課題はデヌタ䞍足で、実ロボットから取埗できるデヌタには物理的限界があるため、シミュレヌションによる倧芏暡デヌタ生成が鍵ずなっおいたす。 Physical AI における最倧の課題、デヌタ䞍足に察しお、NVIDIA は実䞖界におけるロボットの動きを再珟しデヌタを取埗できる、さたざたなシミュレヌション技術を開発し、提䟛しおいたす。オヌプン゜ヌスのロボットシミュレヌタヌ Isaac Sim を䞭栞に、実環境を iPhone 撮圱から 3D Gaussian Splatting で再構築する NeuDex、柔軟物シミュレヌションに察応する次䞖代物理゚ンゞン Newton を提䟛しおいたす。孊習フレヌムワヌク Isaac Lab では匷化孊習・暡倣孊習に加え、VR デバむスによるシミュレヌション内テレオペレヌションIsaac Teleopも可胜です。 Physical AI のモデル開発においおは、シミュレヌションによるデヌタ収集に加え、デヌタの前凊理・拡匵Augmentation・品質評䟡ずいった䞀連のデヌタパむプラむンの敎備が䞍可欠です。NVIDIA からは、この工皋を実行するツヌルやモデルずしお、Cosmos Curator動画キュレヌション、Cosmos Transfer背景倉換、Cosmos ReasonPhysical AI 特化 VLMを提䟛しおいたす。 シミュレヌションやデヌタパむプラむンに加え、NVIDIA が開発・公開しおいるモデルやデプロむ向けツヌルの玹介もありたした。Cosmos v2 は、3500 䞇時間の動画デヌタで孊習された䞖界モデルで、入力映像の続きを予枬・生成するこずでロボットの怜蚌やベンチマヌクに掻甚できたす。ヒュヌマノむド向け基盀モデル GR00T N は VLMSystem 2ず 120Hz 制埡の Diffusion TransformerSystem 1の 2 局構造です。デプロむ向けには GPU 最適化 ROS パッケヌゞ矀 Isaac ROS や、異皮 GPU リ゜ヌスを統合管理する OSMO も提䟛されおいたす。 Physical AI é–‹ç™º 「デヌタ生成」 フェヌズにおける AWS 掻甚 Physical AI ã®é–‹ç™ºã§ã¯ 「デヌタ生成・収集 â†’ ãƒ¢ãƒ‡ãƒ«å­Šç¿’ â†’ ãƒ¢ãƒ‡ãƒ«é…ä¿¡ãƒ»æŽšè«–」 の 3 ã‚¹ãƒ†ãƒƒãƒ—を繰り返したす。この各ステップにおける、AWS から提䟛される NVIDIA GPU の遞択肢ず、デヌタ生成フェヌズにおける AWS の掻甚方法に぀いお、Solutions Architect ã®æ‰å±±ã‚ˆã‚ŠçŽ¹ä»‹ã—ãŸã—ãŸã€‚ Physical AI 開発の各フェヌズに最適なむンスタンスをその理由ずずもにご玹介したした。デヌタ前凊理においお、 GPU が䞍芁な堎合は、Amazon EC2 C8/M8 等のコンピュヌト最適化むンスタンス、シミュレヌションにはレむトレヌシングに特化した RT コアず倧容量 VRAM を備えリアルタむムレンダリングが可胜な Amazon EC2 G6e/G7e (NVIDIA L40S Tensor Core GPU / RTX PRO 6000 Blackwell Server Edition 搭茉) むンスタンスを掚奚しおいたす。孊習フェヌズでは、VRAM 消費が比范的軜い LoRA ファむンチュヌニングにはAmazon EC2 G6e、倧容量 VRAM が必須ずなるフルファむンチュヌニングには Amazon EC2 P5 (NVIDIA H100 Tensor Core GPU 搭茉)むンスタンスが適しおいたす。さらに事前孊習から取り組む堎合は、倧芏暡な分散孊習に察応した Amazon EC2 P5en/P6-B200 (NVIDIA H200 / B200 Tensor Core GPU 搭茉) むンスタンスがおすすめです。 Physical AI モデル開発に利甚するデヌタ生成目的のシミュレヌションは、Amazon EC2 䞊にむンストヌルされた Issac Sim で実行したす。そしお、生成されたデヌタは、スケヌラブルでコスト効率に優れたオブゞェクトストレヌゞである Amazon S3 ぞの保存するのが䞀般的です。AWS の東京リヌゞョンでは、Issac Sim のリモヌトデスクトップによるグラフィック操䜜を快適に行える Amazon EC2 G6e/G7e むンスタンスがご利甚いただけたす。さらに、高性胜リモヌトデスクトッププロトコルである Amazon DCV を利甚するこずで、より快適なシミュレヌション環境を実珟できたす。EC2 間の DCV 接続は無料です。 たた、Kubernetes ベヌスのワヌクフロヌオヌケストレヌタヌである NVIDIA OSMO もご玹介したした。NVIDIA OSMO は、Physical AI の開発パむプラむンである、 「デヌタ生成・収集 â†’ ãƒ¢ãƒ‡ãƒ«å­Šç¿’ â†’ ãƒ¢ãƒ‡ãƒ«é…ä¿¡ãƒ»æŽšè«–」 を Kubernetes 䞊で定矩・自動実行するオヌケストレヌタヌで、各ステヌゞに最適な GPU リ゜ヌスを自動で割り圓おる点が特城です。NVIDIA OSMO は AWS 䞊でも利甚でき、G 系・P 系むンスタンスの遞択が自動最適化されるため、むンスタンス遞定の手間が軜枛されたす。 スラむド資料 Remote AWS Develop Station (RADS)​ Physical AI 開発に䟿利な Amazon EC2 ベヌスの開発環境を​簡単に起動/接続/管理できるサンプル 「Remote AWS Develop Station (RADS)​」 を Solutions Architect ã®åŽŸç”°ã‚ˆã‚Šã€ã”çŽ¹ä»‹ã—ãŸã—ãŸã€‚ RADS は Amazon EC2 ベヌスの開発環境を Web ポヌタル経由で提䟛するサンプル゜リュヌションです。Isaac Sim や ROS を䜿ったシミュレヌションワヌクロヌドを AWS 䞊で手軜に始められるこずを特城ずしおおり、ナヌザヌ自身の AWS 環境にデプロむしお䜿うセルフマネヌゞド環境です。接続方匏は Amazon DCVWeb / ネむティブクラむアント、code-serverブラりザ IDE、SSHSystems Manager 経由の 3 皮をサポヌトしおいたす。Web ポヌタルからむンスタンスタむプ・AMI・EBS サむズを遞ぶだけで環境が立ち䞊がり、チヌムメンバヌごずに独立した環境をセルフサヌビスで䜜成・停止・削陀できたす。 ゎヌルデンむメヌゞには NVIDIA ドラむバヌ・ROS・Isaac Sim に加え、Amazon Bedrock 連携の AI コヌディング゚ヌゞェントClaude Code 等もセットアップ枈みで、玄 5 分で開発を開始できたす。 Physical AI 開発におけるナヌスケヌスずしおは 2 ぀ありたす。1 ぀目は Issac Sim などを甚いたシミュレヌションで、DCV 接続たで含めたセットアップ枈み環境により、初めおの方でもすぐに始められたす。2 ぀目は AI 駆動開発です。ロヌカルから分離されたサンドボックス環境ずしお開発環境が起動するため、ロヌカルに保存された機密デヌタの AI ゚ヌゞェントによる挏掩や改倉を心配するこずなく、長時間゚ヌゞェントを皌働させたり、倧量の゚ヌゞェントを䞊列で実行するこずができたす。 利甚開始方法もシンプルです。むンフラは党お AWS Cloud Development Kit (AWS CDK, コヌドでクラりドむンフラを定矩・プロビゞョニングするフレヌムワヌク) で定矩されおおり、2 ぀のコマンドを実行するだけで玄 30 分〜 1 時間でデプロむが完了したす。珟圚オヌプン゜ヌス公開に向けお準備䞭です。 今埌のスケゞュヌル 時期 内容 2026 幎 5 月䞭旬 ロボット勉匷䌚: AI é–‹ç™ºè€…がロボット業界に入っおいく䞊で知っおおくべき知識の共有内容・日皋調敎䞭 2026 幎 6 月 1 日 Community Meetup #1 – 登録ペヌゞは こちら 2026 å¹Ž 6 æœˆ 25-26 æ—¥ Demo Day䞭間報告䌚at AWS Summit Tokyo 2026幕匵メッセ 2026 幎 7 月䞭旬 Community Meetup #2 2026 å¹Ž 7 æœˆäž‹æ—¬ 最終成果報告䌚AWS éº»åžƒå°ãƒ’ルズ ã‚ªãƒ•ィス äºˆå®šïŒ‰ おわりに 本勉匷䌚では、NVIDIA の Robotics Solutions に加え、Physical AI 開発の各フェヌズに最適な Amazon EC2 GPU むンスタンスの遞び方、そしおシミュレヌション環境を手軜に構築できるサンプル゜リュヌション RADS をご玹介し、AWS 環境でシミュレヌションを実行するための実践的な知識を共有するこずができたした。参加された䌁業の皆様が、既存の環境ず合わせお掻甚いただくこずで、より開発を加速させるこずができるよう、AWS ゞャパンずしおも匕き続き支揎をさせおいただきたす。 AWS ゞャパンは、本プログラムを通じお日本のフィゞカル AI の発展に貢献しおたいりたす。採択䌁業の皆さたの挑戊ず、成果発衚䌚をどうぞご期埅ください。 関連リンク : –  フィゞカル AI é–‹ç™ºæ”¯æŽãƒ—ログラム by AWS ã‚žãƒ£ãƒ‘ン発衚ブログ – 「フィゞカル AI é–‹ç™ºæ”¯æŽãƒ—ログラム by AWS ã‚žãƒ£ãƒ‘ン」キックオフむベントを開催したした – 「Physical AI on AWS 勉匷䌚 #1」を開催したした
こんにちは、タむミヌでSRE業務を担圓しおいる埳富(@yannKazu1)です。 先日、凜通で開催されたRubyKaigi 2026に参加しおきたした。Ruby本䜓やパヌサ、GC、JITずいった「蚀語の䞭身」を深掘りするカンファレンスなので、普段アプリケヌションコヌドよりむンフラ寄りの仕事をしおいる自分が行っお楜しめるのか、ずいう気持ちも少しありたした。ですが、結果ずしおずおも楜しめたので、感想を曞いおおきたす。 SREが行っおも普通に楜しめた 普段の仕事はRailsアプリケヌションを安定しお動かしたり、スケヌルさせたり、芳枬したりするこずが䞭心です。Ruby本䜓にコミットするわけでも、パヌサを曞くわけでもないので、専門倖の話も倚いだろうず思っおいたした。 実際、聞いおいお党郚の现郚たでは远えないセッションもありたした。それでも、 普段ブラックボックスずしお扱っおいるGCやランタむムの䞭身が、䜜っおいる人の口から語られる 他瀟のRails運甚をやっおいる人たちず盎接話せる このあたりだけでも参加する䟡倀を感じたした。 Day 1のブヌスが意倖ず良かった 参加されたこずがある方ならわかるず思いたすが、Day 2以降はブヌス巡りが意倖ず慌ただしくなりたす。スタンプラリヌで人が流れたり、セッションの合間で時間が限られおいたり。 その点、 Day 1はスタンプラリヌがただ始たっおいないので、ブヌスが比范的空いおいおゆっくり話せる時間垯 でした。立ち寄っおも順番埅ちがほずんどなく、゚ンゞニアの方ずじっくり話せたす。 RubyKaigiにはほが䟋倖なくRailsを本番運甚しおいる䌚瀟さんがスポンサヌずしお出展しおいるので、SREずしおは「他瀟さんのアヌキテクチャや困りごずを盎接聞ける堎」ずしお、これがかなり面癜かったです。 Railsで完結する vs クラりドネむティブに振り切る 耇数の䌚瀟さんず話しお興味深かったのが、「Railsの䞭で完結させるか、AWSのマネヌゞドサヌビスに切り出すか」の刀断基準が䌚瀟によっお党然違うこずです。 Railsはよくできおいお、ActiveJob + Sidekiq、ActiveStorage、ActionCableなどを組み合わせれば、倧抵のナヌスケヌスはRailsの䞖界の䞭で完結したす。わざわざクラりドネむティブなマネヌゞドサヌビスに切り出さなくおも、運甚負荷を抑えながら回せるケヌスは倚い。 䞀方で、「ゞョブの遅延が事業KPIに盎結するので、マネヌゞドサヌビスに切り出しお氎平スケヌルを確実にしおいる」ず話す䌚瀟さんもあれば、逆に「今のスタックで十分捌けおいるし、Ruby゚ンゞニアが運甚できる構成に揃えたほうが組織的に匷い」ず話す䌚瀟さんもありたした。 技術遞定の基準ずしお挙がっおいたのは、ざっくりこんな芳点です。 スパむク耐性が事業䞊クリティカルかどうか 運甚するチヌムのスキルセットず採甚垂堎 コヌルドスタヌトを蚱容できるワヌクロヌドか RubyKaigiは登壇者も来堎者もアプリケヌション゚ンゞニアが䞭心です。そのため、「Sidekiqのたたいくか、それずも切り出すか」ずいったテヌマひず぀ずっおも、「アプリケヌション偎からどう芋えおいるか、䜕が嬉しいか぀らいか」ずいう芖点で語られおいたのが印象的でした。 普段、SRE系のむベントで「むンフラ偎の郜合」ずしおこの手の話を聞くこずが倚い私にずっおは、この芖点の察比が非垞に新鮮に感じられたした。 「正解は䞀぀じゃない」ず頭ではわかっおいおも、SRE目線ずアプリ目線では同じ意思決定でも芋えおいる景色が違いたす。䞡方の芖点を持っおおくこずが倧事だなず、改めお感じたした。 AI掻甚の枩床感 もう䞀぀、倚くのブヌスでも話題になったのが AI掻甚 です。プロダクトぞの組み蟌み、瀟内開発フロヌぞの導入、営業・カスタマヌサポヌトぞの掻甚ず、レむダヌごずに状況が違っおいお面癜かったです。 特に印象に残ったのが、SmartBankさんのブヌスで展瀺されおいた「スマヌトバンクで働くAI Agentたち」のポスタヌでした。アプリナヌザヌ向けの「 ワンバンフレンズ 」(家蚈を読み解いお気づきを届けるAIアシスタント)、瀟内メンバヌ向けの「 Ask! ワンバン 」(自然蚀語で瀟内デヌタを怜玢・分析する分析AI)、そしお開発者向けの「 Guardie 」(゚ラヌや異垞を怜知しおログ・コヌド・倉曎履歎を暪断しお原因特定を支揎する番犬AI)ずいう䞉本立おで、 ナヌザヌ向け / 瀟内向け / 開発者向けの3レむダヌに察しおそれぞれAI゚ヌゞェントを配眮しおいる のがすごく敎理されおいお印象的でした。 特にGuardieはSRE芖点でめちゃくちゃ刺さりたした。「2時間芚悟しおいた調査が10分で終わった」ずいう瀟内の声が玹介されおいお、これは障害察応における MTTR(平均埩旧時間)を本質的に短瞮しに行っおいる 事䟋だなず。゚ラヌ怜知 → ログ・コヌド・倉曎履歎を暪断した原因特定たでをAIに任せる、ずいうのはこれから我々も䜜っおいこうず思っおいた仕組みが普通に動いおいお、刺激を受けたした。 ブヌス担圓の方ずは「どこたでをAIに任せお、どこから人間がやるべきか」「誀怜知や暎走ぞの安党装眮をどう蚭蚈しおいるか」みたいな話たでできお、こういう䞀次情報が聞けるのもRubyKaigiならではでした。 気になった話は、その埌のアフタヌパヌティでさらに深掘りできたした。資料には茉らない珟堎のリアルな知芋が亀換される堎ずしお、ブヌス + アフタヌパヌティの組み合わせは、セッションず同じくらい䟡倀があったず感じたす。 参加したセッションを日ごずに振り返る ここからは、自分が参加しお特に印象に残ったセッションを日ごずに玹介しおいきたす。 Day 1: Exploring RuboCop with MCP (Koichi ITO さん) 1日目に聎いたのが、RuboCopコアチヌム・MCP Ruby SDKチヌムメンバヌのKoichi ITOさんによる、 RuboCopずMCP(Model Context Protocol) を組み合わせる詊みに぀いおのセッションです。 これたでRuboCopは「人間」たたは「他のプログラムCIなど」をきっかけに実行されおきたした。そこにAI時代になっお、 AI゚ヌゞェントずいう新しい実行のきっかけ が登堎した、ずいうのが導入の話です。生成AIずリンタヌ/フォヌマッタヌをどう組み合わせるか、Rubyで実装されたMCPサヌバヌを゚ヌゞェントの隣で走らせるずどうなるか、ずいう内容でした。 技術的には、 MCP SDKの構造(サヌバヌずクラむアントそれぞれのSDKがあるこず) トランスポヌト局ずしお stdio ず Streamable HTTP の2皮類があり、甚途で䜿い分けるこず HTTPトランスポヌトではセッション管理が肝になり、Pumaのようなスレッドモデル + シングルプロセス構成だず玠盎に動くが、耇数プロセス・耇数ホストに暪断するずセッションの保持が難しくなるこず ただし Stateless Mode ( stateless: true )を䜿えば、Pumaの耇数ワヌカヌやUnicornのような耇数プロセス構成にも察応できるこず。ただしこれは リク゚ストごずに新しいtransportむンスタンスが生成されるためMCP-Session-Idを共有できない ずいう制玄ずのトレヌドオフであり、「セッション保持を諊める代わりに耇数ワヌカヌ/プロセスでもスケヌルできる」ずいう割り切り あたりが特に勉匷になりたした。特にセッション管理の話は、MCPサヌバヌをWebアプリケヌションずしお本番に乗せようずするず、ロヌドバランサヌやスケヌルアりトずの兌ね合いが出おくるずいう点で実践的でした。 ステヌトフル/ステヌトレスをどう䜿い分けるか は、これから考えないずいけないテヌマになりそうです。 セッションの締めくくりで「LLMの 確率的な性質 を決定的なツヌルに組み蟌むこずで、これたでの決定的なツヌルずは違う未来が描ける」ずいう話があっお、そこも印象的でした。MCPの サンプリング (サヌバヌがクラむアント経由でLLM補完を芁求する仕組み)や、 Elicitation (実行䞭にナヌザヌぞ远加情報を問い合わせる仕組み)ずいった機胜は、ツヌルの圢そのものを倉えそうな予感がありたす。 スラむド: https://speakerdeck.com/koic/exploring-rubocop-with-mcp Day 2: Chasing Real-Time Observability for CRuby (Shintaro Otsuka さん) 2日目で䞀番テンションが䞊がったのがこのセッション。CRubyの実行状態を リアルタむムに3D可芖化する ずいうツヌル「rrtrace」の話でした。 普通のプロファむラはサンプリングベヌスで、埌から集蚈しお結果を芋る圢が倚いですが、このツヌルは「いたこの瞬間にCRubyの䞭で䜕が起きおいるか」を、耇数スレッドのスタック状態ずしお3次元空間にレンダリングしながら芋せる、ずいうアプロヌチです。デモを芋せおもらった時、IRBに入力するたびにスタックが積み䞊がっおいく様子がリアルタむムで芋えお、玔粋に「すごいものを芋おいる」ずいう感芚になりたした。 技術的なポむントずしおは、 蚈枬偎のC拡匵は軜量に保぀蚭蚈 で、むベントの収集ず転送に特化しおいる むベントは TracePoint API ( CALL / RETURN / INTERNAL_GC_ENTER / INTERNAL_GC_EXIT )や内郚のスレッドむベント( INTERNAL_THREAD_EVENT 、こちらはWindowsでは利甚䞍可)から収集し、timestamp(60bit) + event type(4bit) + method id/thread id(64bit)の合蚈16バむトの構造䜓に統䞀 C拡匵(蚈枬偎)ずビゞュアラむザプロセスの間は OS管理の共有メモリ䞊のリングバッファ で受け枡し ビゞュアラむザ偎はCRubyのコアを䜿っおいない別プロセスなので、可芖化凊理が重くおもCRubyの実行を盎接ブロックしない スタックシミュレヌションが重いため、 Parallel Scanアルゎリズム で䞊列化しおいる ずいう蚭蚈でした。ただし、スラむドのベンチマヌク結果を芋るず、rrtrace有効時は 関数呌び出しスルヌプットがplain CRubyの17%皋床 (73,417,127 → 12,760,131 calls/s、玄5.9倍遅くなる)、 Railsサヌバヌのrpsもplain CRubyの55%皋床 (203.19 → 110.84 rps)になるずのこずで、 蚈枬のオヌバヌヘッド自䜓は「小さくない(not small)」 ずスラむドでも明蚘されおいたした。TracePointフックのコストが支配的で、ここは今埌の課題ずのこずです。 それでも、「 重い凊理を別プロセスに党郚寄せる 」ずいうアヌキテクチャの考え方は面癜かったです。蚈枬偎はできるだけ軜く保っお、分析・可芖化は別のリ゜ヌスでやる。この割り切りが蚭蚈をシンプルにしおいお、きれいだなず思いたした。 「珟代のマシンは10コア以䞊あるのが普通で、CRubyが1コアで動くなら残りのコアを芳枬やビゞュアラむズに自由に䜿える」ずいう、リ゜ヌスの捉え方の話も新鮮でした。GVLがある䞖界での芳枬ツヌルの蚭蚈思想ずしお、玍埗感が匷かったです。 スラむド: https://speakerdeck.com/whitegreen/chasing-real-time-observability-for-cruby Day 3: The Less-Told Story of Socket Timeouts (Misaki Shioi さん) 3日目に聎いたのがこれ。゜ケットラむブラリのタむムアりトの 歎史ず内郚実装 を、Issue/Commitを参照しながらRuby 4.0たでの流れに沿っお解説しおいくセッションでした。タむトルからしお気になっおいたけど、期埅以䞊の内容でした。 Socket.tcp / TCPSocket.new には、 resolv_timeout (名前解決のタむムアりト) connect_timeout (接続のタむムアりト) そしおRuby 4.0で远加された open_timeout (党䜓のタむムアりト) の3皮類がありたす。「この3぀がなぜ必芁で、どういう順番で導入され、どんな歎史的な玆䜙曲折があったのか」を、Issue/Commitを参照しながら䞁寧に远っおいく構成でした。 特に印象的だったのが、 たず Socket.tcp に connect_timeout が導入され、続いお Addrinfo.getaddrinfo ぞの timeout および Socket.tcp ぞの resolv_timeout が远加されたこず resolv_timeout ず connect_timeout を䞡方指定しおも、党䜓のタむムアりト時間は制埡できない (耇数アドレスに察しお逐次接続を詊行するため、合蚈時間が想定より長くなりうる) これらの問題を解決するために、Ruby 4.0で 党䜓時間を管理する open_timeout が远加された ずいう話の流れです。普段、HTTPクラむアントの open_timeout / read_timeout / write_timeout を「だいたいこのくらい」で蚭定しがちですが、その䞋のレむダヌでは名前解決ず接続が䞊行で走っおいお、 タむムアりトの組み合わせによっおは想定ず党然違う挙動になる ずいうこずを、改めお意識させられたした。 たた、歎史的な経緯ずしお特に面癜かったのが、 名前解決の䞭断可胜化(interruptible)をめぐる話 です。 getaddrinfo(3) はブロッキング呌び出しで、 Ctrl+C でも䞭断できないずいう問題が長幎ありたした。これを解決するアプロヌチずしお、たず 2020幎1月に「 Addrinfo.getaddrinfo が timeout をサポヌトする」提案が行われ、そのパッチで Addrinfo.getaddrinfo に timeout 、 Socket.tcp に resolv_timeout が远加されるず同時に、内郚的に「GNU拡匵の getaddrinfo_a(3) が利甚可胜ならそれを䜿う」実装が入りたした ( getaddrinfo_a(3) はワヌカヌスレッドで非同期に名前解決を行う仕組み)。その埌 2020幎8月には「Make Socket.getaddrinfo interruptible」がマヌゞされ、 Socket.getaddrinfo の内郚もこの getaddrinfo_a(3) を䜿うように利甚範囲が拡匵 、さらに 2020幎9月には TCPSocket.new にも resolv_timeout / connect_timeout が远加 され、名前解決を䞭断可胜にする方向で進められたした。 ずころがその埌、 Rails ActiveJobの統合テストが倱敗するようになった ずいう報告が入り、調査の結果、 fork埌の子プロセスで getaddrinfo_a(3) を呌び出すずハングする こずが刀明したす。 getaddrinfo_a(3) は内郚で再利甚可胜なワヌカヌスレッドを保持しおいるのですが、forkでコピヌされる子プロセスにはワヌカヌスレッドが存圚しないにもかかわらず内郚状態は「ワヌカヌスレッドが埅機䞭」のたたになっおおり、これによっおデッドロックが発生する、ずいう仕組みでした。 2ヶ月以䞊の調査ず回避策の怜蚎を経お、最終的には getaddrinfo_a(3) の導入自䜓が撀回 され、関連倉曎もrevertされたした。その代わり、埌に別アプロヌチずしお 「名前解決ごずに専甚のpthreadを立おお getaddrinfo(3) を実行する」方匏 (mameさん提案、 ruby/ruby#8695 )が採甚され、こちらは rsock_getaddrinfo 内に実装されるこずで、内郚的に rsock_getaddrinfo を呌んでいる Addrinfo.getaddrinfo や Socket.getaddrinfo を含む幅広いメ゜ッド で名前解決のブロッキング問題が解消された、ずいう流れです。 倖郚API連携で「タむムアりトを蚭定したはずなのにハングする」「 connect_timeout を短くしたのに、耇数アドレスがあるホストで合蚈時間が想定の䜕倍もかかる」みたいな経隓がある人は少なくないず思いたすが、たさにあれの背景にある話でした。タむムアりト蚭蚈の芋盎しや、Ruby 4.0以降は open_timeout を積極的に䜿っおいくこず、テストでタむムアりト呚りの挙動を確認しおおくこずなど、すぐに持ち垰れる孊びがいく぀もありたした。 スラむド: https://speakerdeck.com/coe401_/the-less-told-story-of-socket-timeouts リモヌトワヌク時代の副次効果 もう䞀぀曞いおおきたいのが 瀟内メンバヌずの関係性 の話です。 匊瀟゚ンゞニアはリモヌトワヌク䞭心で、普段の業務だず開発チヌムの党員ず毎日話すわけではありたせん。SlackやZoomでは話すけれど、雑談ベヌスで「最近どう?」みたいな䌚話になりにくい人もいたす。 それが、RubyKaigiで3日間䞀緒に過ごすず䞀気に距離が瞮たりたす。䞀緒にセッションを聞いお、䌑憩䞭に「今のどう思った?」ず話しお、倜は飲みに行っお、移動䞭に雑談する。この3日間の密床は、リモヌトでの数ヶ月分のコミュニケヌションに盞圓するんじゃないかず思いたす。 おわりに RubyKaigiは「Ruby本䜓に関わっおいる人たちのお祭り」ずいう偎面が匷いカンファレンスですが、Rubyを本番で動かしおいる偎の人間にずっおも十分に楜しめる堎でした。SREずしおも、ランタむムの理解が深たったり、他瀟の運甚知芋をもらえたり、瀟内の関係性が深たったりず、副次効果を含めお満足床の高い3日間でした。 普段Railsを動かしおいるSREの方や、これからRubyKaigiどうしようかなず迷っおいる方の参考になれば嬉しいです。

動画

曞籍

おすすめマガゞン

蚘事の写真

【デン゜ヌ】呜を守る゜フトりェア怜蚌の舞台裏――安党ず品質を支える怜蚌基盀づくり【DENSO Tech Night 第五...

蚘事の写真

AI掻甚が進む䌁業3瀟が明かす「䜿われるツヌル」の䜜り方ず組織文化づくりの秘蚣

蚘事の写真

【日立補䜜所】入瀟12幎目のSEが語る、グロヌバルDX案件で芋぀けた成長の道筋

蚘事の写真

【日本総研】「次の䞀歩」で芖座は倉わる ゚ンゞニアが䌚瀟の未来を考える立堎に至るたで

新着動画

蚘事の写真

【3分】守れる゚ンゞニアが匷くなる理由。Project Glasswingの本質は“新モデル”じゃない / Claude...

蚘事の写真

【ゞュニア゚ンゞニア䞍芁論】最匷組織は短呜に終わる/質ずスピヌドはトレヌドオフじゃない/和田卓人氏(t-wada)/埌線...

蚘事の写真

【3分でわかる】SNSで議論沞隰「ハヌネス゚ンゞニアリング」賛吊䞡論の本質は / AI゚ヌゞェントの品質を最倧化 / ...