개요
용인시는 약 107만 명의 시민이 거주하는 경기도에서 인구 3위의 도시입니다. 코로나19 확산으로 전세계적으로 경제가 위축되었고, 정부와 지자체는 국내 경제를 활성화하기 위한 긴급재난지원금 지급정책을 시행하였고, 이에 따라 용인시청에서도 긴급재난지원금 신청 접수 사이트를 네이버 클라우드 플랫폼 기반으로 구축하게 되었습니다.
과제
초반에는, 용인시의 18세 이상 성인 86만 명을 대상으로 지원금 신청을 짧은 기간에 접수 받을 수 있는 대규모 웹서비스 인프라 구축을 시급히 진행해야 하는 상황이었습니다.
대규모 신청 접수 프로세스로 인한 부하를 견딜 수 있는 고성능 서버와 부하 분산 처리가 가능한 네트워크 인프라 구성을 단기간에 구현해야 했습니다.
시민들의 성명, 전화번호, 주민번호, 주소 등의 개인정보를 다루어야 하므로 높은 수준의 보안을 필요로 하였습니다.
사이트 오픈 직 후 단기간 대규모 접속이 이루어질 것으로 예상되는 상태였기 때문에 용인시청의 온-프레미스에서 자체 운영하고 있던 시스템으로는 수용하기 어렵다고 판단하여, 가용성과 확장성이 뛰어난 클라우드 기반으로 구성하기로 하였습니다.
효과
국내 공공기관의 사이트를 클라우드 기반으로 운영하려면 많은 규제를 따라야 합니다. 네이버 클라우드 플랫폼은 이점에 있어 2017년부터 이미 [클라우드 보안 인증]과 [CSA STAR 인증]을 확보하여 공공기관 사이트 인프라 서비스 제공에 있어 제약 사항을 모두 해소할 수 있었습니다. 이로 인해, 까다로운 규제를 검토해야 하는 시간을 대폭 줄일 수 있었고 빠르게 구성에 대한 착수를 할 수 있었습니다.
대규모 접속에 대한 클라우드 인프라의 안정성을 고려하여 두 개의 로드밸런서를 DNS 라운드로빈으로 분산시키는 구성을 하였고, 각 로드밸런서의 하단에는 50:50으로 서버를 나누어 배치하였습니다.
스토리지 레이어에는 각 서버의 공유파일을 NAS 스토리지를 통해 실시간 공유하도록 구성하였으며, 오토스케일링으로 서버가 자동 추가될 때에도 추가된 서버에서 NAS 의 볼륨을 자동으로 마운트하도록 하여 관리자의 개입 없이도 서비스에 필요한 파일 구성이 자동으로 되도록 하였습니다.
데이터베이스 레이어에서는, 접수된 신청서 데이터를 지연 없이 저장하기 위해 네이버 클라우드 플랫폼의 관리형 RDBMS인 Cloud DB For Mysql을 초기에는 고성능 사양으로 구성하였습니다. 관리형 디비이므로 간단히 이중화 구성을 하여 액티브 노드의 장애 발생시에도 자동-복구를 통해 안정적인 운영이 가능하도록 하였습니다.
NCP는 각종 서비스에 적용할 수 있는 다양한 부가 서비스를 Marketplace를 통해 제공하고 있으며, DB 암호화의 경우에도 Petra Cipher 서비스를 활용하면 DB로 유입되는 쿼리에 대해 평문 암호화 구성이 가능합니다. Server에 직접 DB를 구성한 경우 모듈 설치 방식으로 암호화 설정도 가능합니다.
접속자 세션 처리는 높은 I/O 요구에도 지연 없이 안정적으로 성능을 제공해 줄 수 있는 In-memory Database인 Redis를 사용하기 위해 2대에 Redis Sentinel을 구성하였으며, 내부 로드밸런서에 Redis 서버 2대를 적용하여 장애 대비 및 세션 파일 처리를 할 수 있었습니다.
Redis Sentinel 은 마스터 1개와 슬레이브 2개로 구성되며, 자동 헬스체크 중 마스터 노드 장애 시 자동으로 슬레이브 노드를 마스터 노드로 승격하는 복구 기능을 제공합니다.
모니터링은 서버 등 인프라의 세부자원 뿐만 아니라 서비스 도메인 및 웹사이트에 대한 로딩 상태 모니터링까지 네이버클라우드 플랫폼의 서비스와 누리클라우드의 관리솔루션을 조합 구성하여 빠르고 정확하게 장애를 인지하고 대응하도록 하였습니다.
방화벽은 네이버 클라우드 플랫폼의 Security Monitoring 패키지인 IDS(침입탐지), IPS(침입방지), WAF(웹 방화벽) 등을 적용하여 외부로부터 악의적인 접근에 대비하였습니다. 서버에 대한 관리적 접근은 SSL-VPN을 통하여 접근할 수 있도록 하였습니다.
개발이 완료된 사이트를 오픈하기 전에 Web Security Checker를 사용하여 웹 취약점 점검을 진행하였고, 검출된 취약점을 패치 후 최종 점검 후 보안 안전성이 검증된 후 서비스를 오픈하였습니다.
사이트 오픈 이후 접속패턴을 확인하여 그에 따른 자원 사용량을 분석 후 웹서버는 스케일-인 디비서버는 스케일-다운을 통해 비용 최적화를 하였습니다.
맺음말
높은 개인정보보호 요구사항과 대규모 서비스이면서 빠르게 시스템을 구성하여야 하는 요건에는 퍼블릭 클라우드 특히 네이버 클라우드 플랫폼은 매력적인 서비스라고 할 수 있습니다.
특히, 웹방화벽/IPS/백신/취약점점검을 패키징으로 제공하는 네이버 클라우드 플랫폼의 보안 서비스는 개별 보안솔루션을 각각 검토하고 진행해야 하는 번거로움을 한번에 해결할 수 있어서 매우 큰 장점이라고 할 수 있습니다.
누리클라우드는 네이버 클라우드 플랫폼의 프리미엄 파트너이자 20년 경험의 호스팅 비즈니스 업체로서, 클라우드 시스템 컨설팅에서 운영 매니지드까지 한번에 해결할 수 있어 좋았습니다.