AWS 기술 블로그

LINE Games의 DB 현대화와 GenAIOps 전환 여정

LINE Games는 글로벌 모바일 메신저 플랫폼 기업 LY주식회사(LY Corporation)의 관계사로, 자체 개발 모바일 슈팅 ‘드래곤 플라이트’를 시작으로 핵앤슬래시 액션 RPG ‘언디셈버’와 오픈월드 MMORPG ‘대항해시대 오리진’, 모바일 SRPG ’창세기전 모바일: 아수라 프로젝트’, 모바일 매치 퍼즐 ‘헬로키티 프렌즈 매치’를 서비스하고 있으며, 다양한 장르의 게임을 다양한 플랫폼으로 개발&서비스하는 글로벌 게임사입니다.

게임 서비스에서 데이터베이스는 단순한 데이터 저장소 그 이상입니다. 유저 경험의 정밀한 분석, 게임 내 실시간 이벤트 처리, 정산/랭킹/보상 등 수많은 기능이 데이터베이스를 중심으로 돌아갑니다. LINE Games는 이처럼 복잡하고 다양한 운영 환경 속에서 안정성과 생산성, 그리고 지속가능한 운영 구조를 동시에 만족시키기 위한 데이터베이스 현대화 여정을 시작했습니다.

이 글에서는 LINE Games가 ‘헬로키티 프렌즈 매치’를 런칭하며 진행한 레거시 환경의 MongoDB on EC2를 떠나 Amazon DocumentDB 도입 전환, Redis OSS에서 ElastiCache for Valkey로의 업그레이드를 통한 비용 최적화, 그리고 향후 AI 기반 DevOps를 위해 Amazon Q Developer CLIAWS MCP(Model Context Protocol)를 활용한 데이터베이스 모니터링까지 기술적 선택과 운영 전략을 교차해 소개합니다.

LINE Games의 운영 환경과 과제

LINE Games는 여러 장르의 게임을 동시에 서비스하고 있으며 게임별로 다양한 형태의 데이터베이스를 운영하고 있습니다. Aurora MySQL, SQL Server용 Amazon RDS, MongoDB 등 다양한 종류의 데이터베이스를 사용하며, 100개가 넘는 클러스터를 단 한 명의 DBA가 전담하는 구조였기 때문에 운영 효율성과 안정성 확보는 늘 중요한 과제였습니다. 특히 기술 지원 조직의 관점에서 다음과 같은 현실적인 고민이 존재했습니다 :

  • 다양한 운영 환경에 대한 표준화 부족
  • 인프라 복잡도 증가에 따른 장애 대응 및 리소스 소모
  • 새로운 프로젝트마다 적합한 데이터베이스 사이즈, 구조 등 결정 부담

특히 데이터베이스 관점에서는 모든 게임에 항상 RDBMS가 필요하지 않다는 점이 고민이었습니다. 게임 데이터베이스는 대부분 관성적으로 MSSQL, MySQL과 같은 RDBMS를 사용해왔습니다. 그러나 게임 장르가 다양해짐에 따라 목적에 맞는 데이터베이스를 선택하여 성능과 비용 효율을 가져갈 필요성이 점차 증진되었습니다. 예를 들어 캐주얼하고 간단한 게임에는 RDBMS가 아닌 개발사가 익숙하고 빠르게 개발할 수 있을 뿐 아니라 특정 워크로드에 최적화된 key-value 형식의 NoSQL을 사용할 수도 있습니다. 그러나 이는 트레이드오프로 데이터베이스의 종류가 늘어나게 되어 소수의 운영 인력에게 부담이 될 수 있습니다. 따라서 LINE Games는 모바일 매치 퍼즐 ‘헬로키티 프렌즈 매치’ 런칭을 준비하며, 완전 관리형 서비스인 Amazon DocumentDB를 도입하게 되었습니다. 또한 Redis OSS에서 비용 절감과 동시에 성능을 개선할 수 있는 ElastiCache for Valkey로 전환하며 운영 최적화를 진행했습니다.


[그림 1. DocumentDB와 ElastiCache for Valkey를 도입한 ‘헬로키티 프렌즈 매치’ 게임 아키텍처]

MongoDB on EC2의 운영 한계, 그리고 완전 관리형 전환의 필요성

