Amazon Web Services ブログ

Amazon S3 が Vercel Marketplace と v0 by Vercel で入手可能になりました

Vercel でウェブおよび AI アプリケーションを構築している開発者は、Vercel Marketplace と v0 から Amazon S3 ストレージリソースを直接追加できるようになりました。これにより、S3 の耐久性、スケーラビリティ、パフォーマンスと、Vercel のプロビジョニングワークフローの利便性を組み合わせることができます。2026 年 10 月 14 日より、Amazon S3 Tables と Amazon S3 Vectors を含む Amazon Simple Storage Service (Amazon S3) が、Vercel Marketplaceおよび v0 by Vercel でネイティブに利用できるようになり、日常のストレージ、分析、AI という 3 つの異なるワークロードに対応できるようになりました。

これが重要な理由
何百万人もの開発者が Vercel でウェブアプリケーションや AI アプリケーションを構築、デプロイ、スケーリングしています。ストレージはアプリケーションのパフォーマンスを向上させるために不可欠ですが、それをプロビジョニングするには、以前は AWS マネジメントコンソールに移動してポリシーと認証情報を設定する必要がありました。現在、S3ストレージは Vercel の開発者エクスペリエンスに直接統合され、リソースのプロビジョニングと接続設定が自動的に処理されます。Amazon Aurora、Amazon DynamoDB、Amazon OpenSearch Serverless の既存の統合と合わせて、Vercel内の完全なアプリケーションスタック (データベースレイヤーからオブジェクト、ベクトル、オープンテーブルストレージまで) を、すべて 1 つのAWSアカウントで 1 つの請求書で利用できます。

あらゆるアプリケーションに対応したストレージ

  • S3 汎用バケット: データレイク、クラウドネイティブアプリケーション、およびモバイルアプリ用に、ファイル、画像、動画、ドキュメントなど、実質的に無制限のオブジェクトを保存できます。S3 はクラウドで最も耐久性の高いストレージであり、デフォルトで 99.999999999% (イレブンナイン) のデータ耐久性と 99.99% の可用性を提供するように設計されています。
  • S3 Tables: 自動化されたテーブルのメンテナンスと圧縮を含む、分析用に最適化されたフルマネージド型 Apache Iceberg ストレージ。S3 Tables は、DuckDB を含む任意の Iceberg REST カタログ API 互換エンジンから直接クエリできます。
  • S3 Vectors: 検索拡張生成 (RAG) やセマンティック検索などの AI アプリケーション専用のベクトルストレージとクエリにより、ベクトルのアップロード、保存、クエリのコストを最大 90% 削減します。

Vercel Marketplace の AWS ページには、100 USD の無料 AWS クレジット、サーバーレススケール、インストールボタンがあります

図 1 – Vercel Marketplace の AWS ページ

開始方法
Vercel ダッシュボードから、[ストレージ] タブに移動し、[作成] を選択します。AWS を選択し、S3 バケットタイプを選び、リージョンを選択して、バケットを作成します。プロビジョニングには数秒かかります。

図 2 – リージョンと名前を選択して Vercel で Amazon S3 汎用バケットを作成する

バケットをプロジェクトに接続し、Vercel CLI で環境変数をプルします。

vercel リンク 
vercel env pull .env.local 

統合では、AWS_REGION、AWS_ROLE_ARN、AWS_RESOURCE_ARN、および S3_BUCKET_NAME、S3_TABLE_BUCKET_NAME 、S3_VECTOR_BUCKET_NAME などのバケット名を挿入します。ランタイム時に、@vercel/functions/oidc の awsCredentialsProvider は、有効期間の短い OIDC トークンを、リソースを対象とする一時的な認証情報のために、AWS Security Token Service (AWS STS) と交換します。静的キーはどこにも保存されません。

S3 でのオブジェクトストレージ
この Next.js ルートは、汎用バケットにファイルをアップロードします。

import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3";
import { awsCredentialsProvider } from "@vercel/functions/oidc";

const s3 = new S3Client({
  region: process.env.AWS_REGION,
  credentials: awsCredentialsProvider({
    roleArn: process.env.AWS_ROLE_ARN,
  }),
});

export async function POST(request) {
  const formData = await request.formData();
  const file = formData.get("file");

  await s3.send(new PutObjectCommand({
    Bucket: process.env.S3_BUCKET_NAME,
    Key: file.name,
    Body: Buffer.from(await file.arrayBuffer()),
    ContentType: file.type,
  }));

  return Response.json({ success: true });
}

ListObjectsV2Command と GetObjectCommand を同じクライアントで使用して、オブジェクトを一覧表示して読み取ります。

S3 テーブルによる分析
S3 Tables は分析専用の S3 ストレージを提供し、データ量の増加に応じてクエリのパフォーマンスを自動的に最適化するように設計されています。これらはフルマネージド型 Apache Iceberg テーブルを提供し、テーブルのメンテナンスと圧縮を自動化し、あらゆる Apache Iceberg REST Catalog 準拠エンジンと連携します。Vercel 関数内で DuckDB を使用すると、軽量なクエリを実行できます。この例では、テーブルバケットを ARN でアタッチし、集計クエリを実行します。

