서버 설치 · 5 min read · Sep 10, 2025
AlmaLinux 9에 Consul 서버 설치하는 방법

Consul은 DNS 및 HTTP 인터페이스를 통해 서비스를 등록할 수 있는 서비스 발견을 위한 현대적인 플랫폼입니다. 또한 TLS를 통한 안전한 연결을 가능하게 하는 서비스 메쉬 기능과 서비스 접근 관리를 위한 API 게이트웨이, 서비스 구성을 저장하기 위한 KV(키/값) 저장소를 제공합니다.
이 가이드에서는 AlmaLinux 9에서 여러 서버로 구성된 Consul 클러스터 설치를 단계별로 안내합니다.
전제 조건
이 가이드를 완료하려면 다음을 준비해야 합니다:
- 동일한 네트워크 내에 두 개 이상의 AlmaLinux 서버.
- 관리자 권한이 있는 비루트 사용자.
시스템 설정
첫 번째 단계에서는 Consul 설치를 위해 AlmaLinux 서버를 준비합니다. 여기에는 다음이 포함됩니다:
- 포트를 열기 위해 Firewalld 구성.
- SELinux를 허용 모드로 구성.
Firewalld 구성
패키지를 설치하기 전에 Consul 서버에서 포트를 열어야 합니다. RHEL 기반 운영 체제의 경우 Firewalld를 사용하여 포트를 엽니다.
아래 명령어를 실행하여 AlmaLinux 서버에서 포트 8300, 8301, 8302, 8400, 8500 및 8600을 엽니다. 성공하면 성공과 같은 출력이 표시됩니다.
sudo firewall-cmd --permanent --zone=public --add-port={8300,8301,8302,8400,8500,8600}/tcp이제 아래 명령어를 사용하여 firewalld를 다시 로드하여 적용합니다.
sudo firewall-cmd --reload마지막으로, 다음 명령어를 사용하여 firewalld 규칙을 확인합니다. 포트 8300, 8301, 8302, 8400, 8500, 8600이 firewalld에서 사용 가능한지 확인합니다.
sudo firewall-cmd --zone=public --list-all
SELinux를 허용 모드로 변경
firewalld를 구성한 후 기본 SELinux 모드를 허용 모드로 변경합니다. 이렇게 하면 SELinux에서 오류 로그가 생성되지만 작업이 차단되지 않습니다.
SELinux 모드를 허용으로 변경하려면 다음 명령어를 실행합니다.
sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config그런 다음 서버를 재부팅하여 적용합니다.
sudo reboot모든 AlmaLinux 서버를 구성했으므로 Consul 설치를 시작할 수 있습니다.
DNF를 통한 Consul 설치
Consul은 여러 운영 체제를 지원하는 서비스 네트워킹 플랫폼입니다. 또한 Consul은 RHEL 기반 배포판을 포함한 Linux 배포판을 위한 패키지 저장소를 제공합니다. 이 단계에서는 DNF를 통해 Consul 저장소에서 Consul을 설치합니다.
시작하려면 아래 명령어를 실행하여 몇 가지 기본 패키지를 설치합니다. 설치를 진행하려면 y를 입력합니다.
sudo dnf install dnf-plugins-core nano
이제 아래 DNF 명령어를 실행하여 Alma Linux 서버에 Consul 저장소를 추가합니다. 그런 다음 각 서버에서 사용 가능한 저장소 목록을 확인합니다.
sudo dnf config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
sudo dnf repolist다음 출력은 HashiCorp 저장소가 시스템에 추가되었음을 증명합니다.

