IT Story/Fogin.Wiki

클라우드 네이티브

포긴 2024. 3. 26. 13:37

클라우드 네이티브 아키텍처

[정의]
- 클라우드 컴퓨팅을 활용하여 "퍼블릭, 프라이빗, 하이브리드와 같은 현대적이고 역동적인 환경에서 확장 가능한 애플리케이션을 구축하고 실행"하는 소프트웨어 아키텍처
- 마이크로서비스라는 여러 개의 상호 의존적인 소규모 서비스로 구성

[기술요소]
- 변경 불가능한 인프라, 마이크로서비스, 선언형 API, 컨테이너 및 서비스 메시 (출처: CNCF)
1. 코드형 인프라(IaC):  변경 불가능한 인프라. 클라우드 네이티브 애플리케이션을 호스팅하는 서버가 배포 후에도 변경되지 않은 상태로 유지
2. 마이크로서비스: 소규모이며 구체적인 문제를 중점적으로 처리. 마이크로서비스 중 하나에 장애가 발생하더라도 애플리케이션이 계속 작동
3. 애플리케이션 프로그램 인터페이스(API): 둘 이상의 소프트웨어 프로그램이 서로 정보를 교환하는 데 사용하는 방식
4. 서비스 메시: 여러 마이크로서비스 간의 통신을 관리하는 클라우드 인프라의 소프트웨어 계층. 개발자는 애플리케이션에 새 코드를 작성하지 않고도 서비스 메시를 사용하여 추가 기능 도입 가능
5. 컨테이너: 클라우드 네이티브 애플리케이션에서 가장 작은 컴퓨팅 유닛. 
                  + 클라우드 네이티브 시스템에서 마이크로서비스 코드 및 기타 필수 파일을 패키징하는 소프트웨어 구성 요소

*클라우드 네이티브 컴퓨팅 재단(Cloud Native Computing Foundation, CNCF)
   2015년에 설립된 CNCF는 Kubernetes를 비롯한 주요 클라우드 네이티브 구성 요소를 개발하는 오픈 소스 커뮤니티 지원

[클라우드 네이티브 애플리케이션의 주요 이점]
- 플랫폼 독립성, 복원력, 표준기반, 비즈니스 민첩성, 자동화, 무중단, 비용 효율적인 운영
1. 구축 속도와 최종 사용자호환성의 대폭적인 향상
   - 서로 다른 운영 체제의 여러 버전에서 일관되게 사용할 수 있고 호환되는지 걱정할 필요가 없음
   - 운영 체제와 브라우저 또한 클라우드 기반 배포(그리고 사용자가 백그라운드에서 업데이트를 선택하는 경우가 많음)의 이점 덕분에 가능한 모든 하드웨어와 운영 체제 구성을 예상하는 작업이 이전보다 훨씬 간단해짐
2. 신속하고 원활하게 업데이트를 배포
   - 업데이트 배포가 백그라운드에서 실행되어 클라우드의 속도에 맞춰 진행되므로 개발자와 사용자 모두가 상당한 이점

[컨테이너의 이점]
- 기존 애플리케이션 배포 방식보다 적은 컴퓨팅 리소스 사용
- 거의 즉시 배포 가능
- 애플리케이션에 필요한 클라우드 컴퓨팅 리소스를 보다 효율적으로 확장할 수 있음

출처: https://newsroom.koscom.co.kr/30359


[클라우드 네이티브 개발 방식]
- 문화변화가 중요: 특정 소프트웨어 개발 방식을 도입하여 소프트웨어 제공에 소요되는 시간을 단축하고 변화하는 사용자 기대치를 정확하게 충족하는 기능을 제공
1. 지속적 통합(CI): 개발자가 오류 없이 자주 변경 사항을 공유 코드 베이스에 통합하는 소프트웨어 개발 방식
2. 지속적 전달(CD): 클라우드 네이티브 개발을 지원하는 소프트웨어 개발 방식입
3. DevOps: 개발 및 운영 팀의 협업을 개선하는 소프트웨어 문화
4. 서버리스 컴퓨팅: 클라우드 제공업체가 기반 서버 인프라를 전적으로 관리하는 클라우드 네이티브 모델


[클라우드 네이티브 스택]
- 개발자가 클라우드 네이티브 애플리케이션을 구축, 관리 및 실행하는 데 사용하는 클라우드 네이티브 기술 계층

1. 인프라 계층 : 클라우드 네이티브 스택의 기반. 서드 파티 클라우드 제공업체가 관리하는 운영 체제, 스토리지, 네트워크 및 기타 컴퓨팅 리소스로 구성
2. 프로비저닝 계층: 클라우드 환경을 할당하고 구성하는 다양한 클라우드 서비스로 구성
3. 런타임 계층: 컨테이너가 작동할 수 있는 클라우드 네이티브 기술 제공. 클라우드 데이터 스토리지, 네트워킹 기능, 그리고 컨테이너화된 리소스와 같은 컨테이너 런타임 포함
4. 오케스트레이션 및 관리 계층: 다양한 클라우드 구성 요소를 통합하여 하나의 유닛으로 작동하도록 하는 역할. 개발자는 Kubernetes와 같은 오케스트레이션 도구를 사용하여 다양한 시스템에서 클라우드 애플리케이션을 배포, 관리 및 확장
5. 애플리케이션 정의 및 개발 계층 : 클라우드 네이티브 애플리케이션을 구축하기 위한 소프트웨어 기술로 구성. 데이터베이스, 메시징, 컨테이너 이미지, 지속적 통합(CI) 및 지속적 전달(CD) 도구와 같은 클라우드 기술을 사용하여 클라우드 애플리케이션을 구축
6. 관측성 및 분석 도구: 클라우드 애플리케이션의 시스템 상태를 모니터링 및 평가하고 개선. 개발자는 도구를 사용하여 CPU 사용량, 메모리, 지연 시간 등의 지표를 모니터링함으로써 앱의 서비스 품질에 문제가 없는지 확인


