대교는 방문형 학습지 ‘눈높이’로 유명한 교육서비스 그룹입니다. 유아교육 사업, 교육출판 사업, 학원 사업, 홈스쿨 사업, 온라인교육 사업 등 다양한 사업 분야에 진출해 있으며, 글로벌 전인교육을 이끌어가는 세계적인 기업이 되고자 노력하고 있습니다.
The Situation
대교 눈높이 러닝센터에서는 학생들의 자율학습을 도와주는 학습관리 앱 ‘눈높이성장판’의 런칭 계획을 가지고 있었습니다. AWS 서비스를 사용하여 서비스를 구축하고자 하였으며, 어플리케이션 배포 등의 프로세스를 자동화해, 효율적인 DevOps 환경을 구현하고자 했습니다.
To the Cloud
베스핀글로벌은 AWS의 CloudFront를 통해 대규모 접속인원을 수용할 수 있는 서비스 구축을 제안했습니다. S3와 CloudFront를 연계하여 CDN 기능을 제공, 사용자가 가까운 엣지 로케이션을 통해 콘텐츠를 받아볼 수 있게 했습니다. 또한 S3 Event 와 Lambda, SQS 를 통해 엣지로케이션의 캐시를 삭제하는 CloudFront Invalidation 을 자동화했습니다.
베스핀글로벌은 CloudWatch Log Agent를 사용하여 어플리케이션 로그의 중앙화를 구현했습니다. 또 Kinesis 와 S3, AWS Athena를 통해 데이터를 빠르게 처리하고 분석할 수 있는 빅데이터 수집 프로세스를 구현했습니다. 또한 하나의 인스턴스에 복수의 WAS Instance가 띄워지는 구조에 맞춰 Lambda 를 사용, 다운타임 없는 안전한 Blue/Green 배포를 구현했습니다.
아키텍처 상세
CloudFront Invalidation 자동화: CloudFront 와 연결된 S3 Bucket의 Event(Put/Delete)와 Lambda를 사용하여 Invalidation 자동화를 구현하였으며 AWS 의 API 동시성 제한 정책때문에 발생하는 Error 를 SQS 를 사용하여 해결함.
배포: 2개의 Autoscaling Group(Active/StandBy)와 Lambda와 AWS SDK를 사용하여 Blue/Green 배포 구현
1. versioning 설정된 s3 의 동일 키로 Update 된 Application Upload
2. 배포 시작 Lambda 호출
3. Active ASG 에 붙어있는 CLB 및 TargetGroup을 복제한 dummy ELB 생성
4. dummy ELB에 StandBy ASG 연결
5. ASG에 Trigger SNS 연결 후 TestNotification을 통해 Trigger Lambda호출
6. StandBy ASG 의 min/max/desired 값을 Active ASG 와 동일하게 변경
7. dummy ELB 에서 inService/healthy 확인 후 dummy 삭제
8. 운영 CLB 에 StandBy ASG 를 연결
9. inService/healthy 확인되면 Active ASG를 detach
10. Active와 StandBy 역할 변경
11. 배포 완료
After BespinGlobal
– Auto Scaling 환경에서 CloudWatch Log Agent를 사용한 Application 로그 수집 프로세스 정립
– CloudFront 에 연결된 S3 Bucket의 Event 와 Lambda Function을 연계하여 정적 리소스 Invalidation 자동화 프로세스 정립.
– Lambda 를 사용하여 배포 구현해 디테일한 배포 프로세스 확인.
Next Step
클라우드의 기능을 활용해 대고객 서비스를 성공적으로 구축한 대교는, 향후 전사적자원관리(ERP & E-HR) 시스템을 클라우드에서 운영할 예정입니다