개발
home
🍻

URL 리다이렉트 구현 AWS S3 + Cloudfront + Route53. Redirect URL by AWS S3 + Cloudfront + Route53

2021-12-02 @이영훈
다른 URL로 redirect 시키는 방법을 기록으로 남깁니다
http://from.leedo.me/*/* → https://naver.com/*/*
https://from.leedo.me/*/* → https://naver.com/*/*
리다이렉트 되는 것을 구현해보겠습니다

S3 설정하기

1.
S3에서 Create bucket을 선택합니다
2.
Bucket 이름을 리다이렉트 시키려는 URL과 동일하게 설정합니다
3.
Block all public access를 모두 풀어줍니다
4.
Create bucket을 눌러 생성합니다
5.
생성한 bucket을 선택하고 Properties 탭에 들어갑니다
6.
아래쪽에 Static website hosting이 있습니다 Edit을 선택하고
Redirect request for an object를 클릭하고 리다이렉트 시키려고 하는 URL을 입력합니다
7.
생성된 endpoint를 복사해주세요 cloudfront 설정에 사용됩니다

Cloudfront 설정하기

1.
Cloudfront에서 Create distribution을 선택합니다
2.
Origin domain에 위에서 복사한 bucket website endpoint를 붙여넣습니다
붙여넣으면 'http://'는 자동으로 사라집니다
3.
Viewer protocol policy는 HTTP and HTTPS로 설정했습니다
이 부분은 필요하신대로 변경하시면 됩니다
4.
Allowed HTTP methods는 GET 요청만 받을 것이라서 GET, HEAD만 선택했습니다
5.
CNAME에 리다이렉트 시키려고 하는 URL을 입력해주세요
그리고 SSL certification을 선택해주세요
SSL certifcation은 ACM으로 만드시면 됩니다. Cloudfront에서 사용하기 위해서는 N.Virginia region에서 만들어야 합니다
6.
Create distribution을 선택해서 생성합니다
7.
Deploy가 되면 cURL로 리다이렉트가 되는 지 확인해보겠습니다
curl -i d3nnzmr0jl1915.cloudfront.net --- HTTP/1.1 301 Moved Permanently Content-Length: 0 Connection: keep-alive Date: Thu, 02 Dec 2021 03:17:51 GMT Location: https://naver.com/ Server: AmazonS3 X-Cache: Miss from cloudfront Via: 1.1 21de0132b4be86ec92ea5538337e85b1.cloudfront.net (CloudFront) X-Amz-Cf-Pop: ICN54-C3 X-Amz-Cf-Id: n-ZiVG_zR2NHDBMcS4Rdeew3I4sNj59CGfttjWq2SiOK1Yt0NYVJhQ==
Bash
복사
curl -i d3nnzmr0jl1915.cloudfront.net/hello/world --- HTTP/1.1 301 Moved Permanently Content-Length: 0 Connection: keep-alive Date: Thu, 02 Dec 2021 03:20:16 GMT Location: https://naver.com/hello/world Server: AmazonS3 X-Cache: Miss from cloudfront Via: 1.1 9b42bb5bc537e01223cfa720cd3f8d14.cloudfront.net (CloudFront) X-Amz-Cf-Pop: ICN55-C1 X-Amz-Cf-Id: fDkCsLw_WH-NULAVglvJZfIEM4L_SXOJL4WX4XVnVRLawo9G_zPYLQ==
Bash
복사
정상적으로 리다이렉트 되는 것을 확인할 수 있습니다

Route53 설정하기

cloudfront domain name으로만 접속이 가능했습니다
CNAME으로 설정한 URL을 Route53에 연결해서 사용이 가능하게 설정합니다
1.
Route53에서 해당 host로 들어가서 Create record를 선택합니다
2.
Record name을 CNAME과 동일하게 설정하고
Route traffic to에서 Cloudfront를 선택합니다
3.
정상적으로 등록이 되었습니다. cURL에서 정상적으로 리다이렉트 되는 것을 확인할 수 있습니다
curl -i https://from.leedo.me --- HTTP/2 301 content-length: 0 location: https://naver.com/ date: Thu, 02 Dec 2021 03:17:51 GMT server: AmazonS3 x-cache: Hit from cloudfront via: 1.1 6417e2f7bfaa7aa3312c9889248048c4.cloudfront.net (CloudFront) x-amz-cf-pop: ICN54-C3 x-amz-cf-id: 4IsJuU6USgqnnFywti-ATlKlU8dDzUisJ2yaVUBPhOkJr7kNO1JOVw== age: 8545
Bash
복사
curl -i http://from.leedo.me --- HTTP/1.1 301 Moved Permanently Content-Length: 0 Connection: keep-alive Date: Thu, 02 Dec 2021 03:17:51 GMT Location: https://naver.com/ Server: AmazonS3 X-Cache: Hit from cloudfront Via: 1.1 ff1ce51e019e1a9589c75c3ae077564f.cloudfront.net (CloudFront) X-Amz-Cf-Pop: ICN54-C3 X-Amz-Cf-Id: 2wwA6ti0DWzsBv2t0gF7atqdTTX6gmIiKuDSJiy39owpMHM5q_rOnQ== Age: 8495
Bash
복사

Refer