17C. Route 53와 S3 연동하기
17C. Route 53와 S3 연동하기 관련
![](https://pyrasis.com/assets/images/pyrasis.png)
S3은 정적 웹사이트 호스팅 기능이 있습니다. 정적 웹사이트 호스팅 기능을 사용하는 S3 버킷을 Route 53을 통해 도메인과 연결할 수 있습니다.
Route 53와 연동하기 위해서는 S3 버킷을 두 개를 생성해야 합니다.
![S3 메인 페이지로 이동하고, 위쪽 <FontIcon icon="iconfont icon-selecgt"/> 버튼을 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter17/18_.png)
[Create Bucket]
버튼을 클릭합니다.Route 53와 연동할 첫 번째 S3 버킷을 생성합니다.
- Bucket Name: Route 53와 연동할 때에는 버킷 이름을 도메인 이름으로 설정해야 합니다여기서 www 서브도메인을 제외한 루트도메인을 입력합니다. 저는
gaas.io
를 사용하겠습니다. 각자 구입한 도메인 이름을 입력합니다. - Region: 리전을 설정합니다. 우리나라에서 가장 가까운 Tokyo 리전을 선택합니다.
![설정이 완료되었으면 <FontIcon icon="iconfont icon-select"/> 버튼을 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter17/19_.png)
[Create]
버튼을 클릭합니다.![S3 버킷 목록에서 방금 생성한 S3 버킷을 선택하고 위쪽의 <FontIcon icon="iconfont icon-select"/> 버튼을 클릭합니다. 그리고 Permissions 탭을 클릭한 뒤 <FontIcon icon="iconfont icon-select"/> 버튼을 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter17/20_.png)
[Properties]
버튼을 클릭합니다. 그리고 Permissions 탭을 클릭한 뒤 [Add bucket policy]
버튼을 클릭합니다.버킷 정책 편집기 화면이 나옵니다. 이곳에 아래 JSON 텍스트를 입력합니다. 인터넷에 버킷의 모든 파일을 공개하는 정책은 AWS Policy Generator에서 생성할 수 있습니다. AWS Policy Generator에 관련된 것은 '11.3.2 S3 버킷 권한 관리하기'를 참조하기 바랍니다.
{
"Version": "2008-10-17",
"Id": "Policy1397993518062",
"Statement": [
{
"Sid": "Stmt1397993241249",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::gaas.io/*"
}
]
}
Warning
버킷 정책의 내용 중에서 Resources의 arn:aws:s3:::gaas.io/*
에서 gaas.io
부분은 여러분들이 생성한 버킷 이름(도메인 이름)으로 바꿔주어야 합니다. 책에 있는 그대로 입력하면 안됩니다.
![버킷 정책 JSON 텍스트 입력이 끝났으면 <FontIcon icon="iconfont icon-select"/> 버튼을 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter17/21_.png)
[Save]
버튼을 클릭합니다.![같은 S3 버킷에서 Static Website Hosting 탭을 클릭한 뒤 <FontIcon icon="iconfont icon-select"/>을 선택합니다. 그리고 Index Document 부분에 을 입력하고 <FontIcon icon="iconfont icon-select"/> 버튼을 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter17/22_.png)
[Enable website hosting]
을 선택합니다. 그리고 Index Document 부분에 index.html
을 입력하고 [Save]
버튼을 클릭합니다.이제 간단한 웹 페이지를 작성합니다. 메모장이나 기타 텍스트 편집기를 열고 아래와 같이 작성한 뒤 index.html
로 저장합니다.
index.html
<html>
<head>
<title>Example S3</title>
</head>
<body>
<p>Hello S3 - Route 53</p>
</body>
</html>
이 index.html
을 방금 생성한 S3 버킷에 올립니다. 파일을 올리는 방법은 '11.2 S3 버킷에 파일 올리기/받기'를 참조하기 바랍니다. 이후 데이터를 올릴 때에는 이 S3 버킷에만 올립니다.
![S3 버킷 생성](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter17/23_.png)
Route 53와 연동할 두 번째 S3 버킷을 생성합니다.
- Bucket Name: www 서브 도메인에 연결할 S3 버킷을 생성합니다. 저는 gaas.io를 사용하겠습니다. 각자 구입한 도메인 이름 앞에 www.를 붙여서 입력합니다.
- Region: 리전을 설정합니다. 우리나라에서 가장 가까운 Tokyo 리전을 선택합니다.
![설정이 완료되었으면 <FontIcon icon="iconfont icon-select"/> 버튼을 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter17/24_.png)
[Create]
버튼을 클릭합니다.S3 버킷 목록에서 www가 붙은 S3 버킷을 선택하고 위쪽의 [Properties]
버튼을 클릭합니다. 그리고 [Static Website Hosting]
탭을 클릭한 뒤 Redirect all request to에 여러분들이 구입한 도메인 이름을 입력합니다(www. 제외).
앞에서 도메인 이름으로 된 S3 버킷을 생성하고, www.
가 붙은 S3 버킷을 잘 생성했다면 Redirect all request to에 도메인 이름이 이미 설정되어 있을 것입니다.
![설정이 완료되었으면 <FontIcon icon="iconfont icon-select"/> 버튼을 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter17/25_.png)
[Save]
버튼을 클릭합니다.www.
가 붙은 S3 버킷으로 접속하는 모든 트래픽은 루트 도메인으로 이동하도록 설정했습니다. 저는 www.gaas.io
를 입력하면 gaas.io
로 이동하게 설정했습니다. 여러분도 맞게 설정했다면 www.<도메인>
으로 입력하면 <도메인>
으로 이동하게 됩니다. 따라서 www.
가 붙은 S3 버킷에는 데이터를 올리지 않아도 됩니다.
Route 53 메인 페이지로 이동합니다.
![도메인을 선택하고 위쪽 <FontIcon icon="iconfont icon-select"/> 버튼을 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter17/26_.png)
[Go to Record Sets]
버튼을 클릭합니다.도메인의 레코드 목록이 표시됩니다.
![위쪽 <FontIcon icon="iconfont icon-select"/> 버튼을 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter17/27_.png)
[Create Record Set]
버튼을 클릭합니다.루트 도메인 A 레코드를 생성합니다.
- Name: 루트 도메인 A 레코드를 생성할 것이므로 아무것도 입력하지 않습니다.
- Type: 레코드 종류를 설정합니다. 기본값 그대로 A - IPv4 address를 선택합니다.
- Alias: Yes를 선택하여 IP 주소 대신 AWS 리소스를 설정합니다.
- Alias Target: AWS 리소스의 주소를 설정합니다. Alias Target 입력 부분을 클릭하면 사용할 수 있는 AWS 리소스(S3, ELB, CloudFront)의 목록이 표시됩니다. S3 Website Endpoint의
<도메인>
(s3-website-ap-northeast-1
)을 선택합니다. - Alias Hosted Zone ID: Alias Target을 선택하면 자동으로 설정됩니다.
- Routing Policy: 라우팅 정책을 설정합니다. 기본값 그대로 Simple을 선택합니다.
- Simple: 아무런 부가 기능 없이 IP 주소만 알려줍니다.
- Weighted: Weighted Round Robin 기능을 사용합니다.
- Latency: Latency Based Routing 기능을 사용합니다.
- Failover: DNS Failover 기능을 사용합니다.
- Evaluate Target Health: 서버 동작 상태 체크(Health Check)를 사용할지 설정합니다. 기본값 그대로 사용합니다.
Zone Apex 지원
루트 도메인을 IP 주소가 아닌 S3 Endpoint와 같은 URL로 연결하는 것이 Zone Apex(최상위 도메인, TLD) 지원 기능입니다.
![설정이 완료되었으면 <FontIcon icon="iconfont icon-select"/> 버튼을 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter17/28_.png)
[Create]
버튼을 클릭합니다.도메인의 레코드 목록에 A 레코드가 추가되었습니다.
![다시 <FontIcon icon="iconfont icon-select"/> 버튼을 클릭하여 서브도메인에 대한 CNAME 레코드를 생성하겠습니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter17/29_.png)
[Create Record Set]
버튼을 클릭하여 www
서브도메인에 대한 CNAME 레코드를 생성하겠습니다.www 서브 도메인에 대한 CNAME 레코드를 생성합니다.
- Name: www 서브 도메인을 생성할 것이므로 www를 입력합니다.
- Type: 레코드 종류를 설정합니다. CNAME - Canonical name을 선택합니다. CNAME은 IP 주소 대신 도메인을 연결하는 기능입니다.
- Alias: A 레코드만 사용할 수 있는 기능이므로 기본값 그대로 No를 선택합니다.
- TTL: Time To Live의 약자이며 A 레코드가 갱신되는 주기를 설정합니다. 초 단위로 설정합니다. 이후 CNAME 레코드의 도메인을 바꾸면 TTL에 설정한 시간이 지나야 적용됩니다.
- Value: 연결할 도메인을 입력합니다.
www.
가 붙은 S3 버킷의 Endpoint를 입력합니다(http://
제외, Endpoint는www.
가 붙은 S3 버킷의 Properties에서 Static Website Hosting 탭에 나와있습니다). - Routing Policy: 라우팅 정책을 설정합니다. 기본값 그대로 Simple을 선택합니다.
- Simple: 아무런 부가 기능 없이 IP 주소만 알려줍니다.
- Weighted: Weighted Round Robin 기능을 사용합니다.
- Latency: Latency Based Routing 기능을 사용합니다.
- Failover: DNS Failover 기능을 사용합니다.
![설정이 완료되었으면 <FontIcon icon="iconfont icon-select"/> 버튼을 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter17/30_.png)
[Create]
버튼을 클릭합니다.![도메인의 레코드 목록에 CNAME 레코드가 추가되었습니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter17/31_.png)
![웹 브라우저에서 A 레코드로 설정한 도메인()과 CNAME으로 생성한 www 서브 도메인()에 접속합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter17/32_.png)
gaas.io
)과 CNAME으로 생성한 www 서브 도메인(www.gaas.io
)에 접속합니다.Route 53을 사용하기 전에 루트 도메인과 www 서브 도메인의 A 레코드 TTL을 길게(예: 4시간) 설정하였다면 앞에서 설정한 내용이 바로 적용되지 않을 수 있습니다. TTL에 설정한 시간이 지난 후에 다시 확인해봅니다.