고장나지 않는 서버는 사용자 경험과 안정적인 서비스 유지를 위해 필수 불가결한 요소입니다. 이번 시간에는 AWS에서 Terraform Cloud와 Hashicorp를 이용해 샘플 서비스의 고가용성 (HA) 서버를 구축하는 실습을 통해 HA가 왜 중요한지 알아봅니다. 또한 GitLab의 강력한 기능인 CI/CD 파이프라인을 활용해 배포 과정을 간단하게 구현하겠습니다.
모든 과정은 워크샵에서 상세히 확인할 수 있습니다.
AWS에서 GitLab, GitLab에서 Terraform, Terraform에서 Hashicorp 순서대로 레포지토리를 연동합니다. 이 과정이 지나고 배포가 완료되면 간편하게 최신화된 서비스를 배포할 수 있게 됩니다.
자세한 과정은 워크샵 페이지의 Lab 2~3에서 확인하세요.
HA 없이 배포
먼저 HA 없이 배포를 시도합니다. 하나의 서버만으로 배포가 이루어지게 됩니다.
Gremlin 공격으로 안정성 확인하기
Gremlin에서 방금 배포한 서비스를 타겟으로 shutdown 공격을 날립니다. 서버가 꺼지게 되고 하나의 서버만으로 서비스가 유지되고 있었으므로 더 이상 서비스를 이용할 수 없게 됩니다.
자세한 과정은 워크샵 페이지의 Lab 4~5에서 확인하세요.
HA로 배포
HA 없이 배포한 서비스를 중지시키고 HA를 적용한 배포로 대체합니다. 여러 개의 EC2 서버가 이 서비스를 위해 사용됩니다.
Gremlin 공격으로 안정성 확인하기
다시 Gremlin에서 서비스를 공격해 한 개의 서버를 중지시킵니다. 하지만 이번에는 여러 개의 EC2 서버로 서비스를 유지하고 있기 때문에 한 개 서버가 중지되었음에도 서버에 이상이 전혀 없는 것처럼 서비스를 이용할 수 있습니다.
자세한 과정은 워크샵 페이지의 Lab 6~8에서 확인하세요.
결론
이 실습을 통해 HA가 서비스의 이용에 있어서 얼마나 중요한지 느낄 수 있으실겁니다. HA가 적용된 서버는 문제가 생겼을 때 서비스의 중단을 걱정하지 않고 문제에 대응할 수 있기 때문에 훨씬 안정적이고 효율적인 위기 관리가 가능합니다. 또한 이 모든 과정에 GitLab CI/CD 파이프라인을 연동할 수 있으므로 DevOps 구축에도 편리함을 제공합니다.