KT 에이블스쿨 복습

[0514 복습] 클라우드 서비스_DX, 가상화, 분산처리, 오토스케일링, 서버리스, 로드 밸런싱, 데브옵스, 계정 보안

리니끄적 2024. 5. 14. 18:50

클라우드 서비스 1일차 

클라우드 서비스

DX 정의

= Digital Transformation = 디지털 전환을 통한 비즈니스 모델 변화/혁신

① 고객/사용자 중심 + ② 변화에 민첩/유연한 대응 + ③ 지속적인 차별화/혁신

 

DX 성공사례

- 데이터 기반의 고객 경험 향상, 혁신을 위한 지속적인 노력
ex) 스타벅스, 이케아, 나이키, 도미노

 

DX를 위한 필수요건

- 조직, 프로세스 및 기술에 대한 새로운 접근 방식을 통해 더 나은 비즈니스 결과 실현

- Experience / Tecnology / People / Process 4가지 측면에서 고려하며 DX를 실행해야 함

 

DX 핵심 기술

- Cloud Computiong: 클라우드 컴퓨팅은 DX 실현을 위해 가장 중요한 핵심 기반 기술 중 하나임

ex) IoT, Security, Autiomation, VR/AR, Web/Mobile services, AI/ML, Big data 등

 

전통적인 IT 환경; 데이터 센터

- 기업에서 IT 서비스를 제공하고 관리하기 위해 서버와 스토리지, 네트워크 장비 등의 인프라를 설치하고 운영하는 물리적인 시설 (서버가 보통 수천 대)

- IT 장비 이외에도 전력, 환풍 및 냉각 시스템, 백업 발전기 등의 시설, 재해복구(DR) 센터 구축, 많은 운영 인력이 필요하기 때문에 대규모 투자가 지속적으로 요구됨

 

전통적인 IT 환경; 데이터 센터

인프라 애플리케이션 IT 조직
- 서버, 스토리지, 네트워크 등 인프라 자체 도임을 위한 사전 평가, 구축, 운영, 업그레이드를 직접 수행 - 애플리케이션 개발 환경(플랫폼과 도구) 구성
- 개발, 테스트, 배포, 안정화
- 기획, Architect, 인프라, 개발, QA, 보안 등
- IT 운영/보안 인력

 

- IT 서비스 구현에 많은 시간이 걸려 신속한 서비스를 제공하는데 한계가 존재

- 전통적인 On-Premise(온프레미스)에서는 예측하기 어려운 트래픽 변동!
- 비즈니스 요구(수요) 변화에 대한 정확한 사전 예측, 즉각적인 대응이 어려움

ex) 2018 러시아 월드컵 한국과 독일의 조별 예선전 진행 중 네이버 메인페이지 트래픽 변화

 

 

 

클라우드 컴퓨팅 정의

- 클라우드 컴퓨팅은 IT 리소스를 인터넷을 통해 온디맨드(주문형)으로 제공하고, 사용한 반큼만 비용을 지불하는 것

- 물리적 데이터 센터와 인프라를 구축, 소유 및 유지 관리하는 대신 클라우드 서비스 공급자가 제공하는 컴퓨팅, 스토리지, 네트워킹 등의 IT 리소스와 다양한 기술 서비스를 활용하는 방식

 

클라우드 컴퓨팅 이점

① 민첩성(Business Agility)

- 클라우드를 통해 컴퓨팅, 스토리지 및 데이터베이스와 같은 인프라 리소스부터 머신 러닝, 데이터 레이크 및 분석 등에 이르기까지 필요한 리소스와 서비스를 빠르게 활용할 수 있음

- 단 몇 분 만에 원하는 기술 서비스를 배포할 수 있으며 이전보다 몇 백배나 더 빠르게 아이디어를 구현할 수 있어 고객 경험을 차별화하고, 비즈니스를 혁신할 수 있음

ex) 모더나의 백신 개발

 

② 탄력성(Elasticity)

- 클라우드 컴퓨팅을 사용하면 서비스를 안정적으로 유지하기 위해 리소스를 사전에 오버 프로비저닝할 필요가 없으며 대신 실제로 필요한 만큼 리소스를 프로비저닝할 수 있음

- 비즈니스 요구가 변화함에 따라 이를 위한 리소스를 확장하거나 축소하여 용량을 즉시 늘리거나 줄일 수 있음

→ 서비스 안정성, 가용성, 성능, 품질 향상을 도모하고 비용을 최적화할 수 있음

