공부/Server

AWS 인프라 정리I

sandbackend 2023. 5. 15. 01:12

프리온보딩에서 진행한 AWS 인프라 설계 강의 내용을 정리 한 것 입니다.


 

목표 : AWS 인프라를 하나하나 깊게 파기보다는 전체적인 이해

 

 

AWS란 무엇일까?

 

On-premise vs Cloud Computing

 

On-Premise : 온프레미스란 기업의 서버를 클라우드 같은 원격 환경에서 운영하는 방식이 아닌, 자체적으로 보유한 전산실 서버에 직접 설치해 운영하는 방식

 

Cloud Computing : 클라우드 컴퓨팅은 인터넷을 통해서 데이터를 저장하거나 데이터베이스, 서버, 네트워킹, 소프트웨어와 같은 도구, 애플리케이션 등 다양한 서비스를 제공하는 방식

 

 

Cloud Computing을 쓰는 이점

 

 

AWS 인프라의 전체적인 모습

 

1. 인프라 관련 요소들

- AWS API Gateway, AWS S3, AWS ELB, AWS CloudFront, AWS Secret Manager, 스냅샷

2. 컴퓨팅 파워 (서버)

- AWS EC2, AWS Elastic Beanstalk, AWS ECS, AWS Fargate, AWS Lanbda (Serverless)

3. Message Queue

- AWS SQS, AWS MSK, AWS Kinesis

4. Database

- AWS RDS, AWS DynamoDB, AWS ElastiCache

 

 

1. 인프라 관련 요소들

AWS VPC

 

Virtual Private Cloud

- 가상 네트워크 서비스로 퍼블릭 네트워크와 프라이빗 네트워크를 분리하고 모니터링 할 수 있도록 해주는 서비스

- 네트워크 구성과 관련된 사실상 모든 기능을 담당하며, 자체 데이터 센터에서 운영하는 기존 네트워크와 유사한 형태

 

 

AWS API Gateway

API Gateway

- 어떤 규모에서든 개발자가 API를 손쉽게 생성,게시,유지 관리,모니터링 및 보안 유지할 수 있도록 하는 완전관리형 서비스

- 서버의 "대문"과 같은 역할

- API Gateway가 할 수 있는 것들 :

  • 트래픽 관리(제한), CORS 지원, 권한 부여 및 엑세스 제어, 제한, 모니터링, API 버전 관리, 인증관련 등

 

AWS ELB

Elastic Load Balancing  (ELB)

- 다수의 컴퓨팅 리소스 (EC2, Lamdba 등)를 부하 분산시켜주는 아주 중요한 서비스

- 총 3가지 종류의 Balancer (Applicationg Load Balancer, Gateway Load Balancer, Nerwork Load Balancer)가 있으며, Application Load Balancer가 일반적인 상황에서 가장 많이 쓰임

 

 

AWS S3

Simple Storage Service (S3)

- 가장 오래된 AWS 서비스중 하나로 엄청난 내구성과 가용성을 자랑하며 이미지, 동영상, 오디어 파일과 같은 정적파일들을 용이하게 관리하도록 돕는 스토리지 서비스

- 단순 파일의 저장 공간을 넘어서서 데이터를 저장하는 스토리지 플랫폼

ex :

  • 데이터 처리 : S3에 저장되는 Trigger를 이용해 람다를 실행 시킬 수도 있음
  • 로그 : AWS 안에서 이뤄지는 대부분의 로그는 S3에 저장 됨
  • 쿼리 지원 : AWS Athena를 통하여 S3에 저장된 파일을 쿼리 할 수도 있음
  • 호스팅 : Single Page Application (React)를 호스트 할 수도 있음

 

AWS CloudFront

Amazon CloudFront

- 전 세계에 있는 AWS 엣지 로케이션을 통하여 CDN 서비스를 제공 함

- 현재 48개국 90개가 넘는 도시에서 410개가 넘는 접속 지점 (엣지 로케이션 400개 이상, 리전별 중간 티어 캐시 13개)로 구성된 글로벌 네트워크를 지원

- 속도는 높이고, 가격은 내리며, 서버 부하는 줄일 수 있음

 

 

 

AWS Secret Manager / Parameter Store

Amazon Secret Manager / Parameter Store

- 데이터베이스 보안 인증 정보 및 API 키와 같은 보안 정보를 안전하게 암호화 하고 중앙 집중식으로 감시할 수 있도록 도와주는 서비스

- .env 파일을 서버 별로 따로 관리하기 보다는 한 곳에서 집중적으로 관리

- DB 정보와 같은 민감한 정보는 암호화가 지원이 되는 Secret Manager에 저장

- 간단한 정보 (ex. Endpoint)는 Parameter Store에 저장하여 사용

 

 

2. 컴퓨팅 파워 (서버)

AWS EC2

Amazon Elastic Cloud Compute

- 가장 기본적인 형태의 클라우드 컴퓨팅 ( = 클라우드 컴퓨터 한 대)

- 온디맨스 : 선결제 금액이나 장기 약정 없이 저렴하고 유연하기 Amazon EC2를 사용하기 원하는 사용자
  EC2를 사용하기 원하는 사용자

  스팟 인스턴스 : 시작 및 종료 시간이 자유로운 애플리케이션

  Saving Plans : 1년 또는 3년 기간의 일정 사용량 약정을 조건으로 EC2 및 Fargate 사용량에 대해 저렴한 요금을 제공하는 유연한 요금

 

 

AWS Elastic Beanstalk

Amazon Elastic Beanstalk

- AWS  클라우드에서 애플리케이션을 신속하게 배포하고 관리할 수 있는 서브스
  (애플리케이션 코드를 업로드하기만 하면 작동)

- Elastic Beanstalk = EC2 + 배포 버전 관리 (롤백) + Elastic Load Balancer + 모니터링 + 로그 트래킹 + 오토 스케일링

- 다양한 언어 지원 : .NET / PHP / Java / Ruby ? Node.js / Python / Docker / Go

 

 

AWS Fargate

Amazon Fargate

- Fargate를 사용하면 더 이상 컨테이너를 실행하기 위해 가상 머신의 클러스터를 프로비저닝, 구성 또는 조정 할 필요가 없습니다. 따라서 서버 유형을 선택하거나, 클러스터를 조정할 필요가 없습니다. 따라서 서버 유형을 선택하거나, 클러스터를 조정 할 시점을 결정하거나, 클러스터 패킹을 최적화할 필요가 없습니다.

- 이전에는 컨테이너를 실행하기 위해서는 컨테이너를 실행할 Instance(EC2)를 싱행시켜야하였지만, AWS Fargare는 이러한 수고를 덜어 줌