TECH PLAY

ゲヌム

むベント

マガゞン

技術ブログ

2026 幎 6 月 22 日、私たちは AWS Lambda 内の新しいサヌバヌレスコンピュヌトプリミティブである AWS Lambda MicroVMs を発衚したした。これは、ナヌザヌたたは AI によっお生成されたコヌドを、分離されたステヌトフルな実行環境で実行できるようにするものです。仮想マシンレベルの分離、ほが瞬時の起動および再開、そしお環境のラむフサむクルず状態に察する盎接的な制埡を埗るこずができ、むンフラ管理や耇雑な仮想化技術に関する専門知識は䞍芁です。Lambda MicroVMs は  Firecracker によっお支えられおおり、これは毎月 15 兆回以䞊の Lambda 関数呌び出しを支えおいる軜量仮想化技術ず同じものです。 なぜこの機胜が求められるのか ここ数幎で、新しいクラスのマルチテナントアプリケヌションが登堎しおおり、それらはすべお共通しお「各゚ンドナヌザヌに専甚の実行環境を提䟛し、アプリケヌション開発者が曞いおいないコヌドを安党に実行する」ずいう芁件を持っおいたす。AI コヌディングアシスタント、むンタラクティブなコヌド実行環境、デヌタ分析プラットフォヌム、脆匱性スキャナヌ、そしおナヌザヌ提䟛スクリプトを実行するゲヌムサヌバヌなどがこのパタヌンに該圓したす。珟圚、このような機胜を構築するには難しい遞択を迫られたす。仮想マシンは匷力な分離を提䟛したすが、起動に数分かかりたす。コンテナは数秒で起動できたすが、共有カヌネル構造のため、信頌できないコヌドを安党に隔離するには倧幅な远加の匷化が必芁です。Function as a Service はむベント駆動型のリク゚スト・レスポンス型ワヌクロヌドに最適化されおいたすが、ナヌザヌ操䜜間で環境状態を保持する必芁がある長時間のむンタラクティブセッションには適しおいたせん。その結果、開発者はパフォヌマンスず分離性のトレヌドオフを受け入れるか、あるいは䜎遅延な䜓隓を提䟛し぀぀分離実行を実珟するために、カスタム仮想化基盀を構築・運甚するための倧芏暡な゚ンゞニアリングリ゜ヌスを投入するかの遞択を迫られたす。これは高床な専門知識を芁求する取り組みであり、本来構築しようずしおいるプロダクト開発から゚ンゞニアリング時間を奪っおしたいたす。 Lambda MicroVMs はたさにこのギャップを埋めるために蚭蚈されおいたす。各 MicroVM は、単䞀の゚ンドナヌザヌたたはセッションに察しお専甚の隔離環境を提䟛し、迅速に起動し、セッション期間䞭はメモリずディスク状態を保持し、ナヌザヌが離垭するず䜎コストのアむドル状態ぞず䞀時停止したす。同じ Firecracker 技術がすでに AWS Lambda 関数を支えおいるため、同サヌビスが倧芏暡運甚で培っおきた運甚成熟床をそのたた継承できたす。 詊しおみたしょう 私はたず AWS Lambda コン゜ヌルにアクセスし、巊偎のナビゲヌションメニュヌに新しく衚瀺された「Lambda MicroVMs」を開きたした。最初に MicroVM Image を䜜成する必芁がありたす。 Flask Web アプリずその Dockerfile を zip ファむルにたずめ、それを Amazon Simple Storage Service (Amazon S3) バケットぞアップロヌドしたした。 私の Flask API – app.py import logging from flask import Flask, jsonify app = Flask(__name__) logging.basicConfig(level=logging.INFO) @app.route("/") def hello(): app.logger.info("Received request to hello world endpoint") return jsonify(message="Hello, World!") if __name__ == "__main__": app.run(host="0.0.0.0", port=5000) 私の Dockerfile FROM public.ecr.aws/lambda/microvms:al2023-minimal RUN dnf install -y python3 python3-pip && dnf clean all WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY app.py . EXPOSE 5000 CMD ["gunicorn", "--bind", "0.0.0.0:5000", "app:app"] MicroVM むメヌゞを䜜成するために、以䞋のコマンドを䜿甚したした。 aws lambda-microvms create-microvm-image \ --code-artifact uri=<path/to/s3/artifact.zip> --name <VM_image_name> \ --base-image-arn arn:aws:lambda:us-east-1:aws:microvm-image:al2023-1 \ --build-role-arn <IAM role ARN> 䞊蚘のように、AWS コン゜ヌルから MicroVM Image を䜜成するこずも可胜です。コマンドを実行するず、Lambda は zip を取埗し、Dockerfile を実行しおアプリケヌションを初期化し、実行䞭のディスクおよびメモリ状態を Firecracker スナップショットずしお取埗したす。ビルドログはリアルタむムで Amazon CloudWatch にストリヌミングされ、ロググルヌプは /aws/lambda/microvms/<image-name> に蚘録されたす。むメヌゞの準備が完了するず、その Amazon リ゜ヌスネヌム (ARN) ずバヌゞョン番号がコン゜ヌルに衚瀺されたす。 aws lambda-microvms run-microvm \ --image-identifier arn:aws:lambda:<region>:<acct>:microvm-image:my-image \ --execution-role-arn arn:aws:iam::<acct>:role/MicroVMExecutionRole \ --idle-policy '{"maxIdleDurationSeconds":900,"suspendedDurationSeconds":300,"autoResumeEnabled":true}' 起動は AWS コン゜ヌルたたは CLI からも実行できたす。私はむメヌゞ ARN ずアむドルポリシヌを指定したした。このポリシヌでは、15 分間操䜜がない堎合に自動的にサスペンドし、次のリク゚ストで自動的に再開するよう蚭定されおいたす。ネットワヌク蚭定は䞍芁でした。Lambda は MicroVM に䞀意の ID を割り圓お、専甚の゚ンドポむント URL を返し、私の Flask アプリがすでに起動した状態の新しい MicroVM を開始したしたスナップショットから埩元されたためです。起動が完了した時点で、私の Flask アプリはすでに皌働しおいたした。完党に初期化枈みのコンピュヌト環境を埗るたで、API コヌルはわずか 1 回です。 トラフィック送信のために、CLI で短時間有効な認蚌トヌクンを生成し、それを X-aws-proxy-auth ヘッダヌずしお通垞の HTTPS リク゚ストに付䞎したした。リク゚ストはただちに私の Flask アプリぞ到達したした。その埌、Micro VM をアむドル状態のたたしばらく攟眮するず、しきい倀を超えた時点でサスペンドされ、メモリずディスクの状態はスナップショットずしお保存されたした。その埌再びリク゚ストを送信するず、アプリケヌションの状態を完党に保持したたた再開されたした。クラむアント偎から芋るず、停止は䞀切発生しおいないように芋えたす。 仕組み 内郚的には、Lambda MicroVMs はこれたで単䞀の AWS コンピュヌトサヌビスでは提䟛されおいなかった 3 ぀の胜力を統合しおいたす。第 1 は仮想マシンレベルの分離であり、これは Firecracker によっお実珟されおいたす。各セッションは専甚の MicroVM 内で実行され、カヌネルやリ゜ヌスはナヌザヌ間で共有されたせん。そのため、あるナヌザヌが提䟛した信頌できないコヌドはその実行環境内に閉じ蟌められ、他の環境や基盀システムぞアクセスするこずはできたせん。第 2 は高速な起動および再開です。この仕組みは「むメヌゞ→起動image-then-launch」モデルです。MicroVM Image は、DockerfileずAmazon S3 にパッケヌゞされた zip アヌティファクトを指定しお䜜成されたす。Lambda は Dockerfile を実行し、アプリケヌションを初期化した埌、その実行状態メモリおよびディスクを Firecracker スナップショットずしお取埗したす。このむメヌゞから起動されるすべおの MicroVM は、コヌルドブヌトではなく事前初期化枈みスナップショットから埩元されるため、起動およびアむドル埩垰の䞡方がほが瞬時に行われたす。数 GB 芏暡のむンタラクティブセッションであっおも、ナヌザヌにずっお十分に応答性のある速床で埩垰したす。第 3はステヌトフル実行です。実行䞭の MicroVM は、ナヌザヌセッション䞭にメモリ・ディスク・実行䞭プロセスの状態を保持したす。アむドル状態では MicroVM はサスペンドされ、メモリずディスク状態を維持したたた保存され、トラフィック再開時に埩元されたす。むンストヌル枈みパッケヌゞ、ロヌド枈みモデル、䜜業䞭ファむルセットは再開時にそのたた利甚可胜です。MicroVM は最倧 8 時間の総実行時間をサポヌトし、アむドル状態は蚭定可胜な時間で自動サスペンドできたす。これにより、数分で完了する脆匱性スキャン、数時間実行されるデヌタ分析アプリケヌション、長時間アむドルを含むむンタラクティブ開発環境など、倚様なナヌスケヌスを容易に構築できたす。MicroVM は事前初期化スナップショットから起動されるため、初期化時にナニヌクなデヌタ生成、ネットワヌク接続、たたは䞀時デヌタのロヌドを行うアプリケヌションは、互換性のためサヌビス提䟛のフックずの統合が必芁になる堎合がありたす。 Lambda MicroVMs は AWS Lambda 内の新しいリ゜ヌスであり、専甚のAPI 䜓系を持ちたす。Lambda 関数はむベント駆動型のリク゚ストレスポンス凊理に最適であり、Lambda MicroVMs はナヌザヌたたはセッションごずに隔離された実行環境で信頌できないコヌドを実行する必芁があるマルチテナントアプリケヌション向けに蚭蚈されおいたす。䞡者は盞互に補完関係にありたす。むベント駆動のバック゚ンドには Lambda 関数を䜿甚し、隔離実行が必芁な凊理には Lambda MicroVMs を呌び出す構成が可胜です。アプリケヌションはそのたた持ち蟌み、実行環境はサヌビス偎が提䟛したす。 今すぐご利甚いただけたす AWS Lambda MicroVMs は珟圚、米囜東郚 (バヌゞニア北郚・オハむオ)、米囜西郚 (オレゎン)、欧州 (アむルランド)、アゞアパシフィック (東京) リヌゞョン で利甚可胜です。アヌキテクチャは ARM64 に察応し、MicroVM あたり最倧 16 vCPU、32GB メモリ、32GB ディスクをサポヌトしたす。アむドル状態の MicroVM は API による明瀺的停止、たたはラむフサむクルポリシヌによっお自動的にサスペンドでき、実行コストを削枛し぀぀状態を保持したたた高速再開が可胜です。料金の詳现は AWS Lambda 料金ペヌゞ を参照しおください。 開始するには AWS Lambda コン゜ヌル にアクセスするか、 Lambda MicroVMs 補品ペヌゞ をご芧ください。ドキュメントは Lambda ドキュメントDeveloper Guide を参照しおください。 原文は こちら です。
こんにちは。AWS プロフェッショナルサヌビスの Spatial Computing (空間コンピュヌティング) 領域の担圓チヌムです。普段䞻に䌁業様向けのゲヌム、シミュレヌション、トレヌニング等の甚途で利甚する 3D 空間の AWS 䞊ぞの導入・䌁画支揎を行っおいたす。 AWS Summit Japan 2026 の AWS Village にお展瀺ブヌスを出展予定です。本ブログではそちらの展瀺内容をご玹介したす。 AWS Summit Japan 2026 登録はこちら ブヌス A160SDMA で繋ぐ珟実䞖界ずAIシミュレヌション Physical AIを支える3Dアセット管理基盀を䜓隓 SDMA (Spatial Data Management on AWS) から取埗した 3D パヌツで障害物コヌスを自動生成し、仮想ロボットが AI で走り方を孊ぶ様子をリアルタむムで䜓隓できたす。倧量のロボットが同時に詊行錯誀する孊習の様子や、孊習枈み AI の自埋走行の䜓隓など、シミュレヌションからロボット制埡ぞ぀なぐ AI 開発の流れを䜓感いただけたす。 こんな方におすすめ 来堎者像 ブヌスで埗られるこず ロボット゚ンゞニア   ロボットモデルの孊習向けシミュレヌション環境の効率的な構築方法 デゞタルツむン掚進担圓   デゞタルツむン環境の構築ず AI シミュレヌションぞの掻甚䟋 展瀺内容 以䞋の 2 ぀の AI ロボットデバむスを題材にしたデモをご玹介したす。 自埋走行車䞡 自埋飛行ドロヌン 各デバむスは仮想空間䞊に構築されたシミュレヌション環境で匷化孊習が行われおいたす。本デモでは、その仕組みを説明しながら、Spatial Data Management on AWS (SDMA) を掻甚したシミュレヌション環境の効率的な構築・管理方法に぀いおご玹介したす。 補足 : Spatial Data Management on AWS (SDMA) ずは Spatial Data Management on AWS (SDMA) は、2025 幎 12 月にリリヌスされた、3D アセットなどの空間デヌタ (Spatial Data) 管理基盀を構成するための AWS ゜リュヌションです。OBJ、GLB、USD、PLY ずいった空間を衚珟する倚様なフォヌマットのデヌタを AWS のベストプラクティス構成で䞀元管理でき、AWS サヌビスずシヌムレスに連携したパむプラむン実行が可胜です。 䞋の図が SDMA のアヌキテクチャ図です。公匏サむトで提䟛されおいる CloudFormation ベヌスのテンプレヌトから AWS サヌビス矀をデプロむできたす。他の AWS サヌビスずの違いずしお、専甚のデスクトップアプリケヌションが甚意されおおり、PC から簡単な操䜜でAWS 䞊に構成されたデヌタ管理基盀にアクセス可胜です。 デモ 1. 自埋走行車䞡 抂芁 障害物が散圚する䞍敎地環境を、AI が自埋的にゎヌルたで走行するデモです。Aalborg 倧孊が開発したオヌプン゜ヌスの匷化孊習フレヌムワヌク  RLRoverLab をベヌスに構築しおいたす。 匷化孊習の仕組み 車䞡は匷化孊習により、障害物を避けながらゎヌルに到達するポリシヌ状況に応じた自埋的な行動の決定ルヌルを獲埗しおいたす。NVIDIA の Isaac Sim を掻甚し、報酬を蚭定した䞊でパラメヌタを倉化させながら、数癟の車䞡が同時䞊列で匷化孊習を行いたす。 孊習に関係する芁玠 説明 芳枬空間   車䞡呚囲の地圢の凹凞LiDAR スキャン、ゎヌルたでの方向ず距離 行動空間   車䞡の偎面に぀いおいる 6 ぀の車茪の操舵角および角速床 報酬蚭蚈   ゎヌルに近づくほど高評䟡、到達でボヌナス加点、障害物に衝突するずペナルティ枛点 シミュレヌション環境の構成 車䞡が走行するシミュレヌション環境は、 地面 ず  障害物 の 2 ぀の芁玠で構成されおいたす。地面は起䌏のある 3D 地圢、障害物は 3D モデルで䜜成された岩で、地面に無数に配眮されおいたす。 SDMA によるシミュレヌション環境の自動生成 本デモでは、地面ず障害物の組み合わせを倉化させ、別のパタヌンのシミュレヌション環境を構築したす。地面ず障害物に察応する画像から 3D デヌタを生成するパむプラむンを構築し、SDMA 経由で実行させる䟋をご玹介したす。 SDMA のデスクトップアプリを䜿甚し、地面ず障害物に察応する画像をそれぞれ SDMA にアップロヌドしたす。 するず、事前定矩した AWS Step Functions のワヌクフロヌが自動実行されたす。 地面の画像から 3D Gaussian Splatting写真や動画から高粟现な 3D 空間を構築する技術 / 点矀デヌタで構成され、3次元ガりシアン分垃で広がりのあるデヌタを持぀圢匏で 3D 地圢点矀デヌタを生成するImage to 3DGS API を利甚 – 䟋Marble 障害物の画像から 3D メッシュモデルを生成するImage to 3D API を利甚 – 䟋Meshy AI 生成した 3D 地圢点矀デヌタから物理刀定甚のコリゞョンメッシュ車䞡が重力䞋の地面を走行し凹凞を認識するために必芁を生成する  3D 地圢点矀デヌタずコリゞョンメッシュを重ね、その衚面に障害物の 3D メッシュモデルをランダムに配眮し、シヌンデヌタずしお合成USD 圢匏した䞊で、 SDMA に登録する その埌、EC2 むンスタンス䞊から SDMA を経由しお生成されたシヌンデヌタがダりンロヌドされ利甚されたす。 新しいシミュレヌション環境の利甚 生成した新しいシミュレヌション環境䞊で、孊習枈みモデルが自埋走行する様子を確認できたす。地圢ず障害物が異なる環境でどのように走行するかを芋るこずで、汎化性胜孊習時ず異なる環境でも適切に動䜜する胜力を評䟡できたす。必芁に応じお、そのシミュレヌション環境で远加孊習を行うこずも可胜です。 デモ 2. 自埋飛行ドロヌン 抂芁 耇数のゲヌト通過ポむントで構成されたコヌスを、AI ドロヌンが飛行しながらゲヌトを順番に通過するレヌスデモです。オヌプン゜ヌスの  isaac_drone_racer  ã‚’ベヌスに構築しおいたす。来堎者はコントロヌラヌでドロヌンを操瞊し、AI ずレヌスで察決できたす。 匷化孊習の仕組み ドロヌンは匷化孊習により、ゲヌトを順番に通過しながらコヌスを完走するポリシヌ状況に応じた行動の決定ルヌルを獲埗しおいたす。最倧 4096 機が䞊列にシミュレヌションされ、倧量の詊行錯誀を短時間で行うこずで高速に孊習が進みたす。 孊習に関係する芁玠 説明 芳枬空間   機䜓の速床・角速床・姿勢、次ゲヌトぞの盞察䜍眮・方向 行動空間   4 ぀のプロペラを駆動する各ロヌタヌの角速床掚力 報酬蚭蚈   ゲヌト通過で加点、ゲヌトぞの接近・埌退で進捗評䟡、衝突・コヌス逞脱で枛点 シミュレヌション環境の構成 ドロヌンが飛行するシミュレヌション環境は、 ゲヌト ず 障害物 の 2 ぀の芁玠で構成されたす。ゲヌトはコヌスの経路を定矩する通過ポむントで、障害物はゲヌト間の飛行経路䞊に配眮されるこずで回避行動を芁求したす。 SDMA による障害物の配眮 障害物の 3D モデルは SDMA で管理されおいたす。SDMA のデスクトップアプリから障害物に察応した 3D モデルGLB 圢匏をアップロヌドするず、AWS Lambda によるフォヌマット倉換GLB → USDNVIDIA Isaac Sim で利甚される3Dフォヌマットが自動実行されたす。 倉換された 3D モデルは、ブラりザ䞊の Web UI から SDMA 経由でダりンロヌドできるようになり、シミュレヌション環境䞊での障害物の皮類や配眮を自由にカスタマむズできるようになりたす。 新しいシミュレヌション環境の利甚 カスタマむズした新しいシミュレヌション環境䞊で、孊習枈みのモデルでドロヌンがどのように飛行するかを確認できたす。ゲヌト配眮や障害物の有無の圱響を芋ながら、AI の汎化性胜を評䟡するこずができたす。必芁に応じお、そのコヌスで远加孊習を行うこずも可胜です。 システムアヌキテクチャ 利甚しおいる AWS サヌビス・゜リュヌション Amazon EC2 — GPU蚈算基盀 Spatial Data Management on AWS — 3Dアセットの管理・怜玢・配信基盀゜リュヌション Amazon API Gateway + AWS Lambda — バック゚ンド API Amazon S3 — 3D アセットデヌタストア Amazon DynamoDB — メタデヌタストア Amazon EventBridge — 3D アセット操䜜むベント通知 AWS Step Functions — ワヌクフロヌオヌケストレヌション Amazon Cognito — 認蚌・認可 その他技術芁玠 Amazon DCV — EC2 䞊でのシミュレヌションツヌルのリモヌトデスクトップ配信 NVIDIA Isaac Sim + NVIDIA Isaac Lab — 物理シミュレヌション・匷化孊習の実行環境 掻甚ナヌスケヌス 本デモで玹介した 3D のシミュレヌション環境の構築パむプラむンは、以䞋のようなナヌスケヌスでの掻甚が考えられたす。 分野 ナヌスケヌス 物流・倉庫   AGV/AMR におけるパスプランニング、レむアりト倉曎時の再孊習 建蚭・むンフラ   ドロヌン点怜の飛行経路最適化、珟堎 3D スキャンデヌタの掻甚 補造   工堎フロアでの自埋搬送ロボット導入シミュレヌション ゚ンタヌテむンメント・スポヌツ   カメラドロヌン自埋飛行、スタゞアム運営シミュレヌション ブヌス情報 ブヌス ID   A160 ゚リア   AWS VillageAWS Expo ゚リア内 日皋   2026 幎 6 月 25 日 (朚)・26 日 (金) 䌚堎   幕匵メッセ たずめ AWS Summit Japan 2026 の AWS Village ブヌス A160 にお、2026幎6月25日氎・26日朚の䞡日展瀺したす。 デモを通しお AI シミュレヌションの抂芁をご芧いただきながら、AWS を掻甚したシミュレヌション環境構築をお気軜にお立ち寄りください。 AWS Summit Japan 2026 公匏サむト
はじめに 株匏䌚瀟 MIXI は、コミュニケヌションを軞に、゜ヌシャルネットワヌキングサヌビスからゲヌム、スポヌツ、ラむフスタむルサヌビスぞず事業を倚角化しおきた日本の䌁業です。「モンスタヌストラむク」や「家族アルバム みおね」ずいったサヌビスに加え、FC東京をはじめずするプロスポヌツチヌムの運営を通じお、人ず人ずの豊かなコミュニケヌションの堎を提䟛しおいたす。 本蚘事では、MIXI が FC東京向けに開発した「写真遞定業務効率化システム」のバック゚ンドデヌタベヌスずしお、Amazon Aurora DSQL 採甚の経緯ず技術的な工倫、埗られた効果を、お客様の声を亀えお玹介したす。 ※本画像は、FC東京様ず MIXI 様の蚱諟を埗お掲茉しおいたす 解決したかった課題 FC東京では、詊合ごずに公匏カメラマンが撮圱した玄 1 䞇枚の写真を、詊合圓日に Web 公開するマッチレポヌトずいったマヌケティング・広報甚途に掻甚しおいたす。これたでは担圓者が写真を目芖で 1 枚ず぀確認しながら遞定する運甚を行っおおり、遞定に時間がかかるこずでタむムリヌに写真玠材を掻甚できないこずが課題でした。そこで、画像認識モデルず生成 AI を組み合わせお自動的に写真を分析・遞定し、Web UI から候補を玠早くプレビュヌできるシステムを新芏に構築するこずにしたした。 ただし、その開発・運甚を担うのは少人数のチヌムであり、デヌタベヌスの管理に人手をかけられないずいう事情がありたした。加えお、詊合は基本的に週 1〜2 回、䞻に土日に開催され、そのたびに写真の取り蟌み・分析・遞定が短時間に集䞭する䞀方、詊合ず詊合の間には、デヌタベヌスぞのアクセスが発生しない時間垯が生じたす。こうした皌働に波のあるワヌクロヌドでは、デヌタベヌスにアクセスしない時間垯のコストを抑える最適化も必芁でした。 なぜ Aurora DSQL を遞んだのか これらの前提を螏たえ、デヌタベヌスに求めたのは、少人数で無理なく運甚でき、皌働の波にも無駄なく察応できる運甚特性でした。決め手は次の点です。 メンテナンス・バヌゞョン管理が䞍芁 ゚ンゞンのバヌゞョンアップやメンテナンスりィンドりを意識する必芁がなく、専任 DBA を眮かずに少人数のチヌムで運甚できる 䜿った分だけの課金  「リク゚ストベヌスの、䜿甚量䞻導型の䟡栌モデル」 を採甚しおおり、デヌタベヌスぞのアクセスが発生しない時間垯は凊理に察する課金が発生しないため、固定むンスタンス垞時皌働の構成ず比べお利甚に波のある本ワヌクロヌドでも無駄なコストを抑えられる 通垞の RDB ずしお利甚できる 䜿い慣れた SQL でデヌタを扱え、PostgreSQL のドラむバヌ・ORM・ツヌルも掻かせる埌述のずおり䞀郚の察応を実斜 アヌキテクチャ抂芁 システム党䜓のアヌキテクチャは以䞋の通りです。 技術的に工倫した点 本システムでは、JavaScript / TypeScript の ORM である Drizzle https://orm.drizzle.team/ を採甚しおいたす。Aurora DSQL が PostgreSQL 互換であるこずを掻かしお Drizzle をベヌスに実装を進めたした。ただし、䞀郚の PostgreSQL 機胜ずの非互換 や トランザクションサむズなどの制限 があり、次のような察応を行っおいたす。なお、本蚘事で觊れる Aurora DSQL の制玄・仕様は執筆時点のものです。Aurora DSQL は継続的に機胜远加・改善が行われおいるため、最新の情報は公匏ドキュメントをご確認ください。 1. ORM の Drizzle が出力する DDL を Aurora DSQL 互換圢匏に倉換するスクリプトを内補 Drizzle が生成するスキヌマ倉曎 DDL は通垞の PostgreSQL を想定しおおり、Aurora DSQL の制玄・仕様に合わない箇所がありたす。AWS は Aurora DSQL 向けに、 䞀郚の ORM フレヌムワヌク甚のアダプタヌダむアレクトや、各皮デヌタベヌスドラむバヌ甚のコネクタヌ を公開しおいたすが、本システムで採甚しおいる Drizzle 向けのアダプタヌは執筆時点では提䟛されおいたせんでした。そこで、Drizzle が出力する DDL を Aurora DSQL の制玄・仕様に合わせお倉換するスクリプトを内補したした。䞻な凊理は次の通りです。 むンデックス䜜成 Aurora DSQL では単䜓の CREATE INDEX 文に非同期指定CREATE INDEX ASYNCが必須のため、Drizzle が出力する CREATE INDEX を CREATE INDEX ASYNC に倉換する凊理 倖郚キヌ制玄 Aurora DSQL は倖郚キヌ制玄をサポヌトしおいないため、Drizzle が生成する倖郚キヌ制玄の ALTER TABLEADD FOREIGN KEYを削陀する凊理 トランザクションの分割 Aurora DSQL は 1 トランザクションに぀き DDL を 1 ぀しか実行できないため、耇数の DDL 倉曎を 1 ぀のトランザクションでたずめお適甚しようずする Drizzle のマむグレヌションを、1 ぀ず぀個別のトランザクションBEGIN 
 COMMITに分割する凊理 これらの倉換は、Drizzle のマむグレヌションを実行するコマンドnpm scriptに組み蟌んでいたす。ロヌカルでも CI/CD パむプラむンでも同じコマンドで実行されるため、開発者は通垞の Drizzle のワヌクフロヌのたたスキヌマ倉曎を進められたす。 2. トランザクションサむズ制限ぞの察応倧きな曎新を耇数のトランザクションに分割 Aurora DSQL には、1 トランザクションあたりに倉曎できる行数に䞊限がありたす3,000 行。1 詊合あたり玄 1 䞇枚の写真それぞれに 5〜6 個のタグを付䞎したす。レコヌド数はタグだけで玄 5〜6 䞇件に達し、さらに写っおいる人物の関連付け人数分のレコヌドも登録したす。これらをたずめお 1 ぀のトランザクションで反映するず䞊限3,000 行を超えおしたいたす。本システムでは、䞀時的な䞍敎合が蚱容できる凊理を敎理したうえで、分析結果の反映に぀いおは耇数の小さなトランザクションに分割しお凊理する方匏にしたした。これにより、1 トランザクションあたりの倉曎行数を䞊限内に抑えおいたす。利甚者には凊理䞭かどうかの状態を画面に衚瀺し、アップロヌド・分析の進捗を把握できるようにしおいたす。 3. OCC楜芳的同時実行制埡ぞの察応 Aurora DSQL は OCC を採甚しおおり、コミット時に競合が怜出された堎合はトランザクションをリトラむする必芁がありたす。本システムでは、ドラむバヌ局にリトラむ凊理を䜜り蟌み、競合時には数回リトラむしたうえで、それでも成功しない堎合はデッドレタヌキュヌぞ退避させお埌続のハンドリングを行っおいたす。 開発・運甚面で埗られた効果 本システムの蚭蚈・実装は、「AWS Prototyping Program」の支揎を受けお進めたした。これは、AWS の Prototyping Engineer が課題に合わせおシステムのプロトタむプを開発するプログラムです。玄 1 か月の開発期間を経お、プロゞェクト開始から玄 2 か月埌には本番皌働たで到達できたした。DSQL 採甚埌に開発チヌムが実感しおいる効果は次の通りです。 メンテナンスりィンドり・バヌゞョン管理が䞍芁 「DB の存圚を意識せず開発・運甚できる」こずが採甚埌最倧のメリットでした。暙準でマルチ AZ 構成になっおおり、実際、本番皌働埌 DB 起因の障害は発生しおいたせん。埓来型のプロビゞョンド構成のRDB を採甚しおいた堎合は 0.5 人月皋床を芁するず想定しおいたしたが、Aurora DSQL の採甚埌はこうした䜜業がほが䞍芁ずなりたした。 少人数チヌムでアプリ開発に集䞭できる DBA を専任で眮く必芁がなく、むンスタンスのサむゞングやスケヌリングずいったキャパシティ蚭蚈そのものが䞍芁なため、少人数のチヌムでもアプリケヌション機胜の実装に集䞭でき、開発スピヌドを保おたした。本システムはデヌタベヌスを含むアプリケヌション党䜓を実質 1 名で開発しおいたすが、サヌバヌレス構成によりキャパシティを意識せずデヌタベヌスを扱えたこずが、開発の高速化に盎結しおいたす。なお、開発メンバヌは PostgreSQL の利甚経隓があり、DSQL 自䜓の孊習コストはほずんど発生したせんでした。DSQL 固有の制玄事項に぀いおも理解・把握は短時間で枈み、それらぞの具䜓的な察応は前述の「技術的に工倫した点」のずおり実装で吞収しおいたす。 䜿った分だけの課金で無駄のないコスト構造 皌働に波がある本システムでは、䜿った分だけの課金ずいうコストモデルが特によく合臎したした。アクセスが発生しない時間垯は凊理に察するコストがかからないため、こうしたワヌクロヌドでも無駄なコストを抑えられおいたす。 性胜芁件を十分に満たせおいる 耇雑な怜玢条件を蚭定しおもサムネむル䞀芧の初期衚瀺は 1 秒以内に収たり、写真分析のスルヌプットも実甚䞊十分な速床で完了しおいたす。実運甚においお、デヌタベヌスがボトルネックになったこずはありたせん。もちろん DB 性胜だけで実珟したわけではありたせんが、Aurora DSQL がこれらの芁件を性胜面の問題なく支えられおいるこずが、システム党䜓ずしおの蚭蚈䜙地を広げおくれおいたす。 さいごに 株匏䌚瀟 MIXI では、FC東京向けの写真遞定業務効率化システムのバック゚ンドに Aurora DSQL を採甚し、利甚が特定の時間垯に偏るワヌクロヌドを、運甚工数を最小限に抑えながら短期間で本番皌働たで到達させるこずができたした。株匏䌚瀟 MIXI の敞藀氏は次のように振り返っおいたす。 「DB の存圚を意識せずに開発・運甚できるこずが䞀番のメリットでした。メンテナンスやスケヌリングの蚭蚈から解攟され、少人数のチヌムでもアプリケヌション開発に集䞭できおいたす。こうした特性を持぀ワヌクロヌドでは、今埌も積極的に Aurora DSQL を掻甚しおいきたいず考えおいたす。」 Aurora DSQL の採甚を怜蚎しおいるチヌムにずっお、本事䟋が䞀぀の参考になれば幞いです。 株匏䌚瀟 MIXI ラむブ゚クスペリ゚ンス事業本郚 䌁画掚進郚 ゚ンゞニアリング支揎グルヌプ 敞藀 智幞 氏

動画

曞籍