이전 글Github Actions로 CI 구성하기 with Spring Boot 을 작성하면서, CI
를 구성해보았다. CD
에 앞서서, Spring Boot 서버로서 기능하는 인스턴스를 구성해야한다.
현재 진행하고 있는 반려동물 SNS 프로젝트는 국제화를 구현한 상태이다. 이에 따라 늘어날 수 있는 사용자들에 대해서 유연하게 스케일링 할 수 있는 클라우드 환경의 인스턴스를 이용하고자 하였고, AWS의 EC2
를 이용하기로 결정했다.
Elastic Compute Cloud(
EC2
)는 AWS 클라우드에서 on-demand인 확장 가능한 컴퓨팅 용량을 제공한다(스케일링이 가능하다는 말). EC2를 사용하면 하드웨어 비용이 절감되므로 애플리케이션을 더욱 빠르게 개발하고 배포할 수 있다.
EC2
를 사용하여 원하는 수의 가상 서버를 구축하고 보안 및 네트워킹을 구성하며 스토리지를 관리할 수 있다.용량을 추가(스케일 업)하여 월간 또는 연간 프로세스 또는 웹 사이트 트래픽 급증 등 컴퓨팅 사용량이 많은 작업을 처리할 수 있다. 사용량이 감소하면 용량을 다시 축소(스케일 다운)할 수 있다.
즉 EC2
는 AWS에서 제공하는 VM(Virtual Machine)이고, 호스팅을 제공받는 인스턴스다.
우리는 EC2
를 간편하게 구성하고, 클라우드 컴퓨터인 EC2에 서버 프로그램을 동작시키고, 서버로서 기능하게끔 할 수 있다.
이 글에서는 EC2
를 Spring Boot 이용한 서버로서 기능하게끔 구성하는 방법을 다루므로, 인스턴스 생성과 같은 자세한 설명은 생략한다.
상세한 EC2
구성은 공식문서를 참고하면 좋을 것 같다.
현재 첫 배포를 앞두고 있고, 급격한 사용은 많지 않을 것 같아서 별도로 DB 서버를 구성할 필요는 없을 것 같다고 생각했다.
이에 따라, EC2
자체에서 Docker로 해당 DB 서버를 연결하고 사용하도록 구성하고자 했다. 또, Docker를 내부에서 실행하고 WAS도 실행하는 만큼, 너무 작지는 않은 인스턴스를 사용해야겠다고 판단했고, t3.medium
을 선택했다.
t3.medium의 스펙