brunch

SWS: AWS ALB와 EC2 구축과 배포를 한번에

by Steve Web Service


나는 개발일을 시작하면서 수 많은 개발자들을 만났다.


개발일을 하면서 나는 클라우드에 인스턴스를 구축하고 배포하는 과정에 대해 자연스럽게 배우게 되었고 누구나 그렇게 시작하게 될 것 이라고 생각했었다.


왜냐하면 결국 서비스를 출시하고 API 서버 또는 클라이언트 개발 어느 것을 하든 배포는 해야하기 때문에 그 과정은 연차를 쌓으면서 배우게 된다고 생각했기 때문이다.


그러나 나와 비슷한 주니어 또는 시니어임에도 어려움을 겪는다는 것을 알게되었고 나는 이 어려움을 해결해줄 수 있는 방법이 있을까 생각했고 그래서 만든 것이 EC2 DMS이다.


아이디어는 아래의 이미지와 같이 생각했다.

예를들어 Java jar build 프로젝트를 Private EC2에 배포하고 싶다고 가정해보자, 위 그림을 보면 SWS EC2 DMS 기능을 통해서 jar build 파일을 Bastion EC2에 업로드하고 또 이어서 Bastion EC2에서 파일을 Private EC2에 전달하고 build Stack에 따라 환경 구성을 Private EC2에 구성한 다음 프로젝트를 실행하고 해당 인스턴스를 ALB 타겟 그룹에 연결하는 과정을 진행하는 것이다.


근데 여기서 끝이 아니다. Bastion EC2, Private EC2를 위한 Security Group 그리고 위 사진의 Public ALB에 대한 Security Group까지 구성해야한다.


이 과정에서 배워야할 AWS Cloud의 개념들은 너무나 많고 머리가 아프지만 SteveWebService Console을 이용하면 최소한의 입력으로 자신의 AWS Cloud 환경에 위 아키텍처 대로 구축되도록 만들었다


과정은 아래와 같다.


먼저 AWS VPC Turn Key(SWS Project)를 생성한다. AWS VPC Turn Key(SWS Project)를 생성하면 아래와 같은 구조로 Security Group이 생성된다. (생성되는 리소스는 여러가지가 있지만 현재 이 시나리오에서 중요한 것은 Security Group이기 때문에 그 이미지만 공유했다.)

위 구조 대로 생성되면 이제 더 이상 사용자는 Security Group 설계를 하지 않아도 된다. 쉽지 않은가?


SWS Page 확인하러 가기

SWS AWS VPC Turn Key 기능 보러가기


이제 그 다음 EC2 DMS를 통해서 아래 이미지와 같이 최소한의 입력과 선택만하면 된다. 아래 이미지를 참고해보면,

아까 생성한 SWS Project를 먼저 선택하고 Project Name을 입력한다. 그 다음 Stack을 선택하고 Java 프로젝트의 jar 빌드 파일을 업로드하고 커스텀 포트 번호인 경우는 포트 번호를 변경하여 입력하여 Create Project만 클릭하면된다.


이렇게 하게되면 Bastion EC2와 Private EC2, 인스턴스에 연결할 새로운 ALB와 Private EC2에 연결한 타겟그룹이 처음 공유한 이미지 구조와 같이 10분만에 생성되게된다.


SWS Page 확인하러 가기

SWS AWS EC2 DMS 기능 보러가기


쉽지 않은가?


우리는 만드는 것에서 그치지 않고 해당 인스턴스를 관리도 할 수 있도록 아래 이미지와 같이 인스턴스 사이즈 변경 Bastion EC2의 IP 관리 및 Route 53에서 구매한 도메인을 SSL Certificate를 발급 받고 ALB에 연결할 수 있도록하는 등 여러가지 기능까지 구현했다.


위 이미지를 보면 6번과 같이 Route53으로 구매한 도메인을 선택하고 Create SSL Certificate 버튼을 누르면 해당 도메인의 SSL Certificate 설정이 완료된다.


그 다음 9번의 Sub Domain 명만 사용자에게 입력받아서 Connect Domain 버튼을 누르면 https:// 로 해당 서브도메인으로 Route53에 연결까지 완료가된다.


너무 쉽지 않은가? 사용자는 AWS Cloud에 대한 지식이 없어도 클라우드에 프로젝트를 배포하고 사용자한테 내보내기까지 할 수 있다.


SWS Page 확인하러 가기

SWS AWS EC2 DMS 사용 방법 보러가기


우리는 계속 사용자가 AWS Cloud에 대한 학습 없이도 클라우드 아키텍처를 구축할 수 있게 도와주는 툴을 만들어 개발자가 비즈니스에 조금 더 집중할 수 있도록 도와주고 나아가 적은 인원의 개발자로도 최대한의 AWS 리소스들을 사용할 수 있도록 가치를 제공할 것이다.


다음 기사는 한가지 ALB에 여러 인스턴스를 연결하고 path에 따라 라우팅하는 문제를 해결한 내용 대한 히스토리를 쓰려고 한다. 끝


SWS Page 확인하러 가기




keyword
작가의 이전글SWS: AWS ALB에 여러개의 서버를 배포하는법