3. 문제 발생
• MW 모듈의 JS 파일에서 위 오류 발생
• JS 파일을 열어보니 index.html의 content가 들어있음
• 위 오류가 계속 발생!
4. 어떤 일이 일어난걸까?
• Apache HTTP Server의
mod_rewrite 모듈을
확인해보았다.
• mod_rewrite는 404 not found
발생시, index.html로
redirection을 해주고 있었다.
• Rewrite Rule은 ~~/채널명로
호출시, index.html 을 찾게끔
하는 룰이 필요하여 들어가게 된
것.~!!
• JS 파일이 없는 경우가 있을까?
5. JS 파일이 없을 수 있다!
1. 배포 중에 Index.html이 먼저
배포되고
2. JS 파일이 뒤늦게 배포되면
3. 1과 2의 중간 시점에 JS 파일에
대한 request가 들어올 경우 JS
파일이 없어서 404 not found가
발생할 수 있다.
6. 하지만 JS 파일이 없는
시간은 아주 짧다
누가 redirect 된 JS 파일의 content를 caching하고 있는가?
7. CloudFront가 잘못된 파일을 캐싱하고 있다
1. CloudFront가 잘못된 파일로
caching 하고 있는 동안
2. 오류는 계속 발생한다
8. 하지만 JS 파일이 없는
시간은 아주 짧다
Index.html과 JS 파일은 거의 동시에 배포된다
9. 배포할 서버가
많다보니…
1. 복수의 Apache HTTP server 중 일부만
배포 완료되었을 때
2. index.html은 배포 완료된 Apache
server에게 request 하고
3. 신규 JS는 미배포 Apache server에게
request 할 수 있다
4. ALB의 round robin 알고리즘이 이런
상황을 만들 수 있다
12. 대체할 수
있을까?
• 기능 대체 가능
• Apache HTTP Server에서 사용중인 redirection 등의
기능을 CloudFront와 S3에서 설정할 수 있다.
• 편리함
• S3는 AWS managed service이기 때문에 트래픽
과부하를 걱정할 필요가 없다
• 가격
• EC2보다 S3가 저렴하다
• ALB 인스턴스가 필요없어 비용 절감
• CodeDeploy도 필요없다