[클라우드 네이티브 보안의 핵심 요소]

1. 제로 트러스트 보안: 
- 네트워크 경계 안팎의 그 어떤 사용자나 장치도 믿지 않는 원칙. 
- 액세스 제어 적용, ID 검증, 인증 메커니즘(다단계 인증)을 적용하여 리소스 및 애플리케이션을 안전하게 보호.  
- ID 및 액세스 관리(IAM) 솔루션, 암호화, 보안 커뮤니케이션 프로토콜 등 기타 믿을 수 있는 기술로 이동 또는 저장 상태의 데이터를 안전하게 보호. 
2. 코드형 인프라(IaC)
- 인프라 리소스를 관리 및 프로비저닝하기 위해 표준화 및 자동화된 접근법 제공. 
- 코드로 보안 구성을 지정하여 인프라 리소스 전체에서 보안 관행을 구현. 보
- 안 패치 및 개선 사항을 위해 버전 관리를 업데이트 및 유지. 
- 또한 보안 테스트(침투 테스트 및 취약성 평가)를 수행하여 병목 현상을 파악하고 해결하는 데도 중요한 역할. 
3. 지속적인 모니터링: 
- 보안 위협 및 취약성에 대해 애플리케이션 및 인프라를 스캔하여 애플리케이션 및 인프라의 중단 없는 보안 지원
- 조직은 IDPS(침입 탐지 및 방지 시스템) 및 SIEM(보안 정보 및 이벤트 관리) 툴을 사용하여 위협을 감지하고 의심스러운 활동에 대한 경고를 받을 수 있음. 

[클라우드 네이티브 서비스]
1. 컨테이너 레지스트리: 
- 컨테이너 레지스트리는 컨테이너 이미지 저장 및 관리를 위한 중앙화된 리포지토리를 제공
- 개발자가 컨테이너 이미지를 저장, 버전 관리, 구축하도록 지원하여 여러 환경에서 일관성을 제공하고 컨테이너화된 애플리케이션 개발을 촉진
- 컨테이너 레지스트리는 주로 액세스 제어, 이미지 스캔, 컨테이너 오케스트레이션 플랫폼과의 통합과 같은 기능을 제공
2. 알림: 
- 알림 서비스는 실시간 경고, 메시지, 알림을 사용자 또는 시스템에 제공하여 주로 이메일, SMS, 푸시 알림, 웹 후크 등 다수의 배포 채널을 제공
- 시기 적절한 커뮤니케이션을 촉진하며 시스템 이벤트, 애플리케이션 업데이트, 사용자 참여 등 다양한 목적으로 알림을 전송할 수 있음
3. 스트리밍: 
- 스트리밍 서비스는 실시간 데이터 처리 및 분석을 지원
- 지속적인 데이터 스트림으로부터 확장 가능하고 효율적인 방식으로 인사이트를 수집, 처리, 추출할 수 있음
- 스트리밍 서비스는 주로 실시간 분석, 이벤트 기반 아키텍처, IoT 데이터 처리, 그리고 인터랙티브 애플리케이션 구축(짧은 대기 시간 데이터 처리를 요함) 등에 사용
4. 컨테이너 엔진: 
- Kubernetes 등 컨테이너 엔진은 컨테이너화된 애플리케이션의 구축, 조정, 관리를 자동화하는 오케스트레이션 플랫폼으로, 머신 클러스터 전반에서 컨테이너를 예약 및 배포하기 위한 필수 인프라 및 툴을 제공
- 고가용성, 부하 분산, 효율적인 리소스 활용을 보장합니다. 컨테이너 엔진은 컨테이너 라이프 사이클 관리, 서비스 발견, 수요 기반 조정 처리.
5. 함수: FaaS(서비스형 함수) 플랫폼 또는 서버리스 플랫폼은 개발자가 기반 클라우드 네이티브 인프라를 관리하지 않고 개별 코드 유닛으로 함수를 구축 및 실행하도록 지원
- 서버리스 모델은 개발자가 서버 프로비저닝 또는 관리 없이 특정 기능 구현을 위한 코드 작성에만 집중하도록 지원. 
- 함수는 일반적으로 이벤트 처리, 데이터 전환, 서버리스 아키텍처 구축에 사용됩니다.


[참조]
https://aws.amazon.com/ko/what-is/cloud-native/
https://www.hpe.com/kr/ko/what-is/cloud-native.html
https://newsroom.koscom.co.kr/30359
https://www.globalict.kr/product/product_list.do?menuCode=030200

반응형

'IT Story > Fogin.Wiki' 카테고리의 다른 글

클라우드 버스팅  (1) 2024.03.26
Confidential Computing  (0) 2024.03.25
사이버 위험(Cyber Risk)  (0) 2022.08.30
디지털 트윈(digital twin)  (0) 2022.06.21
사이버 탄력성(Cyber Resilience)  (0) 2022.04.06