003. [AWS] 컴퓨팅 리소스 이해

01. AWS Compute 서비스

(01) 어떤 서비스 인가?

AWS는 모든 서비스 들을 컴퓨터를 사용하여 작업을 처리하여 제공한다. 즉, 대부분의 서비스들은 컴퓨팅 서비스를 통해 구동 되며, 보통 Compute 서비스를 지칭할 때에는 서버에서 나만을 위해 자원이 할당되어 사용되는 경우를 이야기 한다.

(02) 인스턴스 서비스

클라우드에서 가상 머신을 제공하는 서비스를 이야기 한다.

  • Amazon EC2
    클라우드에서 안정적인 운영을 보이면서, Up-Scale/Down-Scale (사양변경 가능)이 가능한 가상 머신을 제공하는 서비스
  • Amazon EC2 Spot
    AWS 서버의 부하에 따라 EC2 요금이 유동적으로 변경되는 서비스로, 부하가 적을때 사용하는 경우 기존 EC2 에 비해 최대 90% 이상의 요금 절약이 가능하다.
  • Amazon EC2 Auto Scaling
    컴퓨팅 부하에 따라, 자동적으로 늘리고 줄일수 있는 서비스 (Scale Out / In)
  • Amazon Lightsail
    쉽게 클라우드에서 웹사이트를 구성할 수 있도록 제공하는 서비스
    (VPS 서비스로 요금에 따라 보통 10 ~ 20% 미만의 CPU 를 사용하도록 설정되어 있으며, Burst 개념으로 10% 보다 적게 사용하는 경우의 시간과 비율등을 고려하여, 향후 부하가 있는 경우 해당 시간과 부하 만큼은 더 사용할 수 있게 한다. )

(03) Containers 서비스

  • Amazon ECS
    안전하고, 안정적으로 운영되며, 확장이 가능한 컨테이너 서비스
  • Amazon ECR
    컨테이너에서 사용할 이미지를 저장하고 관리하고 배포하는 서비스
  • Amazon EKS
    Amazon 에서 쿠버네티스를 관리해주는 서비스

[컨테이너 탄생 배경]

프로그램을 실행하기 위해서는 여러가지 관련 프로그램들이 필요하다. 다만, 하나의 서버에서 A 프로그램은 0.1 버전, B 프로그램은 2.1 버전이 필요하다면, 서버를 여러개 운영해야하는 경우가 발생한다. 이를 개선하기 위해, 서로 간섭없는 환경을 구성해 Application 과 라이브러리를 하나로 묶어 운영할 수 있도록 하고자 컨테이너가 탄생 하였다.

(04) Serverless

내 서버 없이 코드를 실행할 수 있는 서비스

  • AWS Lambda

(05) Edge 서비스

  • AWS Outposts
    서비스를 AWS내의 서버가 아닌, On-premises(로컬 서버 환경) 에서 AWS 서비스를 사용하도록 할수 있다.
  • AWS Snow Family
    실제 물리적인 데이터들을 네트워크가 아닌 컨테이너 트럭등을 통해 데이터 센터에 전달받아서 기록하는 등을 제공하는 서비스
  • AWS Wavelenth
    5G 통신망을 통해 AWS 데이터를 주고 받을수 있는 서비스
  • VMWARE CLOUD on AWS
    VMWARE 환경을 AWS 에서 사용할 수 있도록 제공하는 서비스
  • AWS Local zones
    AWS 서비스가 로컬 존 근처에서 동작할수 있도록 하는 서비스

02. AWS EC2

01) EC2 이해하기

(01) EC2 란?

Elastic Compute Cloud

  • Elastic : 스펙을 줄이고 유연하게 늘릴수 있는 기능을 한다.
  • 가상 컴퓨터를 빌릴수 있는 서비스 이다.
  • CPU, RAM, 저장공간 등 다양한 선택이 가능하다.
  • 여러가지 최적화된 옵션들을 미리 제공하여 활용할 수 있도록 한다.
  • EC2 는 기본적으로 초당 사용 비용을 지출하며, 특정 사양으로 장기 계약을 하는 방식도 있다.

(02) EC2 를 사용해야 하는 경우

  • 데이터 베이스를 완전히 제어해야하는 경우
  • Web서버를 구성하고 제공해야 하는 경우

(03) 서비스가 유리한 경우

병렬 작업 처리가 가능한 일을 하루종일 수행하는 컴퓨터가 있다면, 이 컴퓨터가 수행해야하는 일들을 여러대의 컴퓨터로 분할하여 비용은 동일하지만, 시간 자체를 줄일 수 있다.