ex) Zoom의 코로나 이후 서버 용량 추가

 

③ 비용 최적화(Cost Optimization)

- 클라우드를 통해 고정 비용(데이터 센터, 물리적 서버 등의 인프라 투자)을 가변비용으로 전환할 수 있음 (IT CAPEX를 OPEX로 전환)

- 종량 과금제를 통해 사용한 만큼만 IT비용을 지불할 수 있으며 규모의 경제로 인해 직접 운영할 때보다 가변 비용을 지속적으로 절감할 수 있음

→ 여러 기업의 사례를 통해 온프레미스 대비 30~60%의 비용절감 효과를 제시

ex) KBS의 클라우드 사용

 

 ④ 전 세계에 배포(Deploy globally)

- 클라우드 사용하면 몇 분 만에 서비스를 글로벌하게 확장하고 배포할 수 있음

- 클라우드 벤더가 전 세계에 구축한 대규모 인프라를 활용하여 사용자는 클릭 몇 번으로 여러 물리적 위치에 애플리케이션을 배포할 수 있어 지연시간을 단축하고 고객 경험을 개선

- 고가용성 인프라 환경을 쉽게 조성하고 재해 복구(DR) 체계

ex) 넷플릭스의 글로벌 스트리밍 서비스 클라우드 전환 (달에 4000만 달러 지불..ㄷㄷ)

 

⑤ 애플리케이션에 집중(Application focused)

- 인프라가 아니라 비즈니스 차별화!

- 즉 수많은 인프라를 배포 및 관리하느라 시간을 허비하지 않고 고객에게 필요한 서비스 개발에 더욱 집중할 수 있음

- 클라우드 상에서 일회성으로 리소스를 생성하여 신속하게 다양한 실험을 수행할 수 있어 애플리케이션 개발에 집중할 수 있는 환경 제공

- 언제든지 리소스를 생성, 수정, 삭제할 수 있음 (가상머신 VM의 경우는 초당 과금됨, 중단하면 과금 X)

ex) 현대카드의 '플레이그라운드' 리서치 플랫폼

 

 

클라우드 시장 전망

- 글로벌 IT 시장조사 연구기관 Gartner(가장 신뢰하는 보고서) 세계 클라우드 시장 규모 2025년에 8375억 달러 (약 1068조원)까지 성장할 것으로 예상

- 국내 전체 클라우드 시장 역시 2025년 11조 6000억원 규모로 급성장할 전망

- 2025년 국내 IT 인프라 시장의 60%가 클라우드 환경으로 도입/전환될 것(한국 IDC)


클라우드 퍼스트 전략

- 클라우드 퍼스트 전략은 기업의 비즈니스 경쟁력 강화를 위해 새로운 애플리케이션을 개발하거나 현재 사용하는 애플리케이션을 개선할 때 클라우드 기반 솔루션을 최우선으로 검토 및 고려한다는 것을 의미

- 최근 국내외 디지털 트랜스포메이션을 추구하는 수많은 기업들이 클라우드 퍼스트 전략을 천명하고 앞다투어 기존 IT 환경을 클라우드 환경으로 전환하고 있음

 

클라우드 서비스 모델

 

 

- IaaS: 네트워크, 서버, 스토리지 같은 물리적인 인프라 환경을 서비스 형태로 제공, 초록색만 고객이 하면 됨!

 

- PaaS: 인프라 뿐만 아니라 소프트웨어 개발에 필요한 플랫폼 환경까지 서비스 형태로 제공, DB구축하고 애플리케이션 개발만 고객이 하면 됨!

 

- SaaS: 인프라부터 애플리케이션까지 전체를 서비스 형태로 제공하며 고객은 서비스를 구독 형태로 구매하여 원하는 기능을 활용, 완성된 애플리케이션을 서비스 형태로 고객이 쓰는 것! (구독)

 

 

 


클라우드 배포 모델

- 각 기업에서 추구하거나 활용하는 클라우드 환경은 사용자의 접근성, 적용 방식 및 제약에 따라 퍼블릭 클라우드(Public Cloud)와 프라이빗 클라우드(Private Cloud)로 분류

- 최근 기업의 클라우드 환경은 이들을 조합한 하이브리드 클라우드와 멀티 클라우드로 점차 전환되고 있음

  퍼블릭 클라우드 프라이빗 클라우드
