JAWS-UG 北陸新幹線#4 in 長野_LT資料_20250809

266 Views

August 09, 25

スライド概要

profile-image

仕事:AWS運用保守&PM的なことをしています。 2023-24 Japan AWS All Certifications Engineers.

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

JAWS-UG 北陸新幹線 #4 in ⻑野 OpenSearchの変わりに EC2でベクトルDB Qdrantクラスターを構築して Difyに組み込んだお話 2025.8.9 ますの

2.

ますの @masno_soy 業種 インフラエンジニア / PM(仮) 出身 長野市 受賞 2025 Japan AWS All Certifications Engineer 2025 Japan AWS Top Engineer コミュニティ JAWS-UG 配信部 頑張っていること DOP試験対策( 2日後に受験) re:Inventに向けて英語(あとはチケット買うだけ) 冬はスノボに専念

3.

本⽇お話したいこと 主にアーキテクトやインフラのお話多め。 DBの中身についてはほとんどお話しないよ! ・EC2は最強 ・EC2こそ至高の領域 ・EC2は全てを受け入れてくれる優しい存在 (怖くないよ) ・サーバレス /マネージドサービスを最初に検討しよう ・運用フェーズを考えながら EC2に感謝を述べて構築しよう

4.

前提知識(登場⼈物たち) ノーコードで AIアプリケーションを簡単に開発・運用できる オープンソースのプラットフォーム。 コミュニティ版とエンタープライズ版がある。 Amazon OpenSearch Service ベクトル DBとして利用出来る AWSマネージドサービス。 AWSで生成AI用アプリケーションの DBといえばコレ、 的な立ち位置を確立。 高速なベクトル検索に特化したオープンソースの Rust製ベ クトル検索エンジン。読み方はクワドラントらしい。 商用はk8sでの運用を推奨としている。

5.

モノローグ

6.

Difyエンタープライズ構築までの軌跡(概要) 6月上旬 ・1.5ヶ月でDifyエンタープライズをユーザに展開したいと構築依頼あり ・Difyエンタープライズ版 ver2.8.2:AWS構築手順は CDKベース (CDKなら期日ギリ間に合うか?と計画を立てる) ・CDK内でのベクトル DBは「OpenSearch」が採用されている 7月初旬 ・Difyエンタープライズ版 ver3がリリース ・ver3以降はCDKでの対応はしないと宣言される ・ver3の構築手順公開は「 7/10以降」と記載される (CDKで突き進む判断となる) 7月中旬 ・OpenSearchは公式サポート対象外 とサポートより正式回答を貰う ・公式サポート希望の際は「 Qdrant」にする必要がある - 必要条件は「 Dockerがインストールされた 3つのVM」と記載

7.

Qdrantの構築に舵を切る(やけくそになる) 今から設計のやり直しは無理か?? いや、一般的な 1週間の工数は 5人日(40時間)...。 残された時間を落ち着いて考えてみる。 ・1日:24時間 ・1週間:7日 イケる。よしやろう。 Qdrant頑張ろう。 導かれる計算式は 24 * 7 = 168時間/週が最大稼働時間 (4倍の工数確保に成功!) ※絶対ダメです。 こんなことを言う上司がいたら 然るべきところに報告しましょう。

8.

序章

9.

序章:Qdrantの構築要件の整理 出来れば OS管理したくない。 公式ドキュメントの内容ベースに生成 AIへお伺いを立ててみましょう。 参考元: https://qdrant.tech/documentation/guides/installation/?q=EKS • Amazon EKS: Qdrantを本番環境で、かつ自身の Kubernetesクラスターで管理したい場合に最適な選 択肢。 • Amazon ECS: 開発環境ですぐに試したい場合に最適な選択肢。 Dockerコンテナベースのデプロイを 希望し、Kubernetesの複雑さを避けたい場合に検討できます。 • Amazon EC2: Qdrantを単一インスタンスで実行したい場合、または Dockerコンテナを直接起動した り、コンパイル済みのバイナリを実行したりする場合に利用できます。開発・テスト用途には適しています が、本番の高可用性・スケーラビリティが要求される環境では、上記のような追加のインフラ構築と管理 が必要になります。

10.

序章:Qdrantの構築要件の整理 基盤はECSで決まり! OS管理しないは正義、ここは Fargateで時短です。 一応Difyの公式手順も見てみましょう。 おや?3つのVM…?? VM?? Virtual Machine 🧐🧐?? https://enterprise-docs.dify.ai/versions/3-0-x/ja-jp/deployment/advanced-configuration/qdrant/qdrant-cluster

11.

序章:Qdrantの構築要件の整理 Qdarntのドキュメントをさらに深堀り。 ストレージ項目で「 VM」な理由を見つける。 参考元: https://qdrant.tech/documentation/guides/installation/

12.

序章:Qdrantの構築要件の整理 参考元: https://qdrant.tech/documentation/guides/installation/ Difyでは永続ストレージの利用が必要となります。 ・NFSが利用出来ない = EFS 採用不可 (ECS/EKS を諦める) ・オブジェクトストレージ利用出来ない = S3採用不可 ・iSCSIは利用可能 = StorageGateway / FSx for NetApp ONTAP ・ソリッドステートドライブをおすすめ = EBS(あっ)

13.