다음으로, 아래 명령어를 실행하여 Consul을 설치합니다. Consul 설치를 진행하려면 y를 입력합니다.
sudo dnf install consul
설치가 완료되면 다음 명령어를 실행하여 consul 바이너리 파일을 찾고 버전을 확인합니다.
which consul
consul version아래 출력은 Consul 바이너리 파일이 /bin/consul에 있으며 현재 Consul 버전이 1.17임을 확인합니다.
Consul 구성
이 시점에서 모든 AlmaLinux 서버에 Consul을 설치했습니다. 이제 추가적인 지체 없이 여러 서버로 구성된 Consul 클러스터를 구성하기 시작하겠습니다. 예를 들어, 세 개의 AlmaLinux 서버를 사용할 것입니다.
| 호스트 이름 | IP 주소 |
| --------- | -------------- |
| consul1 | 192.168.10.41 |
| consul2 | 192.168.10.42 |
| consul3 | 192.168.10.43 |먼저, 아래 명령어를 실행하여 모든 서버에서 consul 서비스를 중지합니다.
sudo systemctl stop consulconsul1 서버로 이동하여 아래 명령어를 실행하여 Consul 클러스터를 위한 새 키를 생성합니다. 생성된 키를 반드시 보관하세요.
consul keygen모든 Consul 서버에서 기본 Consul 구성 /etc/consul.d/consul.hcl을 아래 nano 편집기 명령어를 사용하여 엽니다.
sudo nano /etc/consul.d/consul.hcl기본 구성을 다음과 같이 변경하고 아래의 몇 가지 매개변수에 유의하십시오:
- server: True는 노드가 Consul 서버로 작동함을 의미합니다.
- advertise_addr: Consul 서버의 해당 IP 주소로 변경합니다.
- bootstrap_expect: 클러스터에 몇 개의 서버가 있을 것인지입니다.
- encrypt: 모든 서버는 동일한 키를 가져야 합니다.
- retry_join: 이 매개변수에 Consul 클러스터 IP 주소를 입력합니다.
# 전체 구성 옵션은 https://www.consul.io/docs/agent/config에서 확인할 수 있습니다.
# 데이터 센터
datacenter = "kitty-dc1"
# 데이터 디렉토리
# 이 플래그는 에이전트가 상태를 저장할 데이터 디렉토리를 제공합니다.
data_dir = "/opt/consul"
# 클라이언트 주소
# Consul이 HTTP 및 DNS 서버를 포함한 클라이언트 인터페이스에 바인딩할 주소입니다.
client_addr = "0.0.0.0"
# UI
# 내장 웹 UI 서버와 필요한 HTTP 경로를 활성화합니다.
ui_config{
enabled = true
}
# 기본 도메인
domain = "consul"
# dns_config 활성화
dns_config{
enable_truncate = true
only_passing = true
}
# 서버
# 이 플래그는 에이전트가 서버 모드인지 클라이언트 모드인지 제어하는 데 사용됩니다. 제공되면,
# 에이전트는 Consul 서버로 작동합니다. 각 Consul 클러스터는 최소한 하나의
# 서버를 가져야 하며 이상적으로는 데이터 센터당 5개를 초과하지 않아야 합니다. 모든 서버는 Raft
# 합의 알고리즘에 참여하여 트랜잭션이 일관되고 선형적으로 발생하도록 보장합니다. 트랜잭션은 클러스터 상태를 수정하며, 이는 모든 서버 노드에서 유지되어
# 노드 실패 시 가용성을 보장합니다. 서버 노드는 또한 다른 데이터 센터의 서버 노드와 함께
# WAN 유언 풀에 참여합니다. 서버는 다른 데이터 센터에 대한 게이트웨이 역할을 하며 적절하게 트래픽을 전달합니다.
server = true
# 광고 주소 - 클라이언트를 바인드 또는 LB와 다른 주소로 지정하려면.
advertise_addr = "192.168.10.41"
# bootstrap_expect
# 이 플래그는 데이터 센터에서 예상되는 서버의 수를 제공합니다.
bootstrap_expect=3
# 암호화
# Consul 네트워크 트래픽 암호화에 사용할 비밀 키를 지정합니다.
encrypt = "jFtV8jj4h1hnXGqTllWH+sOqLo/tw9xnnfDHcVxVnYg="
# retry_join
retry_join = ["192.168.10.41", "192.168.10.42", "192.168.10.43"]작업이 끝나면 파일을 저장하고 종료합니다.
다음으로, 아래 명령어를 실행하여 Consul 구성을 확인합니다. 올바른 구문이 있으면 ‘구성이 유효합니다‘와 같은 출력이 표시됩니다.
sudo consul validate /etc/consul.d/
이제 아래 명령어를 실행하여 consul 서비스를 시작하고 활성화합니다.
sudo systemctl start consul
sudo systemctl enable consul그런 다음 다음 명령어를 사용하여 Consul이 실행 중인지 확인합니다.
sudo systemctl status consul다음 출력에서 Consul이 consul1 서버에서 실행 중임을 확인할 수 있습니다.