특징 - 대중적으로 사용(누구나 사용 가능)
- 클라우드 공급자(CSP) 인프라 및 제공 서비스 활용
- 아마존 웹서비스(AWS), 마이크로소프트 애저(Azure), 구글 클라우드 플랫폼(GCP)
- KT 클라우드, 네이버 클라우드 등
- 특정 조직에서 자신의 데이터 센터에 직접 클라우드 환경을 구축하여 활용하는 형태
- 엄격한 규제와 통제 적용이 필요한 경우, 보안이 필요할 때 사용
- 특정 기업 내부에서 구축, 정부 전용으로 구축한 G-클라우드
장점 - 빠른 실행, 유지 관리 용이
- 유연한 리소스 활용
- 사용량에 따른 비용 지불 등
- 비즈니스 특성에 맞는 클라우드 환경 조성
- 강력한 보안성 유지
단점 - 데이터가 외부에 존재하는 보안 측면의 리스크 - 구축을 위한 시간과 비용 ↑
- 구축, 관리를 위한 많은 전문 인력 필요

 

 

 

 

 

 

- 초창기 퍼블릭 클라우드는 스타트업이나 중소기업이 선호

- 보안이 무엇보다 중요하고 이미 정보 시스템 및 인력에 대한 투자를 많이 해놓은 글로벌 기업과 대기업은 프라이빗 클라우드를 선호

- 하지만 최근 글로벌 기업과 대기업들도 '클라우드 퍼스트' 전략을 외치면서 적극적으로 퍼블릭 클라우드 서비스를 도입하는 방향으로 변화

 

 

 

 

 

 

 

- 하이브리드 클라우드는 퍼블릭 클라우드에 프라이빗 클라우드 혹은 온프레미스 환경(자체 구축 및 운영) 결합한 클라우드 유형

- 중요하고 민감한 정보를 다루는 서비스는 프라이빗 클라우드나 온프레미스 환경에서 구축하고, 그렇지 않은 서비스는 퍼블릭 클라우드를 활용함으로써 비용을 절감하고 보안성을 유지

 

 

 

 

→ 각종 규제, 데이터 주권, 보안 등의 우려로 퍼블릭 클라우드 도입을 주저하는 기업에서 좋은 대안으로 평가받아 새로운 트렌드로 부상 중

→ 하지만 상이한 기술 플랫폼 환경을 연계, 통합해야 하는 어려움과 각기 다른 시스템을 관리해야 하는 운영상의 복잡성 존재, 체계적인 전략에 따른 구축 필요

 

 

 

 

 

 

- 멀티 클라우드는 서로 다른 다수의 퍼블릭 클라우드를 결합해서 사용하는 유형

- 각 퍼블릭 클라우드 업체의 장점을 적절히 선택하여 원하는 서비스를 각각 구축하고 이들을 연계 및 통합하여 관리 (표면적인 이유)

- 글로벌 클라우드 매니지드 서비스 업체 플렉세라가 공개한 '2020 클라우드 현황 보고서'에 따르면 조사 상 기업 750개 중 93%가 멀티 클라우드 전략을 고려하고 있는 것으로 나타남

 

 

 

 

 

  단일 클라우드 멀티 클라우드
기술 - 단일 플랫폼에 집중된 기술 활용 - 크로스 플랫폼 구축/운영 기술 필요
관리 - 구축/운영 시 복잡성 감소 - 공급자에 Lock-in이 되지 않고 위험을 분산할 수 있음
(가장 많이 사용하는 DB: 오라클, 사용 중인 DB에 종속되어 업체 변경에 어려움을 느낄 수 있음)
- 통합 관리 환경 구축이 어려움
비용 - 대규모 구매 시 할인이 용이  - 관리 비용 및 운영 비용 증가

 

→ 각 서비스 특성, 장단점, 통합 관점을 고려한 멀티 클라우드 전략 수립 필요

 

 

 

클라우드 벤더 역량 평가

2023 Gartner Magic Quadrant 클라우드 인프라트럭처 및 플랫폼 서비스 부문

→ 시장 점유율 AWS 32%, Azure 22%, Google Cloud 11%, Alibaba Cloud 4%, IBM Cloud 3%

 

 


아마존 웹서비스(AWS)

1) 선발 주자 선점 효과

- 2006년 아마존 내부 IT 인프라의 남는 컴퓨팅 자원이나 관리 기법을 외부에 서비스 형태로 판매 시작
  (MS Azure는 2010년 출시)

