조지아 놀라
# Amazon S3 및 HTTPS를 사용한 간단한 사이트 호스팅
안녕하세요 여러분!
이 자습서에서는 사용자 지정 도메인을 사용하여 AWS에서 HTTPS로 정적 웹 사이트를 호스팅하는 방법을 보여줍니다. AWS 프리 티어를 사용하면 이 모든 것이 가능합니다.
그러나 우리가 사용할 서비스에는 소액의 요금이 부과됩니다. 일반적으로 월 1달러를 초과해서는 안 됩니다.
다음 AWS 서비스 조합을 사용하게 됩니다.
âÃÂÃÂS3
̢̉̉ Route53
âÃÂÃâ 인증서 관리자
̢̉̉ CloudFront
*시작하겠습니다!*
S3 버킷 설정
먼저, 다음이 필요합니다.
**2개의 S3 버킷은 모두 사용자 지정 도메인 이름과 www 하위 도메인을 포함한 두 번째 이름과 일치해야 합니다.
버킷 1:
버킷 2:
첫 번째 버킷(mywebsite.com)은 사이트의 기본 버킷입니다. 여기에는 정적 웹 사이트에 대한 모든 파일과 자산이 포함됩니다.
다음으로 정적 사이트 호스팅을 위해 이 버킷을 설정합니다. 버킷의 속성 탭에서 찾을 수 있으며 index.html로 설정된 사이트 색인과 함께 여기에 제공된 기본값을 유지할 것입니다.
또한 웹 사이트를 렌더링하려면 사용자의 브라우저가 버킷의 파일에 액세스해야 하므로 이 버킷에 액세스할 수 있도록 해야 합니다. 권한 탭에서 버킷 정책을 설정하여 이를 수행할 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "허용", "Principal":"Action": "s3:GetObject", "자원": "MY_BUCKET_ARN"} ]}
이는 버킷의 객체에 대한 퍼블릭 읽기 액세스만 허용하는 간단한 정책입니다. 이제 버킷의 정적 호스팅 구성에 정의된 엔드포인트로 이동하면 웹사이트가 표시됩니다.
진전! 하지만 우리는 그것보다 더 잘할 수 있습니다
두 번째 버킷(www.mywebsite.com)은 비워 두지만 HTTP를 프로토콜로 사용하여 첫 번째 버킷으로 리디렉션하도록 구성합니다(나중에 HTTPS로 만들 예정임).
이제 버킷을 사용할 준비가 되었습니다!
Route53으로 도메인 구성
따라서 귀하의 웹사이트는 실행 중이지만 사용자 지정 도메인이 아닌 버킷 엔드포인트를 통해서만 액세스할 수 있습니다. 그것을 바꾸자
로 향하다
**Route53 Amazon Registrar에 도메인을 등록한 경우 두 개의 레코드 세트로 호스팅 영역이 설정되었음을 확인할 수 있습니다. 하나는 네임 서버(NS)용이고 다른 하나는 SOA용입니다.
우리가 해야 할 일은 S3 버킷 엔드포인트를 가리키는 두 개의 레코드 세트를 더 만드는 것입니다.
각 레코드 집합에 대해:
âÃÂà유형: A âÃÂàIPv4 주소
âÃÂà별칭: 예
âÃÂà별칭 대상: 이름에 대해 설정한 것과 일치하는 S3 웹 사이트 엔드포인트
이제 맞춤 URL로 이동할 수 있습니다.
거의 다 왔지만 마지막으로 빠진 것이 하나 있습니다. ÃâÃâ¦
**참고 도메인이 다른 도메인 등록 기관(Amazon 아님)에 등록된 경우 이를 설정하려면 몇 가지 다른 단계를 따라야 합니다. 일반적으로 기본 S3 버킷 엔드포인트 값이 있는 CNAME 레코드를 추가해야 합니다. **문제 해결
도메인을 처음 등록할 때 Amazon에서 생성한 호스팅 영역을 삭제한 경우(호스팅 영역에는 일부 요금이 부과되기 때문에 이렇게 했습니다), 처음부터 새 호스팅 영역을 생성해야 함
- âÃÂÃÂCreate Hosted ZoneâÃÂÃÂ를 선택하고 도메인 이름을 설정합니다(예: âÃÂÃÂmywebsite). comâÃÂÃÂ
- 이렇게 하면 NS 및 SOA 유형에 대한 일부 새 레코드 집합이 생성됩니다.
- 등록된 도메인으로 이동하여 이름 서버 값을 새 NS 레코드 집합에서 생성된 값으로 업데이트합니다.
인증서 요청
이제 사이트가 맞춤 URL을 사용하여 호스팅됩니다! 그러나 HTTP 프로토콜을 통해서만 액세스할 수 있습니다.
항상 HTTPS 프로토콜을 사용하여 사이트를 보호해야 합니다. 이는 악의적인 주입 공격으로부터 사이트와 사용자를 보호하고 진정성을 보장합니다.
로 향하다
**Certificate Manager** AWS Console에서 새 공개 인증서를 요청합니다(무료). 보호하려는 도메인 이름을 입력하라는 메시지가 표시됩니다.
인증서가 발급되기 전에 Amazon은 귀하가 지정된 도메인을 소유하고 있는지 확인할 수 있어야 합니다.
이메일 또는 DNS의 두 가지 확인 방법 중에서 선택할 수 있습니다.
일반적으로 이메일이 더 간단하지만 도메인 등록에 사용된 이메일에 액세스할 수 있는지 확인해야 합니다. 또는 Amazon Registrar 및 Route53을 사용한 경우 DNS 방법을 선택할 수 있습니다. 이를 위해서는 일부 특정 레코드 세트를 호스팅 영역에 추가해야 하지만 이는 대부분 자동화되어 있으므로 매우 간단합니다.
유효성 검사 후 인증서가 발급되는 데 몇 분 정도 걸릴 수 있습니다.
모두 완료되면 마지막 단계로 계속 진행할 수 있습니다!
CloudFront 구성
우리가 사용할 마지막 단계를 위해
**CloudFront **는 새로운 SSL 인증서를 사용하여 HTTPS로 웹사이트를 제공할 수 있게 해줍니다. 또한 CloudFront는 웹 콘텐츠를 여러 엣지 위치에 저장하고 가장 가까운 엣지 위치에서 사용자에게 전달함으로써 웹 콘텐츠 배포 속도를 높입니다.
우리는 필요합니다
**S3 버킷당 하나씩 두 개의 새로운 웹 배포. AWS 콘솔에서 CloudFront로 이동하여 첫 번째 웹 배포를 생성합니다.
웹 배포를 만드는 데 사용할 수 있는 설정이 많이 있지만 기본적으로 다음 5개만 변경하면 됩니다.
오리진 도메인 이름: 버킷 중 하나에 대한 S3 웹사이트 엔드포인트로 설정합니다. 중요: 이 필드는 S3 버킷 이름과 함께 몇 가지 자동 완성 옵션을 제공합니다. 그러나 이를 사용하면 버킷 엔드포인트로 리디렉션하는 데 문제가 발생할 수 있습니다. 따라서 대신 버킷 엔드포인트를 직접 사용하십시오. 오리진 ID: 오리진 도메인 이름을 입력하면 채워집니다. 뷰어 프로토콜 정책: âÃÂÃÂRedirect HTTP to HTTPSâÃÂÃÂ로 설정합니다. 대체 도메인 이름: 이것은 가리키는 S3 버킷의 이름과 일치해야 합니다. 예: âÃÂÃÂmywebsite.comâÃÂÃÂ. SSL 인증서: âÃÂÃÂCustom SSL CertificateâÃÂÃÂ를 선택하고 드롭다운에서 새 인증서를 선택합니다.
두 번째 S3 버킷에 대해 이 작업을 다시 수행합니다.
배포판이 작동하는 데 시간이 걸릴 수 있으므로 기다리는 동안 마무리 단계를 수행하겠습니다.
다시
**S3는 보조 버킷(www.mywebsite.com)으로 이동하여 속성 탭의 정적 웹 사이트 호스팅에서 리디렉션 프로토콜을 HTTPS로 설정합니다.
마지막으로
**Route53 이제 S3 버킷이 아닌 CloudFront 배포를 대상으로 생성한 사용자 지정 A 레코드를 업데이트해야 합니다. 각 레코드에 대해 별칭 대상을 변경하고 드롭다운에서 사용 가능한 CloudFront 배포를 선택합니다.
참고: 다시 말하지만, 다른 DNS 서비스를 사용하는 경우 CloudFront 도메인 이름을 가리키도록 거기에서 CNAME 레코드를 업데이트해야 합니다.
그리고 당신은 그것을 가지고 있습니다! 이제 아름다운 웹사이트를 맞춤 도메인에서 사용할 수 있으며 HTTPS로 제공됩니다!
읽어 주셔서 감사합니다! 이 가이드가 유용하고 즐거웠기를 바랍니다. 도움이 되셨는지 알고 싶습니다.