본문 바로가기
Infra

[클라우드] 카테부 - 클라우드 강의 1강 정리

by alphaca202 2024. 7. 3.

 

강의 방식은? 

기초 지식 학습 -> 실습

클론 코딩할 생각은 없음 - 직접 처음부터 만들어 나가는 방식

이걸 왜 선택했나요? 라는 질문에 답을 할 수 있어야함 . 

직접 의사결정 할 수 있도록 ! 

챌린지에 대한 연속 - 연습


 

클라우드를 배우는 이유

 

클라우드 서비스가 없을 때 - 직접 서버 구축

  • CPU, Memory, 저장 용량 예측하여 서버 구매
  • OS 설치부터 소프트웨어 설치까지 직접 진행
  • 네트워크 세팅도 수동으로 

 

클라우드 엔지니어 업무

  • 서버 구축 및 자동화 
  • 데이터 운영 및 백업
  • 전체 보안
  • 서비스 모니터링 및 장애 대응
  • 클라우드 비용 관리
  • AI 리소스 관리

 

클라우드 도메인 직군

  • 클라우드 네이티브 팀
  • SRE 팀
  • 클라우드 보안팀
  • 데이터 관리팀
  • 서비스 인프라 팀
  • 백엔드 엔지니어
  • AI 엔지니어

 

 

프로젝트 시, 클라우드 엔지니어로서 경험해보면 좋은 일들

서비스 운영

  • 애플리케이션을 서버에 올려보고 도메인(이름)을 붙여 서비스 해 본 경험
  • 서비스 리소스를 모니터링해서 스케일인/스케일아웃 해보기
  • 개인정보처리방침과 이용약관을 이해하고 회원가입을 붙여보기

데이터 관리

  • 저장되는 데이터가 손실되었을 때 복구 가능하도록 백업 자동화 해보기!! -> 백업 적용해보는 경험 프로젝트의 차원이 높아짐
  • 데이터베이스 관리해보기 -> 클라우드에 데이터베이스 깔아서 하기 ! 

애플리케이션 보안

  • API 작성 시, Header를 이용하여 Token 기반으로 API가 동작하도록 만들어보기 (API 보안 - 세션 이용(초보단계), 토큰 이용)
  • 클라이언트에서 데이터를 불러올 때, API 파라미터를 조작하여 계정 데이터 가져올 수 없게 만들기 위해
  • 주요 3rd Party Key들을 보관할 때, 코드에 하드코딩 x  밖으로 빼서 관리하거나 Vault를 통해 관리해보기

 

모든 서비스는 쿠버네티스를 기반으로 운영해야할까?

고급화된 서비스를 항상 써야하는지에 대한 고민

 

쿠버네티스란?

컨테이너화된 애플리케이션의 자동 Deploy, Scaling 등을 제공하는 관리 시스템

 

기대점 

  • 전체 시스템 모니터링이 편하여 서비스 관리가 편할 것 같다
  • 스케일 인/아웃이 자유로워 비용관리가 편할 것 같다
  • 스케일 아웃이 빨라 갑자기 큰 트래픽이 오더라도 빠르게 대응이 가능할 것 같다. 
  • 서비스 배포가 매우 편할 것 같다
  • 서비스 관리를 모두 코드로 운영 가능하여 편할 것 같다

 

항상 최적의 솔루션일까?

  • 서비스 유저가 10명 쯤 되는데 쿠버네티스가 필요할까?
  • 사내 내부 시스템인데 쿠버네티스가 필요할까?
  • 제품이 컨테이너로 운영해 본 적이 없을 때 쿠버네티스로 바로 운영할 수 있을까?

 

<생각해볼 문제>

이중화 - 서버를 두대 이상 띄워서 로드밸런서가 살아있는 서버에 트래픽 연결

안정성 vs 효율성

서버를 재시작 시키고 애플리케이션을 키는데 2분 정도 걸림 

서버 하나에 애플리케이션이 떠 있다. 서버가 죽으면 애플리케이션도 죽는다. 

 

비용의 관점

서버가 다운되었을 때 2분 동안 나가는 비용 vs 서버를 이중화하는데 드는 비용

  • 서버가 다운되었을 때 : 
  • 서버 이중화하는데 드는 비용 -> 수치화 가능 
  • 바로 비교하는게 불가능하더라도 ‘비용’으로 치환하여 비교해볼 수 있음

 

또 다른 조건들

  • 다운되었을 때의 비용은 줄이는게 거의 불가능함.  
  • 비용은 서비스의 종류와 이용 고객 수에 따라 다름. 
  • 2분이라는 시간이 짧을 수 있지만, 이게 어떤 서비스인지에 따라 다름. 2분이 생명을 살릴 수도 있고 주식이나 시간을 다투는 큰 서비스와 같은 경우에는 비용이 막대할 수 있음. 이런 경우 안정성이 우선으로 보장되도록 하고 서버 이중화의 비용을 줄이는 것을 검토해야함. 
  • 만약 고객이 매우 적은 초기이거나,, 고객이 1시간에 한번씩 정도 들어온다 라고 하면,, 서버를 이중화하는데 드는 비용이 고객과의 신뢰의 문제에서 발생하는 비용보다 클 수 있음. 

 

스토리지를 어떻게 이용할 것인가?

  • 스토리지 서버를 반드시 이중화해야 하는가?

 

안정성 vs 효율성

정답은 없지만, 규칙은 있다

  • 안정성을 견고히 할수록 클라우드 비용은 늘어난다.
  • 서비스가 죽어도 비즈니스에 큰 타격이 없는 사내 서비스라면 이중화 비용이 아까울 수도 있음
  • 관리자는 서버가 죽었을 때, 이걸 수동으로 키는 여러분의 인건비와 이중화 비용을 저울질 할 수 있음
  • 저울질 결과 이중화를 하거나 빨리 복구하는 스크립트를 만들게 할 수도 있음
  • 가장 좋은 방법을 인프라 상황과 제품 상황에 맞게 만들어야함.

 

제품의 이슈

  • 관리자가 이중화를 선택했더라도, 애플리케이션이 받쳐줘야함. 
  • 만약, 애플리케이션이 비즈니스 로직을 처리하는데 중요한 데이터를 메모리에 캐싱하여 저장하고 있다면? 

 

제품이 어떻게 변경되는지에 대해서도 클라우드 엔지니어로서 같이 고민해야함

 

어떻게 해야되지?

  1. 비지니스 상황 면밀히 파악 필요
  2. 제품 상황을 면밀히 파악 필요
  3. 팀 상황을 면밀히 파악

 

=> 사업과 제품을 이해한 커뮤니케이션 능력이 매우 중요함

 

 

'Infra' 카테고리의 다른 글

[클라우드] 카테부 - 리눅스 기본 강의  (0) 2024.07.08
[클라우드] 카테부 - 클라우드 기초  (0) 2024.07.03