클라우드/AWS

EC2 vs 가상머신

study_memo 2025. 3. 12. 01:47

EC2 를 쓰면 가상머신이 필요가 없어지나?

 

EC2(Elastic Compute Cloud)는 AWS에서 제공하는 가상 머신(VM) 기반의 클라우드 컴퓨팅 서비스이다. 즉, EC2 자체가 일종의 가상 머신이기 때문에 로컬 환경에서 별도로 가상 머신을 운영할 필요가 줄어드는 건 맞지만, 완전히 필요 없어지는 건 아니다.

 

EC2를 사용하면 가상 머신을 대체할 수 있는 경우

  1. 온프레미스 VM을 EC2로 이전하는 경우
    • 기존에 로컬 서버나 VMWare, VirtualBox 같은 환경에서 VM을 사용했다면, EC2로 이전하면 로컬에서 별도로 가상 머신을 운영할 필요가 없어진다.
  2. 테스트 및 개발 환경을 클라우드에서 운영하는 경우
    • 개발, 테스트, 배포를 EC2에서 한다면 로컬에서 VM을 띄우지 않아도 된다.
  3. 고가용성과 확장성이 필요한 경우
    • EC2는 필요할 때 쉽게 인스턴스를 추가하거나 종료할 수 있어서, 물리적인 서버나 가상 머신보다 유연하게 사용할 수 있다.

 

EC2가 가상 머신을 완전히 대체하지 못하는 경우

  1. 로컬 환경에서 VM이 필요한 경우
    • 인터넷 연결 없이 로컬에서 VM이 필요하다면 여전히 VirtualBox나 VMWare 같은 툴이 필요하다.
  2. EC2 비용이 부담될 때
    • 장기적으로 사용하면 EC2가 물리 서버보다 비용이 많이 들 수 있다.
  3. 특정한 네트워크/보안 요건이 있을 때
    • 기업 내부망에서만 접근할 수 있는 환경이 필요하다면, EC2 대신 온프레미스 VM이 더 적절할 수 있다.

결론적으로, EC2를 사용하면 로컬에서 VM을 운영할 필요성이 줄어들지만, 완전히 없어지지는 않음. 네트워크 환경, 보안, 비용 등을 고려해서 적절한 선택을 하는 게 중요! 

 

 

근데 VM은 무료아니야? 왜 무료인 VM을 놔두고 EC2를 사용하는거지?

라고 생각할 수 있다. 

 

사실, 경우에 따라 다르고, EC2를 사용하는 이유도 여러 가지가 있다.

 

VM이 정말 무료일까?

  1. VirtualBox, KVM 같은 오픈소스 VM 소프트웨어는 무료
    • VirtualBox, KVM, QEMU 같은 소프트웨어를 사용하면 무료로 VM을 만들 수 있다.
    • 하지만 이건 어디까지나 "소프트웨어"만 무료.
  2. VM을 실행할 하드웨어(서버, PC)가 필요함
    • VM을 실행하려면 CPU, RAM, 디스크 같은 리소스를 사용하는데, 이건 무료가 아님.
    • 고성능 VM을 쓰려면 물리 서버가 필요하고, 서버 구축 및 유지보수 비용이 든다.
  3. 기업용 가상화 솔루션(VMware ESXi, Hyper-V 등)은 유료
    • VMware ESXi의 일부 기능은 무료지만, 기업에서 많이 쓰는 관리 기능(vCenter 등)은 유료.
    • Microsoft의 Hyper-V도 일부는 무료지만, 고급 기능은 라이선스를 구매해야 함.

결국, VM 자체는 무료일 수 있어도, 운영하는 비용(하드웨어, 네트워크, 관리 비용 등)이 들어가기 때문에 완전히 무료라고 보긴 어려움.

 

그럼에도 불구하고 EC2를 쓰는 이유

  1. 하드웨어 관리가 필요 없음
    • 로컬에서 VM을 운영하려면 물리 서버가 필요하지만, EC2는 AWS가 서버를 관리해줌.
    • 서버 장애, 디스크 고장 같은 문제를 신경 쓸 필요가 없음.
  2. 필요할 때만 사용하고 비용 절감 가능
    • 온프레미스 VM은 항상 실행되지만, EC2는 필요할 때만 켜고 끌 수 있다.
    • 예를 들어, 하루 2~3시간 테스트하는 용도로만 EC2를 켜면 비용이 적게 듬.
    • AWS 프리티어(Free Tier)로 t2.micro/t3.micro 인스턴스를 일정 시간 무료로 사용할 수도 있음.
  3. 확장성과 고가용성
    • 로컬 VM은 서버 성능에 제한이 있지만, EC2는 필요하면 더 큰 인스턴스로 쉽게 업그레이드 가능.
    • 여러 지역(리전)에 배포해서 고가용성(HA, High Availability)도 가능.
  4. 네트워크 및 보안 관리
    • AWS 보안 그룹, IAM, VPC 같은 기능을 사용해서 네트워크 및 보안을 쉽게 설정할 수 있음.
    • 기업 환경에서는 온프레미스에서 보안 설정하는 것보다 AWS에서 관리하는 게 더 편할 수 있음.

 

