[Linux] Docker Swarm으로 마이크로서비스 구축하기

2025. 2. 12. 23:15·Linux

안녕하세요! 오늘은 Docker Swarm을 사용하여 마이크로서비스 아키텍처를 구축하는 방법에 대해 알아보겠습니다. Docker Swarm은 여러 Docker 호스트를 클러스터로 구성하여 컨테이너를 쉽게 관리할 수 있게 해주는 도구입니다.

1. Docker 설치 및 Swarm 초기화

먼저, 마스터 서버에 Docker를 설치하고 Swarm을 초기화합니다.

#!/bin/bash
dnf install -y docker
systemctl enable --now docker

# Swarm 초기화
docker swarm init --advertise-addr 10.0.1.228

Swarm을 초기화하면 워커 노드를 추가할 수 있는 명령어가 출력됩니다. 이 명령어를 복사해두세요.

2. 워커 노드 추가

워커 노드로 사용할 서버에 접속하여 복사한 명령어를 실행합니다.

docker swarm join --token SWMTKN-1-4uu7ft977083s6zxn6j939lpqv7upypv2sdlm93efdb9vj7yji-6cdxe8dyfr0a7bxsduwwtr3nd 10.0.3.180:2377

3. 노드 상태 확인

마스터 노드에서 다음 명령어를 실행하여 노드 상태를 확인합니다.

docker node ls

4. 마스터 노드 설정

마스터 노드에 컨테이너를 생성하지 않도록 설정합니다.

docker node update --availability pause <Node ID>

5. 오버레이 네트워크 생성

노드 간 컨테이너 통신을 위한 오버레이 네트워크를 생성합니다.

docker network create --driver overlay network

6. 서비스 배포

ECR 이미지를 사용하여 서비스를 배포합니다. DNS 설정과 레지스트리 인증을 위한 옵션을 추가합니다.

docker service create --with-registry-auth --dns 8.8.8.8 --network network -p 8080:8080 --replicas=3 --name getuser 950274644703.dkr.ecr.ap-northeast-2.amazonaws.com/get-user:latest
docker service create --with-registry-auth --dns 8.8.8.8 --network network -p 8081:8080 --replicas=3 --name managed 950274644703.dkr.ecr.ap-northeast-2.amazonaws.com/managed:latest
docker service create --with-registry-auth --dns 8.8.8.8 --network network -p 8082:8080 --replicas=3 --name servercheck 950274644703.dkr.ecr.ap-northeast-2.amazonaws.com/servercheck:latest

마무리

이렇게 하면 Docker Swarm을 사용하여 마이크로서비스 아키텍처를 구축할 수 있습니다. 각 서비스는 3개의 레플리카로 실행되며, 오버레이 네트워크를 통해 서로 통신할 수 있습니다. 또한, 각 서비스는 서로 다른 포트로 외부에 노출되어 있어 쉽게 접근할 수 있습니다.

Docker Swarm을 사용하면 서비스의 확장성과 가용성을 쉽게 관리할 수 있으며, 롤링 업데이트 등의 기능도 활용할 수 있습니다. 이를 통해 효율적이고 안정적인 마이크로서비스 운영이 가능해집니다.

저작자표시 비영리 변경금지 (새창열림)

'Linux' 카테고리의 다른 글

[Linux] SSH 인증 방식(Google OTP, Password)  (1) 2025.01.18
[Linux] Nginx Reverse Proxy를 구성해보자  (7) 2024.10.21
'Linux' 카테고리의 다른 글
  • [Linux] SSH 인증 방식(Google OTP, Password)
  • [Linux] Nginx Reverse Proxy를 구성해보자
dml113
dml113
dml113의 AWS 이야기
  • dml113
    Cloud
    dml113
  • 전체
    오늘
    어제
    • 분류 전체보기 (34)
      • Project (0)
      • Kubernetes (17)
        • CNCF (12)
        • TroubleShooting (1)
      • AWS Service (9)
      • Linux (3)
      • Github (2)
      • Production Traffic (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dml113
[Linux] Docker Swarm으로 마이크로서비스 구축하기
상단으로

티스토리툴바