[AWS] EC2

Bzeromo·4일 전
0

MSA

목록 보기
9/10
post-thumbnail

⚡ EC2


📌 AWS EC2

🔷 AWS에서 제공하는 클라우드 컴퓨팅 서비스

  • 쉽게 말해, 인터넷을 통해 컴퓨터를 빌려 쓰는 서비스
  • 마치, 컴퓨터를 직접 구매하는 대신, 필요할 때만 빌려서 사용
  • EC2는 필요할 때만 서버를 생성하고 제거할 수 있는 유연성 제공
    • 이를 통해 비용 효율적으로 애플리케이션 배포 및 관리

🔷 가상 서버

  • 물리적인 서버 대신, 가상화 기술을 이용하여 여러 개의 가상 서버를 생성하고 사용할 수 있음

    • 탄력적인 확장성
    • 필요에 따라 서버 용량을 늘리거나 줄일 수 있음
  • 다양한 운영체제 및 소프트웨어 지원

    • 윈도우, 리눅스, 우분투 등 다양한 운영체제와 소프트웨어 설치 및 사용

🔷 장점

  • 비용 효율성

    • 물리적인 서버를 구매하는 것보다 저렴하며, 사용량에 따라 비용 지불
  • 빠른 구축 및 배포

    • 몇 분 만에 서버를 생성하고 바로 사용
  • 유연성 및 확장성

    • 필요에 따라 서버의 성능을 쉽게 조정 기능
  • 관리 편의성

    • AWS가 서버 관리 및 유지보수를 대부분 담당
  • 안정성 및 보안

    • AWS의 글로벌 인프라와 보안 기능을 활용하여 안정적이고 안전한 환경 제공

🔷 사용사례

  • 웹 호스팅: 웹 사이트, 웹 애플리케이션 호스팅
  • 데이터 분석: 빅 데이터 분석, 머신 러닝 작업 수행
  • 게임 서버: 온라인 게임 서버 구축
  • 테스트 및 개발: 소프트웨어 개발 및 테스트 환경 구축
  • 모바일 백엔드: 모바일 앱 백엔드 서버 구축
  • 데이터베이스 호스팅: 데이터베이스 서버 구축 및 관리

📌 주요개념

🔷 인스턴스(Instance)

  • 가상 머신의 일종으로, 사용자가 정의한 환경에서 동작

🔷 AMI(Amazon Machine Image)

  • 인스턴스 생성 시 사용하는 템플릿으로, 운영 체제, 애플리케이션 서버, 애플리케이션 등을 포함

🔷 인스턴스 유형(Instance Type)

  • 다양한 워크로드 요구 사항을 충족하기 위해 여러 인스턴스 유형 제공

  • 각 인스턴스 유형은 CPU, 메모리, 스토리지, 네트워크 성능의 조합을 통해 최적화된 성능 제공하며, 사용 사례에 따라 자유롭게 선택

🔷 키 페어(Key Pair)

  • 인스턴스에 대한 보안을 위해 사용되는 공개 키와 비공개 키 쌍. SSH를 통해 안전하게 접속

🔷 보안 그룹(Security Group)

  • 인스턴스의 네트워크 트래픽을 제어하는 가상 방화벽 규칙

📌 EC2 인스턴스 유형

🔷 프로세서 (CPU): 인스턴스의 연산 능력 결정

  • 일반 목적: 다양한 작업에 적합 (예: t2, m5, c5)
  • 컴퓨팅 최적화: 높은 처리량이 필요한 작업에 적합 (예: c4, m4)
  • 메모리 최적화: 많은 메모리를 필요로 하는 작업에 적합 (예: r5, x1)
  • GPU 최적화: 그래픽 처리 작업에 적합 (예: g4, p3)
  • 저렴한 가격: 비용 효율적인 컴퓨팅 파워 제공 (예: t3, a1)

🔷 작업 유형

  • 웹 서버, 데이터베이스, 빅 데이터 분석, 게임 서버 등 어떤 작업에 사용할 것인가?

🔷 성능 요구 사항

  • CPU, 메모리, 스토리지 성능은 어느 정도 필요한가?

🔷 비용 예산

  • 얼마나의 비용을 지불할 의향이 있는가?

🔷 지속 시간

  • 서버를 얼마나 오랫동안 사용할 것인가?

🔷 인스턴스 요금

  • 시간당 요금: 인스턴스 사용하는 시간에 따라 요금 부과 (초 단위)

  • 인스턴스 유형: CPU, 메모리, 스토리지 등의 성능에 따라 요금 상이

  • 지역: 데이터센터 위치에 따라 요금 상이

  • 예약 인스턴스: 장기간 사용할 경우 할인 혜택 제공