LINE Games에서 운영하던 기존 MongoDB는 EC2 기반으로 직접 설치해 게임 감사 로그와 유저 이벤트 데이터를 수집/분석하는 용도로 활용되어 왔습니다. 이러한 운영 경험을 토대로 내부적으로도 MongoDB에 익숙했기에 ‘헬로키티 프렌즈 매치’ 출시를 준비하며 동일한 MongoDB 클러스터를 확장하여 사용하는 것을 고려했습니다. 하지만 게임 출시를 준비할 때쯤 MongoDB 장애가 반복되었고 다음과 같은 고민이 발생했습니다 :

  • 정산 로직 등 주기적인 피크 트래픽/고부하 상황으로 인한 반복적인 노드 장애 시 원인 파악 및 모니터링의 어려움
  • 장애 발생 시 적은 운영 인력으로 인한 수동 장애 조치의 부담
  • 패치, 스케일링 등의 유지 관리 작업의 수동 작업으로 인한 운영 부담

이러한 이슈는 기술 문제이기도 했지만 조직 운영의 문제기도 했습니다. 운영 안정성과 대응 속도, 기술 리스크 분산, 기술 자산의 표준화라는 관점에서 대안을 검토할 필요가 있었습니다.

결과적으로 LINE Games는 다음과 같은 요건을 만족하는 솔루션을 찾고자 했습니다.

  • MongoDB 드라이버 및 스키마와의 높은 호환성
  • 관리 포인트 최소화 + 운영 자동화
  • AWS 기반의 기술 지원과 보안 컴플라이언스 대응

그 결과 Amazon DocumentDB가 현실적이고 전략적인 선택지로 도출되었습니다.

DocumentDB 도입과 GenAIOps 실험

DocumentDB 도입은 데이터베이스 운영 전략 전환의 출발점이었습니다. 한국 게임사에서 DocumentDB를 게임 DB로 도입한 사례가 많지 않다보니 실제 도입에 앞서 다양한 고민과 함께 이에 따른 테스트가 이뤄졌습니다. 구성과 관련해서 확장성 때문에 Elastic Clusters를 고민했었으나 캐주얼 퍼즐 게임 특성상 높은 쓰기 성능이 필요하지 않았고, 상대적으로 작은 데이터 사이즈로 인해 기본 구성으로도 충분하다는 결론이 내려졌습니다.

이처럼 도입 전에 사전 테스트를 통해 검증하거나 도입 후에 운영 작업을 해야하는 부분들이 생길 것이라 예상했으며, LINE Games 내부에서는 DevOps를 넘어 GenAIOps에 대한 이야기가 나오게 되었습니다. 처음부터 모든 것을 자동화할 수 있을 것이라 생각하진 않았으나, GenAI를 활용해 도입 전 사전 테스트 자동화, 모니터링 레포트 작성, 운영 작업에 필요한 스크립트 작성과 같은 사용 사례들은 이미 충분히 가능하다고 판단했습니다. 따라서 DocumentDB 도입을 하며 이와 같은 작업들이 가능할지 실험하게 되었습니다.

특히 도입을 진행하며 가장 큰 고민이었던 대량 데이터 삭제로 인한 백그라운드 작업에 대한 부하 테스트 자동화를 Q Developer CLI를 통해 가장 먼저 시도하게 되었습니다. DocumentDB는 데이터 삭제 시 내부적으로 가비지 컬렉션 프로세스를 수행하는데, 이 과정에서 CPU와 메모리 자원에 영향을 주고, 특히 I/O 사용량이 늘고 비용이 늘게 됩니다. 그렇기 때문에 롤링 컬렉션을 만들고 주기적으로 삭제하는 것이 가장 좋은 방법이지만 운영 비용을 줄이기 위해 TTL 인덱스 사용을 고려하게 되었습니다.

게임 내 우편 데이터 자동 삭제를 위해 TTL 인덱스를 사용하는 것이 적절할지 판단하기 위해 TTL로 발생될 삭제 작업이 게임 서비스에 미치는 영향을 부하 테스트를 통해 확인할 필요가 있었습니다. 샘플 데이터를 활용해 10만 건에서 최대 100만 건까지 삽입 및 5분 내 만료되도록 시나리오를 작성하였고, Q Developer CLI가 작성한 스크립트를 기반으로 부하를 증가시키면서 성능을 측정했습니다.

프롬프트 예시 – 부하 테스트:

당신은 AWS DocumentDB/MongoDB에 전문가인 DBA입니다. <cluster 이름>에서 <collection 이름> 컬렉션에 아래의 샘플 데이터를 참고하여 insert 테스트를 할 수 있는 스크립트를 만들어줘. 샘플 데이터는 10만 건에서 100만 건까지 점차 늘려서 테스트 예정이고, <column 이름>은 5분 내 랜덤하게 만료되도록 설정할거야. mongodb 툴에서 바로 실행할 수 있도록 원라이너 형태로 javascript로 작성해줘. <샘플 데이터>


