- 로컬 환경에서 개발한 서비스가 이제 많은 사용자들에게 공개될 때가 왔다.
- 그렇다면, 어떻게 사용자들이 우리의 서비스를 원활히 이용하도록 잘 배포할 수 있을까?
- 크게 클라이언트 앱, 서버, 데이터베이스를 어떻게 사용자에게 제공할지 고민이 필요하다.
- 클라이언트 앱을 통해서 사용자는 배포한 서비스를 이용할 수 있다. 사용자가 요청한 정보나 데이터가 클라이언트 앱을 통해서 화면에 그려진다.
- 만약 클라이언트를 배포하고자 한다면, AWS에서 제공하는 S3 서비스를 이용할 수 있다. (Netlify, Vercel같은 선택지도 있다.)
- 클라이언트 배포에 EC2를 사용하는 것은 어떠할까?
🫓 클라이언트 앱은 정적 파일로 빌드하여 배포해야 하기에 EC2는 적합하지 않다. S3를 이용하도록 하자.- 클라이언트 앱(정적)은 불필요한 데이터를 없애고 데이터를 통합하고 압축하여 배포하기에 적합하게 최적화 하는 작업인 빌드가 필요하다.
- 빌드를 통해서 용량을 줄이고 속도를 빠르게 하여 사용자의 경험을 극대화한다.
- 또한 빌드를 통해서 html, js, css를 배포가능한 정적인 파일로 변환한다. (소스 코드를 실행이 가능한 번들로 변환한다.)
🥪 사용 환경에 따라서 빌드하는 과정은 다를 수 있다.
🥯 AWS CloudFront는 데이터를 전세계 각지의 AWS 데이터 센터에 저장한 뒤, 사용자가 배포된 서비스를 요청하면 해당 데이터를 가지는 가장 가까운 지역의 데이터 센터에서 해당 사용자에게 데이터를 제공한다.
- 사용자들이 클라이언트 앱을 통해 데이터를 요청하면, 서버는 이에 적절한 응답을 해줘 클라이언트 앱에 요청한 데이터를 전달해야 한다.
- 또한, 데이터가 저장된 데이터 베이스가 서버와 연결되어 정보를 적절히 받아올 수 있어야 한다.
- 서버를 배포하기 위한 가장 보편화된 선택지는 AWS EC2이다.
- EC2를 통해서 손쉽게 서버를 구성하고, 가상의 PC인 EC2를 빌려서 안정적으로 서버 코드가 구동하도록 한다.
🌮 서버는 언제든지 사용자의 요청에 응답할 수 있도록 항상 켜져있어야 하기 때문이다.- AWS에서 EC2를 사용하여 서버를 서비스하고 있다면, RDS를 사용하여 데이터베이스를 배포하는 것이 좋다.
🍕 RDS는 AWS에서 제공하는 관계형 데이터베이스 특화 서비스이다.
🥓 RDS를 이용하여 EC2로 배포된 서버의 데이터를 저장하고 제공하는 데이터베이스를 배포할 수 있다.- RDS는 AWS가 데이터베이스의 유지보수를 담당해주기에 편리하게 즉시 데이터베이스를 사용할 수 있다.