import { DuckDBInstance } from "@duckdb/node-api";
import { awsCredentialsProvider } from "@vercel/functions/oidc";

const creds = await awsCredentialsProvider({
  roleArn: process.env.AWS_ROLE_ARN,
})();

const db = await DuckDBInstance.create();
const conn = await db.connect();

await conn.run("INSTALL aws; LOAD aws; INSTALL httpfs; LOAD httpfs; INSTALL iceberg; LOAD iceberg;");

await conn.run(`
  CREATE SECRET s3cred (
    TYPE s3,
    KEY_ID '${creds.accessKeyId}',
    SECRET '${creds.secretAccessKey}',
    SESSION_TOKEN '${creds.sessionToken}',
    REGION '${process.env.AWS_REGION}'
  );
`);

await conn.run(`
  ATTACH '${process.env.AWS_RESOURCE_ARN}' AS s3tables (
    TYPE iceberg,
    ENDPOINT_TYPE s3_tables
  );
`);

const rows = await (await conn.run(`
  SELECT town_city, AVG(median_price) AS avg_price
  FROM s3tables."${process.env.S3_TABLES_NAMESPACE}".town_monthly
  GROUP BY town_city
  ORDER BY avg_price DESC
  LIMIT 10
`)).getRowObjects();

Next.js ルート内で DuckDB を実行する場合は、@duckdb/node-api を next.config.mjs の serverExternalPackages に追加して、ネイティブバインディングがバンドルされないようにします。

S3 Vectors によるベクトル検索
S3 Vectors は、AI エージェント、AI 推論、および Amazon S3 に保存されているコンテンツのセマンティック検索向けに、コスト最適化された専用ベクトルストレージを提供します。S3 Vectors は、個別のベクトルデータベースがなくてもベクトルの保存とクエリをネイティブにサポートしていますが、生成はしません。選択したモデルで埋め込みを作成し、最も近い一致を探すためにインデックスにクエリします。

import { S3VectorsClient, QueryVectorsCommand } from "@aws-sdk/client-s3vectors";
import { awsCredentialsProvider } from "@vercel/functions/oidc";

const vectors = new S3VectorsClient({
  region: process.env.AWS_REGION,
  credentials: awsCredentialsProvider({
    roleArn: process.env.AWS_ROLE_ARN,
  }),
});

export async function POST(request) {
  const { embedding } = await request.json();

  const result = await vectors.send(new QueryVectorsCommand({
    vectorBucketName: process.env.S3_VECTOR_BUCKET_NAME,
    indexName: "documents",
    queryVector: { float32: embedding },
    topK: 5,
    returnMetadata: true,
  }));

  return Response.json({ matches: result.vectors });
}

v0 by Vercel を使用した構築
v0 から、構築したいものを記述すると、適切なリソースがプロビジョニングされます。汎用バケットを入手するには「ユーザーが AWS を使用して画像をアップロードしたフォトギャラリー」、S3 ベクトルを取得するには「PDF からの質問に答えるサポートボット」、S3 テーブルを取得するには「クリックストリームデータの分析ダッシュボード」を依頼してください。その後、v0 は接続を設定し、動作するコードを生成します。

Amazon S3 Vectors 統合が接続され、生成された PDF サポートボットアプリケーションがプレビューパネルに表示された v0 チャット

図 3 – 自然言語プロンプトから PDF サポートボットを生成している v0 で、Amazon S3 Vectors が接続され、アプリケーションがプレビューパネルに表示された状態。

S3 と AWS データベースの結合
Vercel 上のすべての AWS サービスは同じアカウントと認証モデルを共有しているため、追加のセットアップなしでそれらを組み合わせることができます。例えば、ファイルメタデータを S3 のファイルとともに Aurora に保存したり、RAG の取得用に S3 ベクトルに埋め込んでドキュメントテキストを DynamoDB に保存したりできます。

AWS アカウントで Vercel を使用する
構築とテスト用の S3 機能をサポートする統合を通じて、新しい AWS アカウントを作成できます。既存の AWS アカウントをリンクして S3 と AWS の機能をすべて使用し、現在の請求内容を維持することもできます。既存の AWS アカウントをリンクする場合、Vercel はプラットフォームを通じて作成した新しいバケットでのみ機能します。すべての S3 リソースはお客様の AWS アカウントにあるため、AWS ネイティブのツールと 1 か所でストレージを管理できます。

料金と利用可能なリージョン
統合は無料で、使用するリソースに対して標準の Amazon S3 料金をお支払いいただきます。Vercel を通じて作成された新しい AWS アカウントには、6 か月間有効な 100 USD のクレジットが提供されます。S3 Tables と S3 Vectors を含む Amazon S3 は、Vercel がサポートしているすべての商用 AWS リージョンの v0 および Vercel Marketplace から入手できます。開始するには、v0 または Vercel Marketplace の AWS ページにアクセスしてください。

会話にご参加ください
APIを呼び出したり、ドキュメントを検索したり、リージョンごとの提供状況を確認したり、この新機能に関するトラブルシューティングを確認したりする場合は、お好みの AI ツールで AWS MCPサーバーとプラグインを使用してみてください。Amazon S3 の AWS re:Post に関するフィードバックをお寄せください。

– Daniel

原文はこちらです。