🔷 EC2 요금 모델

  • EBS 볼륨 요금:

    • 볼륨 크기: 볼륨 용량에 따라 요금 부과

    • 볼륨 유형: 성능에 따라 요금 상이 (예: 일반, 프로비저닝된 IOPS)

    • 데이터 전송: 볼륨에 데이터를 쓰거나 읽는 경우, 데이터 전송량에 따라 요금 부과

  • 데이터 전송 요금:

    • 인터넷 데이터 전송: EC2 인스턴스에서 인터넷으로 데이터를 전송하거나 인터넷에서 EC2 인스턴스로 데이터를 수신하는 경우 요금 부과

    • EC2 간 데이터 전송: EC2 인스턴스 간 데이터를 전송하는 경우, 데이터 전송량에 따라 요금 부과

🔷 EC2 요금 절감 팁:

적절한 인스턴스 유형 선택:
작업 요구사항에 맞는 적절한 인스턴스 유형을 선택하여 불필요한 비용 지출 방지

예약 인스턴스 활용:
장기간 사용할 경우 예약 인스턴스를 이용하면 할인 혜택

EBS 볼륨 최적화:
볼륨 유형, 크기를 적절하게 조정하고, 불필요한 데이터를 삭제하여 비용 절감

데이터 전송량 최소화:
불필요한 데이터 전송을 줄이고, 데이터 전송 방식을 최적화하여 비용 절감


📌 EC2 인스턴스 구성 요소 - AMI

EC2 인스턴스를 생성하는 데 사용되는 템플릿

운영 체제, 소프트웨어, 설정 파일 등 인스턴스에 필요한 모든 것 포함
· 컴퓨터를 새로 설치할 때 사용하는 운영 체제 이미지와 동일

AWS에서 제공하는 다양한 AMI가 있으며, 사용자는 자신의 요구 사항에 맞는 AMI를 선택하여 사용
• Amazon Linux AMI: AWS에서 개발한 Linux 배포판 기반 AMI
• Ubuntu Server AMI: Ubuntu Linux 배포판 기반 AMI
• Red Hat Enterprise Linux AMI: Red Hat Enterprise Linux 배포판 기반 AMI
• Windows Server AMI: Microsoft Windows Server 운영 체제 기반 AMI


📌 EC2 인스턴스 구성 요소 – 키페어

🔷 EC2 인스턴스에 SSH를 통해 접근할 때 사용하는 암호화된 키

  • 키 페어는 공개 키와 개인 키로 구성되며, 공개 키는 EC2 인스턴스에 저장되고 개인 키는 사용자가 보관

  • 개인 키를 사용하여 SSH 연결을 생성하면, EC2 인스턴스에 로그인 가능

키 페어를 안전하게 관리하는 것이 중요하며,
개인 키는 절대 다른 사람에게 공유해서는 안 됨!


📌 EC2 인스턴스 구성 요소 - 보안 그룹

🔷 EC2 인스턴스에 대한 네트워크 액세스를 제어하는 가상 방화벽

  • 보안 그룹은 특정 포트와 IP 주소에 대한 규칙을 설정하여 외부에서 인스턴스로 접근할 수 있는 것을 제한

  • EC2 인스턴스를 보호하고, 악의적인 액세스를 방지

  • 보안 그룹은 EC2 인스턴스를 생성할 때 또는 생성 후에 설정 가능

    • 인바운드 규칙: 외부에서 EC2 인스턴스로 접근할 수 있는 규칙
    • 아웃바운드 규칙: EC2 인스턴스에서 외부로 접근할 수 있는 규칙

📌 EC2 인스턴스 시작하기

1. AWS 콘솔에 로그인 – EC2 서비스로 이동

2. EC2 대시보드에서 "인스턴스 시작" 버튼 클릭

3. 인스턴스에 적용할 AMI 선택하기

  • 원하는 운영체제와 소프트웨어를 포함한 이미지 선택

4. 인스턴스 유형 선택하기

  • CPU, 메모리, 저장 용량 등 인스턴스의 사양 선택

5. 인스턴스에 원격으로 접속할 때 사용할 키 페어를 선택하거나 새로 생성

6. 인스턴스에 대한 네트워크 인터페이스 구성

7. 인스턴스에 대한 네트워크 액세스를 제어할 보안 그룹을 선택하거나 새로 생성

8. 인스턴스에 사용할 저장 용량 선택

9. 인스턴스를 쉽게 식별하고 관리하기 위한 태그 추가

10. 인스턴스 시작 시 실행할 스크립트(사용자 데이터) 제공 (선택사항)

11. 모든 설정을 검토하고 "인스턴스 시작" 버튼 클릭

