← Semua pembelajaran / AWS untuk AI Engineer
Fase 4 · RAG & Knowledge Bases

OpenSearch Serverless — vector search

OpenSearch Serverless menyediakan koleksi bertipe vector search yang menskalakan sendiri. Ia jalur default untuk customer-managed knowledge base.

Intisari

  • Pakai collection bertipe vector search; kapasitasnya dihitung dalam OCU.
  • Mendukung pencarian k-NN, hybrid (vektor + kata kunci), dan filter metadata.
  • Satu-satunya vector store Bedrock yang mendukung vektor biner (bersama OpenSearch Managed).
  • Akses diatur oleh data access policy — terpisah dari IAM, dan ini sumber kebingungan utama.
  • Ada biaya kapasitas minimum: OpenSearch Serverless tidak turun ke nol saat menganggur.

Posisinya

OpenSearch ServerlessOpenSearch Managed
KapasitasOtomatis (OCU)Kamu memilih instance
OperasionalNyaris nolKamu mengurus node dan shard
Biaya saat menganggurAda minimumSesuai instance yang menyala
Cocok untukBeban naik-turun, tim kecilBeban besar dan stabil, butuh penyetelan detail

"Serverless" di sini bukan berarti nol saat menganggur. Collection tetap menyediakan kapasitas minimum, dan itu ditagih per jam. Untuk sekadar belajar, ini bisa jadi komponen biaya terbesar di akunmu — jauh lebih besar dari biaya token Bedrock. Hapus collection setelah selesai berlatih.

Tiga jenis policy yang harus benar semuanya

PolicyMengaturKalau salah
Encryption policyKunci KMS untuk collectionCollection tidak bisa dibuat
Network policyAkses publik atau lewat VPC endpointKoneksi timeout
Data access policyPrincipal mana boleh baca/tulis indeks403 walaupun IAM sudah benar

Baris ketiga adalah jebakan paling terkenal. IAM policy yang sempurna tetap ditolak kalau ARN role knowledge base belum tercantum di data access policy. Ini lapisan izin terpisah, mirip dengan hubungan antara akses model Bedrock dan IAM di Fase 3.

// Data access policy — role KB harus disebut eksplisit
[{
  "Rules": [
    { "ResourceType": "index",
      "Resource": ["index/dokumen-kb/*"],
      "Permission": ["aoss:CreateIndex", "aoss:ReadDocument", "aoss:WriteDocument",
                     "aoss:UpdateIndex", "aoss:DescribeIndex"] },
    { "ResourceType": "collection",
      "Resource": ["collection/dokumen-kb"],
      "Permission": ["aoss:CreateCollectionItems", "aoss:DescribeCollectionItems"] }
  ],
  "Principal": ["arn:aws:iam::123456789012:role/BedrockKnowledgeBaseRole"]
}]

Bentuk indeks vektor

{
  "settings": { "index.knn": true },
  "mappings": {
    "properties": {
      "vektor":   { "type": "knn_vector", "dimension": 1024,
                    "method": { "name": "hnsw", "engine": "faiss",
                                "space_type": "l2" } },
      "teks":     { "type": "text" },
      "metadata": { "type": "text", "index": false }
    }
  }
}

Tiga field itu persis yang disebut prasyarat Bedrock: satu untuk vektor, satu untuk teks potongan, satu untuk metadata yang dikelola Bedrock. Kalau kamu memakai quick-create, Bedrock membuat semuanya untukmu — dan itu pilihan yang benar untuk memulai.

Hybrid search

Kekuatan OpenSearch dibanding vector store murni adalah ia juga mesin pencari teks penuh. Satu query bisa menggabungkan kemiripan vektor dan pencocokan kata kunci, lalu skornya digabung — inilah yang membuat overrideSearchType: "HYBRID" di materi sebelumnya bisa bekerja.

Latihan: buat knowledge base dengan quick-create OpenSearch Serverless, lalu buka konsol OpenSearch dan telusuri indeks yang dibuatkan: berapa dimensinya, engine apa, dan field apa saja yang ada. Setelah selesai berlatih, hapus collection-nya — biayanya berjalan terus.

Rangkuman ini sengaja dipangkas ke bagian yang dipakai di roadmap. Buka sumber aslinya saat kamu butuh detail lengkap atau referensi parameter.