EC2 (1)

Jihun Kim·2022년 2월 17일
0

aws solutions architect

목록 보기
5/57
post-thumbnail

EC2란?

EC2는 Elastic Compute Cloud의 약자이며, AWS의 Infrastructure as a Service를 그대로 실행하고 있다.

기능

  • Renting virtual machines
    - EC2 인스턴스라 부른다.

  • Virtual drive에 EBS 볼륨에 데이터를 저장할 수 있다.

  • ELB(Elastic Load Balancer)를 이용한 시스템 부하 분산

  • ASG 혹은 auto-scaling group을 이용해 서비스를 확장할 수 있다.

    EC2를 이해하는 것은 클라우드가 어떻게 동작하는 지를 이해하는 데 가장 기본이 된다.

EC2 Sizing & Configuration 옵션

  • OS: 리눅스, 윈도우, 맥 중 선택 가능
  • CPU
  • RAM
  • 저장 공간
    - 네트워크를 통해 연결될 저장 공간(EBS & EFS 이용)
    - 하드웨어(EC2 Instance Store)
  • EC2 인스턴스에 추가하길 원하는 네트워크 유형
    - 빠른 속도를 원할 경우
    - 어떤 종류의 공공 IP를 원하는 지
  • Security group 설정
  • EC2 User Data라 불리는 첫 launch시 인스턴스를 구성하기 위해 사용하는 Bootstrap 스크립트 설정


EC2 User Data

  • EC2 User Data 스크립트를 이용해 인스턴스를 bootstrap 할 수 있다.
    - 부트스트랩은 머신을 작동시킬 때 명령을 런칭한다는 것을 의미한다.
  • 해당 스크립트는 처음 시작시 딱 한 번만 작동하며 그 이후에 다시 작동하지는 않는다.
  • EC2 User Data는 부트 작업을 자동화 하기 위해 사용된다. 인스턴스를 부팅할 때 어떤 작업을 자동화 하고 싶은지 지정할 수 있다.
    - Installing updates
    - Installing software
    - Downloading common files from the internet ...
  • 그러나 많은 User Data script를 사용할수록 다른 인스턴스보다 부팅 시간이 더 오래 걸리게 된다.
  • EC2 User Data scripts는 루트 사용자를 이용해 작동시킬 수 있다.
    - 즉, sudo 권한을 이용해야 한다.

인스턴스 유형에는 여러가지가 있지만 대표적으로 아래와 같은 것들이 있다.


이를 보고 앱의 특성에 맞게 선택해서 사용해야 한다.



EC2 실행하기

  1. AMI(Amazon Machine Image) 선택

    • Quick Start, My AMIs, AWS Marketplace 등 여러 선택지가 있는데 프리티어를 사용하는 경우 "Amazon Linux2 AMI"를 선택한다.
  2. 인스턴스 타입 선택

  3. 인스턴스 디테일 선택

    • 위에서 원하는 설정을 끝낸 뒤 아래쪽으로 내려보면 "User Data"가 있다.
      - 이는 위에서 설명했듯이, 인스턴스가 맨 처음으로 부팅되는 동안에만 실행되는 스크립트이다.
      - 원하는 스크립트(.sh 파일에 들어가는)를 생성해서 적어 놓으면 된다.
  4. Add Storage

    • 여기에는 Delete on Termination 옵션이 있는데, 이는 우리가 인스턴스를 종료할 때 디스크도 사라지게 된다는 뜻이다.
  5. 태그

    • 원하는 태그를 만들고 싶다면 원하는 수 만큼 만들 수 있다.
  6. Security group

  7. Launch

    • Key pair를 생성해야 한다.
      - 이는 인스턴스에 로그인 하기 위해 SSH를 사용할 때 쓰인다.
      - 처음 인스턴스를 생성하는 경우 key pair를 만들어야 하며 type은 RSA로 한다.
      - 생성 후에는 다운로드 한다.

생성된 인스턴스의 특징

  • Public IP와 Private IP를 갖는다.
    - Public IP: 웹 서버에 접근하기 위해 사용한다.
    • 만약 인스턴스를 중단했다가 다시 시작하는 경우 Public IP는 변하지만 Private IP는 변하지 않는다.


