본문 바로가기
CLOUD/AWS

하나의 S3 버킷에 여러 App(web)을 Cloudfront 에 띄우기 및 루트 설정

by Rainbound-IT 2022. 6. 13.
반응형

S3 는 100개의 버킷으로 제한되어 있어

 

버킷이 적을경우는 상관이 없는데

많다면 하나의 버킷에 여러 웹을 띄워놓는것이 좋아 보인다.

이런식으로 폴더별 웹을 띄우면 관리하기 편하지만...루트에서 못써먹음

 

 

root 페이지를 띄우려면 내부에서 설정을 할것인지 아니면 aws 서비스로 설정을 할지 선택하는데

 

내부설정을 해주면 어플리케이션을 올릴때마다 수정을 해줘야 하기때문에 엄청나게 번거로워진다.

(물론 개발자에게 이렇게 해달라고 하면 되긴한다.)

 

aws에서 설정을 해주면 번거롭지 않게 할수 있기 때문에 나는 이것으로 해보기로 했다.

 

 

 

 

1. origin 및 behavior 경로 설정

 

그래서 폴더별로 구분하여 앱을 설정을 하려고하는데

 

일반적인 웹 어플리케이션은 여러 파일(js,css 등등)을 참조하고 있기때문에 경로이동을 하면 작동이 되질 않는다.

 

cloudfront의 기능인 origin path, behvior path pattern을 설정을 해도 되지 않음

 

 

2. clouodfront 함수설정

함수로 설정하면 될까 싶었는데 어차피 위와 같은 방식이라 작동하지 않는다.

 

 

cloudfront에 띄울때 index.html 경로가 안보이게 해야하는데 이거는 cloudfront에 함수가 있는데 이것을 이용하면 된다. 

간단한것은 이걸로 이용하면 되고 복잡한경우는 lambda를 이용해야한다.(근데 이게 us-west-1에서면 된다기도 하고 단점이 엄청 많아서 안하기로함)

https://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/example-function-add-index.html

 

파일 이름이 포함되지 않는 요청 URL에 index.html 추가 - Amazon CloudFront

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

 

 

Cloudfront에서 정적으로 호스팅되는 웹 사이트의 하위 디렉터리에 대한 기본 루트 개체를 어떻게 설정합니까?

https://stackoverflow.com/questions/31017105/how-do-you-set-a-default-root-object-for-subdirectories-for-a-statically-hosted?rq=1 

 

How do you set a default root object for subdirectories for a statically hosted website on Cloudfront?

How do you set a default root object for subdirectories on a statically hosted website on Cloudfront? Specifically, I'd like www.example.com/subdir/index.html to be served whenever the user asks f...

stackoverflow.com

 

 

결국엔 루트 경로에 웹어플리케이션을 두어 설정을 마무리 했다.

이렇게 하면 안좋은게 나중에 여러앱이 들어가게 될경우 뒤죽박죽되어 관리하기가 엄청 까다로워 질수가 있다.

 

 

아래는 한버킷에 여러 origin을 둬서 여러 앱을 하는 방식인데

이렇게 하면  나는 안됐다.
루트 경로를 지정하여 url로 접근하는 방식이 좋다 
이유는 cloudfront가 버킷을 읽을때 동일한 버킷일경우 하나만 읽어들이는데 여러개일경우 나머지들은 읽어 들이지 않기 때문에 안됐다고 생각한다.

이사람이 된거는 왜그런건지 모르겟음

https://stackoverflow.com/questions/59623291/cloudfront-multiple-origins-within-the-same-bucket

 

Cloudfront Multiple origins within the same bucket

I have a cloudfront distribution which I'm using with a single S3 bucket as the origin. The bucket has both private and public data in it, segregated by folders - public_folder_1, public_folder_2,

stackoverflow.com

 

반응형

댓글