문제점
대시보드의 PC앱을 AWS S3 버킷으로 배포를 하고 있는데 다운로드 주소가 아래와 같이 하드코딩 되어 있어서 PC앱 업데이트를 통한 버전이 올라갈때마다 다운로드 주소를 최신버전에 맞게 바꿔서 배포해야하는 번거로움과 S3 주소가 그대로 노출되어서 없어보임(?)
https://s3.ap-northeast-2.amazonaws.com/wanted-dashboard/WantedDashboard+Setup+1.0.36.exe
해결책
다운로드 주소를 고정된(있어보이는) 주소download.wanted.co.kr/dashboard/app/win
로 변경하고 해당 요청을 항상 최신 버전의 파일을 반환하도록 변경.
고려사항
- 고정된 주소를 통한 클라이언트의 요청을 받아서 S3로 redirect 시켜줄 서버가 필요함.
- 실서버를 활용해도 되지만 이것을 위한 endpoint를 열기보다 Api Gateway + lambda를 활용해 보기로 결정하고 Zappa 프레임워크를 통해 구현.
- 항상 최신파일을 제공하기 위해서는 최신파일이 무엇인지 판단할 수 있어야 함.
- PC앱을 빌드하는 과정에서 생성되는 latest.yml 파일에서 아래와 같은 정보가 생성됨을 활용해서
path에 있는 파일명을 활용하여 S3 버킷으로 redirect를 하도록 변경
version: 1.0.37 releaseDate: '2017-09-14T03:35:25.940Z' path: WantedDashboard Setup 1.0.37.exe sha512: >- g3gfxmXlcsPUF28Sg+xfE05nVGgUDUrdW5Vev4Q5JMRZDvoTxsuuLAH9Q4EQTFnj5PLr0txtLEVPugbBTgAWAA== githubArtifactName: wanted-dashboard-app-setup-1.0.37.exe sha2: 7ec01eaf4014c6aa7c8fb914787cbc255c32ea5759402c780f3213281f92653b
- PC앱을 빌드하는 과정에서 생성되는 latest.yml 파일에서 아래와 같은 정보가 생성됨을 활용해서
path에 있는 파일명을 활용하여 S3 버킷으로 redirect를 하도록 변경
시행착오
Zappa를 활용해서 배포를 하면 API Gateway 와 lambda가 동시에 배포되고, 스테이지별(예: dev, production 등…)
배포가 가능한데 API Gateway에서 사용자 지정 도메인 이름(download.wanted.co.kr)을 설정할때 대상을 스테이지별로 지정할 수 있어서
path별 분류/dashboard
를 안해도 된다는걸 이번에 알게됨.