EC2 인스턴스 유형

  • 네이밍 컨벤션
    ex) m5.2xlarge
    - m: instance class(일반적인 인스턴스 유형)
    - 5: 인스턴스의 세대(AWS는 새 버전을 계속해서 출시함)
    - 2xlarge: 인스턴스 클래스 안의 사이즈(크기가 클수록 CPU가 더 많은 메모리를 갖게됨)

유형: 컴퓨팅 최적화(Compute Optimized)

  • 컴퓨팅 집약적인 작업에 최적화 된, 높은 수준의 프로세서가 필요한 인스턴스에서 사용한다.
  • 사용 사례
    - 배치 프로세스(많은 양의 데이터를 다루는 경우)
    - 미디어 트랜스코딩
    - 고성능 웹 서버
    - 고성능 컴퓨팅(HPC)
    - 머신러닝
    - 게임 전용 서버
  • C로 시작하는 이름을 사용한다.

유형: 메모리 최적화(Memory Optimized)

  • 메모리에서 대규모 데이터 세트를 처리하는 워크로드 유형에 대해 매우 빠른 성능을 보인다.
    - 메모리는 RAM을 의미한다.
  • 사용 사례
    - 고성능의 관계형 또는 비관계형 데이터베이스
    • 분산 웹스케일 캐시 저장소
    • BI에 최적화된 In-memory 데이터베이스
    • 큰 비정형 데이터를 실시간으로 처리하는 애플리케이션
  • R로 시작하는 이름을 사용한다(R은 RAM을 의미함).
    - X1은 높은 메모리

유형: 스토리지 최적화(Storage Optimized)

  • 사용자가 로컬 스토리지의 엄청 많은 데이터 세트에 접근할 때 유용함
  • 사용 사례
    - 온라인 트랜잭션 처리(OLTP)
    • Relational & NoSQL Databases
    • DW(Data Warehouse)
    • 분산 파일 시스템
  • I, G 또는 H1으로 시작한다.

ec2.instances.info에서 인스턴스 유형에 대한 정보를 얻을 수 있다.



Security Groups

  • 트래픽이 EC2 인스턴스로 들어오고 나가는 방식을 제어한다.
  • IP 또는 다른 보안 그룹을 참조해 설정할 수 있다.
    - 보안 그룹은 서로 참조가 가능하다.
  • 인바운드 & 아웃바운드
    - 인바운드 그룹: 인증된 유저 혹은 컴퓨터가 접근할 수 있음
    - 아웃바운드 그룹: 기본적으로 모든 트래픽을 허용함
  • 인스턴스는 여러 보안 그룹을 가질 수 있다.
  • 보안 그룹은 리전, vpc에 속해있기 때문에 리전을 변경하면 다른 vpc를 생성해야 한다.
  • 보안 그룹은 EC2 바깥에 위치한 방화벽이다.
    - 따라서, 만약 트래픽이 차단된다면 인스턴스는 해당 트래픽을 볼 수 없다.
  • SSH 접속만을 위해서 보안 그룹을 하나 생성해 놓는 것이 좋다.

다른 보안 그룹 참조

  • 인스턴스를 여러개 생성하게 되면 그에 따른 보안그룹을 생성하거나 기존 보안 그룹을 사용하게 되는데 해당 인스턴스들이 기존 인스턴스와 직접 연결하고 싶을 수 있다.
    - 이럴 때 보안그룹 참조가 필요하다.

알아두면 좋을 클래식 포트 번호

  • 22: SSH - 리눅스
  • 21: FTP - 파일 업로드 또는 전송
  • 22: SFTP - SSH + SFTP로, 보안 파일 전송 프로토콜
  • 3389: RDP(Remote Desktop Protocol) - 윈도우 인스턴스에 로그인 하기 위해 사용됨(22와 반대)


SSH로 EC2에 접근하기

  • SSH는 CLI Utility를 의미한다.
  • EC2 Instance Connect는 웹 브라우저를 EC2 인스턴스에 연결하는 것을 뜻한다.
    - 이는 Amazon NX2에서만 가능하다.
  • 아래의 테이블에 어떤 Utility가 어떤 OS에서 사용하기 적합한지 정리되어 있다.
profile
쿄쿄

0개의 댓글