序章:Qdrantの構築要件の整理 > EC2で決まり 基盤はECSで決まり!OS管理しないは正義、ここはFargateで時短です。 サーバーレスは甘えですよね。 EC2 / EBSさんのお陰でここまでエンジニアとして育 つことができました。運用保守?お気になさらず。いつまでもご一緒させていただきま す。ずっともです、本当にいつもありがとうございます。 Amazon EC2 Amazon EBS

14.

みんな大好き 検証・構築の時間

15.

第1章:構築テスト > Qdrantクラスター(EC2×3台) Difyの公式手順通りいきます ・EC2を建てて ・Docker / Docker Compose構築して ・APIキー発行して ・yamlファイルを構築 ・NLBのターゲットに設定 これを3台分やるだけの 簡単なお仕事です 🫶 https://enterprise-docs.dify.ai/versions/3-0-x/ja-jp/deployment/advanced-configuration/qdrant/qdrant-cluster

16.

第1章:構築テスト > Qdrantクラスター(EC2×3台) 起動時の userdataで基盤構築が出来るように IaC化して対応しました。

17.

第2章:プライベートサブネットでの構築検証 ナレッジなどを入れるベクトル DBです。 完全プライベートな環境に構築したいですよね。 構築手法としては以下を検討 ・インターネットアクセス可能環境で構築 > AMI化して展開 ・プライベートサブネット内でエンドポイント経由で必要リソースにアクセス ゴールデンイメージでの持ち込み運用はエンドポイント代金を節約出来ます。 ただし更新手順が煩雑になるので今回はプライベートサブネット内での構築を検討し ます。

18.

第2章:プライベートサブネットでの構築検証 こうなりました

19.

第2章:プライベートサブネットでの構築検証 エンドポイントは 4つ用意 S3エンドポイント( Gateway) ・無料なので利用必須 ・EC2構築に必要な資材を配置 ・AmazonLinuxリポジトリデータ ・Qdrant:Image保存 ・Docker Compose:Image保存 ※ECRを使う場合、 2つエンドポイントの構築が必要。今回は節 約のために S3を利用。

20.

第2章:プライベートサブネットでの構築検証 エンドポイントは 4つ用意 SecretsManagerエンドポイント ・Qdrantクラスター用の APIキーを格納 ・userdata上でAWS CLIで参照する

21.

第2章:プライベートサブネットでの構築検証 エンドポイントは 4つ用意 SystemsManaer関連 ・SessionManagerでのSSH接続に必須 ・CloudWatchとの連携に必須

22.

第2章:プライベートサブネットでの構築検証 (余談: Tips)SSMAgentに必要なエンドポイントが 2つに。 ・ec2messages.region.amazonaws.com ★3.3.40.0以降不要! ・ssm.region.amazonaws.com ・ssmmessages.region.amazonaws.com

23.

第2章:プライベートサブネットでの構築検証 Qdrantクラスター用のロードバランサーには「 NLB」を採用。

24.

第2章:プライベートサブネットでの構築検証 Qdrantクラスターへの 差し替え出来た! ログ上でもアクセス確認ヨシ!

25.

いざ切り替え

26.

終章:リリース対応 その他のリソースも整えて差し替えに挑みます。 ・Route53:プライベートホストゾーン( NLBアクセス用)の登録 ・NLBへのACM:Difyエンタープライズのパブリックホストゾーンから登録 →プライベート CAの構築が不要となり節約に。 helm アップデート で無事に完了 ※旧ナレッジは消える前提で対応

27.

終章:リリース対応 無事にDify公式サポートに準拠した ver2.8.2をリリースすることが出来ました。 ・7/14週:ver2.8.2をCDKで構築完了 Qdrantの調査開始 ・7/21週:序章〜第 2章まで対応 →Qdrantクラスターの構築方針確定 →VMでのQdrantクラスター構築検証 /手順確立 →プライベートサブネットのインフラ要件整理 ・7/28週:終章 →ベクトル DB切り替え作業完了 Qdrantの仕様調査してくれた仲間に感謝。 エンジニアリング出来る皆様をまじでリスペクトっす。

28.

まとめ ・AWSマネージドサービスを積極的に採用しましょう ※今回の登壇内容が全て不要になる素敵な技術の結晶体です ・EC2、EBSは必ず皆さんに寄り添ってくれます ※最後の手段として慈愛に満ち溢れたサービスなので怖がる必要はないです ※ただしこちらが寄り添わない限り何も返してくれないので注意しましょう ・時間が足りない場合も構築期間は公式ドキュメントを毎日見よう ※更新が掛かっていたり、知識が深まることでの新たな気付きがあるはずです

29.

これから運用・監視設計という楽しい時間が始まります。 は い 戦 の 俺達 ! ! . . . だ ら か これ ご視聴、ご愛読ありがとうございました。

30.

参考情報 ●Dify:エンタープライズ > Qdrantクラスター構築 https://enterprise-docs.dify.ai/versions/3-0-x/ja-jp/deployment/advanced-configuration/qdrant/qdrant-cluster ●Qdrant:インストールガイド https://qdrant.tech/documentation/guides/installation/ ●Systems Manager 用の VPC エンドポイントを作成する https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/setup-create-vpc.html#create-vpc-endpoints ●SSM セッションマネージャーに必要な VPCエンドポイントが 2つになっていた https://dev.classmethod.jp/articles/vpcendpoint-ec2messages-not-required/