Consul 서비스 메시(Connect)로 워크로드 연결하기
Consul 서비스 메시(Connect)로 워크로드 연결하기
서비스가 많아지면 '서비스가 서로 통신할 때 어떻게 신뢰하고, 어떻게 보호할까?'가 핵심 고민이 돼요. Consul의 서비스 메시는 이런 질문에 답하기 위해 양방향 TLS(mTLS) 암호화와 서비스 간 명시적 인가를 사이드카 프록시가 강제하도록 만든 기능이에요. 이번에는 Consul 서비스 메시의 구성 요소와 Envoy 프록시의 역할을 살펴볼게요.
Consul 서버 에이전트에서는 서비스 메시가 기본적으로 활성화되어 있어요.
출처: Connect workloads to Consul service mesh - HashiCorp Developer
본문
워크로드와 같은 노드에서 실행되는 Consul 인스턴스의 서비스 디스커버리 기능에 더해, Consul을 사용해 Envoy 사이드카 프록시를 배포하면 각 서비스와 나머지 네트워크 사이의 트래픽을 제어할 수 있어요. Consul에는 내장 인증 기관(certificate authority)이 포함되어 있어서, 사이드카 프록시 사이에 mTLS 암호화를 강제할 수 있죠. 여기에 Consul 구성 항목(configuration entry)을 더하면 서비스 간 통신을 더욱 안전하게 보호하고 모니터링할 수 있어요.
서비스 메시 구성
Consul 서버 에이전트의 connect 블록에는 CA 제공자(provider)와 노드의 위치(locality) 정보에 대한 구성이 담겨요. 서비스 메시를 끄고 다시 켜는 방법은 enable service mesh 문서를 참고하면 돼요.
Envoy 프록시
Consul은 서비스 메시 동작을 관리하기 위해 Envoy 프록시에 대한 내장 지원을 제공해요. 개별 프록시의 동작을 구성하거나, 서비스 아이덴티티(identity)에 따라 프록시의 기본 동작을 구성할 수 있어요. 프록시와 서비스 메시에서의 특수 동작에 대한 자세한 내용은 서비스 메시 프록시 개요를 참고하세요.
런타임별 가이드
실행 환경에 맞춘 안내도 준비되어 있어요.
- VM에서 워크로드를 서비스 메시에 연결하기
- Kubernetes에서 워크로드를 서비스 메시에 연결하기
- ECS에서 워크로드를 서비스 메시에 연결하기
- Consul 서비스 메시를 AWS Lambda에 연결하기
- Nomad에서 워크로드를 서비스 메시에 연결하기
디버그와 트러블슈팅
워크로드를 Consul 서비스 메시에 연결할 때 오류가 발생하면 다음 자료를 참고해요.
- Consul 서비스 메시 트러블슈팅 개요
- Consul 서비스 메시 디버그
- 서비스 간 통신 트러블슈팅
더 알아보기
- 서비스 메시 활성화(enable) 문서 — 서비스 메시 끄고 켜기
- 서비스 메시 프록시 개요 — Envoy 프록시 동작 상세
- Consul 구성 항목 — 서비스 메시를 더욱 안전하게 만드는 설정
- Consul 서비스 디스커버리 개요 — 서비스 메시의 기반이 되는 디스커버리