[그림 2. Q Developer CLI : 부하 테스트를 위한 프롬프트로 작성된 테스트 스크립트 예시]

이렇게 작성된 스크립트를 바로 사용하기 보다는 사람이 검토하고 GenAI가 적절한 테스트 스크립트를 작성하도록 돕는 과정이 여전히 필요합니다. 또한 CLI 특성상 짧은 프롬프트만 입력하게 되는데 구체적인 프롬프트를 줄수록 더 구체적이고 적절한 응답을 했습니다. 특히 다음과 같은 프롬프트 엔지니어링들이 도움이 되었습니다 :

  1. 롤에 대한 정의(DBA, DevOps 등)
  2. 요구 사항과 사용 사례를 GenAI 도구에 전달하면서 분석한 후 시도할 수 있는 전략을 작성해달라고 하기
    1. (Optional) 참고할 수 있는 샘플 데이터가 있다면 이를 전달하기
  3. 2번에서 만들어진 전략을 사람이 검토하고 그 중 적절한 방법을 구현하는 방법을 알려달라고 하기

[그림 2]와 같이 작성된 스크립트를 검토하고 부하 테스트를 진행한 결과, 100만 건의 데이터 중 최대 33만 건이 만료되는 상황에서도 TTL 인덱스 삭제 작업에 CPU 사용률은 약 15%, 메모리 사용량은 0.3MB 미만이었습니다. 즉, TTL 인덱스 삭제 작업이 서비스에 영향을 줄 정도의 리소스 사용은 발생하지 않았습니다. 이 뿐 아니라 다음과 같은 프롬프트를 활용해 TTL 인덱스를 생성하고 어느정도의 영향을 줄지도 테스트 해볼 수 있었습니다.

프롬프트 에시 – TTL 인덱스 생성 테스트 :

파일을 생성하지 않고 <cluster 이름>에서 <collection 이름> 컬렉션의 <column 이름> 컬럼에 TTL 인덱스를 생성하는 구문을 출력하고, 직접 DB에 접속하여 TTL 인덱스를 생성하고 소요 시간을 알려줘. 참고로 현재 컬렉션의 데이터는 100만건이 있어.

여러 사전 테스트를 거쳐 도입 후에도 실서비스에서의 운영 데이터를 바탕으로 조기 탐지와 개선 체계를 지속적으로 발전시켜 나가고 있습니다. 특히 글로벌 런칭 직후, 팀 메시지 컬렉션에 이상 패턴이 발생한 것을 선제적으로 탐지하고, 해당 이슈를 중심으로 집중 모니터링을 수행했습니다. 이 과정에서 GenAI를 활용한 스크립트 초안을 생성하고, DBA가 직접 검토 및 사전 테스트를 거친 후 운영에 반영하는 새로운 개선 루틴을 적용해볼 수 있었습니다. 또한 후술할 내용처럼 Q Developer CLI, AWS MCP 등의 도구를 활용해 모니터링 자동화와 리포트 자동 생성도 실험하며, 향후 반복 업무의 효율성을 높이기 위한 기반을 다지고 있습니다.

이처럼 부하테스트, 인덱스 생성 뿐 아니라 컬렉션 스키마 변경에 따른 데이터 마이그레이션을 위한 스크립트 작성 등 다양한 작업을 GenAI 기반 도구를 통해 손쉽게 진행할 수 있었습니다. 가장 중요한 것은 이렇게 만들어진 대화에 기반한 컨텍스트를 만들고 저장한 다음, 이에 기반하여 해당 테스트를 계속 발전시켜 나갈 수 있다는 점 입니다. Q Developer CLI에서 제공하는 영구 컨텍스트, 세션 컨텍스트를 활용하면 팀 차원의 규칙이나 가이드라인을 컨텍스트로 만들고, 이를 통해 팀 내에서 최대한 일관된 답변을 받는 것도 가능합니다. 이는 DevOps 팀 문화에 자연스럽게 GenAI 기반 Ops를 더해지게 도우며, 이는 개인의 능력에 따른 운영 편차를 줄일 수 있는 좋은 방법이 될 것입니다.

ElastiCache for Valkey 도입

