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에서면 된다기도 하고 단점이 엄청 많아서 안하기로함)
Cloudfront에서 정적으로 호스팅되는 웹 사이트의 하위 디렉터리에 대한 기본 루트 개체를 어떻게 설정합니까?
결국엔 루트 경로에 웹어플리케이션을 두어 설정을 마무리 했다.
이렇게 하면 안좋은게 나중에 여러앱이 들어가게 될경우 뒤죽박죽되어 관리하기가 엄청 까다로워 질수가 있다.
아래는 한버킷에 여러 origin을 둬서 여러 앱을 하는 방식인데
이렇게 하면 나는 안됐다.
루트 경로를 지정하여 url로 접근하는 방식이 좋다
이유는 cloudfront가 버킷을 읽을때 동일한 버킷일경우 하나만 읽어들이는데 여러개일경우 나머지들은 읽어 들이지 않기 때문에 안됐다고 생각한다.
이사람이 된거는 왜그런건지 모르겟음
https://stackoverflow.com/questions/59623291/cloudfront-multiple-origins-within-the-same-bucket
'CLOUD > AWS' 카테고리의 다른 글
cloudwatch log flow 의 iam 역할 (0) | 2022.06.14 |
---|---|
react 앱 s3에 폴더별로 설치 방법(403 에러 해결) (0) | 2022.06.14 |
Cloudfront 동작방식 (0) | 2022.06.10 |
AWS ECS repository pull 하는 방법 (이미지 다운) (0) | 2022.06.08 |
cloudfront-s3 react browser router 작동 안할때 (0) | 2022.05.30 |
댓글