Cross-Region inference
Cross-Region inference memakai kapasitas beberapa region sekaligus. Ini jawaban standar untuk throttling, tapi keputusannya menyentuh residensi data.
Intisari
- Bekerja lewat inference profile: satu ID yang mewakili model plus daftar region tujuan.
- Dua jenis: geografis (US, EU, APAC — tetap di dalam geografi) dan global (ke mana saja).
- Global memberi penghematan sekitar 10%; geografis dipilih saat ada aturan residensi data.
- Tidak ada biaya routing tambahan — harga dihitung dari region tempat kamu memanggil.
- Inference profile tidak mendukung Provisioned Throughput.
Masalah yang dipecahkan
Kapasitas model di satu region terbatas, dan saat ramai kamu menerima ThrottlingException.
Cross-Region inference membuat Bedrock memilih region lain yang lebih lapang untuk melayani permintaanmu —
tanpa kamu menulis logika failover apa pun.
Geografis atau global?
| Geografis | Global | |
|---|---|---|
| Residensi data | Dalam batas geografi (US, EU, APAC) | Region komersial mana pun |
| Perutean | Di dalam geografi | Seluruh dunia |
| Biaya | Harga standar | Sekitar 10% lebih murah |
| Paling cocok untuk | Organisasi dengan aturan residensi data | Organisasi yang mengejar efisiensi biaya |
Ini keputusan kepatuhan, bukan keputusan teknis. Kalau datamu tunduk pada aturan yang membatasi wilayah pemrosesan, pilih profil geografis dan dokumentasikan alasannya. Pertanyaan bergaya begini — "profil mana untuk kasus dengan persyaratan residensi data" — persis yang muncul di Domain 3 ujian.
Memakainya
Cukup ganti modelId dengan ID inference profile. Sisa kodenya tidak berubah:
# Model langsung — hanya region tempat kamu memanggil
MODEL = "anthropic.claude-3-5-haiku-20241022-v1:0"
# Inference profile geografis — awalan menandakan geografinya
PROFIL_US = "us.anthropic.claude-3-5-haiku-20241022-v1:0"
PROFIL_EU = "eu.anthropic.claude-3-5-haiku-20241022-v1:0"
resp = runtime.converse(
modelId=PROFIL_US,
messages=[{"role": "user", "content": [{"text": "halo"}]}],
)
# Melihat profil yang tersedia
kelola = boto3.client("bedrock", region_name="us-east-1")
for p in kelola.list_inference_profiles()["inferenceProfileSummaries"]:
print(p["inferenceProfileId"], "→", [m["modelArn"].split("/")[-1] for m in p["models"]])
Hal-hal yang perlu diingat
| Fakta | Konsekuensinya |
|---|---|
| Tidak ada biaya routing tambahan | Harga mengikuti region tempat kamu memanggil |
| Region tujuan tidak perlu diaktifkan manual | Tidak ada langkah tambahan di akunmu |
| Tidak mendukung Provisioned Throughput | Pilih salah satu: kapasitas terjamin atau perutean lintas region |
| Bisa menaikkan jumlah cache write | Saat trafik tinggi, prompt caching jadi kurang efisien |
| SCP perlu mengizinkan region tujuan | Untuk profil global, izinkan aws:RequestedRegion bernilai unspecified |
Pola pemakaian yang sehat
import os
# Satu variabel environment yang menentukan model DAN strategi perutean.
# Ganti dari "anthropic..." ke "us.anthropic..." tanpa menyentuh kode sama sekali.
MODEL_ID = os.environ["MODEL_ID"]
Inilah bentuk konkret dari "dynamic model selection without code modification" di exam guide: model, versi, dan strategi perutean semuanya jadi konfigurasi. Untuk sistem yang lebih besar, konfigurasi ini bisa dipindahkan ke AWS AppConfig sehingga bisa diubah tanpa deploy sama sekali.
Latihan: jalankan pertanyaan yang sama ke model langsung dan ke inference profile us.,
bandingkan latensinya. Lalu jelaskan dalam dua kalimat kapan kamu tidak boleh memakai profil global —
sebutkan alasan kepatuhannya, bukan alasan teknisnya.
Rangkuman ini sengaja dipangkas ke bagian yang dipakai di roadmap. Buka sumber aslinya saat kamu butuh detail lengkap atau referensi parameter.