ツールと運用

セルフホスト

お使いの AWS アカウントで Ephemeral を実行します。

セルフホストのインストールでは、Ephemeral のエンジンと実行ダッシュボードを管理下のホストで動かし、ワーカーはお使いの AWS アカウントの microVM で、モデルは独自のプロバイダーで実行します。提供されるのは 1 つの Docker イメージとそのドキュメントで、必要なそれ以外のファイルはすべてイメージからエクスポートできます。Ephemeral が発行するデプロイメントのライセンスが必要です。

運用する構成要素

構成要素場所
エンジン API と実行ダッシュボードホスト上の ephemer.al/ephemeral/self-hosted のコンテナ app
PostgreSQL同じホスト上のコンテナ。アプリケーションからのみ到達可能
Caddyポート 80 と 443 で HTTPS を提供し、/v1 をエンジンにルーティング
ワーカーお使いの AWS アカウントの AWS Lambda microVM。実行ごとに 1 つで、インターネットにはアクセスできません
モデル呼び出しOpenAI 互換の推論エンドポイント
ライセンスの検証https://ephemer.al。起動時と、実行の開始時に行われます

カスタマー向け Web サイト、アカウント、請求は、セルフホストのインストールには含まれません。ソースコードも含まれません。ダッシュボードには、エンジンの API キーでログインします。

イメージには、運用担当者向けの完全なガイドが含まれています。以下の手順はその要約です。正確なコマンド、期待される出力、アップグレード、バックアップ、トラブルシューティングについては、ガイドを参照してください。

ターミナル
docker run --rm ephemer.al/ephemeral/self-hosted:VERSION setup docs > SELF-HOSTING.md

始める前に

  • Docker Compose 2.24 以降の Docker と、Session Manager プラグインを含む AWS CLI v2。
  • Lambda microVM が使えるリージョンの AWS アカウントと、IAM ロールを含む CloudFormation スタックを作成する権限。
  • ホストに向けられるドメイン名。
  • OpenAI 互換の推論エンドポイントと API キー。
  • 組織の利用権 (entitlement)。契約を結んだ後に、Ephemeral が付与します。デプロイメントのライセンスをご覧ください。