Redis OSS는 EC2 기반 혹은 ElastiCache 기반으로 널리 사용되어 왔습니다. 그러던 중 ElastiCache for Valkey가 출시되었고 7.2 버전의 경우 Redis OSS와 완벽히 호환되어 대부분의 기존 캐시 로직을 코드 변경없이 그대로 사용할 수 있었습니다. 또한 20%의 비용 절감에 더해 7.2 이후 버전들에서는 메모리, 퍼포먼스 등 다양한 개선 효과를 통해 구성 최적화 시 30%가 넘는 비용 절감도 기대할 수 있었습니다. 비용 최적화와 기술 리스크 최소화라는 두 가지 조건을 동시에 충족할 수 있다는 점에서 ElastiCache for Valkey는 매력적인 선택지였습니다. 실제로 스테이징 환경 테스트를 거쳐 ‘헬로키티 프렌즈 매치’ 런칭 시 최초 적용했고, 이후 신규 프로젝트에는 ElastiCache for Valkey가 기본 구조로 채택되고 있습니다.

또한 LINE Games는 기존 게임의 운영 중 장기 서비스 과정에서 진행되는 인프라 통합 작업 시점에 기존 ElastiCache 리소스를 백업 및 복원하는 작업을 병행합니다. 이때 Redis OSS 기반 캐시를 유지하는 대신, Valkey로 업그레이드하는 방식으로 개선을 진행하고 있습니다. 스냅샷으로 복구할 때 Valkey 클러스터로 복구할 수 있을 뿐만 아니라, 인플레이스 업그레이드 또한 쉽고 서비스 영향이 최소화되는 방향으로 진행할 수 있었습니다.

ElastiCache for Valkey로 전환을 검토하면서 가장 좋았던 점은 DevOps와 개발 팀 모두 회색 영역처럼 다루던 캐시 레이어의 액세스 패턴을 파악할 수 있다는 점이었습니다. 사실 캐시 레이어를 활용한 개발이 꾸준히 진행되다 보면 개발 팀 뿐만 아니라 DevOps 팀도 키 디자인과 전체적인 액세스 패턴을 파악하기 어렵습니다. 따라서 캐시 의존적인 설계가 많다면 업그레이드 작업을 비롯해 스케일링과 같은 메인터넌스 작업을 할 때 조직 전체가 두려움에 떨면서 진행하게 됩니다. 그러나 ElastiCache for Valkey로의 업그레이드를 진행하며 두 팀의 소통을 통해 자연스럽게 팀 내부의 가이드라인이 생기고, 액세스 패턴에 따른 권장 사항이 전파될 수 있는 상황들이 만들어졌습니다. 즉, ElastiCache for Valkey 도입은 게임 운영을 위한 통합 과정의 연속선에서 기존 리소스 정비와 기술 전환을 동시에 달성할 수 있는 전략적 접근이었습니다.

GenAIOps 체계로의 전환

[그림 3. Q Developer CLI를 활용한 모니터링]

위에서 간략히 서술한 것처럼 LINE Games에서는 GenAI를 활용해 데이터베이스 모니터링, 운영이 가능한 시스템을 프로덕션에서 구축하여 사용하고 있습니다. ElastiCache for Valkey, DocumentDB, Aurora MySQL MCP를 통해 스키마 분석 및 다이어그램 작성을 하거나 B/G 배포와 같은 작업을 수행하고, CloudWatch로부터 가져온 메트릭을 기반으로 현재 이상을 감지하거나 모니터링 레포트를 만들기도 합니다. 그 외에도 장애 원인 분석 및 진단과 부하 테스트 진행, 운영을 위한 스크립트 작성 등을 통해 소수의 인원으로도 이종의 데이터베이스를 운영할 수 있도록 최적화하고 있습니다.

Q Developer CLI를 활용한 모니터링 예시 : 모니터링 알람 분석 및 최적화 전략

BI 용도로 사용하던 Aurora MySQL 인스턴스의 FreeableMemory 알람 분석 및 최적화 전략 제시를 요청했을 때의 프롬프트와 응답 결과 예시입니다. CloudWatch Metric에서 패턴을 발견하고 단기, 중기, 장기로 나누어 전략을 제시하는 것을 확인할 수 있습니다.

프롬프트 예시 – 알람 분석 및 전략 요청:

Aurora MySQL 클러스터 <클러스터 이름>에서 최근 발생한 FreeableMemory 알람을 토대로 메모리 사용 패턴의 변화가 있는지 분석하고, 적절한 대응 전략을 제안해줘

응답 결과 예시 :


[그림 4. Q Developer CLI : 메모리 사용 패턴 분석]

[그림 5. Q Developer CLI : 최적화 전략 제시]

