본문 바로가기

공부/Spring

스프링 부트 3 백엔드 개발자 되기_28

aws란?
다른 PC에서도 이 서비스에 접속하려면 실제 서버에 스프링 부트 서버를 올려 실행해야 함
이런 행위를 실무에서는 배포라고 하는데 배포는 서버용 PC를 구매해서 배포하는 방법과 AWS같은 클라우드 컴퓨팅 서비스를 이용해 배포하는 방법이 있다.


우리가 사용할 aws 서비스
EC2 : AWS에서 제공하는 원격 서버
오토 스케일링 그룹
타깃 그룹
로드 밸런서
RDS:AWS에서 제공하는 원격 데이터베이스

가상의 PC또는 서버 EC2
:EC2는 AWS에서 제공하는 클라우드 컴퓨팅 서비스로 가상의 PC 즉, 서버 한대를 임대하는 서비스

유동적으로 EC2를 관리해주는 오토 스케일링 그룹
:그런데 책에 참고 그림은 EC2가 3개임 왜그럴까? => 서비스 이용률이 높아지면 서버 한대로는 처리가 어려워서 여러개의 EC2가 필요 
하지만 늘 여러 대가 대기할 수는 없다, 그럴 때 필요한 서비스가 오토 스케일링 그룹이고 이 서비스는 사용자의 요청 횟수에 따라 EC2를 늘리거나 줄임

로드 밸런서 : 요청들이 한 경로로 들어오면 곤란, 요청을 분산시키는 역할
또한 로드 밸런서를 만들 때는 요청을 어디로 분산시킬지 그룹을 정해야 함. 이런 그룹을 대상 그룹이라고 함

데이터 저장소 RDS: 데이터를 저장할 저장소가 필요, 다시말해 데이터베이스도 클라우드에 올려야 함
AWS에서 제공하는 클라우드 데이터베이스 서비스는 RDS, Redshift, DocumentDB, ElastiCache등이 있다


설정이 간편한 일래스틱 빈스토크
일래스틱 빈스토크는 앞서 언급한 서비스를 한 번에 설정하는 서비스 
일래스틱 빈스토크를 사용하면 서버 업로드용 코드만 작성해도 서버를 쉽게 올릴 수 있고 그 외의 기능들, 즉 로드 밸런싱,오토 스케일링, 모니터링, 배포 등을 일래스틱 빈스토크 메뉴안에 직접 구성하거나
설정 파일로 자동 처리할 수 있다.
일래스틱 빈스토크는 추가 비용 없이 애플리케이션을 저장 및 실행하는 데 필요한 AWS 리소스에 대해서만 요금을 지불하면 됨

일래스틱 빈토크 사용 과정
1.애플리케이션을 생성
2.애플리케이션의 소스를 번들의 형태, 예를 들어 Java.war 파일로 애플리케이션 버전을 일래스틱 빈스토크에 업로드
3.일래스틱 빈스토크가 자동으로 환경 실행하고 코드 실행에 필요한 AWS 리소스를 생성하고 구성
4.환경 실행 후 환경을 직접 관리하고 필요한 경우 버전 업데이트하거나 새로운 앱 버전 배포 가능 

 

 

 

요약
1.애플리케이션 배포는 물리적 서버와 클라우드 서버에 할 수 있다
물리적 서버는 서버 관리를 직접할 수 있기 때문에 보안적으로 유리하지만 서버가 크면 따로 서버실을 만들어야 할 정도로 공간의 제약을 받고 만약 서비스의 리소스가 부족할 경우
직접 서버를 추가 구매해야 하기 때문에 많은 시간이 소요될 수 있다.
클라우드서버는 가상의 공간에서 서버를 제공받기 때문에 공간의 제약이 없고 서버를 추가하거나 줄이고 싶을 때 원하는 만큼 바로 조절 가능
그러나 클라우드 서비스 자체에 문제가 생기면 대처가 어렵다

2.AWS는 이러한 클라우드 서비스의 대표적인 업체로 많은 클라우드 서비스를 제공
AWS에서는 많은 서비스를 제공하는데 대표적인 서비스로는 AWS에서 제공하는 가상 서버를 띄우는 EC2, 클라우드 데이터베이스 서버인 RDS, 파일 저장소인 S3등이 있다
3.일래스틱 빈스토크는 최소한의 설정으로 서버를 구성할 수 있게 돕는다 
일래스틱 빈스토크를 사용하면 코드를 업로드해 서버를 올릴 수 있고 그 외에 로드 밸런싱, 오토 스케일링, 모니터링, 배포 같은 것들을 일래스틱 빈스토크 메뉴 안에 직접 구성하거나 설정 파일을 이용해 자동으로 처리하도록
구성 가능