12. 인스턴스가 생성되고 실행될 때까지 잠시 대기

13. 키 페어를 사용하여 원격 데스크톱 또는 SSH를 통해 인스턴스에 접속


📌 EC2 인스턴스 관리

🔷 인스턴스 시작:

  • 현재 중지된 상태의 인스턴스를 다시 실행

  • 인스턴스가 실행되면서 비용 발생

  • 인스턴스의 데이터는 이전 상태 그대로 유지

  • 인스턴스를 다시 사용하고 싶을 때, 또는 작업을 재개하고 싶을 때 사용

🔷 인스턴스 중지:

  • 현재 실행 중인 인스턴스를 일시적으로 중지

  • 인스턴스가 중지되면서 비용은 발생하지 않음 (시간당 요금은 부과되지 않음)

  • 인스턴스의 데이터는 이전 상태 그대로 유지

  • 인스턴스를 일시적으로 사용하지 않을 때, 또는 비용을 절감하고 싶을 때 사용

🔷 인스턴스 재시작:

  • 현재 실행 중인 인스턴스를 재부팅

  • 인스턴스가 재시작되면서 비용 발생

  • 인스턴스의 데이터는 이전 상태 그대로 유지

  • 인스턴스를 재부팅하고 싶을 때, 또는 소프트웨어 업데이트를 적용하고 싶을 때

🔷 인스턴스 종료:

  • 현재 실행 중이거나 중지된 상태의 인스턴스를 완전히 삭제

  • 인스턴스가 삭제되면서 비용이 더 이상 발생하지 않음

  • 인스턴스의 데이터가 삭제되므로, 중요한 데이터는 백업해야 함

  • 인스턴스를 더 이상 사용하지 않을 때, 또는 인스턴스를 새로 생성하고 싶을 때

기능설명비용 발생데이터 유지사용 시점 예시
시작중지된 인스턴스를 다시 실행OO작업 재개, 다시 사용하고 싶을 때
중지실행 중인 인스턴스를 일시 정지X (일부 자원은 과금될 수 있음)O일시적 사용 중단, 비용 절감 목적
재시작실행 중인 인스턴스를 재부팅OO설정/업데이트 적용 후 재시작 필요 시
종료인스턴스를 완전히 삭제XX더 이상 사용하지 않거나 새로 생성 시

📌 Elastic IP

🔷 AWS에서 제공하는 고정된 공용 IP 주소

  • 일반적인 공용 IP 주소와 달리, EIP는 특정 EC2 인스턴스에 고정되지 않고 AWS 계정에 할당

  • 주요 사용 사례:

    • 웹 서버: 공용 IP 주소를 고정하여 웹 사이트 액세스를 안정적으로 유지

    • 데이터베이스 서버: 공용 IP 주소 고정을 통해 외부 애플리케이션에서 안정적으로 데이터베이스에 접근

🔷 VPN 연결: 고정된 IP를 통해 VPN 연결 안정성 유지

🔷 로드 밸런서: EIP를 AWS Load Balancer에 할당하여 여러 EC2 인스턴스 간 트래픽 분산


📌 CloudWatch

🔷 EIP: 일반적인 EIP로, EC2 인스턴스에 할당

🔷 NAT 게이트웨이 EIP: NAT 게이트웨이에서 사용하는 EIP로, 프라이빗 서브넷의 EC2 인스턴스가 인터넷에 액세스하도록 지원

⚠️ EIP는 별도의 비용이 발생한다.
사용하지 않는 EIP는 해제하여 비용을 절감하자.

  • EIP는 특정 리전에 할당

  • 다른 리전에서 사용하려면 해제하고 다시 할당해야 함

🔷 실시간 모니터링:

  • CPU 사용량, 메모리 사용량, 네트워크 트래픽, 디스크 사용량 등 다양한 지표를 실시간으로 모니터링하여 인스턴스의 상태 파악 가능

🔷 경고 설정:

  • 특정 지표가 임계값을 넘었을 때 알림을 받도록 설정하여 문제 발생 시 빠르게 대응 가능

🔷 로그 분석:

  • EC2 인스턴스의 로그를 수집하고 분석하여 문제 발생 원인을 파악하고, 시스템 성능 개선 가능

🔷 데이터 시각화:

  • 그래프, 차트, 테이블 등 다양한 방식으로 데이터를 시각화하여 문제를 쉽게 파악하고, 트렌드 분석 가능

🔷 자동화 기능:

  • CloudWatch Alarm을 사용하여 특정 지표가 임계값을 넘었을 때 자동으로 EC2 인스턴스를 시작, 중지, 재시작하거나, 다른 AWS 서비스를 실행하도록 설정 가능

profile
Hodie mihi, Cras tibi

0개의 댓글