발표자 소개
박찬민
- Web Front-end Developer
- 화해 (버드뷰)
- AWS Community Builders
Amplify hosting을 사용하게 된 계기
2명의 개발자가 같은
제품을 담당
1명당 2개 이상의
과제를 동시에 진행
과제마다 개발
결과를 확인하는
사람이 다름
개발 서버 1개
배포 절차를
수동으로 진행
Amplify hosting을 사용하게 된 계기
2명의 개발자가 같은
제품을 담당
1명당 2개 이상의
과제를 동시에 진행
과제마다 개발
결과를 확인하는
사람이 다름
개발 서버 1개
배포 절차를
수동으로 진행
개발 서버 점유
시간을 약속해야 함
과제 리뷰어들이
정해진 시간에만
확인 가능
배포 과정에 휴먼
리소스가 많이 들고
휴먼 에러 가능성이
높음
커뮤니케이션
비용이 무척 높음
실행 속도가 느림
Amplify hosting의 매력
Preview 기능으로 PR별 분리된 배포 환경 제공
- Github과 연동 가능
- Github에 PR이 올라가면 해당 코드를 기반으로 독립적인 호스팅 환경을
만들고 접근 가능한 URL 제공
- **발표자가 가장 추천하는 너무 만족스러운 기능**
주의 사항
SPA는 Rewrite Rule을 설정해줘야함
- S3, Cloudfront 기반이므로 없는 리소스를 요청하면 페이지가 표시되지 않음
- ‘Rewrites and redirects settings’ 메뉴에서 정적 파일 이외의 경로에 대한 Rewrite
설정을 해줘야함
- Rule을 변경하면 즉시 반영되지 않았음. 잘못 적용된 Rule로 인해서 오류가 났지만
Rule을 초기화 할 수가 없어서 호스팅 하는 파일 이름을 바꿔줬었음
- 정규표현식으로 Rule을 설정했으나 제대로 동작하지 않아서 파일 path 전체를
등록하기도 했음
- 참고: https://docs.aws.amazon.com/amplify/latest/userguide/redirects.html
주의 사항
HTTPS가 필수! 그래서 내부에서 HTTP 사용 못 함
- 보안 이슈로 인해서 서비스 내에서 HTTP 리소스를 사용하지 못 함.
Amplify에서는 반드시 HTTPS 기반으로 호스팅 됨.
주의 사항
S3, Cloudfront 리스트에 안 나타남
- 내부적으로 S3, Cloudfront를 이용하지만 S3, Cloudfront 콘솔에서
리소스가 보이지 않음
- 각 리소스에 대한 상세 설정 불가 & 다른 서비스와 연계 불가
주의 사항
WAF 연결 못 함
- 일반적인 Cloudfront 배포에는 WAF를 연결할 수 있음
- Amplify에는 WAF를 붙일 수 없음 (매우 안타까움...)
- 접근제한을 사이트 비밀번호 방식으로만 걸 수 있음
- IP 기반의 접근제어 불가...
주의 사항
nvm use 써주기
- 원래 build spec에서 node version을 명시하면 해당 버전의 머신에서
빌드를 수행했음
- 그러나, 얼마 전에 그 기능이 동작하지 않았음
- 그래서 빌드 커맨드에 nvm use를 추가해서 직접 노드 버전을 맞춰줬음
- 다행히 nvm은 기본 빌드 머신에 설치 되어 있음
Amplify 호스팅이 적절한 케이스
- CSR 기반의 웹어플리케이션
- (Next.js를 지원하는데 전혀 이슈가 없는지 확인하지 못함)
- 접근 제어가 필요 없는 Public 사이트
- 개발환경에서 Preview 기능만 쓰고 싶은 경우