AWS Computing

AWS 컴퓨팅 서비스


 

EC2 ( Elastic Compute Cloud )


EC2

  • EC2 공식 홈페이지
  • 가상 컴퓨팅 서비스를 제공해주는 서버로 실제 물리서버와 똑같은 형태의 서비스를 제공
  • AMI를 통해 필요한 운영체제와 여러 소프트웨어를 쉽게 생성 가능
  • 키 페어를 사용하여 로그린 정보 보호
  • SSH로 원격 연결이 가능
  • 중지가 가능한 EBS 기반 인스턴스와 임시 스토리지를 제공하여 중지가 불가능한 Instance Store 기반 EC2로 분류 됨 ( 재부팅은 모두 가능 )
  • 인스턴스의 유형으로는 범용, 컴퓨팅 최적화, 메모리 최적화, 스토리지 최적화 등이 존재

EC2 상태의 종류

  • Pending : 인스턴스가 구동하기 위해 준비중인 상태, 요금 미청구
  • Runnung : 인스턴스가 실행하고 사용할 준비가 된 상태, 요금 청구
  • Stopping : 인스턴스가 중지 모드로 전환되려는 상태, 요금 미청구
  • Shutting-down : 인스턴스가 종료를 위해 준비중인 상태, 요금 미청구
  • Terminated : 인스턴스가 종료된 상태, 요금 미청구

EC2 구매옵션

  • On demand : 필요할 때 바로 생성하는 방식으로 1시간 단위로 과금이 이루어짐 ( 1분 사용시도 1시간 )
  • Spot : 경매방식의 인스턴스 기준가격보다 높은 가격 제시시 사용가능하며, 타인에 의해 불시로 종료되거나 정지될 수 있어 각종 테스트에 적합
  • Reserved : 12개월- 36개월 단위로 예약하여 사용하는 인스턴스로 On demandq비해 가격이 대폭 할인되며, 장기적으로 사용할 경우 효율이 좋지만, 예약된 인스턴스이기에 사용하지 않아도 과금이 부과되어짐

 

Lightsail


EC2

  • Lightsail Site
  • AWS에서 VPS ( Virtual Private Server : 가상 사설 서버 ) 를 시작하는 가장 쉽고 빠른 방법
  • 가상 사설 서버, 영구적인 스토리지, 네트워킹을 포함
  • 클릭 한 번으로 모든 과정을 생략, 쉽게 VPS를 생성 및 관리
  • 확장가능 및 타 AWS Services에 접근 가능
  • 고가용성 어플리케이션 생성 가능
  • 저렴하고, 비용의 예측이 보다 쉬움
  • 완전히 사전구성되어 있는 서버 ( BluePrint )

Lightsail의 유료 Plan

  • 월간 무료 데이터 허용량 초과시, 퍼블릭 IP 주소를 사용ㅎ여 요금 청구
  • Lightsail 스냅샷 비용 : 인스턴스 스냅샷 + 디스크 스냅샷
  • 1시간 이상 인스턴스에 연결되어 있지 않은 고정 IP ( Elastic IP )
  • 무료로 주어지는 3백만 개의 쿼리를 초과하는 경우

Lightsail& EC2

  • Lightsail의 주 사용용도
    • 웹 사이트 및 블로그
    • 단순 앱
    • 개발 및 테스트 환경
    • 소수의 서버로 구성된 비즈니스 소프트웨어
  • EC2
    • 빅데이터 분석
    • 고성능 컴퓨팅
    • 과학 분야 컴퓨팅
    • 멀티’티어 애플리케이션

 

ECS ( Elastic Container Service )


