[AWS] EC2 를 활용하여 인스턴스 다루기

SJ.CHO·2024년 11월 18일
post-thumbnail

EC2 (Elastic Compute Cloud)

  • 클라우드 컴퓨팅 서비스중 하나로, 가상 서버 인스턴스 를 제공한다.
  • EC2 를 사용시 필요한 시간만큼만 가상서버를 생성 및 사용이 가능하며, 필요에 따라서 스케일업 혹은 다운이 가능하다.
  • Iaas 방식을 사용한다.

클라우드 서비스 종류

  • IaaS (Infrastructure as a Service)

    • H/W 인프라를 인터넷을 통해 제공하는 서비스이며, 가상화된 H/W, 스토리지, 네트워크, OS 등을 제공한다.
    • 사용자는 이를 통하여 자신의 APP 을 실행가능하다.
    • AWS EC2, Microsoft Azure, Google Compute Engine 가 대표적이다.
  • PaaS (Platform as a Service)

    • APP을 개발, 실행, 관리 하기위한 플랫폼을 인터넷을 통해 제공한다.
    • Iass 에서 제공하는 인프라와 미들웨어를 이용하여 APP 개발, 배포, 운영 등에 필요한 환경을 제공한다.
    • AWS Elastic Beanstalk, Heroku, Google App Engine 이 대표적 이다.
  • SaaS (Software as a Service)

    • 사용자에게 완전한 APP을 제공하며, 해당 APP 은 클라우드 제공업체의 서버에서 실행된다.
    • 사용자는 APP 에대한 제어권을 가지며, 제공업체가 인프라, OS, 백엔드 APP 및 데이터 관리를 담당한다.
    • 사용자에게 필요한 S/W 를 클라우드 형태로 서비스 제공하는 형태이다.
    • 구글 드라이브, 마이크로소프트 오피스 365, Salesforce 이 대표적이다.

인스턴스

  • H/W 리소스를 가상화하여 사용하는 컴퓨팅 환경을 뜻한다.
  • 각 인스턴스는 독립적으로 실행 및 관리되며, 필요에 따라서 형태를 유동적으로 변경이 가능하다.
  • EC2 인스턴스는 다양한 OS 및 유형을 지원한다.
    • 웹 애플리케이션 호스팅
    • 데이터베이스 호스팅
    • 컴퓨팅 작업 (예: 데이터 분석, 머신 러닝)
    • 애플리케이션 테스트 및 개발

인스턴스 유형

출처

  • 서버에 할당되는 CPU, 메모리, 스토리지 및 네트워크 리소스등의 성능 특성을 결정한다.
  1. OS : 인스턴스는 다양한 OS를 지원하며 Amazon Linux, Ubuntu, Windows 등이 있다.
  2. 스토리지 옵션 : 인스턴스 스토어, Amazon EBS 및 Amazon S3와 같은 다양한 스토리지 옵션이 있다.
  3. 보안 그룹 : 인바운드, 아웃바운드 트래픽을 제어하는 방화벽 규칙이며, 각 그룹은 포트 범위, 프로토콜 및 허용되는 IP 주소 범위 등을 정의할 수 있다.
  4. 키 페어 : 인스턴스에 대한 SSH 액세스를 허용한다.
  5. 탄력적 IP 주소 : EC2 인스턴스에 고정 IP 주소를 할당한다. 이를 기반으로 인스턴스 중지 및 실행과정에서 IP주소가 변경되는것을 막는다.
  6. 사용가능한 영역 : EC2 인스턴스는 여러 가용 영역에서 실행될 수 있다. 이로인해 장애대응 및 고가용성에서 유리하다.

인스턴스 생성

  • 콘솔창 내에서 EC2 를 검색하여 메뉴로 들어간다.

  • 대시보드 내에서는 내 인스턴스들에 대한 정보를 확인가능하다.
  • AWS 내에서 지원하는 EC2에 대한 여러 OS 를 지원하고 있으며, 가상서버에 적합한 Ubuntu 선택.
  • 여러 인스턴스 유형을 제공하며, 자신의 서비스할 APP에 맞는 유형의 인스턴스를 골라 사용이 가능하다.
  • Key Pair 설정은 AWS에 접속할때 데이터들을 암호화해주는 알고리즘을 지정 가능하다.
  • 인스턴스 생성이 완료가된다면, 성공 화면과 함께 대시보드내에서 해당인스턴스의 상세정보 출력이 가능하다.
  • 퍼블릭, 프라이빗 IP가 나누어진이유는 APP 외부 와 내부에서 접근가능한 IP를 나눠주는 모습이다.

