रूट 53 से S3 तक उपनाम लक्ष्य निर्धारित करने का प्रयास करते समय कोई लक्ष्य उपलब्ध नहीं है


21

जैसा कि यहाँ बताया गया है, मैं एक साधारण अमेज़न AWS S3 आधारित वेबसाइट को सेटअप करने का प्रयास कर रहा हूँ ।

मैंने S3 बाल्टी सेटअप किया है (simples3websitetest.com), इसे (उम्मीद के मुताबिक) सही अनुमति दी:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::simples3websitetest.com/*"
            ]
        }
    ]
}

मैंने index.html, setup वेबसाइट एक्सेस अपलोड किया है, और यह http://simples3websitetest.com.s3-website-us-west-2.amazonaws.com/index.html के माध्यम से सुलभ है।

अब तक अच्छा है, अब मैं अमेज़ॅन रूट 53 एक्सेस को सेटअप करना चाहता हूं और यही वह जगह है जहां मैं फंस गया।

मैंने एक होस्ट किए गए ज़ोन को एक डोमेन I (रिसोर्सबॉक्स.नेट) पर सेट किया है, और "रिकॉर्ड सेट बनाएँ" पर क्लिक किया है, और "सेटअप अलियास" स्टेप में मिला है, लेकिन मुझे S3 वेबसाइट एंडपॉइंट्स के तहत "कोई लक्ष्य उपलब्ध नहीं है" उपनाम लक्ष्य निर्धारित करने का प्रयास करें।

मुझसे क्या छूट गया??


अक्टूबर 2012 से शुरू अमेज़न ने S3 बाल्टी के लिए पुनर्निर्देश (HTTP 301) को संभालने के लिए एक फ़ंक्शन शुरू किया। आप मेरी पिछली प्रतिक्रिया यहाँ पढ़ सकते हैं। stackoverflow.com/a/24218895/1160780
अल्बर्टो स्पेल्टा

जवाबों:


33

आपके द्वारा बनाया गया A-record उर्फ ​​बाल्टी के नाम के समान होना चाहिए, क्योंकि S3 में बकेट की वर्चुअल होस्टिंग के लिए आवश्यक है कि Host:ब्राउजर द्वारा भेजे गए हेडर बाल्टी नाम से मेल खाते हों। वहाँ वास्तव में एक और व्यावहारिक तरीका नहीं है जिसमें बाल्टी की आभासी मेजबानी को पूरा किया जा सकता है ... बाल्टी को किसी तंत्र द्वारा पहचाना जाना चाहिए, और वह तंत्र http हेडर है।

"Example.com" डोमेन के अंदर एक बाल्टी के लिए एक उपनाम बनाने के लिए, बाल्टी नाम एक होस्टनाम भी होने वाला है जिसे आप कानूनी रूप से उस डोमेन के भीतर घोषित कर सकते हैं ... मार्ग 53 ए-रिकॉर्ड "testbucket.example" .com, "उदाहरण के लिए, केवल " testbucket.example.com "नामक एक बाल्टी को उतारा जा सकता है ... और कोई अन्य बाल्टी नहीं।

आपके प्रश्न में, आप इस बाधा को तोड़ रहे हैं ... लेकिन आप केवल "simples3websitetest.com" नाम के बकेट में एक उपनाम बना सकते हैं, जो "simples3websitetest.com" डोमेन के अंदर (और शीर्ष पर) है।

यह डिज़ाइन द्वारा है, और रूट 53 की और S3 की न तो सीमा। वे केवल आपको कुछ ऐसा करने से रोक रहे हैं जो संभवतः काम नहीं कर सकता। वेब सर्वर किसी भी उपनाम या CNAME या DNS में किए गए किसी अन्य चीज़ से अनजान हैं - वे केवल मूल होस्टनाम प्राप्त करते हैं जो ब्राउज़र मानता है कि यह ब्राउज़र द्वारा भेजे गए http हेडर में ... से कनेक्ट करने की कोशिश कर रहा है ... और S3 इसका उपयोग करता है वर्चुअल होस्ट अनुरोध लागू करने के लिए बाल्टी के नाम की पहचान करने के लिए जानकारी।

Amazon S3 के लिए आवश्यक है कि आप अपने बाल्टी को अपने डोमेन के समान नाम दें। ऐसा तब होता है जब अमेज़न एस 3 वेब ब्राउज़र द्वारा भेजे गए होस्ट हेडर को ठीक से हल कर सकता है जब कोई उपयोगकर्ता आपकी वेबसाइट से सामग्री का अनुरोध करता है। इसलिए, हम अनुशंसा करते हैं कि आप अपने डोमेन नाम को पंजीकृत करने के लिए भुगतान करने से पहले अपनी वेबसाइट को अमेज़ॅन एस 3 में अपनी बाल्टी बनाएँ।

http://docs.aws.amazon.com/gettingstarted/latest/swh/getting-started-create-bucket.html#bucket-requirements

ध्यान दें, हालांकि, यह प्रतिबंध केवल तब लागू होता है जब आप अपनी बाल्टी के सामने CloudFront का उपयोग नहीं कर रहे होते हैं।

CloudFront के साथ, वहाँ, और अधिक लचीलापन है, क्योंकि Host:शीर्ष लेख में लिखा जा सकता (CloudFront अपने आप में) से पहले अनुरोध S3 के माध्यम से पारित कर दिया है। आप अपने CloudFront वितरण में "मूल होस्ट" को कॉन्फ़िगर करते हैं your-bucket.s3-website-xx-yyyy-n.amazonaws.comजहां xx-yyyy-n S3 का AWS क्षेत्र है जहां आपकी बाल्टी बनाई गई थी। यह समापन बिंदु प्रत्येक बाल्टी के लिए S3 कंसोल में दिखाया गया है।


1
यह वास्तव में समस्या थी, मैंने एक बाल्टी बनाई, जिसे कहा जाता है resourcebox.net। धन्यवाद! क्विक फॉलोअप सवाल: इसका क्या मतलब है कि अगर मुझे उस डोमेन के लिए अलग बाल्टी चाहिए, तो मेरे पास प्रत्येक बाल्टी के लिए उपयुक्त उपडोमेन होना चाहिए? इसके आसपास कोई रास्ता नहीं है?
अमीर ज़कर

मुझे बिल्कुल यकीन नहीं है कि आपके द्वारा "मेरे पास उप-डोमेन होने चाहिए"। आपको प्रत्येक बाल्टी से मेल खाने वाले होस्टनाम के साथ रूट 53 में ए रिकॉर्ड बनाने की आवश्यकता है जिसे आप एस 3 में एक वेब साइट होस्ट करने के लिए उपयोग करना चाहते हैं, हाँ।
माइकल - sqlbot

1
@ रॉबर्टस्टेट यह प्रश्न रूट 53 aliasरिकॉर्ड्स के बारे में है जो S3 बकेट्स को वेब साइट होस्टिंग सक्षम करने के लिए इंगित करता है, जो DNS को वेब साइट एंडपॉइंट के लिए हल करने का कारण बनता है, न कि REST एंडपॉइंट। वेब साइट के समापन बिंदु SSL का समर्थन नहीं करते हैं ; केवल REST समापन बिंदु करते हैं। इसके अलावा, सभी वाइल्डकार्ड सेर्ट्स केवल एक अधिकतम का समर्थन करते हैं * और यह केवल सबसे बाएं होस्टनाम घटक में दिखाई दे सकता है, इसलिए यह वास्तव में S3 सीमा नहीं है।
माइकल - sqlbot

1
@ रॉबर्टस्टेट 6.4.3.1 क्लाइंट ग्राहक एक प्रस्तुत पहचानकर्ता से मेल खाने का प्रयास नहीं करता है जिसमें वाइल्डकार्ड वर्ण में लेफ्ट-मोस्ट लेबल के अलावा एक लेबल शामिल होता है। इसलिए, बहु-स्तरीय वाइल्डकार्ड जैसी कोई चीज नहीं है। किसी भी हाल में अपने Boto मुद्दा है "बुला प्रारूप" विकल्प की बात जाहिरा तौर पर गलत तरीके से लागू किया जा रहा। हर बाल्टी बाल्टी के सही क्षेत्र जैसे S3 URL के तहत पहले पथ तत्व के रूप में बाल्टी नाम के साथ https पर पहुँचा जा सकता है । गलत क्षेत्रीय समापन बिंदु = पुनर्निर्देशित त्रुटि। https://s3-us-west-2.amazonaws.com/my-bucket.with-dots.in-us-west-2/key
माइकल - sqlbot

1
@MartinLyne धन्यवाद। मैंने S3 दस्तावेज़ीकरण का संदर्भ जोड़ा है, बाल्टी नाम और डोमेन नाम के बारे में समान होने की आवश्यकता है, साथ ही साथ CloudFront का उपयोग करके पहले से ही लिए गए बाल्टी नाम के लिए समाधान का उल्लेख किया गया है। Us-East-1 और us-west-2 क्षेत्रों में, और संभवतः अन्य लोगों में, CloudFront का उपयोग करने की लागत नगण्य है और संभावित रूप से थोड़ी बचत भी कर सकती है, क्योंकि CF डाउनलोड $ 0.005 / GB बैंडविड्थ पर S3 की तुलना में सस्ता है जो किसी न किसी किनारे पर सीधा है। स्थानों।
माइकल -

0

मान लें कि आपके पास होस्टेड ज़ोन abc.com है। और आप एक बकेट abc.com बनाते हैं (जो कि मार्गों में सूची में दिखाई नहीं देता है) - आपको लगता है कि यह हो सकता है। नाम के बाद - जिसके साथ आप बाल्टी को नाम नहीं दे सकते

इसे भी आजमाएं। क्योंकि पहली बार मैंने सही नाम के साथ बाल्टी बनाई और अभी भी काम नहीं किया। मेरा विश्वास करो कि मेरे पास ओसीडी है, इसलिए मैंने एक फुलस्टॉप या अल्पविराम को याद नहीं किया।

  1. इसी नाम के abc.com के साथ एक और होस्ट किया गया ज़ोन बनाएं
  2. अब आप एक ही होस्ट किए गए ज़ोन के 2 (abc.com। और abc.com) देखेंगे।
  3. नया हटाओ
  4. पुराने होस्ट किए गए ज़ोन abc.com पर वापस जाएं
  5. आप s3 के समापन बिंदुओं को देखने में सक्षम हो सकते हैं - यह रूट 53 में एक समस्या हो सकती है

यह मेरे लिए लगभग हर चीज की कोशिश कर रहा था - कुछ सुझाव जो मुझे दिख रहे हैं, वे लॉगआउट करने के लिए हैं और कुछ प्रकार के कैश के लिए स्पष्ट हैं - निश्चित नहीं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.