삼성SDS에서 제공하는 클라우드 네이티브에 관한 영상을 보고 끄적
개념적으로 정말 명료하게 잘 정리가 되어있다. (이제 구현하는 일만...)
Q. 클라우드를 처음 도입할 때 궁금한점
- 인프라를 자동으로 배포한다면 이건 어느 부서에서 전담하나요?
- 기존 온프레미스 환경과 클라우드를 어떻게 연결하나요?
- 기존 코드를 그대로 활용 가능한지? 새로운 툴을 배우는데 어려움은 없는지?
- 내부 인력은 준비되어 있는지? 없다면 어떻게 인력 충원하고 역량을 확보할지?
- 클라우드를 사용하려면 새로운 언어와 툴을 배워야 하는지?
1. 장애 상황에서도 지속적인 서비스를 제공할 수 있어야한다.
- '여러 지역' 서비스의 분산을 통해 안전하게 운영
- 멀티클라우드, 한 클라우드 업체 서비스 전체가 문제 생기는 경우를 고려하여 '안전하게 복수의 업체에서 운영'
- 프라이빗 클라우드는 모든 서비스가 제공되지 않기 때문에 이를 고려하면 좋다
2. 개발자의 컴퓨터에서 상용 서버까지 배포 과정, 자동화된 배포 프로세스
왜냐하면 하루에도 수십번, 많게는 수백번 코드 업데이트가 이뤄지는데 이 모든 작업을 수동으로 한다면 엄청난 낭비
3. 개발 조직과 운영 조직의 효율적인 커뮤니케이션을 돕는 솔루션 선택
- 전체 프로젝트 파악, 문제점 확인, 진행 일정 확인을 위한 대시보드 도입
클라우드 네이티브란,
마이크로서비스 아키텍처, 컨테이너, DevOps, CI/CD 등을 도입.
클라우드의 이점을 최대한 활용하여 애플리케이션을 개발, 운영하는 방식
이를 위해 필요한 요소:
1. DevOpS
클라우드 네이티브 구현을 위해서는 개발조직과 운영조직의 구분 없이 한 팀처럼 움직이는 데브옵스 개념
2. CI/CD
이를 실제로 구현한 CI/CD 개념 (소스 개발에서 서비스 적용까지 하나의 프로세스로 자동화한 방법론) 이해 필수적.
3. 컨테이너, MSA
멀티 클라우드나 온프레미스까지 자유롭게 확장 가능하고 안정적인 인프라 기술(컨테이너, 마이크로서비스 아키텍처)
물리 서버에서 서비스 운영할 때
평상시 운영체제의 사용량이 낮아 자원 낭비 발생. 서버 확장하는데 시간 비용 매우 큼
하이퍼바이저란?
가상머신을 생성하고 구동하는 소프트웨어
서버 한 대 추가 위해 기다릴 필요 없이 수 시간 내 사용 가능
서버 가상화 기술: 하나의 물리서버를 10대 혹은 20대 가상 서버로 사용 가능한 기술
기업들은 보통 클라우드 도입 초기에는 온프레미스 환경을 그대로 클라우드로 이전하기를 원함.
그러나 하이퍼바이저를 이용하면 단점이 있다.
가상 서버를 만든 동일한 하이퍼바이저 위에서만 실행 가능하다는 것.
(다른 업체의 하이퍼바이저에선 실행 안 됨)
vmware의 하이퍼바이저 위에서 운영되는 서버는, MS의 하이퍼V 환경에서는 실행하지 않다는 것.
다른 하이퍼바이저 환경에서 기존 가상서버를 운영하려면,
가상서버를 이전하기 위해 하이퍼바이저에 맞게 변환해서 사용해야 한다는 의미.
클라우드 업체는 다른 하이퍼바이저를 사용하기 때문에, 유연한 클라우드 네이티브 환경 구현을 위한 대안 필요.
그것이 바로 컨테이너
컨테이너를 실행하는 컨테이너 엔진이 같으면 어떤 클라우드에서든 사용이 가능하다
멀티 클라우드, 클라우드 네이티브에서 꼭 필요한 환경
컨테이너 기반의 인프라를 만든 후에는 빠른 애플리케이션 배포를 위해 Devops MSA CI/CD 등 사용
클라우드 네이티브 4가지 핵심 요소
1. 컨테이너
컨테이너란, 운영체제를 가상화한 개념 (운영체제가 아닌 하나의 실행파일, 가상 서버보다 빠른 실행속도)
가상 서버에서 실행되는 애플리케이션들을 가상 서버처럼 동작하게 만드는 것.
가상 서버를 만들기 위해서 하이퍼바이저를 사용했다면,
컨테이너를 만들기 위해 도커 엔진 사용.
2. 마이크로서비스 아키텍처 (MSA)
서비스 요청을 중간에서 전달해주는 API를 통해 서로 통신, 독립적으로 배포 가능
세부 기능 하나 업데이트 위해 전체 서비스 중지/재시작 비효율성을 줄이고,
개발 서비스 장애가 전체 서비스 장애가 되는 것을 방지
3. DevOps
4. CI/CD
여러 명이 각자 맡은 코드를 개발하고, 소스 코드를 통합한다.
그리고 합쳐진 코드는 배포 가능한 상태로 패키징. 이런 과정이 지속적으로 반복됨.
단순히 배포 뿐만 아니라 지속적인 모니터링과 테스트도 포함
전통적인 서비스 운영 방식과 MSA 차이
여러 대의 물리서버를 준비해서 부하 분산 장치에 연결
서비스 늘어나면 부하분산 장치에 연결, 없으면 제거 후 다른 용도로 사용
가상서버들에서 실행되는 컨테이너들 역시 가상서버와 함께 변함.
인프라 관리가 매우 용이
로그인 기능을 추가/수정하더라도 결제 기능에는 전혀 영향을 주지 않음
클라우드 네이티브 도입의 장점
1. 경쟁 우위 확보
클라우드 네이티브는 빠른 배포와 자동화된 인프라 환경으로 인해
생산성을 높이고 이를 통해 시장 진입 시기를 앞당길 수 있다.
또한 고객 VOC를 제품 개발에 반영, 지속적인 서비스 개선을 통해 서비스 품질 향상과 고객 경험을 극대화
2. 유연성
어떤 클라우드에서도 추가 개발이나 코드 수정 없이 실행될 애플리케이션을 빌드 가능
멀티 클라우드, 하이브리드 환경에서 애플리케이션 배포 가능하기 때문에
클라우드 서비스 장애 시 온 프레미스나 다른 클라우드를 통해
서비스를 빠르게 이전하고, 장애로 인한 고객 불만을 줄일 수 있음
3. 개발에 집중
개발자는 고객가치를 높일 수 있는 코드 작성에 집중 가능
4. 비즈니스에 집중
엔지니어의 실수에 의한 장애 및 단순 운영 업무를
프로세스 전반에 걸친 자동화를 통해 줄이고, 애플리케이션 개선 및 비즈니스 혁신에 집중 가능
삼성SDS에서 클라우드 보호
1. 탄력성:
보안의 대상이 늘 변경될 수 있음을 의미한다.
언제 새로운 리소스가 생성되었는지 추적을 잘 해야 보호 가능. 오토 스케일링이 되는 만큼 보안도 자동화 필수
2. 외부 공개
클라우드는 언제 어디서나 접속할 수 있지만, 해커들도 언제 어디서나 접속이 가능하다.
잘못된 보안 설정 때문에 관리자 권한 탈취 예방 필수적
3. 자원 공유
만에 하나 CSP 보안에 문제가 발생할 수 있으니 이를 대비하여 암호화된 데이터 전송과 저장 필수
4. 자가 운영 & 종량제 요금
자가운영이 가능하다는 것은 온프레미스 환경의 사전검토 / 승인 절차가 더이상 통용되지 않는다는 것을 의미.
그 때문에 DevSecOps같은 새로운 체계가 필요해짐.
종량제 요금 또한 클라우드의 새로운 챌린지가 될 수 있는데.
.
보안은 초기 투자 때문에 정액제로 제공되는 경우가 많기 때문이다.
요약하면 클라우드 보안은 클라우드스럽게 할 수밖에 없다는 것.
'컴퓨터사이언스 > Cloud' 카테고리의 다른 글
그래서 MSA가 무엇인가요? (특징과 장단점 모두 명확히 알고 써라) (0) | 2025.04.06 |
---|---|
도커 컨테이너와 쿠버네티스의 역할 (0) | 2025.03.27 |
클라우드 동향과 서비스 모델에 대하여 (0) | 2025.03.24 |
Azure 웹앱 배포 안되는 이유를 모를 때, 로그를 보자. (0) | 2025.02.17 |
어느 에이블러의 지혜 (AI 실험 설계 시 도커 이미지 활용 경험) (0) | 2025.02.04 |