[AWS] EC2 인스턴스 생성 및 SSH 접속 실습

2026. 6. 10. 16:03·AWS

01. 실습 목표

  • EC2 인스턴스를 직접 생성한다.
  • SSH로 인스턴스에 접속한다.
  • Apache를 설치하고 웹 서버를 실행한다.
  • 브라우저에서 웹 서버 동작을 확인한다.

사용 환경은 Windows 기준이며, SSH 클라이언트로 MobaXterm을 사용했다. macOS라면 터미널에 내장된 SSH를 바로 쓸 수 있다.


02. EC2 인스턴스 생성

AWS 콘솔에서 서비스 → 컴퓨팅 → EC2로 이동한 뒤 인스턴스 시작을 누른다. 리전은 서울(ap-northeast-2)로 맞춰두고 진행했다.

설정해야 할 항목은 크게 다섯 가지다.

  • 이름: 인스턴스를 구분하기 위한 이름. 여기서는 MyFirstEC2로 입력했다.
  • AMI: Amazon Linux 2 AMI (HVM)를 선택했다. 프리 티어에서 1년간 매달 750시간 무료로 사용할 수 있다.
  • 인스턴스 유형: t2.micro를 선택했다. 프리 티어 대상이며 간단한 실습 용도로 충분하다.
  • 스토리지: 기본값인 8GiB gp3로 유지했다. 프리 티어 기준 최대 30GB까지 무료다.
  • 네트워크: 기본 VPC를 사용하고, 퍼블릭 IP 자동 할당은 활성화 상태로 유지했다.

모든 설정을 마친 뒤 인스턴스 시작을 누르면 잠시 후 실행 중 상태로 전환된다.


03. 키 페어 생성

인스턴스를 만들기 전에 키 페어를 먼저 만들어 두는 것이 좋다. EC2 콘솔 왼쪽 메뉴에서 네트워크 및 보안 → 키 페어로 이동해 키 페어 생성을 누른다.

  • 이름 입력 (예: my_key)
  • 프라이빗 키 파일 형식은 .pem 선택
  • 키 페어 생성 클릭

생성 즉시 .pem 파일이 자동으로 다운로드된다. 이 파일은 다시 받을 수 없으므로 분실하지 않도록 바로 안전한 위치에 저장해 두어야 한다. 나는 바탕화면 전용 폴더를 만들어서 보관했다.


04. 보안 그룹 설정

보안 그룹은 인스턴스에 어떤 트래픽을 허용할지 결정하는 가상 방화벽이다. 인스턴스 생성 화면의 네트워크 설정에서 다음 두 가지를 체크했다.

  • SSH 트래픽 허용 (22번 포트) → 내 PC에서 SSH 접속을 위해 필요하다.
  • 인터넷에서 HTTP 트래픽 허용 (80번 포트) → 웹 서버에 브라우저로 접속하기 위해 필요하다.

SSH 접근 대상 IP는 보안을 고려해 '내 IP'로 제한하는 것이 좋다. 실습 환경이라 위치 무관으로 설정했지만, 실제 운영 환경에서는 반드시 IP를 제한해야 한다.


05. EC2 실행 확인

인스턴스 시작 후 EC2 콘솔의 인스턴스 목록으로 이동하면 생성한 인스턴스를 확인할 수 있다. 처음에는 대기 중(pending) 상태였다가 잠시 후 실행 중(running)으로 바뀐다.

인스턴스를 클릭하면 아래쪽에 상세 정보가 표시된다. 이 중 퍼블릭 IPv4 주소는 SSH 접속과 웹 서버 확인에 필요하므로 복사해 두었다.


06. SSH 접속

MobaXterm을 실행하고 Session → SSH 탭으로 이동해서 다음과 같이 설정했다.

  • Remote host: 앞서 복사한 EC2 퍼블릭 IP 입력
  • Specify username 체크 후 ec2-user 입력
  • Advanced SSH settings → SSH-browser type을 None으로 설정
  • Use private key 체크 후 저장해 둔 .pem 파일 경로 지정
  • OK 클릭

정상적으로 연결되면 Amazon Linux 2 AMI 배너가 출력되며 리눅스 셸 명령어를 입력할 수 있는 터미널이 열린다.


07. Apache 설치

SSH 터미널에서 아래 명령어를 순서대로 입력해 Apache 웹 서버를 설치하고 실행했다.

# 슈퍼 유저로 전환
sudo su -

# Apache 설치
yum install httpd -y