ECS

  • AWS의 Virtual Machine, VM (가상 머신)
  • 가상의 컴퓨터, 하나의 호스트에 안에 또다른 호스트를 만들어 사용하는 것
  • CPU, Memory와 같은 주요 하드웨어 부품을 소프트웨어로 완전 재현해내어 기능을 흉내내게 하고(에뮬레이션), 격리된 실행 환경(OS)를 만듬 즉 하드웨어를 직접 가상화
  • 클러스터에서 도커 컨테이너를 손쉽게 관리하기 위해 컨테이너 관리 서비스
  • 클러스터는 Task(작업) 또는 서비스로 일컬어지는 컨테이너들의 집합

  • 2가지 구성 요소로 시작 가능
    • EC2(Container Instance) : EC2를 생성하여 EC2 내에 Task(컨테이너가 수행할 작업)
    • Fargate : EC2를 생성하거나 컨테이너를 실행하기 위한 Orchestration을 AWS가 맡아 하는 서비스로, 관리가 용이함
  • 하나의 클러스터 내에 다수의 Task 혹은 컨테이너 인스턴스로 구성됨 또한 ELB, EBS 볼륨, VPC, IAM과 같은 기능을 사용하여 구성 가능
  • 즉 ECS 각 작업의 권한, ECS 액세스를 IAM으로 조절하거나, EC2 유형의 컨테이너 인스턴스만이 OS에 액세스 가능한 특징 등을 갖게 됨
  • 호스트의 OS(Operating System) 내에 또다른 실행환경의 OS가 존재함 윈도우 OS의 호스트 내에 리눅스, 우분투 등의 다양한 OS를 올릴 수 있음
  • 다만 OS를 포함하기 때문에 용량을 많이 차지할 뿐더러, 사용자가 필요치 않는 기능까지 포함할 수 있으며 느림

Linux Container

  • ECS를 사용하는 목적이자 관리 대상
  • 하드웨어가 아닌 OS를 가상화하여 커널을 공유하며 프로세스(컨테이너와 비슷)를 격리된 환경에서 실행하는 것
  • VM와 달리 달리 호스트의 OS에서 가상화를 실시하여, 이 OS 위에 프로세스들이 ‘컨테이너’로서 격리된 환경에서 실행됨
  • 호스트의 입장에선 컨테이너는 프로세스에 불과하지만, 컨테이너 입장에서는 독립된 실행환경임
  • OS를 포함하지 않는만큼 가볍고, 하드웨어를 가상화하지 않기 때문에 빠름

Kernel

  • Operaintg System에서 가장 중요한 역할을 맡고 있는 핵심(核心)
  • 커널이 각 프로세스(실행환경)에 하드웨어 자원(CPU 등)을 할당하고, 작업 스케쥴링(처리순서)를 담당하며, 프로세스 간 접근과 보안을 책임짐
  • 과거에 커널이 없던 시절에도 컴퓨터는 존재할 수 있었으나 메모리를 초기화하기 위해서는 컴퓨터를 리부팅해야 하는 등, 자원관리/제어 주체의 필요성에 의해 탄생

Docker

  • 앞서 설명한 Linux Container 기술에 근간을 두는 오픈소스 컨테이너 프로젝트 ‘Docker’라는 단어 자체가 ‘부두에서 일하는 노동자’, 즉 컨테이너를 관리하는 존재임을 뜻함
  • Linux Container 기술을 사용하는 솔루션이므로 별도의 OS를 설치하지 않고 컨테이너를 생성하여 애플리케이션을 실행함
  • 컨테이너를 생성할 이미지(서비스에 필요한 리소스를 모아둔 최소한의 단위)를 기반으로 운영함
  • 이미지만 가지고 있다면 어느 시점에서든 동일한 리소스의 컨테이너를 생성할 수 있음
  • 그 밖에 컨테이너간의 연결, 다양한 API 제공 등의 기능을 보유

 

Lambda


EC2

  • Serverless Service
  • 서버를 구축, 프로비져닝하고 필요한 패키지를 설치하는 등의 과정을 거치지 않고, 코드를 실행하는 서비스
  • 사용자는 애플리케이션이나 백엔드 서비스를 관리할 필요 없이 코드를 실행할 수 있음
  • CloudWatch, ALB, DynamoDB 등을 트리거로 이용하여 특정 상황에서 코드를 실행시키고 것이 가능
  • API Gateway와 Lambda를 조합하여 요청별로 특정 코드를 수행하도록 구성 가능 15분을 초과하는 작업에 대해서는 Lambda 비적합

