メインコンテンツへスキップ

概要

Devin の in-VPC デプロイオプションを使用すると、お客様の VPC 内に Devin の開発環境をホストでき、Devin の VM が社内ファイアウォールの内側にある自社専用のリソースへアクセスできるようになります。サポートされているアーキテクチャは完全にステートレスであることを保証しており、お客様の環境外でデータが保存されることはありません。 お客様の環境内で Devin のアクセスをきめ細かく制御する方法は複数あり、たとえば SSO やバージョン管理システムのアクセス制御を利用して、お客様のサービスやリソースに対する Devin のアクセス権を管理できますが、これらに限定されるものではありません。

Trust Center

詳細な情報やセキュリティ関連ドキュメントについては、Trust Center をご覧ください。

コアアーキテクチャ

Devin は 2 つの主要なコンポーネントで構成されています。

Devin’s DevBox

Devin が実行するアクションのための、カスタマイズ可能な開発環境です。shell、エディター、ブラウザ機能を備えており、お客様の VPC 内にデプロイされます。

Devinのブレイン

コンテキストのスニペットを処理してDevinのあらゆるアクションを決定する、中核となるインテリジェンスシステムです。Cognitionのテナント環境内でホストされています。
Devin Enterprise Architecture

デプロイ仕様

インフラ要件

インスタンスタイプ要件:
  • AWS: i3 bare metal EC2
  • Azure: Security Type が standard の Lasv3 インスタンス
各 Devin セッションには新しい VM が必要です。これらのインスタンスタイプにより、Devin セッション開始時にオンデマンドで VM を作成できます。インスタンスあたりの同時実行キャパシティについては AWS VPC Setup を参照してください。 オペレーティングシステム: Ubuntu 24.04

アーキテクチャ

テナントアーキテクチャ図
  • Cognition のテナントは Azure 上にホストされています
  • ポート: HTTPS/443(顧客 VPC からのアウトバウンド通信のみが必要)
  • DevBox の起動時に WebSocket が開き、Devin テナント内の分離されたコンテナに接続します
  • それ以降のやり取りはすべてこの接続経由で行われます
  • このアーキテクチャは、デフォルトでバックエンドセッションの分離をサポートします
Devin の VPC 内のインスタンスにインターネットアクセスを付与することを強く推奨します

データ管理

Cognition データベース

  • メタデータのみを保存します
  • ハッシュ参照データ(セッション ID、イベント ID など)が含まれます

顧客データベース

顧客データは次の 2 つの場所に保存されています。
  1. プライマリ顧客 DB:
    • Devin のブレインと直接接続
    • 暗号化されたセッションログと顧客の Devin データを保存
  2. セカンダリ顧客 DB:
    • VPC 内のインスタンスに接続
    • VM スナップショットを保存し、スナップショットからセッションを開始できるようにする
すべての顧客データはカスタム KMS キーで暗号化されています。すべてのデータベースの読み取り/書き込み操作はネイティブ API を通じて実行されます。

シークレット

新しいセッションごとに、顧客データストアへのアクセス権限が付与された、隔離された Devin Brain コンテナが作成されます。シークレットはセッション開始時に復号され、環境変数として読み込まれた後、再度暗号化されます。この処理はコードによって自動化されています。
フロントエンドに送信される前に、シークレットは秘匿化され、[REDACTED SECRET] として表示されます。

セキュリティ

暗号化

  • 保存時の AES-256 による暗号化
  • 転送時の TLS 1.3 以降による暗号化

分離

  • 各セッション専用の Devin Brain コンテナ
  • 公開フロントエンド API 用の AWS WAF

DevBox コンポーネント

Devin のマシンには次のコンポーネントが含まれています:
  1. コアユーティリティ: git、python、java、docker など
  2. カスタムコンポーネント:
    • VSCode サーバー
    • 対話的なブラウザ制御用 VNC サーバー
    • Devin の機能に必要な独自ユーティリティ .py スクリプト
スクリプトを確認し、必要に応じて標準のパッケージインストール内容を削減できます。Cognition の担当者に DevBox セットアップスクリプトを依頼してください。

制限事項

技術的な制約

  • ベアメタルインスタンスのキャパシティに基づく同時セッション数の上限
  • 追加のベースインスタンスをプロビジョニングすることで水平方向にスケール可能
  • 利用が少ない期間には、これらのインスタンスが一時的にスピンダウンされる場合がある
  • クラウドインフラストラクチャ費用は顧客が負担

デプロイの制約

  • お客様管理の AMI はサポートされていません。初回に一度だけ手動でマシンをセットアップする必要があります
  • Linux 以外の OS はサポートされていません

DNS 設定

Devin インスタンスの DNS 設定では、プライベートホストゾーン内のレコードを名前解決できるように適切なセットアップが必要です。プライベートレコードの DNS 名前解決に問題が発生した場合は、以下の手順に従ってください。Devin インスタンスがプライベートホストゾーン内のレコードを名前解決できるようにするには、次の手順を実行します。
  1. パブリックリゾルバーではなく、VPC DNS リゾルバー (.2 アドレス) を使用するように DNS 設定を更新します。これを取得するには、次を実行します:
aws ec2 describe-vpcs --vpc-id <VPC_ID> --query 'Vpcs[0].CidrBlock' --output text | awk -F/ '{split($1,a,"."); print a[1]"."a[2]"."a[3]".2"}'
  1. systemd-resolved の設定ファイルを編集します:
    sudo nano /etc/systemd/resolved.conf
    
  2. DNS エントリを VPC の .2 アドレスに置き換えます。
    [Resolve]
    DNS={N.N.N.2}
    
  3. 変更を適用するために systemd-resolved サービスを再起動します:
    sudo systemctl restart systemd-resolved
    
この設定により、Devin インスタンスはパブリック DNS レコードと、ホストゾーン内のプライベートレコードの両方を正しく名前解決できるようになります。