학습 목표
EC2 인스턴스를 직접 생성하고 설정할 수 있다.
키 페어를 생성하고 SSH로 서버에 접속할 수 있다.
Elastic IP를 할당하고 인스턴스에 연결할 수 있으며, 그 과금 구조를 설명할 수 있다.
Amazon Linux 2023 서버의 기본 환경(Java, 타임존, 호스트네임)을 설정할 수 있다.
1. EC2란?
EC2(Elastic Compute Cloud)는 AWS에서 제공하는 가상 서버 서비스다. 성능과 용량을 유동적으로 조정할 수 있어, AWS에서 "리눅스 서버" 또는 "윈도우 서버"를 사용한다고 하면 대부분 EC2를 의미한다.
1-1. 프리 티어와 EC2 비용
2025년 7월 15일부터 프리 티어 구조가 바뀌었다. 본인 계정이 어느 쪽인지 먼저 확인하고 읽는다.
계정 생성 시기 | EC2 혜택 | 무료 인스턴스 유형 |
|---|---|---|
2025년 7월 14일 이전 | 12개월간 월 750시간 무료 + EBS 30GB |
|
2025년 7월 15일 이후 | 최대 $200 크레딧 (6개월) — 사용량만큼 차감 |
|
새 계정에는 t2.micro가 프리 티어 목록에서 빠졌다. 실습에서는 t3.micro(x86) 또는 t4g.micro(ARM/Graviton, 더 저렴)를 선택한다.
항목 | 내용 |
|---|---|
권장 인스턴스 유형 |
|
스토리지 | EBS |
공인 IPv4 | 시간당 $0.005 별도 과금 (아래 3장 참고) |
초과 시 | 비용 자동 청구됨 |
[^part3]: 이 인스턴스로 Part 3 의 무중단 배포까지 하려면 t3.small(2 GiB) 이상이 필요하다. 그 장은 MySQL 과 Nginx 까지 컨테이너로 같은 호스트에 올리기 때문이다. Part 4 만 진행한다면 t3.micro 로 충분하다.
사용하지 않는 인스턴스는 반드시 중지(Stop) 또는 종료(Terminate)한다. 실습이 끝났는데 인스턴스를 켜둔 채 방치하는 것이 요금 사고의 1순위 원인이다. 클라우드와 AWS에서 안내한 AWS Budgets 알림을 먼저 설정해두자.
1-2. 운영체제 선택 — Amazon Linux 2023
Amazon Linux 2는 2026년 6월 30일자로 지원이 종료됐다(EOL). 더 이상 보안 업데이트를 받지 못하므로 신규 인스턴스는 반드시 Amazon Linux 2023(AL2023) 으로 생성한다.
이 교안의 모든 명령어는 AL2023 기준이다. 두 버전은 명령어가 다르므로 주의한다.
작업 | Amazon Linux 2 (EOL) | Amazon Linux 2023 |
|---|---|---|
패키지 관리 |
|
|
추가 저장소 |
|
|
서비스 제어 |
|
|
인터넷의 오래된 AWS 자료는 대부분 AL2 기준(yum, amazon-linux-extras)으로 쓰여 있다. 명령어가 동작하지 않으면 이 표를 먼저 확인한다.
AMI(Amazon Machine Image)로 Amazon Linux를 쓰는 이유
아마존이 직접 개발·유지하므로 지원받기가 쉽다.
레드햇 계열 배포판이라 CentOS/RHEL 경험이 있으면 그대로 활용할 수 있다.
AWS의 각종 서비스(CloudWatch 에이전트, SSM 에이전트 등)가 기본 탑재돼 상성이 좋다.
아마존 독자 리포지터리를 사용해 패키지 설치가 매우 빠르다.
2. EC2 생성
2-1. 인스턴스 시작
EC2 관리 콘솔에서 [인스턴스 시작] 버튼을 클릭해 새 서버 생성을 시작한다.
EC2 대시보드에서 [인스턴스 시작]
1) 이름 설정
나중에 인스턴스가 여러 개가 됐을 때 구분할 수 있도록 서비스명을 기준으로 짓는다.
이 교안은 visit-counter 로 통일한다. 뒤따르는 장의 명령·설정이 모두 이 이름을 전제로 하므로, 다른 이름을 쓸 거라면 어디를 바꿔야 하는지 알고 써야 한다.
이름 및 태그
2) 애플리케이션 및 OS 이미지 — Amazon Linux 2023 선택
반드시 Amazon Linux 2023을 선택한다. AL2는 지원이 종료됐다.
Amazon Linux 2023 선택
3) 인스턴스 유형 선택
서버의 CPU·메모리 사양을 결정하는 단계다. t3.micro 를 선택한다 (vCPU 2, 메모리 1GB).
인스턴스 유형 t3.micro
t4g.micro(Graviton, ARM64)는 동일 사양에서 약 20% 싸지만, 이 교안에서는 고르지 않는다.
자동 배포 장에서 GitHub Actions 가 이미지를 빌드하는데, 러너가 x86 이라 linux/amd64 이미지만 만들어진다. 그 이미지를 ARM 인스턴스에서 실행하면 이렇게 된다.
exec /docker-entrypoint.sh: exec format error빌드도 push 도 성공으로 끝나고 실행할 때만 터지기 때문에 원인을 찾기 가장 어려운 부류다. ARM 인스턴스를 쓰려면 워크플로에 docker/setup-qemu-action 과 platforms: linux/amd64,linux/arm64 를 더해 멀티 아키텍처로 빌드해야 한다 — 빌드 시간이 크게 늘어난다.
4) 키 페어(로그인)
SSH로 서버에 접속할 때 사용하는 인증 키를 설정하는 단계다. 비밀번호 대신 .pem 파일로 인증하기 때문에 이 파일이 없으면 서버에 접속할 수 없다.
.pem 파일은 다운로드 시 단 1회만 제공된다. 분실 시 복구가 불가능하므로 반드시 안전한 위치에 보관한다. 다운로드 즉시 ~/.ssh/ 폴더로 이동 후 600 권한을 설정하는 것을 습관화하자.
.pem 파일은 절대 Git에 커밋하지 않는다. .gitignore에 *.pem을 미리 등록해둔다.
키 페어가 없으면 목록이 비어 있다. 드롭다운 아래의 [새 키 페어 생성] 링크를 눌러 만든다.
키 페어 드롭다운 아래의 [새 키 페어 생성]
키 페어 생성 — 유형 RSA, 형식 .pem
생성하면 .pem 파일이 바로 내려받아지고, 목록에 그 키가 선택된 상태가 된다.
생성한 키 페어가 선택된 상태
5) 네트워크 설정 — 보안 그룹
보안 그룹은 이 서버로 어떤 포트에 누가 들어올 수 있는지 정하는 방화벽이다. 지금은 SSH 접속만 열어둔다.
유형 | 포트 | 소스 |
|---|---|---|
SSH | 22 | 내 IP |
소스를 위치 무관(0.0.0.0/0)으로 두지 않는다. 마법사가 기본값으로 이것을 제안하는 경우가 있는데, 그대로 두면 전 세계 어디서나 22번으로 접속을 시도할 수 있다. 키가 없으면 뚫리지는 않지만 자동화된 시도가 끊임없이 들어온다.
내 IP를 고르면 지금 쓰는 인터넷 주소만 허용된다.
네트워크 설정 — SSH 22번을 내 IP로만 연다
공유기·회사 네트워크를 쓰면 IP가 바뀔 수 있다. 어제는 되던 SSH가 오늘 안 되면 보안 그룹의 "내 IP"를 다시 지정한다. 접속이 거부되는 게 아니라 응답 없이 멈춰 있다가 시간 초과되면 대개 이 문제다.
웹 서비스용 80번과 애플리케이션 확인용 8080번은 나중에 필요할 때 연다 — 8080은 EC2에 Docker로 배포하기, 80은 Nginx로 무중단 배포하기에서 다룬다. 지금 미리 열어둘 필요는 없다.
6) 스토리지 구성
서버의 디스크 용량을 설정하는 단계다. 볼륨 유형은 gp3 가 기본값이다(gp2 보다 싸고 빠르다). 그대로 두면 된다.
크기는 기본값 8GiB 대신 30 으로 올린다.
8GiB로는 배포를 몇 번 못 한다.
자동 배포 장부터는 커밋마다 새 태그의 이미지를 내려받는다. 이 애플리케이션 이미지는 한 개에 400MB 안팎이고, 낡은 이미지는 자동으로 지워지지 않는다. 8GiB면 스무 번쯤 배포한 뒤 no space left on device 로 docker pull 이 실패한다.
30GiB는 구 프리 티어 계정의 무료 한도 안이고, 크레딧 방식 계정에서도 차감이 크지 않다. 무중단 배포 장에서 낡은 이미지를 정리하는 방법을 함께 다룬다.
스토리지 구성
GiB(기비바이트)와 GB(기가바이트)의 차이
흔히 말하는 GB(기가바이트)와 비슷하지만 다르다.
GB = 1,000 × 1,000 × 1,000 bytes — 하드디스크 제조사 표기 방식
GiB = 1,024 × 1,024 × 1,024 bytes — 운영체제 및 IT 인프라 표기 방식
30GiB ≈ 32.2GB다. AWS, Linux 등 대부분의 클라우드 인프라는 GiB 단위를 사용하므로 숫자가 비슷해 혼동하기 쉬우니 항상 단위를 확인하는 습관을 갖자.
이 차이 때문에 실제로 "1TB 하드디스크"를 산다면 운영체제에서는 931GiB로 표시된다. 하드디스크 제조사는 1TB = 1,000,000,000,000 bytes로 표기하지만, 운영체제는 1TiB = 1,099,511,627,776 bytes로 계산하기 때문이다. 고장이 난 게 아니라 단위 차이가 원인이다.
7) 인스턴스 시작
모든 설정을 확인한 후 [인스턴스 시작] 버튼을 클릭한다. 약 1~2분 후 인스턴스 상태가 running으로 바뀌면 서버가 준비된 것이다.
요약 패널에서 설정을 확인하고 [인스턴스 시작]
인스턴스 목록에서 상태가 running, 상태 검사가 통과로 바뀌면 준비가 끝난 것이다.
인스턴스가 시작됐다
인스턴스를 클릭하면 상세 정보가 열린다. 퍼블릭 IPv4 주소가 여기 있다. 다음 절 SSH 접속에 쓴다.
인스턴스 상세 — 퍼블릭 IPv4 주소를 여기서 확인한다
3. Elastic IP(탄력적 IP) 할당
자동 부여되는 공인 IP는 인스턴스를 중지(stop)했다가 다시 시작(start)할 때 반납되고 새로 할당된다. (재부팅만 하는 경우에는 유지된다.) 그래서 서버를 한 번 내렸다 올리면 IP가 바뀌어 도메인 연결이 끊기거나 SSH 접속 정보를 매번 고쳐야 하는 문제가 생긴다. Elastic IP는 고정 공인 IP를 발급받아 인스턴스에 연결하여 이 문제를 해결한다.
공인 IPv4 과금 정책이 2024년 2월 1일부로 바뀌었다 — 이제 전부 유료다.
예전에는 "실행 중인 인스턴스에 붙어 있는 Elastic IP는 무료"였지만, 지금은 연결 여부와 관계없이 모든 공인 IPv4 주소에 시간당 $0.005가 부과된다.
상태 | 예전 (~2024.01) | 현재 (2024.02~) |
|---|---|---|
EC2 실행 중 + Elastic IP 연결됨 | 무료 | 시간당 $0.005 |
EC2 중지 중 + Elastic IP 연결됨 | 무료 | 시간당 $0.005 |
Elastic IP 할당만 하고 미연결 | 시간당 $0.005 | 시간당 $0.005 |
EC2가 자동 부여받은 퍼블릭 IP | 무료 | 시간당 $0.005 |
시간당 $0.005 = 월 약 $3.6 (연 약 $43) 이다. 프리 티어 계정(2025년 7월 14일 이전 생성)은 첫 12개월간 월 750시간의 공인 IPv4 사용량이 포함된다.
EC2를 삭제(Terminate)하면 Elastic IP 연결이 자동으로 끊기지만 주소는 계속 할당된 상태로 남는다. 반드시 [탄력적 IP] → [주소 해제(Release)]까지 수행해야 과금이 멈춘다. 인스턴스를 지웠는데 요금이 계속 나오는 사례의 대부분이 이 경우다.
Elastic IP 없이 실습하려면? 학습 목적이라면 인스턴스가 자동 부여하는 퍼블릭 IP 를 그대로 써도 된다. 중지 후 다시 시작하면 바뀌므로 접속 정보를 매번 갱신해야 하는 불편함은 있다.
인스턴스를 켜 두는 동안에는 두 방식의 요금이 같다. 그러나 꺼 두는 동안에는 다르다.
실행 중 | 중지 중 | |
|---|---|---|
자동 부여 퍼블릭 IP | 시간당 $0.005 | 반납되므로 0원 |
Elastic IP | 시간당 $0.005 | 계속 $0.005 |
수업이 주 1회라 인스턴스를 대부분 꺼 둔다면, Elastic IP 쪽이 6주에 $5 남짓 더 나간다. 접속 주소가 바뀌는 불편을 감수할지 그 돈을 낼지를 고르는 문제다.
1) 새 주소 할당 — EC2 콘솔 왼쪽 메뉴에서 [탄력적 IP] → [탄력적 IP 주소 할당]을 클릭한다. 메뉴는 [네트워크 및 보안] 아래에 있다.
왼쪽 메뉴의 [탄력적 IP]
2) 할당 — 네트워크 경계 그룹이 현재 리전으로 설정된 것을 확인하고 [할당] 버튼을 클릭한다.
탄력적 IP 주소 할당
3) IP를 EC2에 연결 — 할당된 Elastic IP를 선택한 뒤 [작업] → [탄력적 IP 주소 연결]을 클릭한다.
[작업] → [탄력적 IP 주소 연결]
4) 연결 — 인스턴스 항목에서 앞서 생성한 EC2 인스턴스를 선택하고 [연결] 버튼을 클릭한다. 이후 인스턴스의 공인 IP가 Elastic IP로 고정된다.
연결할 인스턴스를 고른다
연결되면 목록의 [연결된 인스턴스 ID] 칸이 채워진다.
연결된 인스턴스 ID가 채워졌다
4. SSH 접속 환경 설정
4-1. macOS / Linux
1) pem 키를 ~/.ssh로 복사 — SSH 접속 시 키를 읽는 기본 위치로 옮긴다.
cp visit-counter.pem ~/.ssh/2) 권한 조정 — .pem 파일 권한이 너무 넓으면 SSH가 보안 경고를 내고 접속을 거부한다. 소유자만 읽을 수 있도록 400 을 준다. AWS 공식 안내도 400이다.
chmod 400 ~/.ssh/visit-counter.pem400 과 600 의 차이 — 400 은 소유자 읽기 전용, 600 은 소유자 읽기·쓰기다. SSH 는 둘 다 받아들이지만, 개인 키는 고칠 일이 없으므로 쓰기 권한까지 줄 이유가 없다. 아래 ~/.ssh/config 는 내용을 고쳐 가며 쓰는 파일이라 600 을 준다.
3) config 파일 생성 — SSH 접속 정보를 파일에 등록해두면 ssh 호스트명 한 줄로 접속할 수 있다. IP가 바뀌면 이 파일만 수정하면 된다.
vi ~/.ssh/configHost visit-counter
HostName {Elastic_IP} # Elastic IP 또는 퍼블릭 DNS
User ec2-user
IdentityFile ~/.ssh/visit-counter.pem4) config 파일 권한 조정
chmod 600 ~/.ssh/config5) 접속 테스트 — 위에서 등록한 Host 이름으로 접속되는지 확인한다. 최초 접속 시 서버 신뢰 여부를 묻는 메시지가 나오면 yes를 입력한다.
ssh visit-counter4-2. Windows
Windows 10 (1809) 이상에는 OpenSSH 클라이언트가 기본 내장돼 있다. 따라서 PuTTY를 설치하지 않고 PowerShell이나 터미널에서 ssh 명령을 바로 쓸 수 있다. .pem 파일을 .ppk로 변환할 필요도 없다. .pem 파일을 .ppk로 변환하는 과정 자체가 불필요하다.
1) 키 파일을 %USERPROFILE%\.ssh\로 이동
mkdir $env:USERPROFILE\.ssh -Force
Move-Item .\visit-counter.pem $env:USERPROFILE\.ssh\2) 권한 조정 — Windows에서는 chmod 대신 icacls로 상속을 끊고 현재 사용자만 남긴다. 이 작업을 하지 않으면 SSH가 UNPROTECTED PRIVATE KEY FILE 오류로 접속을 거부한다.
$key = "$env:USERPROFILE\.ssh\visit-counter.pem"
icacls $key /reset
icacls $key /inheritance:r
icacls $key /grant:r "$($env:USERNAME):(R)"
# 확인 — 내 계정 하나만 (R) 로 남아야 한다
icacls $key/reset 을 먼저 실행하는 것이 중요하다.
/inheritance:r 은 상속받은 권한만 끊는다. 다운로드 폴더에서 .ssh 로 옮긴 파일에는 원래 위치의 권한이 「직접 부여된」 형태로 따라붙어 있어서 /inheritance:r 만으로는 지워지지 않는다. 그대로 두면 SSH 가 계속 거부한다.
/reset 으로 전부 지운 뒤 다시 주면 확실하다. 마지막 icacls 출력에 내 계정 한 줄만 남아야 한다. NT AUTHORITY\SYSTEM 이나 BUILTIN\Administrators 가 보이면 아직 남은 것이다.
3) config 파일 작성 — %USERPROFILE%\.ssh\config (확장자 없음)
Host visit-counter
HostName {Elastic_IP}
User ec2-user
IdentityFile ~/.ssh/visit-counter.pem4) 접속
ssh visit-counter
# config 없이 한 줄로 접속하려면
ssh -i $env:USERPROFILE\.ssh\visit-counter.pem ec2-user@{Elastic_IP}4-3. 키 없이 접속하기 (대안)
.pem 키 관리가 부담이거나 22번 포트를 열고 싶지 않다면 아래 두 가지를 쓸 수 있다. 둘은 22번 포트에 대한 요구가 다르다.
EC2 Instance Connect — 콘솔에서 인스턴스 선택 → [연결] → EC2 Instance Connect 탭. 브라우저에서 바로 셸이 열린다. 키 파일은 필요 없지만 22번은 열려 있어야 한다.
Systems Manager Session Manager — 인스턴스에
AmazonSSMManagedInstanceCore정책이 붙은 IAM 역할을 연결하면, 보안 그룹에서 22번 포트를 열지 않고도 접속할 수 있다. 운영 환경의 표준 접근 방식이다.
Instance Connect 는 보안 그룹 SSH 소스가 내 IP 이면 연결되지 않는다. 접속하는 쪽이 내 브라우저가 아니라 AWS 의 Instance Connect 서버이기 때문이다. 소스에 접두사 목록 com.amazonaws.ap-northeast-2.ec2-instance-connect 를 넣은 SSH 규칙을 따로 더해야 한다.
규칙이 없으면 이 화면이 뜬다.
"나중에 다시 시도하세요" 라고 하지만 기다려도 안 된다 — 원인은 보안 그룹이다
이 교안을 쓰며 확인해 보니, SSH 소스가 내 IP 하나뿐일 때는 위처럼 실패하고 접두사 목록 규칙을 더하자 바로 접속됐다.
5. Amazon Linux 2023 초기 설정
EC2 인스턴스에 처음 접속하면 기본 환경을 정리한다. 여기서는 시스템 업데이트와 타임존, 호스트네임까지만 한다.
Java는 설치하지 않는다.
애플리케이션은 컨테이너 안에서 돌고, 필요한 Java 런타임은 이미지 안에 들어 있다. 서버에 Java를 따로 깔면 버전이 이미지와 달라 헷갈리기만 한다.
서버에 필요한 것은 Docker 하나이고, EC2에 Docker로 배포하기에서 설치한다. "서버에는 런타임을 깔지 않는다"는 것이 컨테이너로 배포할 때의 이점이다 — 서버를 새로 만들어도 Docker만 있으면 끝난다.
5-1. 시스템 업데이트
sudo dnf update -y5-2. 타임존 변경
EC2 기본 타임존은 UTC(세계 협정시)로 설정되어 있다. 한국 서비스를 운영할 경우 로그 시간이 실제 시간과 9시간 차이가 나므로 반드시 KST(한국 표준시)로 변경해야 한다.
# 타임존 변경 (AL2023 권장 방식)
sudo timedatectl set-timezone Asia/Seoul
# 변경 확인
timedatectl
date
# Thu Aug 27 20:48:08 KST 2026구식 방법 — 심볼릭 링크 직접 교체
오래된 자료에서는 아래 방식을 안내한다. AL2023에서도 동작하지만 timedatectl이 더 안전하고 표준적이다.
sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime5-3. 호스트네임 변경 (선택)
호스트네임 변경은 필수는 아니지만 권장한다. 서버가 여러 대일 때 SSH 접속 후 프롬프트에 호스트명이 표시되어 지금 어느 서버에 접속해 있는지 한눈에 구분할 수 있다.
설정 전: [ec2-user@ip-172-31-0-1 ~]$ → 설정 후: [ec2-user@visit-counter ~]$
# 호스트 네임 변경
# cloud-init 이 부팅할 때마다 호스트 이름을 되돌리지 않게 먼저 막는다
echo 'preserve_hostname: true' | sudo tee /etc/cloud/cloud.cfg.d/99_preserve_hostname.cfg
sudo hostnamectl set-hostname visit-counter
# 로그아웃 후 다시 로그인해야 프롬프트에 반영된다
exit# /etc/hosts에 변경한 hostname 등록
sudo vi /etc/hosts
# 127.0.0.1 visit-counter
# 호스트 등록 확인
curl visit-counter
# 등록이 잘 되었을 경우 — 80포트에 아무것도 없으므로 연결 거부 에러가 정상이다
# curl: (7) Failed to connect to visit-counter port 80 after 0 ms: Connection refused
# 등록에 실패하면 "Could not resolve host" 메시지가 출력된다6. 실습 정리
뒤 챕터를 이어서 할 거라면 아직 지우지 않는다.
Supabase · Docker 배포 · 자동 배포 · 무중단 배포 가 이 인스턴스를 그대로 쓴다. 수업 사이에는 중지(Stop) 만 해두면 된다.
중지하면 EC2 인스턴스 요금은 멈춘다. 다만 EBS 스토리지 요금은 계속 나가고, Elastic IP 를 할당해 뒀다면 그 요금도 계속 나간다.
과정을 다 마쳤다면 세 가지를 순서대로 정리한다. 순서가 중요하다 — 인스턴스가 살아 있으면 Elastic IP 를 릴리스할 수 없다.
6-1. 인스턴스 종료
EC2 콘솔 → 인스턴스 선택 → 인스턴스 상태 → 인스턴스 종료(삭제)
[인스턴스 상태] 메뉴 — 중지와 종료는 다르다
중지(Stop)와 종료(Terminate)는 다르다.
중지 — 잠시 끈다. 디스크는 남아 있고 다시 켤 수 있다. 스토리지 요금은 계속 나간다.
종료 — 인스턴스를 삭제한다. 되돌릴 수 없다.
확인 창이 두 가지를 알려준다. 읽고 넘어간다.
종료 확인 창 — 루트 볼륨 삭제와 탄력적 IP 잔존을 함께 알려준다
"인스턴스가 종료될 때 기본적으로 루트 EBS 볼륨이 삭제됩니다" — 서버 안에 남겨둔 파일은 함께 사라진다.
"다음 탄력적 IP가 여전히 계정에 연결되어 있음" — 종료해도 Elastic IP 는 남는다. 콘솔이 직접 경고해 주는데도 가장 자주 놓치는 항목이다.
6-2. Elastic IP 릴리스
인스턴스가 완전히 종료되면 Elastic IP 의 [연결된 인스턴스 ID] 가 – 로 바뀐다. 그때 릴리스한다.
EC2 콘솔 → 탄력적 IP → 주소 선택 → 작업 → 탄력적 IP 주소 릴리스
[작업] → 탄력적 IP 주소 릴리스 — 여기까지 해야 과금이 멈춘다
인스턴스가 아직 종료 중이면 릴리스가 거부된다.
연결 ID와 함께 릴리스할 수 없음
다음 주소는 연결되어 있으므로 릴리스할 수 없습니다.종료에 1~2분 걸린다. 목록에서 연결된 인스턴스 ID 가 – 가 된 뒤에 다시 시도한다.
6-3. 남은 볼륨 확인
EC2 콘솔 → 볼륨
볼륨 목록 — 남은 것이 없으면 정리가 끝난 것이다
"현재 이 리전에 볼륨이 없습니다" 가 나오면 끝난 것이다. available 상태로 남은 볼륨이 있다면 인스턴스에서 분리된 채 요금만 나가는 디스크이므로 선택해서 삭제한다.
보안 그룹과 키 페어는 지우지 않아도 요금이 없다. 다음에 인스턴스를 만들 때 재사용할 수 있다. 정리하고 싶다면 인스턴스를 지운 뒤에 삭제한다 — 사용 중인 보안 그룹은 삭제되지 않는다.