Lamda Function의 정의와 구성

  • 코드를 실행하기 위해 호출할 수 있는 리소스
  • 이벤트를 처리하는 코드, 계층, 트리거, 전달 대상 등으로 구성됨
    • 함수코드 : 실제 호출되기 실행되는 코드, Runtime(코드 실행지원), IAM, VPC, Memory 등으로 구성됨
    • 트리거 : 함수코드를 발동시키는 서비스(S3, SNS, SQS, DynamoDB, CloudWatch Event, Cloudwatch Log 등)
  • SNS의 메시지 구독 대상에 Lambda를 포함시키면, 메시지 발송시 Lambda가 이를 전달받고 함수코드 실행
    • 전달대상 : 함수가 비동기식으로 호출되거나, 레코드를 처리한 경우 전달될 대상
  • SNS, SQS, 또다른 Lambda, EventBridge 이벤트 버스로 전달가능
  • NS로부터 메시지를 전달받아 코드를 처리하고 이를 SQS로 보내 메시지 대기열에 적재할 수 있음

EC2 vs Lambda

  • EC2 사용시 프로비져닝, 운영 체제, 네트워크 세부 설정, 보안 설정 등을 사용자가 원하는 방향으로 지정 가능
  • Lambda 사용시 프로비져닝 필요없이 AWS가 모니터링, 프로비져닝, 보안패치 적용, 코드 배포를 모두 수행함

 

Batch


Batch
Batch
Batch

  • 종합 관리형 서비스
  • 한 리전 내의 여러 가용 영역에 걸쳐 배치 작업을 실행하는 과정을 간소화하는 리전 서비스
  • 새 VPC 또는 기존 VPC에서 컴퓨팅 환경을 생성할 수 있음
  • AWS Batch를 사용하면 AWS 클라우드에서 배치 컴퓨팅 워크로드를 실행이 가능
    • 배치 컴퓨팅 : 다수의 사람들이 수 많은 컴퓨터 리소스에 엑세스 할 때 일반적으로 사용하는 방법

AWS Batch의 구성요소

  • 작업
    • AWS Batch에 제출한 작업 단위 ( 쉘 스크립ㅌ, Linux 실행 파일, Docker 컨테이너 이미지 )
    • 작업에는 이름이 있으며, 파라미터를 사용하여 컴퓨팅 환경의 인스턴스에서 컨테이너화된 애플리케이션으로 실행
  • 작업 정의
    • 작업이 실행되는 방식을 지정하며 작업에 있는 리소스에 대한 블루프린트를 의미
    • IAM 역할을 제공하여 다른 AWS 리소스에 프로그래밍 방식으로 엑세스할 수 있으며 메모리 및 CPU 요구 사항을 모두 지정가능
  • 작업 대기열
    • AWS Batch 작업이 대기열 예약되는 환경
    • 우선 순위 갑 및 작업 대기열 전체에 우선 순위 할당 가능
  • 컴퓨팅 환경
    • 작업을 싱해하는 데 사용되는 관리형 또는 비관리형 컴퓨팅 리소스 세트
    • 여러 세부 수준에서의 인스턴스 유형의 설정이 가능

Batch Group

  • 클러스터 : 인스턴스를 AZ 내에서 근접하게 배치, 결합된 노드 간 낮은 지연 시간의 네트워크 달성 가능
  • 파티션 : 인스턴스가 담긴 그룹을 논리 세그먼트로 나누어 각 파티션에 배치, 최대 7개의 파티션을 가질 수 있으며, 각 파티션은 자체 랙 세트를 보유하고 자체 네트워크 전원을 보유
  • 분산 : 파티션이 논리 세그먼트로 분리된 인스턴스 그룹인 것과 달리 분산은 인스턴스 개체 하나가 자체 랙에 분산 배치됨, AZ당 최대 7개의 인스턴스 배치 가능

 

Elastic Beanstalk


ElasticBeanstalk ElasticBeanstalk

  • Java, NET, PHP, Node js, Python, Ruby, Go, Docker을 사용하여 Apache, Nginx, Passenger, llS와 같은 친숙한 서버에서 개발된 웹 어플리케이션 및 서비스를 간편하게 배포하고 조정 할 수 있는 서비스
  • EC2, ASG, RDS 등 AWS 리소스들을 조합하여 완성된 어플리케이션 플랫폼으로 PaaS의 일종
  • 오토 스케일링, 로브 밸런싱, 버전 관리 등의 기능을 콘솔에서 몇 번의 클릭으로 생성 가능
  • 실제 서비스가 아니기에 사용 요금이 없음

Elastic Beanstalk의 장점

  • 간단한 서버 세팅
  • 환경변수들을 쉽게 변경/ 관리가 가능
  • 오토 스케일링이 용이
  • 로그의 자동화
  • 추가요금이 없음

RSS Feed
마지막 수정일자