결론

 

로컬 VM이 무료로 보일 수 있지만, 운영 비용과 유지보수 부담이 따름.
EC2는 하드웨어 관리가 필요 없고, 확장성과 네트워크 기능이 강력해서 기업이나 클라우드 환경에서는 더 적합한 경우가 많음.

하지만 단순히 "무료라서 VM을 써야 한다"는 접근보다는 운영 비용, 유지보수, 확장성 등을 고려해서 선택하는 게 중요. 

 

 

그러면 VM에서 EC2에 SSH로 들어가서 작업하는건 뭘까?

 

VM에서 EC2에 SSH로 접속해서 작업하는 건, 로컬(또는 온프레미스)에서 가상 머신을 실행하면서, 클라우드의 EC2 인스턴스를 원격으로 조작하는 방식이다.

 

VM에서 EC2에 SSH 접속하는 경우

VM에서 EC2에 SSH로 접속하는 이유는 여러 가지가 있다. 

  1. 클라우드에서 운영하는 서버를 로컬 VM에서 관리하는 경우
    • 개발 환경은 로컬 VM에서 구축하고, 실 서버(운영 서버)는 EC2에서 돌리는 경우.
    • 이때, VM에서 ssh -i 키파일.pem ec2-user@EC2-퍼블릭-IP로 접속해서 원격으로 조작 가능.
  2. 기업 내부망에서 EC2 접속이 필요할 때
    • 회사 내부 네트워크는 인터넷이 차단되어 있을 수 있어서, 사내 VM을 이용해 AWS VPN 또는 Bastion Host(점프 서버)로 EC2에 접속하는 경우.
  3. EC2를 직접 운영하는 대신, VM을 중간 관리 서버로 활용하는 경우
    • VM에서 여러 개의 EC2를 관리하면서, 필요할 때마다 SSH로 특정 EC2에 접속하여 작업 가능.
    • 예를 들어, Ansible이나 Terraform 같은 자동화 도구를 실행할 때, VM에서 AWS 리소스를 컨트롤하는 경우.
  4. EC2 인스턴스의 보안 설정 문제로 특정 IP에서만 접속 가능한 경우
    • EC2의 보안 그룹이 특정 IP만 허용하는 경우, 로컬 PC 대신 특정 VM에서 접속하는 방식으로 우회할 수 있음.

 

결론

 

VM에서 EC2에 SSH 접속하는 건, 로컬 환경(온프레미스 또는 가상 머신)에서 클라우드의 EC2를 원격으로 관리하는 방법.
특히, 보안, 네트워크 제한, 관리 효율성 때문에 이렇게 설정하는 경우가 많다.

 

VM을 이용하지 않고 EC2에서 직접 작업할 수도 있나? 

EC2는 본질적으로 하나의 서버이기 때문에, VM 없이도 직접 SSH 접속해서 모든 작업을 수행할 수 있다.

 

EC2에서 직접 작업하는 방법

  1. AWS 웹 콘솔에서 직접 EC2 접속 (EC2 Instance Connect)
    • Amazon Linux, Ubuntu 등 일부 OS에서는 웹 브라우저에서 SSH 없이 바로 접속 가능.
    • 방법:
      • AWS 콘솔 → EC2 → 인스턴스 선택 → "연결" → "EC2 Instance Connect(브라우저 기반 콘솔)" 클릭
      • 터미널 없이도 웹에서 바로 조작 가능.
  2. 로컬 PC에서 SSH로 EC2 직접 접속
    • EC2가 퍼블릭 IP를 가지고 있다면, 로컬 PC에서 SSH로 바로 접속 가능.
    • 방법:
       
      ssh -i my-key.pem ec2-user@EC2-퍼블릭-IP
    • Ubuntu 계열은 ec2-user 대신 ubuntu 계정을 사용.
  3. EC2 내부에서 바로 개발 및 실행
    • SSH 접속 후, 터미널에서 직접 개발, 애플리케이션 실행, 데이터베이스 운영 등을 할 수 있음.
    • 예를 들어, Python 코드를 실행하거나 Docker 컨테이너를 띄우는 작업도 가능.