IT

AWS S3 버킷 이름 작명 시 유념해야할 것

紫紅 2023. 11. 20. 11:19
반응형

보통의 경우, AWS 서비스와 연동할 것이고, AWS에서 예제를 잘 제공해주기에 큰 문제가 되지 않을 것이다. 하지만 AWS 서비스 외의 다른 서비스와 연동을 하다보면, 문제가 발생하기도 하므로 버킷 이름 작명 시 알고 있어야할 것들을 기록해둔다.

1. 버킷의 용도에 따라 달라지는 구분자

버킷 이름에 "."을 사용하면 좋지 않은 경우

AWS는 서브도메인(sub.domain.com에서 sub에 해당하는 것)을 재귀적으로 선언(sub2.sub1.domain.com)할 수 있다. 하지만 python 일부 라이브러리, 다른 DNS 관리 서비스 등에서 예외가 존재한다. 서브도메인 내에서 .을 사용하는 경우, 올바르지 못한 도메인으로 인식하는 경우가 있다.

실제로 django + s3 연동 시, 이름에 .이 포함된 버킷은 파일 업로드 등의 기능이 정상동작하지 않았다. 파일 업로드 목적이라면, "."문자는 제외해야 한다. 나는 보통 "-"을 구분자로 사용한다.

버킷 이름에 "." 대신 다른 구분자를 사용하면 안되는 경우

반대로 .을 구분자로 써야할 때가 있다. 웹사이트 정적 호스팅 기능인데, 이때 example.com 대신, example-com 등으로 작명하게 되면,

404 Not found

  • Code: NoSuchBucket
    ...
  • BucketName: example.com
    ...

과 같은 메시지를 볼 수 있다.

정적 웹사이트 호스팅이 목적이라면, 구분자를 반드시 "."으로 작명해야 한다.

반응형