gony-dev 님의 블로그

Section 5. EC2(Basic) 본문

AWS

Section 5. EC2(Basic)

minarinamu 2024. 9. 24. 17:04

 

EC2란?
Elastic Compute Cloud의 약자로 단순히 하나의 서비스가 아니라 여러 기능을 포괄한다.
1. EC2로 가상 머신을 임대하는 것을 EC2 인스턴스라고 한다.
2. EBS 볼륨이라는 가상 드라이브에 데이터를 저장할 수 있다.
3. ELB를 통해 여러 서버에 로드를 분산한다.
4. ASG(오토 스케일링 그룹을 이용해 서비스를 확장한다.

 

가상 서버에 사용 가능한 옵션

  • Operating System(OS): Linux, Windows, Mac OS
  • CPU 선택
  • RAM 선택
  • Storage space 선택 가능
    • EBS & EFS
    • EC2 Instance Strore
  • Security group
  • Bootstrap script: EC2 User Data, 처음 시작할 때 환경 구성

EC2 User Data

    • 부트스트랩을 사용하여 EC2 User data를 설정할 수 있다.
    • 부트스트래핑이란 머신이 시작할 때 명령을 실행하는 것이다.
    • 스크립트는 처음 시작할 때 한 번만 실행되고, 다시 실행되지 않는다.
    • 자동화 작업으로 할 수 있는 것에는 업데이트, 소프트웨어 설치, 인터넷 파일 다운로드 등 원하는 것은 무엇이든 할 수 있다.
    • EC2 User Data 스크립트는 루트 사용자로 실행된다.

EC2 Instance Type

instance 종류들은 다음과 같으며, 상황에 따라 자유롭게 선택하여 진행한다.

t2.micro는 aws free tier로 무료로 이용이 가능하다.

  •  AWS 명명 규칙
    • ex. m5.2xlarge
      • m: 인스턴스 클래스
      • 5: 버전(세대)
      • 2xlarge: 인스턴스 내 크기
  • 인스턴스 유형(시험 출제 가능성)
    1.  범용 인스턴스
      • 웹 서버나 코드 저장소 같은 다양한 작업에 적합
      • 컴퓨팅, 메모리 간의 균형도 맞음.
      • t2.micro가 전형적인 범용 인스턴스
    2. 컴퓨팅 최적화 인스턴스
      • 컴퓨터 집약적인 작업에 최적화된 인스턴스
      • 일부 데이터의 일괄적 처리에 사용하거나 고성능 웹 서버가 필요하거나 머신 러닝 때 사용한다.
      • 모두 고퀄리티 CPU나 컴퓨팅을 요구하는 작업이다.
      • C로 시작하는 이름을 가지고 있다.
    3. 메모리 최적화 인스턴스
      • 메모리에서 대규모 데이터셋을 처리하는 유형의 작업에 빠른 성능을 제공
      • 고성능의 관계/비관계형 데이터베이스에 사용하고 분산 웹스케일 캐시 저장소에도 사용한다.
      • BI에 최적화된 인메모리 데이터베이스나 대규모 비정형 데이터의 실시간 처리를 하는 애플리케이션에도 사용한다.
      • 보통 RAM을 나타내는 R로 시작한다.
    4. 스토리지 최적화 인스턴스
      • 로컬 스토리지에서 대규모의 데이터셋에 액세스할 때 적합한 인스턴스
      • 고주파 온라인 트랜잭션 처리인 OLTP, NOSQL에서 사용한다.
      • Redis 같은 메모리 데이터베이스의 캐시나 분산 파일 시스템에 사용한다.
      • I, D, H로 시작하는 이름을 가지고 있다.

Security Group

AWS Security
EC2 인스턴스 안밖으로 트래픽이 허용되는 방식을 제어한다.
허용 규칙만 포함되어 있어서 무엇이 나가고 들어오는지 알 수 있다.
규칙을 IP 주소를 기준으로 설정할 수 있다.

Security Group
EC2 인스턴스의 방화벽이고 포트에 대한 액세스를 규제한다.
규제 목록으로는
"포트에 대한 액세스, 승인된 IP 범위, 인바운드 네트워크 제어, 아웃바운드 네트워크 제어"
가 있다.

 

방화벽 작동 방식

 

Security Group에 대한 사실들

  1. 여러 인스턴스에 연결할 수 있다.
    • 보안 그룹과 인스턴스 사이에는 1:1 관계가 없다.
  2. 보안 그룹은 특정 지역과 VPC 조합에만 제한된다.
    • 다른 지역으로 전환하려면 다른 보안 그룹을 사용해야 한다.
  3. 보안 그룹은 EC2 외부에 있다.
  4. SSH 액세스를 위해서만 별도의 보안 그룹을 하나 유지하는 것이 좋다.
    • 복잡한 작업이기에 제대로 돌아가는지 확인할 필요가 있다.
  5. 기본적으로 모든 인바운드 트래픽은 차단되고, 모든 아웃바운드 트래픽은 승인된다.

알아야 할 포트들(시험 출제 가능성)

  1. SSH(Secure Shell): 22번 포트, 리눅스에서 EC2 인스턴스에 로그인할 수 있다.
  2. FTP(File Transfer Protocol): 21번 포트, 파일 업로드나 공유하는데 사용
  3. SFTP(Secure File Transfer Protocol): 22번 포트, 안전한 파일 업로드 
  4. HTTP: 80번 포트, 안전하지 않은 웹사이트 액세스
  5. HTTPS: 443번 포트, 안전한 웹사이트 액세스
  6. RDP(Remote Desktop Protocol): 3389번 포트, 윈도우 인스턴스에서 EC2 인스턴스에 로그인할 수 있다.

SSH

  • 명령줄 인터페이스 유틸리티는 맥이나 리눅스에서 사용할 수 있고, 윈도우 버전 10 이상에서도 사용할 수 있다.
  • 윈도우 버전 10 미만은 putty를 사용한다.
  • 하지만 EC2 Instance에서는 모든 체제가 가능하다.

mac or linux에서 ssh를 구현하는 방법은 다음과 같다.

ssh -i EC2Tutorial.pem ### 해당 ec2의 pem 파일을 넣어 실행, 이때 warning 발생
chmod 0400 EC2Tutorial.pem ### 권한 변경
ssh -i EC2Tutorial.pem ec2-user@x.xxx.xx.xxx ### 다시 입력

whoami ### 해당 명령어로 사용자가 누구인지 확인 가능

 

SSH의 문제 및 해결

1. 연결 타임아웃 이슈
보안 그룹에서 발생하는 문제로 모든 타임아웃은 보안그룹이나 방화벽과 관련된 문제이다.
따라서 보안그룹이 다음과 같이 설정되어 있는지 확인해야 한다.

2. ssh command not found

해당 오류가 발생할 경우, Putty를 사용해야 함을 의미한다.

3. 연결이 거부되었습니다.

이는 인스턴스에 연결할 수는 있지만 인스턴스에서 실행 중인 SSH 유틸리티가 없음을 의미한다.

그래서 인스턴스를 다시 시작하거나 새 인스턴스를 만드는 방안을 추천한다.

4. Permission Denied

위 오류는 두 가지 경우를 의미한다.

  • 잘못된 보안 키를 사용했거나 보안 키를 사용하지 않고 있는 경우
  • 잘못된 사용자를 사용하고 있는 경우

두 가지 경우를 잘 고려하여 실행하면 해결될 것이다.


EC2 Instances Purchasing Options

  1. On-Demand Instances | 일반적으로 사용되는 인스턴스, 단기 워크로드와 가격 예측이 가능하고, 초당 비용을 지불
  2. Reserved(1 또는 3 years)
    1. Reserved Instances | 장기 워크로드에 적합
    2. Convertible Reserved Instances | 유연성 있는 인스턴스에 적합
      1. 최대 66%까지 할인이 가능하다.
    3. on-demand에 비해 72% 비용이 절약할 수 있다.
    4. 전체 선결제나 부분 선결제도 가능하고 선결제 없이도 할 수 있다.
      1. 전체 선결제가 할인율이 가장 높다.
    5. 특정 리전으로 범위를 지정하거나, 특정 AZ의 용량을 예약하도록 영역을 지정할 수 있다.
  3. Savings Plans | 1년 또는 3년을 기간으로 하는 요금 모델. 특정 사용량을 약정하여 달러로 지불한다. 장기 워크로드에 적합
    1. 최대 72%까지 할인이 가능하지만 대신 시간당 10달러의 비용을 1년에서 3년 동안 약정한다.
    2. 초과 가격은 on-demand를 따라간다.
    3. 인스턴스의 크기에 규제받지 않는다.
  4. Spot Instances | 아주 짧은 단기 워크로드용 인스턴스로 저렴하다. 인스턴스를 언제든 손실할 수 있어서 신뢰성이 낮음
    1. 최대 90%까지 할인이 가능하다.
    2. 언제든 인스턴스가 중단될 수 있다.(지불 가격 < 스팟 가격)
    3. 중단되도 복구하기 쉬운 작업들
      1. 배치 작업
      2. 데이터 분석
      3. 분산된 워크로드
  5. Dedicated Hosts | 전체 물리적 서버를 예약하고, 인스턴스 배치를 제어할 수 있다.
    1. 규정 준수 사항이 있을 때 사용
    2. 전용 호스트가 필요한 사례
      1. On-demand(초당 청구)
      2. Reserved(1년이나 3년 예약)
    3. 가장 비싼 옵션이다.
    4. 복잡한 라이센스 모델을 가진 소프트웨어에 유용하다.
    5. 강력한 규제가 필요할 때 사용한다.
  6. Dedicated Instances | 하드웨어를 공유하지 않는 인스턴스
  7. Capacity Reservations | 용량 예약을 통해 특정 AZ의 용량을 원하는 기간동안 예약이 가능하다.
    1. on-demand 요금이 청구된다.
    2. 단기 작업에 적합하고, 특정 AZ 작업에 부적합하다.

Dedicated Host와 Dedicated Instances의 차이점

 

'AWS' 카테고리의 다른 글

Section 11. Amazon S3  (0) 2024.09.26
Section 10. VPC(Basic)  (0) 2024.09.26
Section 9. Route 53  (0) 2024.09.26
Section 8. RDS+Aurora+ElasticCache  (0) 2024.09.26
Section 6. EC2 Instance Storage  (1) 2024.09.25