- 전 세계 대규모 데이터센터 구축을 통해 보다 낮은 가격에 경쟁력 높은 서비스를 제공하는 선순환 단계를 확보하여 빠르게 고객을 확대

2) 개발자 생태계를 초기에 장악

- 실리콘밸리의 스타트업 중 70% 이상이 AWS를 사용할 정도로 스타트업 기업들의 AWS 사용률은 압도적인 수준임

- 개발자 생태계를 통해 자연스럽게 다양한 기능과 서비스가 누적되어 현재 가장 많은 서비스를 제공하는 클라우드 플랫폼으로 발전 (VOC를 거의 모두 수용해 반영)

3) 고객 피드백 기반의 서비스 개발

- 고객 피드백 기반의 신속한 서비스 개발이 AWS의 근본적인 클라우드 전략

- 철저하게 고객들이 원하는 제품을 중심으로 카테고리를 확장시켜 나간 CEO 제프 베조스의 경영 철학이 클라우드 서비스에서도 재현

 

 

마이크로소프트 애저(Azure)

1) 두터운 기존 고객층

- 압도적인 'Window OS'와 'MS Office'사용 고객 (운영체제, 서비스)

- Windows 사용자가 Azure 사용시 누리는 다양한 장점(ex. 호환성, 라이선스, 유사한 관리 환경) 활용

2) SaaS 시장에서의 강점을 융합

- SaaS 시장에서의 강점을 IaaS/PaaS로 확장

- ex.MS SaaS 제품인 Office 365 등을 Azure AD(Active Directory)와 연동하게끔 유도하여 번들로 판매

3) 하이브리드 클라우드 시장 선점

- 하이브리드 클라우드를 위한 지원과 능력을 보유(Azure Stack)

- Windows 기반 엔터프라이즈 기업들의 하이브리드 클라우드 전환이 보다 용이

 

 

구글 클라우드 플랫폼(GCP)

1) 오픈소스 생태계 주도

- 쿠버네티스, 하둡, 텐서플로우 등 오픈소스 기술 공유에 대한 구글의 공헌 및 시장 지위

- 이러한 기술력을 바탕으로 클라우스에서 관리형 서비스를 제공

2) Big data 분석 & AI 경쟁력

- BigQuery, Dataflow, Looker 등의 빅 데이터 분석 관련 제품들에 대한 경쟁력 및 고객의 신뢰도

- 다양한 머신러닝 API를 제공하여 클라우드 상에서 AI를 더 쉽게 활용

3) Hybrid & Multi Cloud 지원

- Anthos를 활용하여 하이브리드 클라우드 혹은 AWS, Azure에서도 워크로드를 관리할 수 있는 멀티 클라우드 환경 지원

 

 

국내 퍼블릭 클라우드 시장 전망

- 국내 퍼블릭 클라우드 시장은 연평균 성장률 155%로 각 영역별로 고르게 성장 중임

- 국내 퍼블릭 클라우드 시장에서도 글로벌 클라우드 업체(Big3)들이 시장을 선점하여 강세인 상황(80% 이상)

- 하지만 공공과 금융권이 국내 클라우드 산업계를 성장시킬 마중물 역할을 하고 있어 토종 업체들이 이를 기반으로 국내 시장에서 경쟁력을 갖추게 될 것으로 기대됨

 

 

공공 클라우드 시장 

- 공공 클라우드 시장 확대
: 공공정보시스템 클라우드 전면 전환은 정부가 '디지털 뉴딜'과 '디지털 정부혁신 발전계획 과제의 하나로 추진하는 사업

: 행정, 공공기관이 운영하고 있는 모든 정보 시스템(1만 9개)의 46%를 2025년까지 민간 클라우드 센터로 전환할 계획이며 5년간 총 8600억원의 예산이 투입될 것으로 추산

: 다만 정부가 운영하는 공공 클라우드 센터(54%)에 할당된 비율이 더 큼, 규제로 인해 사실상 내부 업무시스템에는 민간 클라우드를 쓰기 어려운 구조여서 현행 규정 개정이 필요

 

- 클라우드 서비스 보안인증 취득 의무화

: 클라우드 서비스 보안인증(CSAP)은 공공기관에 안정성 및 신뢰성이 검증된 민간 클라우드 서비스를 공급하기 위해 마련한 제도