예를 들자면, A 를 처리하기 위해서 24시간이 필요한 컴퓨터가 있다면, A 를 24대의 컴퓨터로 처리한다면 같은 비용으로 1시간내에 끝낼 수 다.

(04) EC2 의 접근하는 방법

  1. AWS Management Console : GUI 환경으로 EC2 를 제어할 수 있다.
  2. SSH : SSH를 허용하여, 서버에 직접 접근할 수 있다.
  3. EC2 Instance Connect : IAM 정책에 따라, EC2 를 접근하고 제어할 수 있다.
  4. AWS Systems Manager : AWS CLI 나 웹을 통해 원클릭으로 제어할 수 있다.

(05) EC2 SSH

EC2 에서 SSH 로의 접근은 가장 많이 선택하는 예시이다. 이를 위해서는 2가지 작업이 필요하다.

  1. Key pair 를 생성한다.
  2. Keypair 를 통해, EC2 에 접근한다.

(06) EC2 의 가격 정책

  1. On-demand
    사용만 한큼 비용을 지불하는 방식 (많은 사람들이 사용한다.)
    [주 사용 Case]
    • 장기간 운영할 계획이 없는 경우
    • 특정한 기간에만 부하가 있는 경우
    • 개발 단계에 있는 어플리케이션의 경우
    • 장기간 재가동 계획이 없는 경우 ( 참고로, EC2 를 사용하지 않더라도 삭제가 아니라면, 데이터를 삭제하지 않게 설정된다. )
  2. Spot
    AWS 의 자원 상황에 따라, 널널할때 저렴하게 EC2 자원을 사용하는 방식
    (90% 이상 저렴하게 운영이 가능하다 )
    [주 사용 CASE]
    • 시작과 종료가 되어도 자유로운 소프트웨어 인 경우
    • 작업 중 인터럽트가 걸려도 문제 없는 경우
    • 저렴한 비용으로 컴퓨트 자원을 이용하려는 경우
  3. Reserved Instances
    특정 리전에 1 ~ 3년 간 인스턴스 비용을 미리 지불하여 저렴하게 사용하는 방식
    (사양이 정해진 경우에는 최대 75 % 가량 절감이 가능하며, 사양의 변동이 필요한 경우 Converible Type 을 선택하여 54 % 수준으로 할인 받을 수 있다. )
    [주 사용 CASE]
    • 안정적으로 일정한 자원이 소모되는 경우 이며, 1 ~ 3년 이상 운영되어야 하는 경우
    • 선불 납부를 통해 On-demand 에 비해 저렴하게 사용하려는 경우
    • 자원의 대한 선 예약이 필요한 경우
  4. Dedicated Hosts
    가상 서버가 아닌 물리적인 서버를 전체를 임대하여, 인스턴스를 동작 시키는 방식 ( 70 % 가량의 비용 절감이 가능하다)
    [주 사용 CASE]
    • 온전히 내가 운영하는 서버이며, 라이선스 정책 또한 내가 지니고 있는 라이선스를 사용한다.
    • 보안 정책에 의해 서버를 운영해야하는 경우
    • 다른 고객들과 동일한 서버에서 운영되지 않아야 하는 경우
  5. Saving Plan
    1 ~ 3 년간 컴퓨팅 사용량을 기반으로 계약하는 방식 ( 최대 72% 할인을 수행한다. )
    [주 사용 CASE]
    • 다양한 컴퓨터 서비스를 저렴한 비용으로 사용해야 하는 경우
    • 컴퓨터 서비스나 인스턴스 , OS , 리전등을 유기적으로 변경해야하는 경우

(07) Elastic Load Balancing

EC2 (컴퓨팅) 자원에 요청이 들어올 때, 같은 기능을 여러대가 운영 중인 경우, 이를 분산하여 연결하도록 제공해주는 서비스
[LB 종류]

  • Classic Load Balancers
  • Application Load Balancer
  • Gateway Load Balancers
  • Network Load Balancers

Network Traffic Distribution – Elastic Load Balancing – Amazon Web Services

(08) Elastic Auto Scaling

컴퓨터의 자원 수요에 따라, 동일한 기능을 하는 서버를 늘리고 줄일 수 있다. (Scale out / in 방식)
[사양이 변경되지 않는다. ]

02) 실제 사용 방법

(01) EC2 접근

  • 리전 별로 EC2 출력이 구별된다.

(02) EC2 생성

[생성]

