[AWS]Deploy Strategy
지금까지 로컬 환경에서 클라이언트와 서버, 데이터베이스를 띄워서 작성한 코드를 구동하고 확인
Client를 어떻게 제공할지 Server를 어떻게 제공할지 Database는 어떻게 제공할지
Client 배포
S3를 통해 사용자들에게 Client 제공
로컬 환경에서는 자체 개발 서버 (예, create-react-app)로 클라이언트 앱을 실행시키는 것이 보통
클라이언트 앱을 정적 파일로 빌드하여 제공. 따라서 S3를 이용해서 클라이언트 배포
빌드 - 불필요한 데이터를 없애고, 여러 갈래로 퍼져있는 데이터들을 통합/ 압축하여 배포하기에 최적화된 상태를 만드는 것, 데이터의 용량이 줄어들고, 웹 사이트의 로딩 속도가 빨라진다는 장점
일반적인 의미의 빌드는, 소스코드를 실행 가능한 번들로 변환하는 컴파일 과정 의미
웹 앱에서와같이 HTML, CSS, JS의 형태로 배포하는 경우는 다름. 웹 앱은 배포 가능한 정적 파일(static files)의 형태로 만들어 줘야 함
asset 자체가 정적인 경우, 있는 그대로 배포
React는 npm run build와 같은 명령을 사용해서, 정적 파일 형태의 결과물을 만들어 낸 후 배포
더 빠르게 파일을 받을 수 있게 하는 다른 방법
CDN 서비스인 CloudFront를 통해 각지의 데이터 센터에 데이터를 분산시켜서 저장, 가까운 지역에서 데이터를 주는 방식
Server Application 배포
Client Application을 통해서 요청을 전달할 Server Application은 어떻게 배포
EC2 서비스로 서버 구성, 서비스 제공
Database 배포
유지 보수 작업 담당 RDS를 이용, 즉시 데이터베이스 사용 가능
RDS 서비스로 EC2를 통해 배포된 Server Application의 데이터 저장, 제공하는 데이터베이스 배포 가능
DNS
S3, EC2를 이용해서 배포된 서비스는 IP 주소 혹은 AWS에서 제공하는 여러분의 서비스와는 전혀 상관없는 긴 도메인 주소를 통해 접근하게됨
Route 53 서비스로 직관적인 도메인 주소를 통해 서비에 접근 가능케 함
댓글남기기