Amazon S3의 정적 호스팅-DNS 구성


117

Amazon S3에서 호스팅하고 싶은 작은 웹 앱 (모든 클라이언트 측)에서 작업 중입니다. 나는 이것에 대한 몇 가지 가이드를 찾았고 스스로 버킷 (내 도메인과 동일한 이름)을 만들고 웹 사이트로 설정하고 일부 콘텐츠를 업로드했습니다.

내가 어려움을 겪고 있고 모든 문서가 약간 모호해지기 시작하는 곳은 DNS를 올바르게 구성하는 방법입니다.

내 등록 기관 ( 123-reg )이 제안 할 수있는 모든 것은 mydomain.com.s3.amazonaws.com을 제공하는 웹 전달이었습니다.

무엇을 구성해야하며 어디서 (예 : 123-reg / Amazon) 깨끗한 URL을 얻을 수 있습니까?


이 질문을받은 이후로 상황이 바뀌 었습니다. 루트 도메인과 S 번호에 대한 귀하의 사이트를 호스팅 여기를 걸어 통해 볼 수있게되었습니다 : docs.aws.amazon.com/AmazonS3/latest/dev/...
pors

답변:


248

이미 대부분의 작업을 완료 한 것 같습니다. 명확하게하기 위해 제대로 설정되었는지 확인하기 위해 이러한 단계를 다시 살펴 보겠습니다.

  1. 도메인 이름을 버킷 이름으로 사용하여 s3 버킷을 만듭니다 (사이트를 example.com 또는 www.example.com으로 지정하려면 버킷 이름이 www.example.com이어야 함).

  2. s3 버킷에 콘텐츠를 업로드합니다. 웹 사이트 색인 파일 (보통 index.html)에 대해 일관된 이름을 선택하십시오. 404 찾을 수 없음 오류에 대한 사용자 정의 페이지를 업로드 할 수도 있습니다. 이것을 404.html이라고 부르십시오. 일반인이 볼 수 있도록 웹 사이트의 모든 파일에 읽기 권한을 부여하십시오. 버킷에 대한 추가 권한을 부여하지 마십시오.

  3. 버킷을 웹 사이트로 구성합니다. AWS 콘솔 ( https://console.aws.amazon.com/s3/ )을 사용하여 버킷을 선택하고 속성을 클릭 한 다음 "웹 사이트"탭을 선택할 수 있습니다. 사용을 클릭하고 색인 문서를 "index.html"로 설정하고 오류 문서를 "404.html"로 설정하십시오. 또한 웹 ( http://docs.amazonwebservices.com/AmazonS3/latest/dev/WebsiteAccessPermissionsReqd.html )을 통한 액세스를 허용하려면 액세스 권한으로 버킷을 설정해야합니다.

  4. 웹 사이트 구성 탭에서 "Endpoint"URL을 기록해 둡니다. 이것이 귀하의 웹 사이트가있는 곳입니다. 새 창에서 링크를 열 수 있으며 웹 사이트가 보이는 그대로 표시되어야합니다. 주위를 클릭하고 모든 것이 예상대로 작동하는지 확인하십시오.

아래의 모든 단계에서 엔드 포인트 주소를 사용해야합니다. 일반 www.example.com.s3.amazonaws.com은 작동하지 않습니다. 지역 버전 ( http://www.example.com.s3-website-us-east-1.amazonaws.com/) 을 사용해야합니다 . )

이제 깨끗한 사용자 지정 URL을 제공하도록 DNS를 설정할 수 있습니다.

먼저 www.example.com을 귀하의 사이트에 매핑합니다.

DNS 공급자의 도구 (사용자의 경우 123-reg)를 사용하여 www.example.com을 www.example.com.s3-website-us-east-1.amazonaws.com에 매핑하는 CNAME 레코드를 만들어야합니다.

CNAME은 www.example.com을 원할 때 필요한 유일한 것입니다. 대부분의 사람들은 "example.com"이 작동하기를 원하므로 다른 단계가 필요합니다.

example.com은 종종 네이 키드 도메인 또는 도메인의 apex 레코드라고합니다. 이것이 문제인 이유는 CNAME이 될 수 없기 때문입니다. CNAME은 "www"와 같은 하위 도메인에서만 작동합니다. 이로 인해 s3를 가리 키기가 더 어려워집니다.

일반적인 접근 방식은 서비스를 사용하여 example.com으로 이동하는 모든 요청이 www.example.com을 가리 키도록 자동으로 리디렉션하는 것입니다. 그러면 CNAME 레코드가 선택되고 사이트가 s3에서 제공됩니다.

일반 이전 DNS에서는 자동 리디렉션이 불가능하므로 다른 서비스를 사용해야합니다. 일부 DNS 공급자는 DNS와 함께이 서비스를 제공합니다 (godaddy는 제공하지만 amazon route53은 제공하지 않습니다. 123-reg에 대해 확실하지 않음).

DNS 제공 업체가이를 수행하지 않는 경우 몇 가지 무료 서비스가 있습니다. 제가 사용한 것은 http://wwwizer.com/naked-domain-redirect 입니다. 등록이나 결제가 필요하지 않습니다.

이러한 유형의 서비스를 사용하려면 네이 키드 도메인에 대한 DNS "A"레코드를 만들어야합니다. wwwizer.com 서비스의 경우 example.com이 174.129.25.170을 가리 키도록 A 레코드를 만들어야합니다. 그게 다야!

따라서이 설정에서 사용자가 브라우저에 example.com을 입력하면 다음과 같은 상황이 발생합니다.

  1. DNS 쿼리 : example.com-> 174.129.25.170 (wwwizer.com 서비스)
  2. example.com의 경우 174.129.25.170에 대한 HTTP 요청
  3. 174.129.25.170은 example.com-> www.example.com을 리디렉션합니다.
  4. DNS 쿼리 : www.example.com-> CNAME에서 www.example.com.s3-website-us-east-1.amazonaws.com으로
  5. DNS 쿼리 : www.example.com.s3-website-us-east-1.amazonaws.com-> Amazon S3를 가리킴
  6. 이제 www.example.com에 대한 HTTP 요청이 Amazon S3에서 제공됩니다.

즐겨!


2
모든 것을 명확하게 해주셔서 감사합니다! 나는 변경을했고, 그것이 적절할 때까지 기다리기만하면, 모든 것이 작동 할 것이다.
Merlin Mason

흠, 여전히 작동하지 않는 것 같습니다. 다음은 DNS 구성 화면입니다 . cl.ly/CP6U 끝에 있는 점이 의심스러워 보이지만 거기에 추가하지 않았으며 끝에 점이있는 브라우저에 해당 URL을 넣으면 버킷을 찾을 수 없음 오류가 발생합니다. 제거를 시도했지만 저장하면 다시 나타납니다. /로 바꾸려고 시도했지만 잘못된 오류가 발생합니다. 이것이 123-regs 끝에서 문제가 될 수 있다고 생각하십니까?
Merlin Mason

안녕하세요 Merlin, 도메인 이름 (wpfill.me)에 대한 조회를 시도했지만 스크린 샷에 레코드가 표시되지 않습니다. 123-reg에 별도의 "게시"또는 "커밋"단계가 있습니까? 구성이 적용되지 않은 것 같습니다.
secretmike 2011-12-08

흠, 123-reg에 문제가있는 것 같습니다. DNS 레코드를 재설정하고 전파 될 때까지 48 시간을 기다렸지 만 여전히 기쁨이 없습니다. 그런 다음 DNS 호스팅을 Cloudflare로 전환하고 20 분 만에 모든 작업을 시작했습니다. :) 도움을 주셔서 감사합니다. 정말 감사합니다!
Merlin Mason


1

버킷의 모든 문서를 선택하고 마우스 오른쪽 버튼을 클릭 한 다음 "공개"를 선택해야한다고 생각합니다. 버킷에서 무언가 변경 될 때마다이 작업을 수행해야합니다. 그런 다음 보통 버킷을 마우스 오른쪽 버튼으로 클릭하고 속성을 선택하고 오른쪽 창에서 권한을 선택한 다음 "Everyone as a"grantee "를 추가 한 다음"list "권한 만 부여합니다. 나머지 기사는 훌륭합니다. 네이 키드 도메인에 대한 부분이 도움이되었습니다. "정적 웹 사이트 호스팅"에서 네이 키드 도메인을 S3 내의 www 도메인으로 리디렉션 할 수도 있습니다. 아마도 가장 쉬운 방법 일 것입니다. 모든 도움에 다시 한번 감사드립니다.


3
위에서 설명한대로 버킷 정책을 적용하는 경우이 수동 단계는 필요하지 않습니다.
tooluser 2014-08-07

1

2019 업데이트

오늘부터 다음 DNS 설정이 AWS S3 정적 웹 사이트를 작동시키는 데 도움이되었습니다.

버킷 매핑을위한 DNS 설정


0

123-reg 제어판의 고급 DNS 화면에서

  • 기본 123-reg 설정으로 "Reset DNS"버튼을 클릭하여 시작했습니다.

이것은 나에게 다음을 주었다.

DNS EntryType       PriorityTTLDestination/Target
*                 A                                 81.xx.xx.xx              
@               A                                 81.xx.xx.xx              
@               MX          10               xx0.123-reg.co.uk
@               MX          20               xx1.123-reg.co.uk

  • 그런 다음이 항목을 추가했습니다.

www          CNAME                    www.example.com.s3-website-us-east-1.amazonaws.com

그들의에서 관리 DNS 가이드 PDF 그것은이 "레코드 @"즉, 기본 도메인 stackoverflow.com "아니오 하위 도메인과 가장 순수한 형태로 도메인"을 의미 말한다

하지만 "* 레코드"가 무엇인지는 언급하지 않고 모든 하위 도메인을 잡을 것이라고 가정하고 CNAME 레코드를 넘을 수 있다고 생각했지만 그렇지 않은 것 같습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.