[이름 지정]

  • 구별하기 쉬운 이름으로 지정한다

[OS 선택]

  • Amazon Linux 는 레드헷 기반의 운영 체제 이다.

[인스턴스 유형 선택]

사용자가 사양을 지정하는 것이 아닌, 이미 정해진 다양한 사양들이 있으며, 이를 Flavor 라고 부른다.

[ Key Pair 지정]

초기에 AWS 의 서버들은 비밀번호로 접근이 불가능하다. 만약 PC 에서 주로 사용한다면, SSH 방식을 사용해서 주로 접근하며, 공개키를 여기서 지정할 수 있다.

키가 없다면 아래와 같이 생성이 가능하며, pem 은 주로 리눅스나 맥 환경의 Command Line 으로 접근하는데 주로 사용하고, ppk 의 경우 Putty 를 활용해서 접근할때 사용하는 편이다.

[ 네트워크 설정]

  • AWS 네트워크 내에 어떤 네트워크로 연결할지 지정할 수 있다.
  • Security Group 으로 초기에 접근이 가능한 포트나 보안등을 지정할 수 있다. (기본적으로는 모두 Deny 시킨다 )

[용량 선택]

[이외 부분]

  • 이외에는 spot 방식(AWS 자체의 부하가 적을때 저렴한 비용으로 구성)으로 구성할 것인지 오토 백업을 활성화 할 것인지 등의 대한 정의를 수행할 수 있다.
  • Number of instances : 현재 생성할 인스턴스와 동일한 사양으로 몇 개를 만들지를 선택하는 방식이다. (만약 동일 사양이 여러개가 필요하면 원하는 개수만큼 입력하면 된다)

[인스턴스 생성]

(03) 인스턴스 접근

  • Connect 를 선택해 접근한다.
  • 인스턴스 접근
  • SSH 접근하기

복사해서 앞서 만든 키 파일을 통해 접근한다.

[참고 사항] Key File 의 권한은 소유권자만 읽기가 가능해야 한다. (chmod 400) 수행

03. Lambda

01) Lambda 이해하기

(01) Lambda 란?

  • 실행 하려는 코드가 있고 이를 서버 없이 돌릴 수 있는 방법을 이야기 한다. (서버 리스 컴퓨팅)
  • 특정 이벤트에 따라, 코드를 실행하는 방식이다.
  • 실제로 실행할 때에는 서버를 사용하겠지만, AWS 상 어디서 실행되는 지는 모른다.
  • 자동으로 서버 확장이 가능하다.
  • 밀리세컨드 단위의 요금 정책을 지니고 있다.
    (3천만번 메모리를 128 mb 정도 필요한 호출을 수행하는 경우 12 달러 미만의 요금이 지불 되기에 매우 싸다. )

[주 목적] 개발자가 서버가 아닌 코드에 집중하게 만들고자 만들었다.

(02) Lambda 를 주로 사용하는 예시

  1. 실시간으로 데이터 처리가 필요한 경우
    • 이미지를 업로드 하면, 이미지를 압축 및 최적화 해서 저장하는 작업을 수행하는 경우
    • csv 파일을 업로드 하면, csv 파일을 분석하여, RDB 에 데이터로 저장하게 하는 경우
  2. 이메일 전송하는 경우
    • 클라우드 와치를 통해 서버 상의 이벤트를 수집 하면 이를 트리거로 람다를 실행해 이메일을 전송하는 경우
      (코드 커밋시 이메일 전송 / Slack 알림 등)
  3. 백엔드의 일부 비즈니스 로직에서 사용하는 방식
    • Amazon 의 Alexa 시스템은 람다를 사용해 내부 DB 의 데이터를 조회하고 활용한다.

(03) Lambda의 주요 사항

  1. Java, Go, Powershell, Node.js 등 다양한 언어를 지원한다.
  2. 인프라가 아닌 코드에만 책임을 지려는 경우
  3. 특정한 이벤트에 반응하는 구성을 하려는 경우
  4. 15분 이하로 서버 운영이 필요한 경우 (서버 리스인 만큼 장시간 운영은 적합하지 않다 )

(04) 람다 요금 체계

  1. 자원을 사용한 시간을 기준으로 과금
  2. 호출 횟수에 따라서 과금
  3. 매월 1만건에 한해서는 무료로 제공된다.

02) 실습

(01) Lambda 접근

(02) Lambda 생성

[Create Function]

[테스트 함수 선택]

  • Runtime 으로 내가 수행할 개발 언어의 런타임을 선택한다.

