여기에 설명 된 것처럼 간단한 Amazon 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을 업로드하고 웹 사이트 액세스를 설정했으며 http://simples3websitetest.com.s3-website-us-west-2.amazonaws.com/index.html을 통해 액세스 할 수 있습니다 .
지금까지는 Amazon Route53 액세스를 설정하고 싶습니다. 이곳에서 문제가 발생했습니다.
내가 소유 한 도메인 (resourcesbox.net)에 호스팅 영역을 설정하고 “레코드 세트 생성”을 클릭 한 후 “설정 별칭”단계에 도달했지만 S3 웹 사이트 엔드 포인트에서 “사용 가능한 대상 없음”이 표시됩니다. 별칭 대상을 설정하십시오.
내가 놓친 게 무엇입니까??
답변
S3에서 버킷을 가상으로 호스팅하려면 Host:
브라우저에서 전송 한 헤더가 버킷 이름과 일치 해야하므로 생성 한 A 레코드 별칭은 버킷 이름과 같아야합니다 . 실제로 버킷의 가상 호스팅을 수행 할 수있는 또 다른 실용적인 방법은 없습니다. 버킷은 일부 메커니즘으로 식별되어야하며 해당 메커니즘은 http 헤더입니다.
“example.com”도메인 내의 버킷에 대한 별칭을 생성하려면 버킷 이름도 해당 도메인 내에서 합법적으로 선언 할 수있는 호스트 이름이어야합니다. Route 53 A-Record “testbucket.example 예를 들어 .com “은 “testbucket.example.com “이라는 버킷 에만 별칭을 지정할 수 있으며 다른 버킷은 사용할 수 없습니다.
귀하의 질문에, 당신은이 제약 조건을 깨뜨리고 있지만 “simples3websitetest.com”도메인 내부 및 (정점에서) “simples3websitetest.com”버킷에 대한 별칭 만 만들 수 있습니다.
이것은 의도적으로 설계된 것으로 Route 53이나 S3의 제한이 아닙니다. 그들은 당신이 아마도 할 수없는 일을하지 못하게합니다. 웹 서버는 앨리어싱이나 CNAME 또는 DNS에서 수행 된 다른 작업을 인식하지 못합니다. 브라우저가 보낸 HTTP 헤더에서 브라우저가 연결을 시도한다고 생각하는 원래 호스트 이름 만 수신합니다. 가상 호스팅 요청이 적용되는 버킷의 이름을 식별하기위한 정보.
Amazon S3에서는 버킷과 도메인 이름을 동일하게 지정해야합니다. 이는 사용자가 웹 사이트에서 콘텐츠를 요청할 때 Amazon S3가 웹 브라우저에서 전송 한 호스트 헤더를 올바르게 확인할 수 있도록하기위한 것입니다. 따라서 도메인 이름을 등록하기 전에 요금을 지불하기 전에 Amazon S3에서 웹 사이트에 대한 버킷을 생성하는 것이 좋습니다.
그러나이 제한은 버킷 앞에서 CloudFront를 사용하지 않는 경우에만 적용됩니다.
CloudFront를 사용 Host:
하면 요청이 S3에 전달되기 전에 헤더를 CloudFront 자체에서 다시 작성할 수 있으므로 유연성이 더욱 향상 됩니다. CloudFront 배포에서 “origin host”를 구성합니다. your-bucket.s3-website-xx-yyyy-n.amazonaws.com
여기서 xx-yyyy-n은 버킷이 생성 된 S3의 AWS 리전입니다. 이 엔드 포인트는 각 버킷의 S3 콘솔에 표시됩니다.
답변
호스팅 영역 abc.com이 있다고 가정합니다. 버킷 abc.com (라우트 별칭의 목록에 표시되지 않음)을 만듭니다. 이름 뒤에-버킷 이름을 지정할 수 없습니다.
이것도 시도하십시오. 처음으로 올바른 이름으로 버킷을 생성했지만 여전히 작동하지 않기 때문입니다. 내가 OCD를 가지고 있기 때문에 나는 멈춤이나 쉼표를 놓치지 않았다.
- 이름이 abc.com 인 다른 호스팅 영역을 만듭니다.
- 이제 동일한 호스팅 영역 (abc.com 및 abc.com) 중 2 개가 표시됩니다.
- 새로운 것을 삭제하십시오
- 이전 호스팅 영역 abc.com으로 돌아 가기
- s3 엔드 포인트가 표시 될 수 있습니다. 이는 Route53에서 문제 일 수 있습니다.
이것은 거의 모든 것을 시험해 보았습니다. 제가 볼 수있는 제안은 일종의 캐시 지우기를 위해 로그 아웃하고 로그인하는 것입니다.