CloudFront를 이용한 Host Redirect
배경
CloudFront(CF) 잘 쓰고 있었는데 갑자기 Redirect가 필요해졌다. 근데 하필 static website라 nginx나 node 서버에서 Redirect를 못하는 상황.
문제 해결 과정
처음엔 Route 53 DNS를 바꾸면 되겠지 했는데, 요구사항이 A 사이트에서 B 사이트로 넘어가는 거였다. 중간에 서버가 있었으면 쉬웠을 텐데... 결국 CloudFront Function을 쓰기로 했다.
- CloudFront Function 생성: CloudFront > 함수에서 cloudfront-js-2.0으로 함수 생성!
- 함수 코드 작성: 참고 문서(https://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/example-function-redirect-url.html)
function handler(event) {
const request = event.request;
const headers = request.headers;
if(headers.host) {
const host = headers.host.value;
if (host === 'A' || host === 'www.A') {
const targetHost = host === A' ? AA' : 'www.AA';
const response = {
statusCode: 301,
statusDescription: 'Moved Permanently',
headers: { "location": { "value": `https://${targetHost}${request.uri}` } }
}
return response;
}
}
return request;
}
함수 배포 및 연결: 함수 퍼블리시하고, 특정 배포에서 기본 동작 편집해서 "뷰어 요청"에 할당
결과
CloudFront Function으로 특정 호스트 Redirect 성공! 삽질은 힘들었지만, 결과는 만족스러웠다.
'개발' 카테고리의 다른 글
JavaScript 배열 섞기: 핵심 정리 (0) | 2024.09.24 |
---|---|
맥북 화면 분할, 이제 마그넷으로 끝! 🧲 (1) | 2024.09.03 |
Redis & K8S 포트포워딩 그리고 DEL (0) | 2023.07.19 |
Plotly js, xAxis time series 빈 데이터 제거. aka 휴일 제거 (0) | 2022.04.12 |
Application 개발 시 Network handling, React, Android (0) | 2021.09.05 |