(03) Lambda 코드 입력 및 테스트

  • 아래 코드는 단순히 이름을 입력받아 출력하는 코드이다.
import json

def lambda_handler(event, context):
    message = 'Hello {}'.format(event['name'])  

    print(message)

    return { 
        'message' : message
    }   

위의 코드 내용을 변경한다. (참고로 위와같이 에디터는 AWS 에서는 Cloud9 이라고 부르는 에디터 이다. )

[테스트 코드 입력]

  • 우리는 위의 파라미터로 name 을 입력받아 출력함으로, name 을 형태에 넣어준다.
  • Test 를 누르면 실제 테스트가 수행되며, 우리가 넣은 test01 이 출력된다.
  • Billed Duration 의 경우, 실제로 요금으로 청구되는 CPU 의 사용 시간을 뜻한다.

(04) 로그 살펴보기 ( Cloud Watch)

[상단의 Monitor 탭 선택]

View CloudWatch Logs 를 하면, 클라우드 와치의 로그를 상세하게 볼수 있다.

04. Fargate

01) Fargate 이해하기

(01) Fargate 란

서버리스 환경에서 컨테이너를 동작시키는 서비스 이다.

  • 도커나 ECS 와 동일하게 동작하며,
  • 자동으로 Scale 확장이 가능하다.
  • 프로비저닝 등의 고민 없이 시스템을 구성할 수 있다.

05. Lightsail

01) Lightsail 이해하기

(01) Lightsail 란

라이트세일은 소규모 프로젝트의 어플리케이션을 실행 시키기 위해 사용한다.

  • 워드프레스와 같이 단순한 웹사이트를 배포하는데 주로 사용되며
  • 클라우드 경험이 없는 사용자들도 쉽게 사용이 가능하다.
  • 프로젝트의 필요한 요소들을 포함하고 있다. ( 가상 머신, SSD , 고정 Ip 등)
  • 매우 저렴한 비용으로 서비스를 운영할 수 있다.

06. AWS Outposts

01) AWS Outposts 이해하기

(01) AWS Outposts 란

서비스를 AWS내의 서버가 아닌, On-premises(로컬 서버 환경) 에서 AWS 서비스를 사용하도록 할수 있다.

  • 주로 데이터 보관과 관련된 정책으로 인해 서버를 구성하는 경우 사용된다.
  • AWS 가 서버를 제공하고 설치한다
  • Hybird 환경을 제공한다
  • 클라우드 서비스와 API 를 On-premise 에서 처리가 가능하다.

07. AWS Batch

01) AWS Batch 이해하기

(01) AWS Batch 란

큰 작업(많은 작업)이 필요한 경우, 이를 작은 단위(배치 / 청크) 로 나누어 수행하도록 도와준다.

  • 수백 , 수천개의 작업을 수행할 수 있다.
  • 동적으로 프로비저닝 하여 서비스를 수행한다.

07. AWS Server Migration Sservice

01) AWS Batch 이해하기

(01) AWS Server Migration Sservice 란

On-premises 의 서버를 AWS 에 마이그레이션 할 수 있도록 도와주는 도구이다.

  • 서버는 AMI 형태로 저장되어 EC2 에서 불러와 사용할 수 있다.

100 thoughts on “003. [AWS] 컴퓨팅 리소스 이해”

  1. Элвис Пресли, безусловно, один из наиболее влиятельных музыкантов в истории. Родившийся в 1935 году, он стал иконой рок-н-ролла благодаря своему харизматичному стилю и неповторимому голосу. Его лучшие песни, такие как “Can’t Help Falling in Love”, “Suspicious Minds” и “Jailhouse Rock”, стали классикой жанра и продолжают восхищать поклонников по всему миру. Пресли также известен своими выдающимися выступлениями и актёрским талантом, что сделало его легендой не только в музыке, но и в кинематографе. Его наследие остается живым и вдохновляет новые поколения артистов. Скачать музыку 2024 года и слушать онлайн бесплатно mp3.

    응답
  2. Hello Neat post Theres an issue together with your site in internet explorer would check this IE still is the marketplace chief and a large element of other folks will leave out your magnificent writing due to this problem

    응답
  3. Изложение правовых норм в нормативных актах
    Санкция — это часть нормы права, в которой указаны правовые
    последствия: негативные либо позитивные.
    В уголовном и административном праве негативные санкции сформулированы как вид и
    мера наказания. Трудовое право и ряд других отраслей в качестве позитивных санкций предусматривают поощрительные меры.

    응답

Leave a Comment