[AWS] EC2와 보안그룹에 관하여

류예린·2022년 8월 19일
1

1. EC2란?


EC2Amazon Elastic Compute Cloud의 약자다. AWS(Amazon Web Services)는 기본적으로 EC2라는 서비스를 통해 확장 가능한 compute를 사용자에게 제공해 준다.

AWS의 가장 대표적인 IaaS(Infrastructure as a Service)는 EC2다. 사용자는 EC2를 통해 본인에게 필요한 사양을 쉽게 고르고, 또 가상 서버를 지칭하는EC2 인스턴스를 생성하여 사용할 수 있다. 쉽게 말해 AWS에게 컴퓨터를 대여하는 것이다.

Amazon EC2는 운영 서버에 필요한 대부분의 OS(Ubuntu, CentOS, Window 등)를 지원하고, 사용 목적에 맞는 수십 가지 사양들(CPU, Memory, Storage)을 제공한다.

EC2는 사용량별 과금 모델을 따르기 때문에 인스턴스 타입에 따라 시간 단위 또는 초 단위로 사용량을 지불하게 된다. 새로운 서버 구축을 위해 직접 서버를 구매하고, 관리를 위한 공간과 인터넷망, 전기요금, 네트워크 비용 등을 지급하던 기존의 방식에 비교하자면 이젠 클릭 몇번을 통해 간편하고 저렴한 서버를 이용할 수 있게 됐다.

또한 EC2 서비스는 확장성을 고려하여 만들어졌다. 특정 서버(EC2 인스턴스)에 트래픽이 집중되면 즉각적으로 새로운 서버를 추가할 수 있고, 트래픽이 감소하면 추가했던 서버를 즉시 제거할 수 있다.

예를 들어 회사의 한 주 워크로드를 처리하는데 12개의 CPU를 탑재한 서버가 필요한 상황이라 가정해보자. 주말에 트래픽이 두 배로 늘어날 것으로 예상될 경우 해당 기간은 12개의 CPU를 탑재한 서버를 하나 더 추가해서 사용할 수 있다. 또한 월요일에 출근해 새롭게 추가했던 서버를 삭제할 수 있다. 그렇다면 회사에서 지불하게 되는 비용은 토요일과 일요일 사이 새롭게 추가된 서버에 관한 내용일 뿐이다.

이렇게 Amazon EC2 서비스를 이용하면 사용자가 하드웨어에 투자하지 않고도 On-demand로 원하는 사양의 가상화된 서버를 신속하게 만들고 사용할 수 있다.







2. EC2의 장점


앞서 언급된 바와 같이 EC2를 사용하면 On-demand로 원하는 시간에 원하는 사양의 가상 서버를 신속히 만들 수 있다. 단순히 가상 컴퓨터를 대여받아 빠르게 제품을 출시하고 그에 따른 비용 절감을 할 수 있다는 점 외에도 다양한 장점들이 있다.

확장성과 탄력성

Auto Scaling은 자동으로 EC2 인스턴스 수를 조절한다. 이 기술과 접목하여 사용자는 편리하게 서버를 스케일 업(Scale-up) 또는 스케일 다운(Scale-down)할 수 있다. 성능은 최대화하고 비용은 최소화할 수 있게 된다. EC2로 서버를 운영하는 사용자는 필요한 만큼의 자원만 프로비전하고, 추가 수요가 발생하거나 트래픽이 급증하면 그에 따른 서버를 추가하면 되므로 탄력적이다.

보안성

Security Group(SG)은 가상 방화벽 기능을 수행한다. SG를 이용해 연결된 리소스에 도달하거나 이를 떠날 수 있는 트래픽을 제어하면 사용자의 네트워크 보안 수준을 높일 수 있다.

다양한 AWS 서비스와의 통합

Amazon EC2 인스턴스는 AWS 내의 VPC, RDS, ELB 등 다양한 서비스들과 호환성이 뛰어나다. 연동이 잘되기에 해당 기능들을 통합해 각 기업의 니즈에 맞는 운영 서버를 구축하고, 광범위한 애플리케이션 간 클라우드 스토리지에 대해 완전하고 안전한 솔루션을 제공할 수 있다.

이렇듯 다양한 장점이 있는 EC2를 이해하는 것은 클라우드 컴퓨팅 서비스를 이해하는 것과 일맥상통한다. 여기서 말하는 클라우드는 다양한 컴퓨팅 자원을 원하면 언제든지 대여할 수 있음을 의미한다. 앞서 설명한 바와 같이 가상의 컴퓨터를 대여해줄 뿐 아니라 다양한 편리성과 기능을 제공하는 EC2는 AWS에서 제공하는 클라우드 컴퓨팅 서비스의 기본이다.







3. EC2 인스턴스의 유형


AWS EC2는 사용자의 요구에 맞게 서버를 만들 수 있도록 아주 다양한 선택지를 제공해주며 이는 비용의 최적화에 용이하다. EC2 인스턴스를 생성할 때는 OS와 Security Group외에도 다양한 인스턴스 유형을 지정할 수 있다. 또한, EC2 인스턴스는 특정 유형의 작업에 최적화된 패밀리로 그룹화 되어 있다.

  • 범용 인스턴스는 균형있는 컴퓨팅, 메모리 및 네트워킹 리소스를 제공, 다양한 워크 로드에 사용할 수 있다. 웹 서버 및 코드 레포지토리 같이 균등한 비율로 리소스를 사용하는 애플리케이션에 적합하다.
  • 컴퓨팅 최적화 인스턴스는 고성능 프로세서를 활용하는 컴퓨팅 집약적인 애플리케이션에 적합하다.
  • 메모리 최적화 인스턴스는 메모리에서 대규모 데이터를 처리하는 워크로드를 위한 빠른 성능을 제공하기 위해 설계된 인스턴스다.
  • 스토리지 최적화 인스턴스는 로컬 스토리지의 대규모 데이터에 대하여 많은 읽기 및 쓰기를 요구하는 워크로드를 위해 설계된 인스턴스다.
  • 가속화된 컴퓨팅 인스턴스는 GPU를 기반으로 하여 그래픽 처리, 데이터 패턴 일치 등의 기능을 CPU보다 훨씬 더 효율적으로 수행하는 인스턴스다.