다음 출력에서 Consul이 consul2 서버에서 실행 중임을 확인할 수 있습니다.

다음 출력에서 Consul이 consul3 서버에서 실행 중임을 확인할 수 있습니다.

Consul 클러스터와 상호작용
이제 AlmaLinux 서버에서 Consul 클러스터를 구성했으므로 consul 명령줄을 통해 Consul 클러스터를 확인하고 상호작용할 수 있습니다.
Consul 클러스터 확인
아래 명령어를 실행하여 클러스터 내에서 사용 가능한 Consul 서버를 확인합니다.
consul members이 예에서 Consul 클러스터는 세 개의 서버(consul1, consul2 및 consul3)로 구성됩니다.
아래 명령어를 사용하여 클러스터의 피어 목록을 확인할 수도 있습니다.
consul operator raft list-peers아래에서 각 Consul 서버에 대한 ID, 상태, 투표자 및 RaftProtocol 버전을 포함한 자세한 정보를 확인할 수 있습니다.
Consul에 KV(키-값) 저장소 추가
다음으로, 아래 Consul 명령어를 실행하여 새로운 키-값 데이터베이스를 생성합니다. 이 예에서는 db_name이라는 새 키를 testdb 값으로 생성합니다.
consul kv put consul/configuration/db_name testdb이제 아래 명령어를 실행하여 db_name의 값을 검색합니다.
consul kv get consul/configuration/db_name다음과 같이 testdb 값을 얻어야 합니다:

Consul에서 DNS와 상호작용
이 가이드에서는 Consul DNS를 활성화했습니다. Consul DNS 구성을 확인하려면 아래 dig 명령어를 사용합니다.
dig @127.0.0.1 -p 8600 consul.service.consul이 예에서는 클러스터 내의 Consul 서버를 동일한 도메인 이름(consul)으로 구성했습니다. 다음은 A 레코드 192.168.10.41, 192.168.10.42, 192.168.10.43를 가진 도메인 consul.service.consul을 확인합니다.

Consul 웹 UI(사용자 인터페이스) 접근
마지막으로 웹 브라우저를 열고 Consul 서버 IP 주소와 포트 8500(예: http://192.168.10.41:8500/ui/)을 방문하여 Consul 웹 관리 대시보드에 접근합니다.
아래에서 Consul 클러스터의 사용 가능한 서버를 확인할 수 있습니다.

이제 노드 메뉴를 클릭하여 각 서버에 대한 자세한 정보를 확인합니다.

그런 다음 키/값 메뉴를 클릭하여 Consul 서버에서 사용 가능한 KV 목록을 확인합니다.

결론
마무리하자면, 세 개의 AlmaLinux 서버로 구성된 Consul 클러스터의 단계별 설치를 완료했습니다. 클러스터 내에서 Consul 웹 UI와 Consul DNS를 활성화했습니다. 마지막으로 Consul 클러스터, 키-값 저장소 및 DNS와 상호작용하기 위한 몇 가지 기본 명령어를 배웠습니다.
이제 ACL(액세스 제어 목록)을 활성화하고 Consul 서버와 클라이언트 간의 연결을 위한 TLS를 구현할 수 있습니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.