Home [AWS] Cloud Computing, AWS 인프라
Post
Cancel

[AWS] Cloud Computing, AWS 인프라

이 글은 원티드의 ‘‘프리온보딩 백엔드 챌린지 12월 - 백엔드 인프라 설계 w AWS” 강의를 듣고 작성한 글입니다.

정확하지 않은 정보가 있다면 댓글 부탁드립니다.

Cloud Computing

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

  • 반대개념 On-premise : 자체적으로 보유한 전산실 서버에 직접 설치해 운영하는 방식

장점

  • 손쉽게 서버를 증가시킬 수 있다.
  • 서비스를 안정적으로 운영할 수 있다.

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 Lambda(Serverless)

  3. Database AWS RDS, AWS DynamoDB, AWS ElastiCache

  4. Message Queue - 대용량 데이터 처리 시 필요 AWS SQS, AWS MSK, AWS Kinesis

AWS 인프라 관련 요소들

AWS VPC (Virtual Private Cloud)

aws

  • 가상 네트워크 서비스
  • 퍼블릭 네트워크와 프라이빗 네트워크를 분리하고 모니터링할 수 있도록 해주는 서비스
  • 네트워크 구성과 관련된 사실상 모든 기능을 담당하며, 자체 데이터 센터에서 운영하는 기존 네트워크와 매우 유사한 형태
  • 서버를 직접 가지고 있지 않지만 외부로부터 보호할 수 있도록 한다.(울타리 역할)

구성요소

  • 인터넷 게이트웨이 : 인터넷 게이트웨이를 통해 내부에 접근할 수 있다.(대문 역할)
  • 라우터 : 내부적으로 어떤 서브넷으로 갈지 알려주는 것
  • 각각 VPC, 서브넷들은 IP를 가지고 있다. IP들은 라우팅 테이블로 관리된다.
  • 서브넷 : VPC 내에 더 작은 VPC
  • 퍼블릭서브넷 : 인터넷 게이트웨이를 통해 직접적으로 연결할 수 있는 서브넷 (예 - 서버)
  • 프라이빗서브넷 : 직접적으로 연결이 안되어야 하는 것들이 들어간다.(데이터베이스 등 보안에 신경써야 하는 것들), 퍼블릭서브넷을 통해 접근해야한다. (퍼블릿서브넷의 인스턴스 별로 접근 가능한 프라이빗서브넷의 인스턴스가 있다.-보안그룹을 통해 관리)

AWS API Gateway

  • 인터넷 게이트웨이의 하위 개념 - AWS 서비스의 가장 앞단에 위치하는 게이트웨이
  • 어떤 규모에서든 개발자가 API를 손쉽게 생성, 게시 유지관리, 모니터링 및 보안 유지 할 수 있도록하는 완전 관리형 서비스
  • 외부에서 오는 요청을 처리하는 ‘대문’과 같은 역할
  • 할 수 있는 것들
    • 트래픽 관리, CORS 지원, 권한 부여 및 액세스 제어, 제한, 모니터링 API 버전 관리, 인증관련 등
  • 예시
    • 서버에 들어가기 전에 인증 서비스가 필요할 때, 람다 함수 실행시키는 것을 Serverless한 서비스로 만들 수 있다, 1초 당 최대 몇개의 요청을 받을 것인지 제어할 수 있다.

AWS ELB(Elastic Load Balancing)

  • 다수의 컴퓨팅 리소스(EC2, Lambda 등)를 부하 분산시켜주는 아주 중요한 서비스
  • 총 3가지 종류의 Balancer
    • Application Load Balancer, Gateway Load Balancer, Network Load Balancer
    • Application Load Balancer가 일반적인 상황에서 가장 많이 쓰임
      • Application Load Balancer는 HTTPS리스너를 생성해서 연결 요청을 확인할 수 있기 때문에

AWS S3(Simple Storage Service)

  • 파일 저장소
  • 가장 오래된 AWS 서비스 중 하나
  • 엄청난 내구성과 가용성을 자랑하며 이미지, 동영상, 오디오 파일과 같은 정적파일들을 용이하게 관리하도록 돕는 스토리지 서비스
  • 단순 파일의 저장 공간을 넘어서서 데이터를 저장하는 스토리지 플랫폼

용도

  • 데이터 처리 : S3에 저장되는 Trigger를 이용해 람다를 실행시킬 수 있다. (파일이 저장될 때 Trigger를 발생시켜 람다(함수)를 실행시킨다.)
  • 로그 : AWS 내에서 이뤄지는 대부분의 로그는 S3에 저장된다.
  • 쿼리 지원 : AWS Athena를 통하여 S3에 저장된 파일을 쿼리할 수도 있다.
  • 호스팅 : Single Page Application(React, HTML 등)를 호스트할 수 있다.

AWS CloudFront

  • 캐시 서버 (CDN 서비스)
    • 이용자가 요청을 보냈을 때 본사의 오리지널 서버(S3)까지 가지 않아도 한국에 있는 캐시 서버를 통해 컨텐츠를 얻어올 수 있다.
  • 전 세계에 있는 AWS 엣지 로케이션을 통하여 CDN 서비스를 제공한다.

장점

부하를 줄일 수 있고, 속도를 높이고, 가격을 내릴 수 있다.(S3보다 저렴하기 때문)

CloudFront 데이터와 S3 데이터가 다른 경우

무효화를 통해 캐싱이 되어 있는 것들을 날리고 다시 캐싱(지정한 버킷 경로의 캐싱 데이터들을 삭제)

AWS Secret Manager / Parameter Store

  • 데이터베이스 보안 인증 정보 및 API 키와 같이 보안 정보를 안전하게 암호화하고 중앙 집중식으로 감사할 수 있도록 도와주는 서비스
  • .env 파일을 서버 별로 따로 관리하기 보다는 한 곳에서 집중적으로 관리
    • 개개인이 가지고 있으면 변경사항이 있을 때 관리하기 어렵고, 보안성이 떨어지기 때문에
  • Secret Manager는 암호화가 지원되기 때문에 민감한 정보를 저장할 때 사용 (DB 정보 등)
  • Parameter Store는 암호화되지 않기 때문에 간단한 정보를 저장할 때 사용 (Endpoint 등)

출처📎

  • 프리온보딩 백엔드 챌린지 12월 - 백엔드 인프라 설계 w AWS
  • https://medium.com/harrythegreat/aws-%EA%B0%80%EC%9E%A5%EC%89%BD%EA%B2%8C-vpc-%EA%B0%9C%EB%85%90%EC%9E%A1%EA%B8%B0-71eef95a7098
This post is licensed under CC BY 4.0 by the author.