: 공공기관에 클라우드 서비스를 공급하려면 CSAP 인증을 받아야 하며, 인증을 받기 위해서는 물리적 망분리, 물리적 위치(국내), 보안 공통평가기준 인증 등의 기준을 충족해야 함

- 하지만 외국계 클라우드 기업은 인증 기준을 충족하기 어려워 완벽하게 인증 받기 어려움, 인증 받은 기업은 대부분 국내 기업 ex) KT, 네이버 클라우드, 카카오, NHN 클라우드, LC CNS 등

 

 

금융 클라우드 시장 

- 금융 클라우드 시장 전면 개방

: 현재 금융권은 비용 절감, 데이터 기반 비즈니스 확대, 고객 경험 개선, 내부 운영 프로세스 효율화 등을 위해 활발하게 클라우드 도입을 추진중

: 과거 금융사들은 고객 정보 유출 막기 위해 중요 데이터는 자체 서버로만 관리, 외부업체의 서버에는 위탁 X 규제

: 2019년 관련 규정이 개정되고 가이드라인이 마련되어 금융사들은 정보안전 기준을 충족한 클라우드 기업에 고객의 신용정보 등을 위탁해 저장, 관리할 수 있게 되었음

① 개인신용정보 등 금융정보 처리하는 경우 해당 시스템은 국내에 설치

② 업무 및 데이터가 처리되는 물리적 위치를 기재하고 요청 시 세부 위치를 제출

③ 장애 및 보안사고 발생 시 신속한 대응을 위해 시스템 관리 인력을 국내에 두고, 원활한 사고 대응을 위해 해당 인력의 관리 시스템 접근 권한을 확보

 

보안 이슈 및 장애 조치에 대한 우려

- 글로벌 클라우드 업체의 경우 본사 지침상 공식적으로 국내 데이터센터 위치 절대 오픈 X

- 서버 안에 데이터를 직접 통제, 의사결정 내릴 수 있는 권한이 외국 본사에 있어서 금융사고 발생 시 즉각적인 대응 X

- 글로벌 업체가 원격으로 정보 열람해도 통제 불가능, 미국과 중국에 본사가 있는 해외 클라우드 업체들은 현지 감도긱관이나 수사기관이 수사 등을 이유로 국내 금융 고객들의 개인정보, 영업기밀을 들여다 볼 수 있다는 우려가 있음

→ 국내 클라우드 업체들의 '안정성', '신속 대응' 등의 장점을 앞세워 시장 공략 중

 

 

국내 클라우드 업체 동향

- KT, NHN 클라우드 자회사 출범(경쟁력 높이기 위해) 네이버 클라우드와 함께 경쟁 구도, 최근 카카오 엔터프라이즈도 클라우드 시장 진출해 더욱 치열한 경쟁 중

- 2023년 KT 클라우드, 네이버 클라우드, NHN 클라우드 3사의 클라우드 매출은 약 1.5조원대

 

  CSP MSP
의미 - Cloud Service Provider
- 클라우드 서비스 제공업체
- Managed Service Provider
- 클라우드 관리 서비스 제공업체
역할 - 자체 데이터 센터를 통한 IaaS, PaaS 등의 서비스를 제공 -고객사 시스템을 CSP 클라우드로 이관하기 위한 컨설팅,
전환, 구축 및 운영 관리 수행 
업체 - KT 클라우드, NHN 클라우드, 네이버 클라우드,
카카오 엔터프라이즈 등
 - 삼성 SDS, LG CNS, SK C&C 등
- 메가존 클라우드, 베스핀 글로벌 등

 

→ 성공적인 클라우드 전환을 위해 기술력과 경험을 갖춘 CSP, MSP 선택이 중요

 

 

 

 

가상화

- 가상화: 물리적 하드웨어를 보다 효율적으로 활용할 수 있도록 해주는 클라우드의 핵심 기술로 가상화를 통해 서비스를 필요한 리소스를 가상 환경에서 생성하고 관리할 수 있음

- 가상화 유형은 서버 가상화, 네트워크 가상화, 데스크탑 가상화 등 다양

1) 서버 가상화

- 물리적 서버 위에 여러 개의 가상머신(VM)을 두고  각각의 가상머신은 서로 영향을 주지 X

- 가상화 이전
: 안정성, 성능 등을 고려해 1개의 서버에는 1개의 운영 체제, 1개의 애플리케이션을 구동

: 1개의 OS가 모든 하드웨어 자원을 관리, 하드웨어 리소스 측면의 낭비가 발생하고 다수의 서버를 관리해야 하는 비효율성이 존재

