인터넷(클라우드)을 통해 서버, 스토리지, 데이터베이스 등의 컴퓨팅 서비스를 제공하는 서비스
우리는 물리적인 서버실을 통해서 서비스를 제공해 왔다.(온프레미스)
컴퓨팅 능력을 향상시키기 위해서는, 서버실의 컴퓨터의 갯수를 늘리거나 하나의 컴퓨터의 성능을 업그레이드해야 하는데 공간의 한계와 주기적인 유지 관리가 필요하다는 한계점이 있다.
✔️ 온프레미스란 기업의 서버를 클라우드 같은 원격 환경에서 운영하는 방식이 아닌, 자체적으로 보유한 전산실 서버에 직접 설치해 운영하는 방식이다.
클라우드 컴퓨팅 기술이 나오기 전까지 기업 인프라 구축의 일반적인 방식이었다.
물리적인 서버실을 계속해서 확장/증설하는 것이 어렵게 되자, 거대 기업(벤더)이 데이터 센터를 만들어 서버의 자원과 공간, 및 네트워크 환경을 대여해주기 시작했다.
✔️ 클라우드의 단점
✔️ 벤더(클라우드 빅3)
사용자가 서비스를 사용할 수 있도록 해주는 과정
보통 4단계로 구성된다.
Development
각자 로컬 환경에서 개발하는 단계
실제 데이터가 아닌 더미 데이터를 사용해서 테스트를 진행한다.
Integration
각각 로컬에서 개발한 코드를 합치는 단계
코드 간 충돌이 발생하지 않는지 확인한다.
Staging
실제 출시 단계인 Production과 유사한 환경에서 테스트를 진행한다.
출시 전에 마지막으로 여러 환경에서 문제가 발생하진 않는지 확인한다.
Production
서비스를 출시하는 단계
각자 로컬 환경에서 개발을 진행하다가, 하나의 서비스로 합치는 과정에서 여러 문제가 발생한다. Spring의 버전이 각 로컬마다 다를 수도 있고, 데이터베이스 비밀번호가 다를 수도 있기 때문이다.
즉, 이러한 환경 설정들을 환경 변수로 설정하여, 코드와 분리해야 한다.
(어떠한 환경에서도 코드를 실행할 수 있도록)
아마존 웹 서비스(AWS)에서 제공하는 클라우드 컴퓨팅 서비스
= 아마존에서 가상의 컴퓨터를 한 대 빌리는 서비스
소프트웨어 구성이 기재된 템플릿
Relational Database Service
AWS에서 제공하는 관계형 데이터베이스 서비스
✔️ 왜 RDS를 사용하나요?
굳이 RDS를 사용하지 않아도, EC2 인스턴스에 따로 MySQL 같은 관계형 데이터베이스를 설치하면 된다.
하지만 RDS를 사용하면 데이터베이스에 대한 작업(설치, 버전 관리, 백업 등)을 AWS에서 해주기 때문에 매우 편리하다.
Simple Storage Service
AWS에서 제공하는 클라우드 스토리지 서비스
인터넷 공간에 데이터를 저장하는 저장소
우리가 자주 쓰는 구글 드라이브, 네이버 MYBOX, 마이크로소프트의 Onedrive가 있다.
클라우드 스토리지를 통해서 언제 어디서나 저장소에 접근하여 데이터를 가져올 수 있다.
지금까지는 로컬 환경에서 클라이언트, 서버, 데이터베이스를 실행했었다.
하지만 다른 사람들에게도 이 서비스를 제공하고 싶다면 어떻게 해야할까?
=> 클라이언트, 서버, 데이터베이스를 배포해야 한다!
✔️ 빌드란?
불필요한 데이터를 없애고, 데이터들을 통합/압축해서 배포하기에 최적화된 상태로 만드는 과정
데이터 용량이 줄고, 웹 사이트 로딩 속도가 빨라진다.
웹 앱은 빌드를 통해서 정적 파일로 만들어 배포를 해야한다.
1. 클라이언트 배포 => AWS의 S3 사용
클라이언트 앱을 정적 파일로 빌드해서 S3을 통해서 배포한다.
2. 서버 배포 => AWS의 EC2 사용
또한, AWS Route 53 서비스를 사용하면 도메인 주소를 직관적으로 설정할 수 있다.
3. 데이터베이스 배포 => AWS의 RDS 사용
java -jar 파일명.jar
build/libs/
에 존재한다.EC2 인스턴스로 들어가고 나가는 트래픽에 대한 가상 방화벽
EC2 인스턴스에 들어오고, 나가는 네트워크를 관리한다.