이처럼 특정 유형의 작업에 따라 패밀리로 그룹화 된 인스턴스 타입은 CPU, 메모리, 스토리지 및 네트워킹 용량의 다양한 조합으로 구성되며, 애플리케이션에 따라 적합한 리소스 조합을 선택할 수 있는 유연성을 제공한다.







4. 보안 그룹(Security Groups)


보안 그룹(Security Groups)이란?

[그림1] Inbound, Outbound 트래픽

보안 그룹은 AWS에서 가장 기본이 되는 네트워크 보안 기술이다. 보안 그룹을 사용하여 EC2 Instance로 들어오거나(Inbound) 나가는(Outbound) 트래픽들을 직접 설정하여 제어할 수 있다. 이렇듯 보안 그룹은 서비스의 보안과 관련된 아주 중요한 기능이므로 EC2를 활용하여 인프라를 구축하는 경우 올바르게 사용할 줄 알아야 한다.

보안 그룹 규칙(Security Groups Rules)

보안 그룹을 생성할 때에는 필요한 규칙들을 추가해줘야 한다. 이러한 규칙들은 아래와 같이 다양한 옵션으로 트래픽을 제어할 수 있다.

  • 포트(Port)
  • 인증된 IP 범위 - IPv4 and IPv6
  • 인스턴스 밖에서 안으로 들어오는 Inbound Network
  • 인스턴스 안에서 밖으로 나가는 Outbound Network

아래 이미지는 보안 그룹에 추가된 규칙 이미지다.

[그림2] Inbound 규칙

[그림3] Outbound 규칙

[그림4] 보안 그룹 동작 원리

  1. 인바운드 규칙으로 정해진 IP와 Port를 추가하였기 때문에 보안 그룹을 통과하여 인스턴스에 접속할 수 있다.
  2. 인바운드 규칙으로 허용된 IP 혹은 Port가 아니라면 접속할 수 없다.
  3. 아웃바운드 규칙으로 모든 트래픽을 허용하였기 때문에 IP, Port와 상관없이 바깥으로 내보낼 수 있다.







5. 포트(Ports)


포트(Ports)란?

소프트웨어에서의 포트는 네트워크 서비스 혹은 특정 프로세스를 식별하는 논리적 단위다. 따라서 IP 내의 프로세스를 정확히 식별하기 위해 사용된다.

포트(Ports)의 분류

해당 포트의 번호로 프로세스를 식별하게 되는데, 그 번호는 16비트 범위의 숫자로 구성되며 아래와 같이 크게 세 가지로 나뉜다.

📍 Well-Known Ports(잘 알려진 포트) - 0 ~ 1023

  • IANA(Internet Assigned Numbers Authority)에서 할당한 TCP/UDP 포트
  • 22 - SSH(Secure Shell)
    • 네트워크 프로토콜 중 하나로 안전하게 통신하기 위해 사용하는 프로토콜
    • 대표적으로 데이터 전송(git push)와 원격 제어(EC2 인스턴스 접속)에 사용
  • 80 - HTTP
  • 443 - HTTPS

📍 Registered Ports(등록된 포트) - 1024 ~ 49151

  • 특정 용도로 사용되기 위해 등록된 포트
  • 1433 - MSSQL
  • 3306 - MySQL

📍 Dynamic Ports(동적 포트) - 49152 ~ 65535

  • 사용자가 임의로 등록하여 사용 가능한 포트




6. 정리


  • EC2(Elastic Compute Cloud)는 On-demand로 원하는 사양의 가상화된 서버를 사용할 수 있게 해준다.
  • EC2는 확장성, 탄력성과 더불어 안정성 측면의 장점이 있으며 다양한 AWS의 서비스와 호환성 또한 뛰어나다.
  • EC2 인스턴스를 생성할 땐 OS와 Security Group 외에도 다양한 인스턴스 유형을 지정할 수 있으며, 특정 유형에 따라 패밀리로 그룹화 된 인스턴스 타입이 제공되므로 사용자는 애플리케이션에 맞춘 최적의 리소스 조합을 선택할 수 있다.
  • 보안 그룹은 AWS에서 가장 기본이 되는 네트워크 보안 기술이다.
  • 보안 그룹을 사용하여 인스턴스로 들어오거나(Inbound) 나가는(Outbound) 트래픽들을 직접 설정하여 제어할 수 있다.
  • 보안 그룹은 포트, IP 범위 등 여러 옵션을 포함한 보안 그룹 규칙을 더하여 트래픽을 제어할 수 있다.
  • 소프트웨어에서의 포트는 네트워크 서비스 혹은 특정 프로세스를 식별하는 논리적 단위다.
profile
helloworld

1개의 댓글

comment-user-thumbnail
2024년 1월 8일

정리를 깔끔하게 너무 잘해주셨네요. 감사합니다!

답글 달기