- 가상화 이후

: 한 개의 물리적 서버 위에 다수의 가상 서버를 생성하여 애플리케이션을 독립적으로 실행
(서로 다른 운영체제 기반의 다양한 기술 스택을 적용한 애플리케이션을 실행)
: 컴퓨팅 자원의 사용률을 최대화하고 물리적인 서버의 개수를 줄임으로써 비용을 절감, 각각 독립적인 실행 환경 가짐

 

하이퍼바이저

- 물리적 머신에서 다수의 운영체제를 동시에 실행하기 위한 논리적 플랫폼
- 가상머신을 생성하고 구동하는 소프트웨어!

** 하이퍼바이저1에 있는 가상머신(VM)을 하이퍼바이저2로 이동하고 싶으면 두 하이퍼바이저의 종류가 같아야 함!

**멀티/하이브리드 클라우드에서는 하이퍼바이저 종류가 다르기 때문에 VM이동에 제약 → 제약 받지 않는 기술: 컨테이너

 

- 가상머신을 생성하고 구동하기 위해 필요한 리소스(CPU, 메모리, 스토리지 등)를 물리적 리소스에서 할당 받아 제공(배분)

- 가상머신(VM)과 하드웨어 간 I/O 명령을 처리하고 VM이 서로 간섭하는 것을 방지

 

방식 가상화 특징
베어메탈 방식 - Host OS 없이 하이퍼바이저가 하드웨어에 직접 설치되는 형태, 가상화 목적으로만 사용
- Guest OS들은 하드웨어 바로 위에서 구동되므로 오버헤드가 적고 성능이 상대적으로 우수
- 직접 하드웨어 드라이버 세팅이 필요하며 주로 대규모 엔터프라이즈급 기업 서비스 환경에 적합
호스트형 방식 - Host OS 위에 하이퍼바이저가 실행되고 그 위에 Guest OS를 올리는 일반적으로 사용되는 가상화 방식
- 기존에 컴퓨팅 환경(ex. Windows가 구성된 서버)에서 하이퍼바이저를 설치할 수 있어 구성이 편리
- Host OS에 문제가 생기면 전체 시스템에 문제가 생기는 단점

 

 

2) 네트워크 가상화 (=클라우드의 기본)

- 여러 가상 네트워크를 실행하기 위한 기술로 각 가상 네트워크가 실제 네트워크 환경처럼 작동됨

- NFV, SDN 등의 기술을 통해 가상의 네트워크 환경에서 소프트웨어적으로 서브넷 구성, 라우팅 및 방화벽 설정, 로드밸런싱 등을 구성 → 내, 외부 통신을 안정적으로 제어!
**NFV: 가상의 네트워크 리소스 생성하는 기술(방화벽, 로드밸런싱)

- 물리적인 네트워크 망이 구축되어 있음

- 네트워크 가상화 기술 중 하나인 SDN(Software defined networking)은 네트워크 장비의 패킷 전달 기능에서 제어 부분을 물리적으로 분리

- 분리된 제어 부분(소프트웨어)을 하나의 컨트롤러 개념으로 구성해 전송 기능만이 남은 여러 장비들을 통합해 제어 가능

- 네트워크를 소프트웨어 중심의 기술로 전환시키는 역할을 수행 (제어부를 모아 하나의 SW적으로 설정)

3) 데스크톱 가상화

- Virtual Desktop Infra, VDI는 데이터 센터의 서버에서 운영되는 가상의 PC 환경을 의미(가상의 컴퓨터 환경을 중앙서버에서 제공하는 소프트웨어 기술)

- 언제 어디서든 네트워크를 통해 서버에 접속해 자신만의 PC 환경을 구동하고 업무를 수행할 수 있음

- VDI는 데이터가 로컬 PC가 아닌 데이터 센터에 위치해 보안을 강화할 수 있고, 관리 효율성을 도모할 수 있음

: 직원은 회사의 정보나 파일 외부로 유출할 수 X, 저장은 중앙서버(스토리지)에만 가능

 

 

 

분산 처리

- 분산 처리는 특정 목적을 위해 한 개의 대용량 서버가 아닌 여러 저용량 서버를 클러스터 형태로 구성하고 연산을 병렬로 처리하도록 만든 기술

- 빅데이터 분석을 위한 클러스터 구성, 사용자 수요 패턴 변화에 대응하기 위한 오토 스케일링 등 다양한 클라우드 서비스에 적용된 기반 기술

 

