서버에서 S3 연결 배포하면서 두가지 이슈에 직면했다.
1. 413 Request Entity Too Large
2. 사이트에 연결할 수 없음 {버킷주소}에 오타가 있는지 확인하세요. DNS_PROBE_FINISHED_NXDOMAIN
해당에러는 서버의 허용값 보다 큰 파일을 클라이언트에서 전송 시도했을 때 발생한다.
해결방법은 간단하게 client_max_body_size
설정값을 수정해주면 된다.
client_max_body_size
의 기본 설정값은1MB
로 기본값을 넘어간다면 nginx 설정값을 지정해줘야 한다. 또는 제한을 두지 않으려면 0
으로 설정해주면 된다.
참고문서
# nginx.conf
client_max_body_size 500M;
...
이번에 aws key 보안 이슈 등. 이런저런 이유로 서버에서 s3 연결을 진행했다. 클라이언트에서 받는 파일이 최대 500M 이하의 동영상이다보니 413 Request Entity Too Large 에러를 마주하게 되었다.
AWS S3에서 기본으로 제공하는 URL이 아닌 다른 URL로 우회하여 사용하고자 했으나 관련 설정을 안하고 로컬에서 테스트해보고 테스트 서버에 올려서 이번 아슈애 작면하게 되었다..
AWS S3에서 제공하는 URL을 사용하면 간단하게 해결될 문제이기도 하지만 기본 URL은 HTTPS 설정 불가능하고, 버킷 주소를 너무 대놓고 들어나서 보안상으로도 안 좋은 것 같아 CloudFront와 Route53을 이용했다.
CloudFront
AWS가 제공하는 CDN로 S3 주소에 HTTPS를 적용하고 AWS 인프라의 Edge location에 빠르게 전송할 수 있게 해준다.
Route53
AWS가 제공하는 DNS 서비스로 사용자가 가지고 있는 도메인에 S3 URL을 연결해 준다.