[KT AIVLE] DX트랙 클라우드 서비스(14주차) 복습(클라우드 서비스:마이크로 서비스 아키텍처, 서버리스 아키텍처 )

728x90

클라우드 서비스 복습

마이크로 서비스 아키텍처

클라우드 네이티브(Cloud Native)

  • 클라우드 컴퓨팅 환경에서 현대적 애플리케이션을 구축, 배포 및 관리하는 접근 방식
  • 조직이 퍼블릭, 프라이빗, 하이브리드 클라우드에서 확장 가능한 애플리케이션을 구축하고 실행 할 수 있도록 지원
  • 컨테이너, 서비스메시, 마이크로서비스, 변경 불가능한 인프라 및 선언형 API와 같은 기술은 이러한 접근방식을 가장잘 보여줌
  • 탄력적이고 관리 가능하며 관찰 가능한 느슨하게 결합된 시스템을 사용할 수 있도록 해주며, 엔지니어는 최소한의 노력으로 자주 변경사항을 적용할 수 있음

 

마이크로 서비스

모놀리식(Monolithic) 아키텍처

  • 비즈니스 로직이 한 애플리케이션안에 포함되어 있는 전통적인 소프트웨어 아키텍처 구조
  • 시스템이 커질 경우 복잡도가 증가해 작은 수정사항에도 전체를 빌드하고 베포해야하는 등 개선 및 확장이 어렵다는 단점 존재

 

마이크로 서비스 아키텍처(MSA, Micro Service Architecture)

  • '여러개로 쪼갠다는 의미'  기능단위로 쪼개어 작은 서비스 단위로 개발
  • 서비스간 영향 없이 각 서비스를 개발, 업데이트, 배포 및 확장할 수 있음
  • 장점: 독립성, 안정성, 높은 유지 관리성, 기술 유연성
  • 단점: 서비스 분리가 많아지는 만큼 많은 인력 필요

 

컨테이너

  • 운영 체제에서 실행되는 프로세스를 격리하여 별도의 실행 환경(SW 서비스 구동을 위한 격리환경)을 제공하는 운영체제 수준의 가상화 기술
  • 장점: 이식성, 경량성, 운영 효율성 

 

쿠버네티스

  • 컨테이너 오케스트레이션 도구
  • 컨테이너를 관리, 배포, 확장 등을 자동화하는데 사용
  • 업계 표준, 오픈소스 생태계의 광범위한 제품과 결합 사용 가능하기 때문에 클라우드 및 온프레미스 환경에서 활용

Control Plane

  • 클러스터와 워커 노드 내 Pod를 예약, 상태 감시 및 제어, 관리하는 역할

Data Plane

  • 컨테이너화된 애플리케이션의 구성 요소인 Pod를 호스팅하는 워커 노드를 생성 및 관리

 

서버리스 아키텍처

  • 간단한 기능을 구현하는 애플리케이션도 서버 사전구성, 관리 작업은 필수인데 이러한 것들을 신경 쓰지 않고 개발에만 집중할 수 있는 방법

서버리스 특징

  • 서버들을 배포, 관리할 필요가 없음
  • 설계할 때부터 자동확장 기능이 내장되어 있음
  • 사용한  만큼만 비용을 지불
  • 자동 확장/축소가 가능하도록 설계되어 급격한 트래픽 변화에 유연한 대응이 가능

 

다양한 AWS 서버리스 서비스

 

AWS Lambda

  • 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 이벤트 중심의 서버리스 컴퓨팅 서비스
  • 상태 비저장(Stateless) 코드 실행
    • 상태 비저장: 람다를 통해 처리한 결과를 저장하지 않음
  • 최대 명령 실행기간(최대15분, 실행 시 메모리(최대10GB)

 

AWS API Gateway

  • 클라이언트가 백엔드 서비스에 액세스할 수 있게 해주는 관문 역할 수행
  • 요청이 API Gateway로 전달되면 API 설정에 따라 요청을 적절한 백엔드 서비스로 전달하여 처리하고 응답을 다시 클라이언트에 전달

 

REST API

  • HTTP URL을 통해 자원(이미지, 텍스트, DB내용 등)을 명시하고, HTTP Method를 통해 해당 자원에 대한 CRUD Opration을 적용하는 것으로 JSON 혹은 XML을 통해 데이터를 주고 받음

 

CORS(Cross-Origin Resource Sharing)

  • 브라우저는 보안상의 이유로 교차출처 HTTP 요청들을 제한하는데, 교차 출처의 리소스 요청을 하려면 해당 서버의 동의가 필요하고 이러한 허락을 구하고 거절하는 매커니즘이 교차 출처 리소스 공유라고 함
  • 기본적으로 API Gateway는 다른 도메인의 API를 호출할 수 없게 설정되어 있으므로 이를 가능하게 하려면 CORS를 설정해야 함

 

AWS 실습 내용

도커와 쿠버네티스

  1. Cloud9 IDE 환경구성
  2. 인증, 자격증명 및 환경구성
  3. Cloud9 인스턴스에 보안그룹 수정
  4. Docker 기본 명령어
  5. Docker 이미지 build
  6. ECR에 이미지 업로드
  7. AWS EKS 설치
  8. Kubernetes Object 배포

 

서버리스 서비스 활용

  1. Lambda로 웹페이지 생성
  2. Lambda로 API 서비스 생성
  3. DynamoDB와 API Gateway 생성
  4. Lambda 웹 페이지 연결 및 테스트

 

728x90