오토 스케일링

인프라 확장(Scaling) 방식

1) Scale Up

- 기존의 서버를 보다 높은 사양으로 업그레이드 (CPU, 메모리, 디스크 ↑)

- 수직적 확장이라고도 하며 데이터 정합성 이슈 발생 가능성이 적음

- 업그레이드 시 다운타임이 불가피, 성능 향상에 한계가 있으며, 한대에 부하가 집중되어 장애 대비에 취약

(장비를 업그레이드할 때 중단시켜야 함)

2) Scale Out

- 비슷한 사양의 서버를 추가로 연결하여 확장하는 방식, 수평적 확장이라고 함

- 서버 용량 확장 및 장애 대비에 유용하나 자체 관리가 용이 X

- 클라우드 환경에서는 Auto Scaling 기능을 통해 Scale In/Out을 자동으로 수행함

→ 분산처리 기능이 발달하며, 자동으로 확장/축소됨

 

- 클라우드의 유연성/탄력성을 돋보이게 하는 핵심기술로 CPU, 메모리, 디스크 등의 다양한 성능지표를 모니터링해 리소스 개수를 자동으로 조절하는 기능

- 서비스가 유휴 상태: 리소스의 개수를 최소로 유지 → 부하 증가에 따라 개수를 늘리는 작업을 자동 수행

- 예상치 못한 서비스 부하에 효과적으로 대응 → 안정성과 유연성을 도모하고 비용 최적화 효과 얻을 수 있음

 

 

로드 밸런싱

- 동시에 많은 사용자 요청으로 트래픽이 급증했을 떄 여러 대의 서버에 트래픽을 적절하게 분산 → 병목현상을 예방하는 기술

- 특정 서버에 몰리는 부하를 설정된 규칙에 따라 분산하여 서비스 가용성과 응답시간을 최적화할 수 있음

- 클라우드 상에서는 다양한 로드 밸런싱 서비스가 있으며 일반적으로 오토 스케일링 기능과 함께 활용됨

- 로드 밸런싱에서 health check: 상태 확인, 장애가 발생하는 곳에는 트래픽 보내지 X

 

 

서버리스(Serverless)

- 인프라를 직접 프로비저닝하고 관리할 필요 없이 신속하게 서비스 구현할 수 있는 클라우드 애플리케이션 개발 모델
- 서버가 없다는 것이 아니라, 클라우드에서 서버 역할을 하는 리소스(인프라)를 고객이 관리할 필요 X

- 코드 작성, 간단한 설정으로 클라우드에서 인프라 프로비저닝, 유지 관리, 확장 등의 작업을 자동으로 처리

- 요청이나 특정 이벤트가 발생했을 경우에만 인프라를 구동해 애플리케이션을 동작시키는 방식

 

클라우드 컴퓨팅의 진화

On-Premises - IaaS - PaaS - Serverless

→ 인프라 배포 및 관리 최소화(개발에만 집중), 신속한 서비스 개발, 비용절감

 

 

데브옵스(DevOps)

- 개발과 운영의 합성으로 애플리케이션 개발팀과 운영팀 간의 소통, 협업 및 통합을 강조하는 문화, 업무방식, 개발 환경을 의미

- 개발과 운영이 하나의 프로세스로 연계, 지속적으로 협업 및 개선하는 순환구조 확림

- 더 빨리, 더 자주 서비스를 안정적으로 업데이트 → 고객 만족을 통한 비즈니스 성공을 지원

 

DevOps를 위한 Technical Practices

1) CI/CD 환경 구축

2) 인프라 자동화 도구 활용

→ 개발에서 배포에 이르는 프로세스를 단일 워크플로우로 통합하고 자동화, 서비스의 빠른 개선, 업데이트하기 위한 기술

 

Intergation Hell(통합 지옥)

- 각각의 개발자가 소통하지 않고 각자의 코드만 수정하면 새로운 코드 통합 후 테스트 과정에서 많은 문제가 발생하는 것

- 코드 수정하고 배포하는데까지 많은 시간 소유, 빠른 서비스 개선이 불가능

 

→ 해결하기 위해 코드 바뀔 때마다 빌드 및 자동화된 테스트를 진행하여 문제를 신속하게 해결하고 병합을 통해 신속한 배포가 가능한 환경 구축

 

CI/CD를 통한 워크플로우 통합 및 자동화

