AWS와 GitLab, Hashicorp로 알아보는 HA 배포의 중요성

고장나지 않는 서버는 사용자 경험과 안정적인 서비스 유지를 위해 필수 불가결한 요소입니다. 이번 시간에는 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 구축에도 편리함을 제공합니다.
사전 동의 없이 2차 가공 및 영리적인 이용을 금하며, 온·오프라인에 무단 전재 또는 유포할 수 없습니다.
DevOps 도입이 필요하신가요?
인포그랩 전문가가 맞춤 을 도와드립니다.
관련 글

GitLab을 사용해서 AWS에 배포하기\:\ Lambda, Fargate, EC2, EKS와 ECS를 위한 단일 애플리케이션
AWS는 클라우드 업계의 리더입니다. AWS는 AWS는 스토리지, 네트워킹, 서버 리스(serverless)에 이르기까지 모든 것을 한 곳에서 제공하는 올인원 클라우드 서비스이며, 이로 인해 많은 조직이 AWS를 사용하고 있습니다. AWS는 포괄적인 서비스로, 고객들은 다음과 같은 이점들을 누릴 수 있습니다. 심플한 클라우드 운영을 위해 AWS에 올인하는 조직도 있지만, AWS가 워낙 방대한 클라우드 서비스를 제공하기 때문에 효율적인 기능 사용에는 한계가 있을 수 있습니다. DevOps 도구를 사용하면, 이러한 올인원 전략을 취함과 동시에 기능적인 효율성 또한 만족시킬 수 있습니다. DevOps 팀은 개별적인 툴을 통합하고 관리하는 대신, GitLab 하나만 사용하여 단일 통합 환경에서 소프트웨어 개발 수명 주기 전체를 관리할 수 있습니다. GitLab CI/CD를 통하여 AWS 서비스에 맞춤화된 배포를 실현하세요. 이 포스트에서는 GitLab과 AWS의 5가지 인기 서비스인 Lambda, Fargate, EKS, ECS 및 EC2가 어떻게 통합되는지 살펴봅니다.
2020년 12월 8일

AWS CodeCommit, GitLab 마이그레이션 최종 가이드
AWS가 CodeCommit에 신규 고객 액세스를 종료합니다. GitLab은 개발팀이 AWS CodeCommit에서 GitLab으로 편리하게 마이그레이션하고, 두 서비스를 원활하게 통합하도록 지원합니다. 이 글은 GitLab으로 병렬 마이그레이션 방법과 GitLab과 AWS CodeBuild, CodePipeline 통합 방법을 다뤘습니다.
2024년 9월 6일

AWS CloudFormation으로 IaC 구축하기(feat. GitLab)
AWS의 CloudFormation(CFN)은 Infrastructure as Code(IaC) 도구입니다. 이 도구를 사용하면, 별도 상태 저장소를 설정하거나 유지할 필요가 없고, AWS 서비스와 원활하게 통합할 수 있습니다. 이 글은 GitLab과 CFN을 연동해 Lambda를 배포하는 방법을 다뤘습니다.
2024년 5월 22일