인스턴스 설정

  • 대부분의 EC2에 접속이 안되는경우는 90% 이상이 방화벽의 설정이상이다.
  • 보안탭의 인바운드 규칙을 추가 및 HTTP, HTTPS 를 모든사용자가 접근이 가능하게끔 규칙을 생성해 저장해주면 된다.

  • 다음으론 대시보드내에 연결 혹은 커넥트 버튼을 눌러 연결설정을 해주면 된다.

  • 현재 가상 인스턴스의 터미널로 접속이 진행되며, 내부 터미널내에서 APP이나 서버등을 띄워 사용이 가능하다.

  • 인스턴스를 계속활성화 하게 된다면 과금이 발생하는 상황이 있다. 이에 경우 사용을하지않는다면 중지가 가능하며, 데이터는 그대로 보존된다.
  • 한가지 주의해야할 점은 인스턴스를 중지 후 재사용 할 경우 퍼블릭 IP가 변동된다. (프라이빗 IP는 변동되지 않는다)

  • 이를 막기위해서는 탄력적IP 를 통해 고정 IP 를 AWS에서 할당받아 인스턴스에 연결하여 사용이 가능하다.
  • 해당 방법 또한 과금이 발생하기에 인스턴스 연결해제 -> IP 릴리스를 통해 사용 후 IP를 다시 반납해야 한다.

EBS (Amazon Elastic Block Store)

  • EC2 인스턴스에 연결할 수 있는 블록 수준 스토리지 볼륨 이다.
  • 네트워크를 통해 인스턴스에 연결되는 데이터 지속성, 스냅샷 백업 및 다른 인스턴스에서 쉽게 데이터를 사용가능하게 한다.
  • 데이터의 지속성을 보장하기 위해 AWS 내에서 복제 및 백업되므로 안정적이고 내결함성이 높은 스토리지 옵션 이다.
  • 인스턴스를 종료(terminate) 하더라도 데이터를 유지할수 있으며 하나의 EBS 는 하나의 인스턴스에만 장착이 가능하지만 하나의 인스턴스에는 여러개의 EBS 장착이 가능하다.
  • 특정 리전이 아닌 특정 AZ 에서만 사용이 가능하다.

EBS snapshot

  • EBS 볼륨의 데이터를 백업하는 데 사용되는 Amazon Web Services(AWS)의 기능이다.
  • EBS 볼륨의 데이터를 인스턴스 내에서 복제하고, 이를 S3에 저장한다. 스냅샷은 EBS 볼륨의 모든 데이터를 포함하므로, 데이터를 백업하고 나중에 이전 상태로 복원이 가능하다.
    • 데이터 백업 및 복원: 스냅샷을 사용하면 EBS 볼륨의 데이터를 백업하고 나중에 이전 상태로 복원할 수 있다.
    • 볼륨 확장: 스냅샷을 사용하여 EBS 볼륨의 크기를 확장할 수 있다. 스냅샷에서 새로운 볼륨을 생성하고, 기존 볼륨에서 새로 생성한 볼륨으로 데이터를 복사할 수 있다.
    • 데이터 마이그레이션: 스냅샷을 사용하여 EBS 볼륨의 데이터를 다른 지역으로 이동할 수 있다.

EBS 생성 및 연결

  • 인스턴스를 생성할때 기본적으로 볼륨(EBS)가 생성되어지는 것을 볼 수 있다.(생성중 환경설정으로 설정가능)
  • 또한 볼륨을 직접적으로 생성해서 해당 인스턴스에 붙여주는식으로 사용이 가능하며, 종료시 삭제가 아니오 인 경우 인스턴스를 종료시키더라도 해당 EBS 를 통해 백업이 가능하다.
  • 생성 및 연결에서 주의할 점은 가용 영역이 인스턴스와 EBS가 동일해야만 연결이 가능하다.

AMI (Amazon Machine Image)

  • EC2 인스턴스를 생성할때 사용하는 OS, APP, 라이브러리등을 이미지화 하여 구성된환경을 설정하는 가상 머신 기술이다.
  • 개발자는 자신이 구성한 인스턴스를 이미지화 시켜 사용 및 공유가 가능하다.

AMI VS EBS

  • AMI
    • 인스턴스를 시작 할 때 사용되는 이미지이다. 이미 설치된 OS 및 APP 을 포함하여 인스턴스를 구성 할 때 필요한 모든 정보를 포함하며, 이를 통해 EC2 인스턴스의 상태조절이 간편하다.
  • EBS
    • 이미 사용 중 인 인스턴스의 데이터를 저장 및 보존하는데 사용한다.
  • AMI를 생성하는데 EBS 스냅샷을 사용할 수 있다.

AMI 생성하기

  • AMI로 인스턴스 시작 버튼을 통해서 생성된 AMI를 통해 인스턴스를 생성이 가능하다.

profile
70살까지 개발하고싶은 개발자

0개의 댓글