インストール

  1. インストールを登録する

    カスタマーポータルのデプロイメントを開き、production-eu のような名前で、このインストールを登録します。マシン ID とライセンストークンは Ephemeral が作成します。ライセンスファイルをダウンロードを選んで、トークン、マシン ID、デプロイメント ID を保管してください。トークンは 1 度だけ表示されます。

  2. イメージをプルする

    デプロイメント ID をユーザー名、ライセンストークンをパスワードとしてレジストリにログインし、リリースをプルします。バージョンの先頭に v は付けません。

    ターミナル
    export EPHEMERAL_VERSION=0.1.0
    read -rs LICENSE_TOKEN
    printf '%s' "$LICENSE_TOKEN" | docker login ephemer.al -u dep_YOUR_DEPLOYMENT_ID --password-stdin
    docker pull ephemer.al/ephemeral/self-hosted:$EPHEMERAL_VERSION
  3. インストール用のファイルをエクスポートする

    ターミナル
    mkdir -p ephemeral && cd ephemeral
    docker run --rm --user "$(id -u):$(id -g)" -v "$PWD:/out" \
      ephemer.al/ephemeral/self-hosted:$EPHEMERAL_VERSION setup all /out
    ファイル用途
    compose.yamlPostgreSQL、アプリケーション、Caddy。このリリースに固定されています
    compose.evaluation.yamlAWS を使わず、1 台のコンピューターで試すためのオーバーライド
    Caddyfileインバウンドのルート
    .env新しく生成されたシークレットを含む設定。以降のエクスポートで上書きされることはありません
    ephemeral-aws.yamlAWS リソース用の CloudFormation テンプレート
    ephemeral-worker-VERSION.zipコンパイル済みのワーカー。AWS が microVM イメージにビルドします
    SELF-HOSTING.md運用担当者向けガイド
  4. AWS のリソースを作成する

    ワーカーの ZIP をお使いのアカウントの非公開 S3 バケットにアップロードしてから、スタックを作成します。スタックは、分離されたワーカー用サブネットを持つ VPC、DNS ファイアウォール、microVM イメージとネットワークコネクタ、暗号化されたストレージバケット、ホスト用の最小権限の IAM ロールを作成し、デフォルトでは、Elastic IP と暗号化されたデータボリュームを持つ t4g.small の Amazon Linux ホストも作成します。ワーカーイメージのビルドには 15 分から 30 分かかり、スタックは課金対象のリソースを作成します。

    ターミナル
    aws s3 cp "ephemeral-worker-$EPHEMERAL_VERSION.zip" "s3://YOUR_ARTIFACT_BUCKET/"
    aws cloudformation create-stack --stack-name ephemeral \
      --template-body file://ephemeral-aws.yaml --capabilities CAPABILITY_IAM \
      --parameters ParameterKey=Domain,ParameterValue=ephemeral.example.com \
        ParameterKey=WorkerArtifactBucket,ParameterValue=YOUR_ARTIFACT_BUCKET \
        ParameterKey=WorkerArtifactKey,ParameterValue="ephemeral-worker-$EPHEMERAL_VERSION.zip" \
        ParameterKey=HostImageId,ParameterValue=AL2023_ARM64_AMI
    aws cloudformation wait stack-create-complete --stack-name ephemeral
    aws cloudformation describe-stacks --stack-name ephemeral \
      --query "Stacks[0].Outputs[?OutputKey=='EngineEnvironment'].OutputValue" --output text | tr ' ' '\n'

    最後のコマンドは、エンジン用の AWS 設定を出力します。ドメインの DNS の A レコードを、スタックの出力 HostPublicIp に向けてください。

  5. ホストを設定する

    aws ssm start-session --target とスタックの出力 HostInstanceId で接続し、/srv/ephemeral/install で、レジストリへのログインとエクスポートをもう一度行います。.env の次の項目を編集します。

    設定値
    EPHEMERAL_DOMAINホスト名。ephemeral.example.com など
    EPHEMERAL_LICENSE_TOKEN手順 1 のトークン
    EPHEMERAL_MACHINE_ID手順 1 のマシン ID。登録したとおりに指定
    INFERENCE_BASE_URLOpenAI 互換のエンドポイント
    INFERENCE_API_KEYその API キー
    EPHEMERAL_DEFAULT_MODEL実行がモデルを指定しなかった場合に使うモデル
    AWS の設定スタックが出力した 5 行: AWS_REGION、EPHEMERAL_S3_BUCKET、3 つの EPHEMERAL_MICROVM_… の値

    エクスポート時に、暗号化のマスターキー、ブートストラップ用の管理者キー、データベースのパスワードが生成されています。.env のコピーを、シークレットマネージャーに保管してください。マスターキーがないと、保存されている認証情報と実行のペイロードを読み取れません。AWS の認証情報は、ホストのインスタンスプロファイルから提供されます。

  6. インストールを起動する

    Caddy が HTTPS の証明書を取得します。PostgreSQL と内部 API は公開されません。

    ターミナル
    docker compose pull
    docker compose up -d

    エンジンは起動時にライセンスを検証し、無効な場合や、設定された同時実行数がライセンスの上限を超えている場合は起動しません。

  7. 最初の組織を作成する

    新しいインストールには、API キーがありません。インストール用ディレクトリで、次のコマンドを 1 度だけ実行してください。my-organization は、任意の組織 ID に置き換えます。ブートストラップ用のキーはコンテナ内で読み込まれるため、キーがシェルの履歴に残りません。

    ターミナル
    docker compose exec -T app node --input-type=module - <<'NODE'
    if (process.env.EPHEMERAL_MODE !== 'self-hosted') {
      throw new Error('Bootstrap requires EPHEMERAL_MODE=self-hosted');
    }
    const adminKey = process.env.EPHEMERAL_ADMIN_KEY;
    if (!adminKey) throw new Error('EPHEMERAL_ADMIN_KEY is not configured');
    const response = await fetch('http://127.0.0.1:8080/admin/organizations', {
      method: 'POST',
      headers: {
        Authorization: `Bearer ${adminKey}`,
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({id: 'my-organization'}),
    });
    const result = await response.json();
    if (!response.ok) throw new Error(result.error || `Bootstrap failed (${response.status})`);
    console.log(JSON.stringify(result, null, 2));
    NODE

    レスポンスには、組織の id、新しいオーナーキーの key_id と role、そして eph_ で始まる key 自体が含まれます。キーはこの時点で保管してください。後から取得することはできません。有効なキーがある組織に対してコマンドをもう一度実行すると、409 が返されます。

  8. ログインする

    HTTPS のアドレスを開き、Engine API key にキーを入力します。メンバーキーと管理者キーは、API キーで追加作成できます。設定ファイルのブートストラップ用の管理者キーは、組織の作成にのみ使え、ログインや API の呼び出しはできません。

1 台のコンピューターで試す

AWS を使わない場合は、評価用のオーバーライドを追加します。エージェントは、ローカルランナーを使ってアプリケーションコンテナの中で実行され、ダッシュボードは http://localhost:8000 の平文の HTTP でのみ提供されます。ライセンスは引き続き必要です。そのために、別のデプロイメントを登録してください。

ターミナル
docker compose -f compose.yaml -f compose.evaluation.yaml up -d
ローカルランナーはサンドボックスではありません
エージェントのシェルとファイルツールは、アプリケーションコンテナの中で動作します。信頼できるプロンプトと接続でのみ使用し、そのポートをコンピューターの外に公開しないでください。

ホスト型サービスとの違い

セルフホストでの動作
請求ウォレットはなく、Ephemeral からの課金もありません。max_cost_micros は検証されますが、モデルの支出を制限しないため、上限はプロバイダー側で設定してください。
モデル実行では、エンドポイントが受け付ける任意のモデル ID を指定できます。カタログに一覧されるのはデフォルトのモデルだけです。
API キーキーは eph_ で始まります。管理者キーは、/v1/keys とダッシュボードでキーを管理します。
アカウントユーザーアカウント、メンバー、招待はありません。アクセスは API キーで行います。
同時実行デフォルトでは 2 件ずつ実行されます。EPHEMERAL_CONCURRENCY で、ライセンスの範囲内で 1 から 32 に設定できます。
保持期間終了した実行は 30 日間保持されます。変更するには、EPHEMERAL_RETENTION_DAYS を設定します。
ゼロデータ保持zero_data_retention の実行は、イベントと未読の出力を、ログされないテーブルにのみ保持し、実行の数分後に削除します。バックアップでは必ず pg_dump --no-unlogged-table-data を使用してください。ホストの毎日のバックアップはこれを使用しています。EPHEMERAL_ZDR_EVENT_WINDOW_SECONDS(デフォルト 300)と EPHEMERAL_ZDR_OUTPUT_WINDOW_SECONDS(デフォルト 3600)で、保持できる時間を設定します。

アップデートとバックアップ

アップグレードするには、新しいリリースのワーカー ZIP をアップロードし、そのキーを指定してスタックを更新します。その後、ホスト上で新しいリリースのファイルをエクスポートし、.env の EPHEMERAL_VERSION と新しい EPHEMERAL_MICROVM_IMAGE_VERSION を設定して、docker compose up -d を実行します。実行中の実行が終了するまで、最大 5 分間待機します。その後も実行中の実行は interrupted としてマークされ、再試行はされないため、外部での操作が繰り返されることはありません。データベースのマイグレーションは自動的に実行されます。

データベースと暗号化のマスターキーの両方をバックアップしてください。マスターキーを失うと、保存されている接続の認証情報と実行のペイロードが読み取れなくなります。スタックが作成したホストは、毎日データベースをその S3 バケットにバックアップします。

イメージに含まれる運用担当者向けガイドには、アップグレード、バックアップ、リストアの正確なコマンド、期待される出力を含む確認手順、トラブルシューティングの表があります。
単一のホストは高可用性ではありません
この構成では、ホストを入れ替えている間や、障害が起きたときにダウンタイムが発生します。AWS のスタックを削除する前に、実行中の実行をキャンセルし、microVM のクリーンアップが完了するのを待ってください。
© 2026 Ephemeral制作: erni.works
esc

「」に一致する項目はありません。