2. 스웜을 이용한 실전 어플리케이션 개발

1절에서 배운 내용들을 기반으로 스웜을 적용시켜 실전 어플리케이션을 만들어 보겠습니다.

이미지

서비스명

스택명

MySQL

데이터 저장

mysql_master, mysql_slave

MySQL

API

데이터스토어를 다룰 API 서버

app_api

Application

Web

뷰 생성을 담당하는 어플리케이션 서버

frontend_web

Frontend

Nginx

프록시 서버

app_nginx, frontend_nginx

Application Frontend

MySQL

마스터-슬레이브 구조로 구성하는 데이터 베이스로 사용합니다. INSERT, UPDATE, DELETE 쿼리는 마스터 DB에 전달되며 SELECT쿼리는 슬레이브DB로부터 읽어오게 해 역할을 완전히 분리합니다.

API

TODO 앱에서 각 엔트리에 대한 기본적인 조작을 제공하는 RESTful API 입니다. INSERT, UPDATE, DELETE 쿼리는 마스터 DB에 전달되며 SELECT쿼리는 슬레이브DB에서 수행됩니다.

Web

Web 서비스는 브라우저에 나타낼 웹페이지를 렌더링 하는 역할을 합니다 이는 Node.js를 이용해 구축합니다. 직접 MySQL에 접속하지 않고 API 콜을 통해 사용합니다.

Nginx

어플리케이션 프론트엔드 서버 및 API 앞단에 리버스 프록시 역할을 합니다. 캐싱, 백엔드에 대한 유연한 라우팅, 접근 로그 생성등의 역할도 겸합니다.

스웜 환경은 3.1절에서 만든 3개의 worker를 사용해 구축할 예정입니다. 다음 명령으로 워커들 및 매니저가 동작중인지 확인합니다.

docker container exec -it manager docker node ls

그 다음으로는 공통 네트워크를 사용하기 위에 overlay 네트워크를 맞춰 주어야 합니다. overlay 네트워크 이름은 todoapp으로 설정하겠습니다.

docker container exec -it manager docker network create --driver=overlay --attachable todoapp

Last updated