News & 기고POST
Service Management Enterprise Solution 분야의 리더가 되겠습니다.
오픈 클라우드 플랫폼(K-PaaS) 기반 호환성/적합성 시험인증
오픈 클라우드 플랫폼(K-PaaS) 기반 호환성/적합성 시험인증
2023년도 초에 NIA의 공공과제 사업인 “공공부문 이용 SaaS개발/검증(공공SaaS트랙)“에 선정되어 6월 12일부터 12월 15일까지 사업을 수행하였습니다.
과제 사업을 하면서 가장 중요한 것은 단연 SaaS 전환이었습니다. 이는 기존 온프라미스에 설치해서 고객에게 제공하는 방식이 아닌 공동 자원을 이용하여 어디서든 쉽게 접근이 가능하도록 클라우드 기반에 서비스 제공 방식입니다.
과제 기간 동안 전환 과정을 거쳤고 SaaS 전환에 대해 대내외 검증이 필요하여 공인된 한국 클라우드 산업 협회의 “클라우드 서비스 확인제”와 한국정보통신기술협회의 “오픈 클라우드 플랫폼(K-PaaS) 기반 호환성/적합성 시험인증”을 받게 되었습니다.
말 그대로 “클라우드 서비스 확인제”는 해당 서비스가 클라우드 서비스에 적합하게 구성되어 있는지를 “K-PaaS 시험인증”은 K-PaaS 기반으로 구성이 되어 호환이 잘 되어 서비스가 실행되는지를 점검받았습니다.
여기에서는 이 중 “K-PaaS 시험인증”을 점검받으면서 여러 가지를 점검받았는데 점검항목 몇 가지에 대한 설명을 하겠습니다.
전체 점검 항목은 아래와 같습니다.
1. K-PaaS 구성
K-PaaS 기반에 SaaS를 설치하여 운영하고 있는지와 클러스터가 정상적으로 설치 및 운영되는지를 확인합니다.
이는 쿠버네티스 환경을 구성하고 마스터 노드와 워크 노드가 정상적으로 수행되는지를 점검합니다.
CSP를 이용한다면 콘솔에 들어가서 쿠버네티스 버전과 클러스터 구성을 확인하면 됩니다.
에스티이지는 네이버클라우드의 NKS(Ncloud Kubernetes Service)를 이용하여 구성하였기에 콘솔에 직접 들어가 버전 및 클러스터 정보를 확인할 수 있었습니다.
네이버클라우드 콘솔에 로그인한 후 Ncloud Kubernetes Service>Clusters 메뉴에 들어갑니다.
[그림 1] 클러스터 정보
[그림 2] 클러스터 정보
그리고 서버에 들어가 쿠버네티스 명령어로 확인이 가능합니다.
> kubectl cluster-info
: 쿠버네티스 클러스터 정보 조회
> kubectl get nodes
: 워크노드 조회
2. 컨테이너 기반 애플리케이션 배포
인프라에 CI/CD를 이용하여 애플리케이션을 배포하고 사용자는 수동 조작 없이 동일한 엔드 포인트로 해당 애플리케이션 사용이 가능한지를 확인합니다.에스티이지는 네이버클라우드의 SourceCommit에서 소스 형상관리를 하고 SourceBuild에서 빌드한 후 SourceDeploy로 배포를 수행하였습니다.
로컬에서 작업한 소스를 git으로 commit하여 형상관리를 합니다.
[그림 3] SourceCommit
SourceCommit에 있는 소스를 빌드를 합니다.
[그림 4] SourceBuild
빌드가 완료되면 파드 형태로 쿠버네티스에 배포를 합니다.
[그림 5] SourceDeploy
이러한 과정은 네이버클라우드의 SourcePipeline에 정의하여 수행하게 합니다.
[그림 6] SourcePipeline
3. 주요 기능
이 부분은 ITSM 서비스 중 주요 서비스를 보여주는 부분으로 에스티이지가 점검받은 세부항목은 총 10개로 그 중 “API 인증/인가” 부분에 대해서만 기술하겠습니다.“API 인증/인가” 부분은 로그인 시 세션으로 인증을 하는 것을 확인합니다.
에스티이지의 세션 정보는 네이버 클라우드의 Cloud DB for Redis 에 세션 정보를 저장하여 사용하고 있습니다.
세션을 확인하는 방법에는 Redis의 RedisInsight라는 툴을 이용하여 확인하였습니다.
웹 브라우저에서 세션ID를 확인하는 방법은 개발자도구의 Network 탭이나 Application 탭을 통해 알 수 있고 여기에서 기술하는 것은 생략하겠습니다.
개발자도구에서 알아낸 세션ID를 RedisInsight툴에서 실제로 조회를 해보면 나타납니다.
에스티이지는 보안상 Naver Cloud SSLVPN을 접속한 후 확인이 가능하게 됩니다.
검색창에 조회할 세션ID를 입력하여 조회할 수 있습니다.
[그림 7] Redis에서 세션 조회
4. 데이터 백업 및 복구
데이터 백업 및 복구에 대한 세부항목은 2가지로 사용자가 생성한 데이터에 대한 복구 그리고 사용자 계정 정보에 대한 복구를 확인합니다.
에스티이지는 네이버클라우드의 Cloud DB for Mysql(CDB)을 사용하는데 CDB는 일일 백업을 기본으로 수행을 합니다.
또한 백업한 파일을 보존하기 위해 데이터 센터가 다른 곳인 남부권에 소산 백업을 수행함으로서 데이터 손실을 방지하고 있습니다.
CDB의 복구는 아래와 같이 네이버클라우드 콘솔로 복구DB를 생성한 다음 필요한 데이터만 Export한 후 Import하는 방법과 신규 DB로 생성하여 접속 URL을 변경하는 방법이 있습니다.
간단하게 손실된 데이터를 아는 경우는 첫 번째 방법으로 수행하면 되고 전반적으로 데이터 손실이 많이 발생하게 되면 두 번째인 신규DB를 생성하여 URL을 변경하면 됩니다.
이번 설명에서는 간단히 인지한 데이터 손실에 대한 복구에 대해 기술하겠습니다.
네이버클라우드 콘솔로 로그인 한 후 Cloud DB for MySQL>Backup 메뉴로 들어갑니다.
[그림 8] 콘솔 메뉴
상세정보 보기에서 상세내역을 클릭합니다.
[그림 9] 백업 화면
복구할 백업파일을 선택한 후 상단의 Backup파일 복원을 클릭합니다.
[그림 10] 복구 대상 백업파일 선택
백업 대상이 되는 디비를 선택한 후 복원하기를 클릭합니다.
[그림 11] 백업파일 복구
10~15분 정도 복구DB 생성 작업이 실행되고 완료되면 DB Role이 Recovery라는 것으로 생성이 됩니다.
[그림 12] 복구DB 생성
생성된 복구DB에 접속을 합니다.
[그림 13] DBeaver 툴의 디비 접속화면
복구된 DB에서 복구가 필요한 데이터를 Export를 Insert문으로 생성하여 수행합니다.
[그림 14] 쿼리 생성
마지막으로 복구한 DB에 접속한 후 Insert 문을 실행하면 데이터를 복구할 수 있습니다.
5. 마지막으로
총 15개 세부항목에 대한 상세한 점검을 수행하여 K-PaaS 시험 인증 시험을 마치게 되었습니다.시험 이름이 K-PaaS라는 것에서 보는 것처럼 K-PaaS에 구성한 애플리케이션이 정상적으로 잘 동작하는 것과 PaaS의 활용을 주로 보는 시험이라는 것을 알 수 있습니다.
이상으로 “오픈 클라우드 플랫폼(K-PaaS) 기반 호환성/적합성 시험인증”에 대한 점검 과정을 소개해드렸습니다.