Saya mencoba menyiapkan situs web sederhana berbasis Amazon AWS S3, seperti yang dijelaskan di sini .
Saya telah menyiapkan bucket S3 (simples3websitetest.com), memberikannya (semoga) izin yang benar:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::simples3websitetest.com/*"
]
}
]
}
Saya mengunggah index.html, mengatur akses situs web, dan dapat diakses melalui http://simples3websitetest.com.s3-website-us-west-2.amazonaws.com/index.html
Sejauh ini bagus, sekarang saya ingin mengatur akses Amazon Route53 dan ini adalah tempat saya macet.
Saya telah menyiapkan zona yang diinangi pada domain yang saya miliki (resourcesbox.net), dan mengklik "buat kumpulan catatan", dan sampai ke langkah "setup alias", tetapi saya mendapatkan "Tidak ada target yang tersedia" di bawah titik akhir situs web S3 ketika saya coba atur target alias.
Apa yang saya lewatkan ??
sumber
Jawaban:
Alias A-record yang Anda buat harus sama dengan nama bucket, karena hosting virtual dari bucket di S3 mengharuskan
Host:
header yang dikirim oleh browser cocok dengan nama bucket. Sebenarnya tidak ada cara praktis lain di mana hosting virtual kotak dapat dilakukan ... ember harus diidentifikasi oleh beberapa mekanisme, dan mekanisme itu adalah header http.Untuk membuat alias ke bucket di dalam domain "example.com", nama bucket juga harus menjadi nama host yang secara hukum dapat Anda nyatakan dalam domain itu ... Rute 53 A-Record "testbucket.example .com, "misalnya, hanya dapat dialihkan ke ember yang disebut" testbucket.example.com "... dan tidak ada ember lain.
Dalam pertanyaan Anda, Anda melanggar batasan ini ... tetapi Anda hanya dapat membuat alias ke keranjang bernama "simples3websitetest.com" di dalam (dan di puncak) domain "simples3websitetest.com".
Ini adalah desain, dan bukan batasan Rute 53 atau S3. Mereka hanya mencegah Anda melakukan sesuatu yang tidak mungkin berhasil. Server web tidak mengetahui adanya alias atau CNAME atau apa pun yang dilakukan dalam DNS - mereka hanya menerima nama host asli yang diyakini browser sedang berusaha untuk terhubung, dalam header http yang dikirim oleh browser ... dan S3 menggunakan ini informasi untuk mengidentifikasi nama ember yang berlaku permintaan virtual host.
Perhatikan, bagaimanapun, bahwa pembatasan ini hanya berlaku ketika Anda tidak menggunakan CloudFront di depan bucket Anda.
Dengan CloudFront, ada lebih banyak fleksibilitas, karena
Host:
header dapat ditulis ulang (oleh CloudFront sendiri) sebelum permintaan diteruskan ke S3. Anda mengonfigurasi "host asal" di distribusi CloudFront Anda sebagaiyour-bucket.s3-website-xx-yyyy-n.amazonaws.com
tempat xx-yyyy-n adalah wilayah AWS S3 tempat bucket Anda dibuat. Titik akhir ini ditunjukkan di konsol S3 untuk setiap bucket.sumber
alias
catatan Route 53 yang menunjuk ke ember S3 dengan hosting situs web diaktifkan, yang menyebabkan DNS menyelesaikan ke titik akhir situs web, bukan titik akhir REST. Titik akhir situs web sama sekali tidak mendukung SSL ; hanya titik akhir REST yang melakukannya. Selain itu, semua sertifikat wildcard hanya mendukung maksimum satu*
dan hanya dapat muncul di komponen hostname paling kiri, sehingga sebenarnya bukan batasan S3.https://s3-us-west-2.amazonaws.com/my-bucket.with-dots.in-us-west-2/key
. Titik akhir regional salah = kesalahan redirect.Asumsikan Anda memiliki zona host abc.com. dan Anda membuat bucket abc.com (yang tidak muncul dalam daftar di rute alias) - Anda mungkin berpikir itu adalah. setelah nama - yang tidak dapat Anda beri nama embernya
Coba ini juga. Karena pertama kali saya membuat ember dengan nama yang benar dan masih tidak berfungsi. Percayalah, saya memiliki OCD, jadi saya tidak melewatkan fullstop atau koma.
Ini berhasil bagi saya mencoba hampir semuanya - Beberapa saran yang saya lihat adalah untuk logout dan login untuk beberapa jenis cache yang jelas - tidak yakin
sumber