# Apache 실행
systemctl start httpd

# 초기 웹 페이지 다운로드
curl -L https://bit.ly/afbtest01 > /var/www/html/index.html

각 명령어의 역할을 간단히 정리하면 다음과 같다.

  • sudo su -: 권한이 필요한 명령어를 실행하기 위해 슈퍼 유저로 전환한다.
  • yum install httpd -y: Apache 패키지를 설치한다. -y는 설치 중 묻는 확인을 모두 자동으로 yes 처리한다.
  • systemctl start httpd: Apache 데몬을 실행한다.
  • curl -L ...: 지정한 URL의 HTML 파일을 내려받아 웹 루트 경로에 저장한다.

08. 웹 서버 동작 확인

브라우저 주소창에 EC2 인스턴스의 퍼블릭 IP를 그대로 입력했다. "나의 첫 EC2 인스턴스 웹서버 성공" 문구가 담긴 페이지가 열리면 웹 서버가 정상적으로 동작하는 것이다.

퍼블릭 IP는 http://로 접속해야 한다. https://로 접속하면 보안 그룹에서 443 포트를 열지 않았기 때문에 접속이 안 된다.


09. 실습 중 발생한 문제

문제 1. 브라우저에서 IP를 입력했는데 접속이 안 됨

보안 그룹에서 HTTP(80번 포트)를 허용했는지 다시 확인해야 한다. 나는 처음에 SSH만 체크하고 HTTP를 빠뜨려서 웹 서버가 떠 있는데도 브라우저 접속이 되지 않았다. 보안 그룹 인바운드 규칙에 80번 포트가 있는지 확인하고 없으면 추가하면 된다.

문제 2. 인스턴스를 재시작했더니 IP가 바뀜

EC2 인스턴스를 중지했다가 다시 시작하면 퍼블릭 IP가 바뀐다. 고정 IP가 필요하다면 Elastic IP를 할당해야 한다. 단, Elastic IP는 인스턴스에 연결하지 않으면 요금이 부과되므로 실습이 끝나면 반드시 해제해야 한다.

문제 3. yum install 도중 멈추는 것처럼 보임

설치 중 패키지 의존성을 확인하거나 다운로드하면서 진행이 느려 보이는 경우가 있다. 실제로는 정상적으로 진행 중인 경우가 많으니 잠시 기다리면 된다.


10. 마무리

실습이 끝나면 생성한 자원을 반드시 삭제해야 한다. 삭제하지 않으면 프리 티어 한도를 초과해 의도치 않은 요금이 발생할 수 있다.

  • EC2 콘솔 → 인스턴스 선택 → 인스턴스 상태 → 인스턴스 종료 → 종료됨 상태 확인
  • CloudWatch 경보를 생성했다면 CloudWatch → 경보 → 해당 경보 선택 → 작업 → 삭제

종료 후 콘솔에서 인스턴스가 바로 사라지지 않고 종료됨 상태로 잠시 남아 있는데, 이는 정상이다. 완전히 삭제된 것이 맞으므로 그대로 두면 된다.

'AWS' 카테고리의 다른 글

[AWS] S3 정적 웹 사이트 호스팅 실습  (1) 2026.06.10
[AWS] S3란? 버킷, 객체, 스토리지 클래스 개념 정리  (0) 2026.06.10
[AWS] EC2란? 가상 서버 서비스 이해하기  (0) 2026.06.09
[AWS] IAM이란? User, Group, Policy, Role 이해하기  (0) 2026.06.09
AWS & 클라우드 핵심 용어 정리  (0) 2026.06.08
'AWS' 카테고리의 다른 글
  • [AWS] S3 정적 웹 사이트 호스팅 실습
  • [AWS] S3란? 버킷, 객체, 스토리지 클래스 개념 정리
  • [AWS] EC2란? 가상 서버 서비스 이해하기
  • [AWS] IAM이란? User, Group, Policy, Role 이해하기
폭듀장땡
폭듀장땡
yoon0921 님의 블로그 입니다.
  • 폭듀장땡
    윤
    폭듀장땡
  • 전체
    오늘
    어제
    • 분류 전체보기 (40)
      • Setup (1)
      • AWS (7)
      • Python (1)
      • SQL (6)
        • SQL 문제풀이 (3)
      • Qt (20)
      • Git (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
폭듀장땡
[AWS] EC2 인스턴스 생성 및 SSH 접속 실습
상단으로

티스토리툴바