Docker Swarm+ Monitoring + APM Autoscailing

image.png

image.png

image.png

[준비]

앤서블을 통해 오픈스택과 도커 등등을 플레이북으로 실행하면서 각 서버를 세팅하였고 멱등성을 확보하였다.

[웹 서비스 구성] (주 활동)

Docker Swarm 을 이용하여 컨테이너 클러스터를 구성하고 웹 컨테이너 서비스를 운영한다.

앞단에 L7 LB인 HAProxy를 두어 트래픽을 분산한다.

CloudFlare Tunnel을 통해 domain을 사용하여 외부에서 접속할 수 있게 구성하였고

CloudFlare → 보안 서버 → HAProxy → Docker swarm 컨테이너 순으로 접속이 가능하다.

[모니터링] ( 주 활동)

이를 node-exporter와 cadvisor을 통하여 메트릭을 수집하고

프로메테우스에 저장하고 그라파나에 시각화한다.

Alertmanager을 통해 설정한 rule에 도달 시 Discord에 알람을 보낸다.

[오픈스택]

kolla-ansible을 통해 오픈스택을 구성하였고

앤서블 플레이북을 통해 알람 수신 시 자동으로 VM이 생성되며 클러스터에 편입된다.

[보안]

1관문 부터 4관문의 보안을 통과한 후 각 관문마다 수집한 로그를 모아 ELK 스택으로 표현한다.