알람이 울린 시점과 메트릭 패턴을 확인했으니, 정확한 문제 파악을 위해 메모리가 peak이던 시점에 돌아갔던 쿼리를 분석 요청합니다. Q Developer CLI가 Performance Insights와 슬로우 쿼리 로그를 조회하여 쿼리 문제를 확인하는 것을 볼 수 있습니다. 필요하다면 DB 스키마에 대한 정보를 컨텍스트로 전달하고 쿼리 최적화를 요청할 수도 있습니다.

프롬프트 예시 – 알람 분석 및 전략 요청:

> 메모리가 peak 치던 시점에 돌아갔던 쿼리가 어떤 거였어? 메모리 피크 시점(~)에 실행된 쿼리를 확인해보겠습니다. Performance Insights와 슬로우 쿼리 로그를 조회해보겠습니다.


[그림 6. Q Developer CLI : 쿼리 분석]

다음 스텝 : 반복 작업과 모니터링을 넘어 GenAI가 함께하는 팀 문화로

위의 예시 뿐만 아니라, LINE Games는 사람 중심에서 GenAI 기반 시스템 중심으로의 전환을 진행 중 입니다. DevOps 업무는 반복 작업이 많으면서도 예측이 어려운 상황들이 자주 발생하여 개인 역량 편차에 따라 운영 품질이 크게 달라질 수 있습니다. 따라서 아무리 지속적인 문서화를 하더라도 문서는 손쉽게 낡게 되며, 최신의 문서 또한 개인의 역량과 경험에 따라 장애 해결에 도달하기까지의 과정이 매우 다릅니다. 그렇기 때문에 전반적인 운영 품질을 올리고 DevOps 조직을 도울 수 있는 도구로 GenAI 기반 서비스들을 고려하게 되었습니다. 이에 따라 현재는 다음과 같은 도구들을 사용 및 실험 중입니다 :

  • Amazon Q Developer CLI
    • 코드 리뷰, 리팩토링, 테스트 자동화 지원
    • 일부 운영 환경에서 사용 중이며, 내부 실험을 통해 퍼블리싱 가이드 자동화, 온보딩 가이드 자동화, 코드 표준화 등에 활용 가능성 검토 중
  • AWS MCP
    • 리소스 구조 및 비용 리포트 자동 생성
    • 신규 프로젝트 설계 시 리소스 모델링 운영 예상 비용 시뮬레이션에 활용 중

이러한 시도는 단순한 기술 실험이 아니라, 조직의 유지 가능성과 DevOps 업무의 지식 자산화라는 관점에서 진행되고 있습니다. 서술한 사용 사례 외에도 실험과 개선을 거치며 점진적으로 GenAI를 활용한 DevOps 팀 전략을 다양화 및 구체화하고 있습니다.

결론

DocumentDB와 ElastiCache for Valkey의 도입은 단순한 기술 도입이 아닌 조직 전략의 일환이었습니다. LINE Games는“안정적인 게임 운영”, “운영 인력 최적화”, “비용 최적화”, “확장성”이라는 네 가지 축을 기준으로 판단했고, 그 결과로 완전 관리형 서비스를 적극 활용하는 구조로 전환했습니다. 향후에도 GenAI 기반 운영 도구와 완전 관리형 서비스를 중심으로, 클라우드 네이티브한 아키텍처를 설계하고 더욱 효율적이고 지속가능한 게임 인프라 환경을 구축해 나갈 예정입니다.

AhYeong Lee

이아영 LINE Games 기술 조직 실장

이아영 실장은 라인게임즈의 게임 퍼블리싱 기술 및 플랫폼 서비스 전반을 총괄하며, 인프라부터 DevOps, 백엔드, SDK, 런처에 이르기까지 다양한 기술 조직을 이끌고 있습니다. 게임 개발사와의 협업과 실시간 운영 경험을 바탕으로, 신뢰성 있는 글로벌 게임 서비스 제공을 위한 기술 전략 수립과 자동화 기반 운영 체계 구축에 힘쓰고 있습니다.

Yeawon Na

최지은, LINE Games DBA

최지은 매니저는 라인게임즈 기술 조직 소속 DBA로, 주요 게임과 플랫폼 서비스의 데이터베이스 운영과 성능 최적화를 담당하고 있습니다. 끊임없이 변화하는 기술 트렌드 속에서 더 나은 데이터베이스 운영 방안을 모색하고, 새로운 DB 기술을 실제 서비스에 적용하기 위해 연구하고 있습니다.

Jungwoo Song

Jungwoo Song

Jungwoo Song is a Solutions Architect based in South Korea. He works with customers to design optimal architectures for achieving their business outcomes.