데이터 현지화를 위한 DB구성 방안
안녕하세요. 이번 달 갑자기 몰려오는 외부 강의로 인해 블로그를 2주간 쉬게 되었습니다. 금주와 차주는 외부 발표 내용으로 포스팅해 보도록 하겠습니다.
2021년 11월 19일 (금) 베트남 하노이에서는 베트남에 진출한 “한국 ICT 기업 협의회” 발족식을 개최하였습니다. 베트남 진출 한국 IT기업 간에 정보 공유와 최근 IT 분야의 주요 이슈에 대한 세미나, 간담회를 반나절 정도 진행하였습니다.
오후 세션에서는 베트남 사이버 보안법 대응 세미나가 진행되었는데요. 오늘은 이 세션에서 제가 발표한 내용을 간단히 요약해서 포스팅해 보겠습니다.
우선 제가 발표하게 된 부분은 “사이버 보안법 대응 인프라 구성 방안”입니다.
법적인 내용은 변호사님께서 직접 말씀해 주시는 게 더 신빙성이 있을 거 같아, 베트남 하노이 로고스의 김경섭 변호사님이 설명해 주셨습니다.
그럼 기술을 들어가기 전에 베트남 법에 대해 먼저 설명하자면요.
법중의 법인 헌법(憲法 Constitution)이 있고 그 아래에 법(法, Law)가 있으며 그 아래 법을 집행하기 위한 시행령 (施行令 Decree)가 있습니다.
베트남 사이버 보안법은 법(Law)으로 2018년 6월에 베트남 국회를 통과하여 2019.1.1부터 발효가 시작되었습니다. 이 법에 대한 시행령(Degree)은 2018년 1월에 1차 초안(1st draft), 2019년 2월에 2차 초안 (the 2nd draft)가 발표되었습니다
법과 시행령은 내용이 비슷하며 베트남에 진출할 IT 회사가 눈여겨보아야 할 점을 요약하면 다음과 같습니다.
예전에 베트남 cable TV에 성인방송 채널 개설, 성인 웹툰 사업을 문의하신 지인분들께는 사이버 보안법에 의해 성인 컨텐츠 등록은 불가능하다고 다시 말씀드립니다.
또한 각 정보에 대한 보관 주기는 아래와 같습니다.
한 가지 특이한 사실은 벌금 내용에 대한 언급은 아직 없습니다. 베트남 현지에서는 2022년 1분기에 새로운 시행령 (decree)를 통해 벌금에 대한 언급을 할 것으로 예상합니다.
그럼 우리 회사의 데이터는 어떻게 저장해야 할지 AWS와 베트남 현지 시스템과 알아보도록 하겠습니다.
기존에 클라우드를 쓰고 있는 회사는 어떻게 대응해야 하나요?
사이버 보안법에 명시된 “베트남에 데이터를 (일정 기간) 저장해야 한다"라는 여러 해석의 차이가 있을 수 있습니다. 하여 법의 원문과 해석본을 비교해 보았습니다. (사이버보안법 4조 26항)
[베트남어 원문]
3. Doanh nghiệp trong nước và ngoài nước cung cấp dịch vụ trên mạng viễn thông, mạng Internet, các dịch vụ gia tăng trên không gian mạng tại Việt Nam có hoạt động thu thập, khai thác, phân tích, xử lý dữ liệu về thông tin cá nhân, dữ liệu về mối quan hệ của người sử dụng dịch vụ, dữ liệu do người sử dụng dịch vụ tại Việt Nam tạo ra phải lưu trữ dữ liệu này tại Việt Nam trong thời gian theo quy định của Chính phủ. Doanh nghiệp ngoài nước quy định tại khoản này phải đặt chi nhánh hoặc văn phòng đại diện tại Việt Nam.
[영문 번역]
3. Domestic and foreign service providers on telecom networks and on the Internet and other value added services in cyberspace in Vietnam [cyberspace service providers] carrying out activities of collecting, exploiting [using], analyzing and processing data [being] personal information, data about service users' relationships and data generated by service users in Vietnam must store such data in Vietnam for a [specified] period [to be] stipulated by the Government. Foreign enterprises referred to in this clause must have branches or representative offices in Vietnam.
[한글 번역]
3. 개인 정보, 서비스 이용자의 관계 정보 및 베트남에서 서비스 이용자에 의해 생성되는 정보를 수집, 개발, 분석, 처리 활동하는 국내외 기업들은 해당 데이터를 베트남에 반드시 저장해야 한다. 해외 기업은 베트남에서 지사 또는 대표사무소를 설립해야 한다
참고로 베트남에는 아직 외산 클라우드 (AWS, Microsoft Azure, Google GCP, Oracle Cloud …)의 Data center (Region)이 없어서 보통 싱가포르, 홍콩 region에서 클라우드를 구성하게 됩니다. 하여 대부분의 Web, Application, Database, Storage가 해외에 구성되어 있는데요. 데이터를 저장하게 되는 Database는 현지에 구성 따로 구성해야 하는지, 기존 클라우드의 Database와 연동을 해야 하는지 궁금해집니다.
사이버 보안법에서는 베트남에만 저장해야 하는지, 베트남에도 저장해야 하는지 해석이 다양할 수 있는데요. 어쨌든 베트남에 저장해야 한다는 해석으로 기업이 쓰는 외산 클라우드 AWS Singapore Region이라 가정하고 사이버 보안법에 대응하기 위한 workaround 구성에 대해 알아보겠습니다.
AWS 클라우드-베트남 현지 IDC에서
데이터베이스를 동기화하기 위해서는
3가지 방식이 있습니다.
클라우드의 데이터베이스와 베트남 현지 IDC, onpremise 시스템을 동시에 저장하기 위해서는 데이터의 백업본을 현지에 저장하는 방식과 싱크 하는 방식이 있을 수 있습니다.
그리고 두 지점 간 (베트남-AWS Singapore)의 동기화를 위해서는 전용선이나 VPN 망을 이용합니다. 전용선 (AWS Direct Connect)의 경우 좀 더 빠르고 안정적이어서 실시간 데이터 전송이 필요한 은행과 금융 쪽에서 자주 사용하고요. 일반적으로 배치성 (일괄 업데이트) 데이터는 일반 인터넷망에 IPSEC이라는 보안 모듈이 추가된 VPN 망을 사용합니다. (물론 VPN 사용 금액이 훨씬~ 저렴합니다.)
즉, AWS (Singapore)에서 모든 Web, Application, Database, CDN 등등의 서비스가 돌아가면서 Database만 베트남 로컬에 살짝 두고 동기식 혹은 비동기식으로 구성하는 방법입니다.
이번에 소개해 드릴 방식은 백업과 복원입니다.
일반적으로 AWS에서 많이 사용되는 백업은 Snapshot 백업입니다. 이는 Database뿐만 아니라 EC2 (가상머신)에서도 사용되는데요. 가장 저렴하고 일반적인 방식이나 AWS Database (RDS라고 부르겠습니다) 간에만 사용될 수 있습니다. 즉, AWS에서 백업한 데이터를 베트남 현지의 IDC나 On-premise의 Database 서버에 복원(Restore) 할 수 없습니다.
이에 대한 우회 방법으로 AWS Native Backup을 사용하실 수 있습니다. 이 백업은 AWS RDS for MySQL(Database)이 Source DB라는 가정하에 백업을 하고 베트남에 구성된 MySQL에서 백업 파일을 복원(Restore) 하는 방식입니다.
이를 위하여 AWS RDS for MySQL에서 MySQLdump.exe 프로그램으로 백업을 실행하여 Database 파일을. bak 방식의 dump 파일을 AWS S3 저장소에 저장합니다. 그리고 베트남에 구성된 MySQL을 서버에서 파일을 땡겨 받아 복원을 하게 됩니다.
물론 아래 그림과 같이 MySQL 외에 MS-SQL, Postgre SQL에서도 동일한 방식으로 가능합니다.
출처 : https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html
하지만 이 방식도 수동적인 백업과 복원 작업이여 사람(엔지니어)의 손이 많이 가게 됩니다. 그리고 데이터의 양과 네트워크 속도에 따라 시간이 많이 걸릴 수도 있습니다.
그 외에도 MySQL dump 파일을 만드는 Script, 생성된 dump 파일을 추출하는 batch Job 구성, 주기적인 백업, 복원 등으로 신경 쓸 부분이 많습니다. 그리고 회사 내에 이를 모두 처리할 수 있는 AWS를 다뤄본 엔지니어가 필요합니다.
물론 이를 위한 3rd party 제품을 사용하여 좀 더 손쉽고 수고를 더는 방법도 있습니다.
https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html
다음으로 소개해 드릴 방식은 Active-Standby 방식입니다. 이 방식은 원래 Main Database가 죽었을 때(fail)를 대비하여 Standby 한 Database가 fail-over 하여 그 기능을 대신하는 방식입니다.
Source DB인 AWS RDS를 Active로 베트남 현지의 DB를 standby로 하여 두 서버 간의 지속적인 sync를 걸어주는 방식입니다.
흔히 베트남 사이버 보안법에 대비하면서 (양쪽 DB 항상 싱크 됨) AWS source DB가 죽었을 때 로컬의 DB를 사용해도 되니 일석이조가 아니냐고 질문하신 고객님도 계신데요. 그리고 AWS RDS에 백업 파일을 스토리지에 구성하거나 베트남 로컬 DB에서 restore 하는 등의 사람이 따로 관리해야 하는 수고도 덜 수 있습니다.
하지만 AWS RDS가 특별한 공격으로 fail 되는 경우는 그렇게 많지 않습니다.
문제는 베트남 로컬에 있는 DB의 종류, 사양, 버전, 구성을 AWS RDS와 동일하게 맞쳐야 하는데, AWS RDS 사양이 높거나 구성이 복잡할 경우 베트남 로컬에 DB가 이를 못 맞출 가능성이 큽니다. 물론 다른 앞에 구성보다 베트남 DB를 구성하는 비용도 높아질 수 있습니다.
마지막으로 소개해 드리는 방법은 AWS DMS (Data Migration Service) tool을 사용하여 구성하는 방법입니다. 원래 AWS DMS는 IDC나 on-premise에 구축된 Database를 AWS Cloud로 옮기기 위한 툴이나 반대로 AWS RDS의 데이터를 베트남 현지 Database와 동기화하는 방식으로 사용될 수도 있습니다.
DMS의 기능중에는 CDC (Change Data Capture)라는 기능이 있어서 양쪽 Database의 변경 사항을 즉시 적용해 주는 기능을 가지고 있습니다.
하여 사이버보안법을 대비하기 위한 증빙용 최신 DB를 항상 베트남에 업데이트하면서 사람이 해야 할 수고를 덜수 있습니다. 즉, 앞에 사례에서 말씀드린 사람이 백업을 실행하거나, 배치 프로그램을 구성, 주기적으로 변경 사항 체크 등등의 어렵고 반복적인 업무에서 벗어 나실 수 있을 겁니다.
물론 DMS는 무료 서비스가 아니기에 AWS 홈페이지나 AWS Partner사를 통해 가격과 구성에 대해 문의하실 수 있습니다.
결론으로 말씀드리면 베트남 사이버보안법의 시작은 2019년 1월 1일이지만, 아직까지 이 법으로 피해를 본 회사들은 그다지 많지는 않습니다. 또한 시행령등에도 벌금에 대한 구체적인 금액이 명시되어 있지 않아 언제 어떻게 법이 발동될지 알 수는 없습니다.
하지만 베트남 금융권과 정부 관련분들을 통해 벌금이 기업 매출에 5~10%까지 부여될 가능이 있다. 혹은 1회 적발시 약 $4000~$5000정도의 경고 벌금을 부과하고 시정 요청을 할 수도 있다등 각양가지의 루머가 있습니다.
현재 베트남 정부가 Netflix, Google, Facebook 등의 기업에 세금 폭탄으로 단계적 압박을 하는 것을 보면 사이버보안법도 2022년쯤에는 서서히 해외 IT기업에게 위협을 주지 않을까는 저의 예상입니다.
사이버 보안법에 더 관심있는 분들을 위해 법의 원본과 번역본이 있는 세계법제정보센터의 자료 링크를 공유해 드립니다.
오늘 앞에 소개해 드린 “베트남 ICT 기업 협의회”를 통해 베트남 IT소식의 공유와 사이버보안법등의 공동 대응을 기대해 봅니다.
참석해 주신 분들과 세미나를 경청해 주신 분들께도 감사의 말씀을 드립니다. Youtube로 포스팅되면 링크 공유해 드리겠습니다.