SK shieldus Rookies 16기
          
[SK shieldus Rookies 16기] 클라우드 기반 스마트 융합 보안 과정 교육 정리(32일차)
          
            by Challenge programmers
            2023. 12. 7.
            
          
        
       
      
                    
            오늘 학습 주제
1. 서버리스 아키텍처
2. 서버리스 구축
 
 
 
서버리스 아키텍처
- 서버리스 아키텍처 -
| 서버리스 아키텍처 | 
| 정의 | 애플리케이션을 개발하고 배포하기 위한 혁신적인 접근 방식 중 하나로 전통적인 서버 기반의 모델과는 다르게 서버 관리에 대한 부담을 최소화하고
 개발자가 코드 작성에 집중할 수 있도록 하는 방식
 | 
| 특징 | 
서버 없음 (Serverless): 서버리스 아키텍처에서는 서버를 명시적으로 관리하지 않으며개발자는 코드를 업로드하고 실행하는 플랫폼에 대해 걱정하지 않아도 됨
 
 
이벤트 기반 (Event-Driven): 서버리스 애플리케이션은 이벤트에 응답하는 방식으로 동작하며파일이 업로드되었을 때, HTTP 요청이 발생했을 때 등과 같은 이벤트에 대한 함수를 작성하고 실행 가능
 
 
자동 확장 (Auto-Scaling): 서버리스 플랫폼은 필요에 따라 자동으로 확장하고 축소 가능트래픽이 많아지면 자동으로 함수 인스턴스를 늘리고, 트래픽이 감소하면 인스턴스를 축소하여 비용을 절약
 
 
컴퓨팅 단위로 비용 지불 (Pay-As-You-Go): 서버리스 모델에서는 함수 실행에 대한 비용만 지불하고함수가 실행되지 않으면 비용이 발생하지 않으며 사용량에 따라 비용이 발생하는 페이-어-고 모델을 적용
 
 
함수 기반 (Function-as-a-Service - FaaS): 서버리스에서는 주로 작은 단위의 함수로 애플리케이션을 구성하여필요할 때마다 실행되며, 각 함수는 독립적으로 배포
 | 
 
 
 
 
내가 만든 함수들로 서비스를 구현해주는 것이 "서버리스" 아키텍처
 
 
- AWS의 서버리스 -
| AWS 서버리스 | 
| 정의 | 서버에 대한 고민 없이 애플리케이션을 구축하고 실행 | 
| 특징 | 
AWS는 코드 실행, 데이터 관리 및 애플리케이션 통합을 위한 기술을 서버를 관리할 필요 없이 제공
 
자동 크기 조정, 기본 제공 고가용성 및 종량제 결제 모델을 제공하여 민첩성을 개선하고 비용을 최적화
 
 용량 프로비저닝 및 패치 적용과 같은 인프라 관리 작업이 필요하지 않으므로 고객을 위한 코드를 작성하는 데 집중
 
 
서버리스 애플리케이션은 AWS Lambda에서 시작되며, 이 이벤트 기반 컴퓨팅 서비스는200개 이상의 AWS 서비스 및 서비스형 소프트웨어(SaaS) 애플리케이션과 기본적으로 통합
 | 
 
| AWS 서버리스 서비스 | 
| 정의 | 컴퓨팅, 통합, 데이터 스토어를 포함한 3개 계층에 대한 서버리스 서비스를 개발 | 
| 서비스 | 
 컴퓨팅
AWS Lambda: 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있는 이벤트 기반 종량제 컴퓨팅 서비스AWS Fargate: ECS 및 EKS와 연동되는 서버리스 컴퓨팅 엔진애플리케이션 통합
Amazon EventBridge: awS와 기존 시스템에서 이벤트 기반 애플리케이션을 대규모로 구축하는 데사용할 수 있는 서버리스 이벤트 버스
 
 
AWS Step Functions: 여러 AWS 서비스를 손쉽게 비즈니스 크리티컬 애플리케이션으로 차례로 배열할 수 있게 하는 시각적 워크플로 오케스트레이터
 
 
Amazon SQS: 마이크로서비스, 분산 시스템 및 서버리스 애플리케이션의 손쉬운 분리 및 크기 조정을지원하는 메시지 대기열 서비스
 
 
Amazon SNS: 애플리케이션 간(A2A) 및 애플리케이션과 사용자 간(A2P) 통신 모두를 위한 완전관리형 메시징 서비스
 
 
Amazon API Gateway: 모든 규모에서 API를 손쉽게 생성 및 게시할 수 있는 완전관리형 서비스
 
AWS AppSync: 확장 가능한 GraphQL API를 통해 애플리케이션 개발을 가속화하는 완전관리형 서비스데이터 스토어
Amazon S3: 모든 양의 데이터를 저장하고 보호할 수 있도록 설계된 객체 스토리지 서비스
 
Amazon EFS: 고가용성 공유 스토리지의 설정, 크기 조정 및 비용 최적화를 간편하게 하는 빌더를 위한 완전 탄력적인 서버리스 파일 시스템
 
 
Amazon DynamoDB: 모든 규모에서 10밀리초 미만의 성능을 제공하는 키-값 및 문서데이터베이스 서비스
 
 
Amazon RDS Proxy: Amazon Relational Database Service(RDS)를 위한 관리형 데이터베이스 프록시로,애플리케이션의 확장성 및 보안을 개선
 
 
Amazon Aurora Serverless: 애플리케이션 요구 사항에 따라 자동으로 용량을 확장하고 축소하는 MySQL 및 PostgreSQL 호환 관계형 데이터베이스
 
 
Amazon Redshift Serverless: 데이터 웨어하우스 인프라를 관리하지 않고도 분석을 쉽게 실행하고크기 조정할 수 있으며 사용한 만큼만 요금을 지불
 
 
Amazon Neptune Serverless: 애플리케이션 요구 사항에 따라 용량을 자동으로 제공하는온디맨드 방식의 확장 가능한 그래프 데이터베이스
 
 
Amazon OpenSearch Serverless:  Amazon OpenSearch Service의 서버리스 옵션으로, 리소스를 프로비저닝하거나 조정하지 않고도 검색 및 로그 분석을 제공하는 데 도움
 | 
 
- 서버리스 아키텍처의 원칙 -
| AWS 서버리스 | 
| 원칙 | 
컴퓨팅 서비스를 사용해 요구에 맞게 코드를 실행(서버없이)
 
단일 목적의 상태 없는 함수를 작성(하나의 함수는 하나의 기능 제공)
 
푸시 기반, 이벤트 주도 파이프 라인을 설계
 
강한 프론트엔드를 만들어야 함(React, Angular, Vue..)
 
서트 파티 서비스를 받아들여야 함(소셜 로그인 등) | 
 
사용자가 다른 형식으로 변환된 비디오를 업로드하는 예시로
푸시 기반 설계의 파이프라인 스타일은 서버리스 아키텍처에서 작동
 
 
 
 
 
 
서버리스 구축
- 백엔드 API 기능을 Lambda 함수와 API Gateway로 구성 -
 
 
플라스크 서버가 수행하던 백엔드 API 서비스를 람다 함수로 대체