- CI는 다수의 개발자가 작성 혹은 수정한 소스 코드를 지속적으로 통합, 자동화된 테스트를 진행해 문제를 신속하게 검출하고 해결하기 위해 구축

- CD를 통해 테스트가 완료된 유효 코드를 Repository에 자동으로 업로드, CD를 통해 자동화된 배포를 진행해 애플리케이션을 최신화

 

 

인프라 배포 자동화

- 코드형 인프라(Infrastructure as Code, IaC)는 수동 프로세스가 아닌 인프라 사양을 담은 코드 형태의 구성 파일(템플릿)을 생성해 복잡한 클라우드 인프라 환경을 빠르게 배포하고 관리할 수 있는 도구

- 반대되는 콘솔형은 수동 프로세스라 시간이 오래걸리며 오류가 생길 수 있음

 

 

 

 

계정 보안

계정 보안이 필요한 이유

- 권한이 없는 사용자의 접근 및 요청 차단

- 관리자에게만 모든 서비스에 대한 완전한 액세스를 허용

- 대부분의 사용자는 자신의 역할(직무)에 따라 제한된 접근 권한만을 부여하는 것이 바람직함

(EC2 인스턴스 생성 권한, S3 버킷에 대한 읽기 권한, 결제 정보 액세스 권한 등)

- 리소스나 서비스 간에 접근을 허용하고 제한

 

Identity & Access Management

Who  / Can access  /  What

- Who: 개인을 인증하는 단계 (ID/PW), 인증 관리

- Can access, What: 개인의 권한을 관리하는 단계 (인가), 권한 관리

→ 클라우드 서비스 및 리소스에 액세스할 수 있는 주체와 작업수행 권한을 관리


Root user & IAM user

- AWS 계정을 생성하면 루트 사용자로 시작, 루트 사용자는 모든 AWS 서비스 및 리소스에 대한 전체 액세스 권한을 가짐 (제약 X, Unrestricted access to AWS cloud)

- 루트 사용자보다는 IAM 사용자를 생성한 후 최소한의 권한(Least Privilege)을 할당해 사용하는 게 바람직함

(제한된 권한, Restriced access to AWS cloud)

 

 

IAM user

 

 

- IAM 사용자 생성 후 권한을 정의하는 개체인 '정책'을 설정하여 권한을 부여

- 사용자는 정책에 적용된 권한에 따라 클라우드 상에서 특정 작업을 수행할 수 있음

 

 

IAM 그룹

- IAM 그룹을 활용하면 동일한 업무를 수행하는 다수의 사용자들(그룹)에 대한 권한을 좀 더 쉽게 관리할 수 있음

- ex.조직에서 직원의 업무가 바뀌면 해당 사용자의 권한을 개별적으로 편집하는 대신 이전 사용자 그룹에서 해당 사용자 제거 후 적절한 사용자 그룹에 추가

 

 

임시 자격증명의 필요성 (중요)

- 사용자에게 일시적으로 1) 임시 접근 권한을 부여해야 할 경우 or 2) AWS 리소스와 서비스 간의 접근은 어떻게 관리 ?

▶ IAM Role

- IAM 역할(Role)을 사용해 사용자 또는 AWS 서비스(리소스)간에 액세스하기 위한 권한 집합을 정의할 수 있음

- 역할을 수임하면 역할에 정의된 권한 내에서 특정 시간동안 정해진 작업을 수행할 수 있음
(사용자에게 있던 기존 권한은 역할을 수임한 기간동안 회수됨)
- IAM Role은 만료기간을 지정할 수 있음!

 

- AssumeRole API를 호출하면 AWS STS를 통해 액세스 키 ID, 보안 액세스 키 및 세션 토큰으로 구성된 임시 보안 자격증명 세트를 반환받고 이를 통해 AWS 리소스에 접근

- AWS STS(Security Token Service)는 AWS 리소스에 대한 액세스를 제어할 수 있는 임시 보안 자격 증명을 생성해 사용자에게 제공하는 서비스 

 

 

리소스에 IAM Role 설정 예시

- 관리자가 IAM Role을 생성 후 정책을 통해 Photos 버킷에 읽기 권한을 지정

- 개발자는 EC2 인스턴스에 애플리케이션을 설치하고 이 인스턴스에 IAM Role을 할당

- 애플리케이션은 할당된 권한을 통해 photo 버킷에 액세스해 읽기작업 수행