
지난 글에서 IAM으로 계정을 관리해봤으니, 이번에는 실제 서버를 하나 생성해보는 단계로 넘어가볼게요.
이 글만 따라 하면 다음 과정을 순서대로 경험할 수 있어요.
- 예기치 않은 요금 발생을 조기에 감지하기 위해 AWS 예산(Budget)을 설정해요.
- 프리 티어(Free Tier)에 포함된 EC2 인스턴스(t2.micro 또는 t3.micro)를 직접 생성해요.
- 인스턴스 생성 시 웹 서버를 자동으로 설치하고, 브라우저로 접속해 정상 동작을 확인해요.
- SSH로 인스턴스에 접속해 간단한 리눅스 및 CLI 명령어를 실행해봐요.
- IAM 역할을 EC2에 연결해 Access Key 없이 AWS CLI를 사용하는 기본 흐름을 살펴봐요.
이 과정을 통해 EC2를 처음부터 끝까지 안전하게 다루는 기본적인 감각을 잡을 수 있을 거예요.
과금 감시부터 시작하기: AWS 예산(Budget) 설정
EC2를 본격적으로 사용하기 전에 가장 먼저 해야 할 일은 비용을 감시할 장치를 마련하는 것이에요.
AWS는 사용한 만큼 과금되는 구조이기 때문에, 작은 실수도 곧바로 비용으로 이어질 수 있어요.
왜 예산 설정이 중요한가

처음에는 “프리 티어 안에서만 써야지”라고 생각하지만, 실제로는 다음과 같은 상황이 자주 발생해요.
- EC2 인스턴스를 종료하지 않고 켜둔 채로 잊어버리면 계속 과금돼요.
- 스냅샷, 추가 디스크(EBS), NAT 게이트웨이 같은 리소스를 무심코 만들어두면 비용이 쌓여요.
특히 실습용 계정이라면 1센트라도 과금되는 순간 바로 알림을 받도록 설정하는 것을 강력하게 추천해요.
다만 AWS Budget은 요금을 차단하지 않고 알림만 보낸다는 점은 꼭 기억해 주세요. 실제 요금은 그대로 청구됩니다.
AWS Budgets에서 제로 지출 예산 만들기

먼저 AWS 콘솔 우측 상단에서 계정명을 클릭한 뒤 결제 및 비용 관리(Billing and Cost Management)로 이동해요
왼쪽 메뉴에서 예산(Budgets)를 선택합니다.
IAM 사용자로 로그인한 경우 이 메뉴에 접근할 권한이 없을 수 있어요.
이때는 루트 계정으로 로그인해서 다음 설정을 먼저 해주세요.
- Billing 콘솔에 대한 IAM 접근 허용
budgets:*,ce:*권한이 포함된 IAM 정책 부여

이제 예산을 생성해볼게요.
- 예산 생성(Create budget) 버튼을 클릭해요.
- Budget setup 단계에서 Use a template (simplified) 같은 템플릿 옵션을 선택해요.
- 템플릿 목록에서 Zero spend budget(제로 지출 예산)을 선택해요.
이 템플릿은 Free Tier 한도를 초과하거나, 0.01달러 이상의 지출이 발생하면 이메일 알림을 보내줘요.
- 알림을 받을 이메일 주소를 입력해요.
여러 주소를 사용하려면 쉼표(,)로 구분하면 됩니다. - 나머지 설정은 기본값을 유지한 채 Create budget을 클릭해요.
이렇게 한 번만 설정해두면, 학습 중에 실수로 리소스를 켜두더라도
이번 달 사용액이 0을 넘었다 혹은, Free Tier 한도를 초과했다는 사실을 이메일로 빠르게 확인할 수 있어요.
완벽한 차단 장치는 아니지만, 피해를 최소화하는 데는 충분히 도움이 되는 안전망이에요.
참고로 Budget 데이터는 보통 몇 시간 정도 지연되어 집계돼요.
실시간 차단 기능이 아니라, 빨리 눈치채게 도와주는 도구라고 이해하면 좋아요.
AWS EC2를 알아보자
이제 오늘의 주인공인 EC2를 아주 간단히 짚고 갈게요.

EC2(Elastic Compute Cloud)는 AWS가 제공하는 가상 머신(Virtual Machine, VM) 서비스예요.
물리 서버를 직접 구매하고 관리하지 않아도, 필요한 만큼 서버를 만들어서 사용한 만큼만 비용을 내는 구조입니다.
오늘 글에서 자주 등장하는 용어들
실습을 진행하는 데 필요한 개념은 아래 정도면 충분해요.
- EC2 인스턴스
우리가 실제로 생성해서 사용하는 가상 서버 한 대예요. - EBS 볼륨
인스턴스에 연결되는 디스크(네트워크 스토리지)예요.
인스턴스를 중지하거나 종료해도 데이터는 유지돼요. - 보안 그룹(Security Group)
인스턴스 앞단에서 허용할 포트와 IP를 정의하는 가상 방화벽이에요. - 키 페어(Key Pair)
SSH로 인스턴스에 접속할 때 사용하는 공개키/비밀키 쌍이에요.
이 정도 개념만 잡고 있으면 충분해요.
이제 바로 EC2 인스턴스를 하나 만들어보면서 마저 감을 잡아볼게요.
나의 첫번째 EC2 생성하기
이제 실제로 EC2 인스턴스를 하나 만들어볼게요.
콘솔에서 옵션을 하나씩 선택하면서, 왜 이 설정을 고르는지 함께 짚어보겠습니다.
EC2 콘솔 열기

AWS 콘솔 상단 검색창에 EC2를 입력한 뒤 EC2 콘솔로 이동해요.
우측 상단의 인스턴스 시작(Launch instance) 버튼을 클릭합니다.
이제 여러 옵션을 설정해 나만의 EC2 인스턴스를 구성하게 됩니다.
이름 및 태그 설정

첫 화면 상단에서 인스턴스 이름을 지정해요.
- 예:
my-first-ec2,playground-ec2등 자유롭게
이름 아래에 보이는 태그(Tag)는 리소스가 많아졌을 때 검색과 정리를 돕는 라벨이라고 생각하면 돼요.
- 예:
env=dev,project=slack-bot,owner=your-name
지금은 필수는 아니지만, 습관처럼 붙여두면 나중에 큰 도움이 됩니다.
OS 선택: AMI 고르기

AMI(Amazon Machine Image)는 어떤 운영체제(OS)와 기본 환경을 사용할지 정의한 이미지 템플릿이에요.
이번 실습에서는 다음 AMI를 선택할게요.
- Amazon Linux 2023 AMI (Free Tier eligible)
Amazon Linux 2023은 AWS에서 직접 관리하는 최신 리눅스 배포판이고, AWS CLI v2, EC2 Instance Connect 같은 AWS 연동 기능이 기본으로 잘 설정돼 있어요.
Ubuntu나 Windows Server 같은 다른 선택지도 있지만, 처음에는 AWS 기본 리눅스인 Amazon Linux로 연습하는 것이 가장 편합니다.
인스턴스 유형: 프리 티어 마이크로 타입 선택

다음으로 인스턴스 유형(Instance type)을 선택해요.
학습 목적이고 프리 티어를 활용할 예정이므로, Free Tier eligible(프리 티어 사용 가능) 표시가 있는 다음 타입 중 하나를 선택합니다.
t2.micro또는t3.micro
프리 티어 기준으로는,
한 달 내내 인스턴스 1대를 24시간 켜둘 수 있는 정도라고 생각하면 이해하기 쉬워요.
t2.micro의 기본 사양은 다음과 같습니다.
- vCPU 1개
- 메모리 1GB
아주 작은 인스턴스지만, 실습용으로는 충분해요.
인스턴스 이름에 들어 있는 t2, t3, m5 같은 의미는 이후에 따로 정리해볼게요!
키 페어(Key Pair) 생

EC2에 SSH로 접속하려면 키 페어(Key Pair)가 필요해요.
쉽게 말해, 인스턴스에 들어가기 위한 문 여는 카드키입니다.
키 페어 섹션에서 새 키 페어 생성(Create new key pair)을 클릭해요.

설정은 다음처럼 하면 됩니다.
- 키 페어 이름: 원하는 이름 (예:
my-ec2-key) - 키 페어 유형
- RSA: 전통적으로 많이 사용되고 호환성이 좋음
- ED25519: 더 최신 알고리즘
- 실습용이라면 RSA를 선택해도 충분해요.
- 키 파일 형식
.pem: Mac, Linux, Windows 10 이상(OpenSSH).ppk: PuTTY용
생성 버튼을 누르면 키 파일이 자동으로 다운로드됩니다.
이 파일은 절대 외부에 유출되면 안 되는 민감 정보예요.
분실하면 인스턴스에 접속할 수 없으니, 안전한 곳에 보관하고 GitHub 같은 공개 저장소에 올라가지 않도록 특히 주의하세요.
네트워크 설정과 보안 그룹

이제 네트워크 설정 단계입니다.
여기서 보안 그룹(Security Group)을 생성하거나 선택할 수 있어요.
이번 실습에서는 학습 편의를 위해 다음 포트를 열어둘게요.
- SSH (22번 포트): 터미널 접속용
- HTTP (80번 포트): 브라우저로 웹 서버 접속
보안 그룹을 새로 생성한 뒤, 인바운드 규칙에 아래 항목이 있도록 설정합니다.
- 유형: SSH / 포트: 22 / 소스:
0.0.0.0/0 - 유형: HTTP / 포트: 80 / 소스:
0.0.0.0/0
0.0.0.0/0은 어디서나 접속을 허용한다는 의미예요.
학습용에서만 사용하고, 실제 서비스에서는 반드시 내 IP나 회사 네트워크로 제한해야 합니다.
나중에 HTTPS를 사용하고 싶다면
- HTTPS / 포트 443 규칙을 추가하고
- 인증서를 연결해 TLS(HTTPS)를 구성하면 됩니다.
스토리지와 사용자 데이터(User data)

스토리지(EBS 볼륨)는 기본값(예: 8GB, gp3) 그대로 두고 넘어가도 괜찮아요.
프리 티어에는 EC2용 EBS 스토리지 30GB까지 포함되므로, 이 설정은 과금까지 여유가 있는 편입니다.

화면 하단의 고급 세부 정보(Advanced details)를 펼치면 아래쪽에 사용자 데이터(User data) 입력칸이 있습니다.
여기에 인스턴스가 처음 부팅될 때 한 번 실행할 스크립트를 넣을 수 있어요.
#!/bin/bash
dnf update -y
dnf install -y httpd
systemctl enable --now httpd
echo "<h1>Hello World from $(hostname -f)</h1>" > /var/www/html/index.html
이 스크립트가 하는 일은 다음과 같아요.
- 시스템 패키지 업데이트
- Apache 웹 서버 설치
- 웹 서버를 즉시 실행하고 재부팅 시 자동 시작 설정
- 간단한 테스트용 HTML 페이지 생성
첫 줄의 #!/bin/bash는 꼭 필요합니다.
이 줄이 있어야 EC2가 쉘 스크립트로 인식해서 정상 실행해요.
또한 User data 스크립트는 root 권한으로 실행되므로 sudo는 필요 없습니다.
인스턴스 생성 및 웹 접속 확인

오른쪽 요약 영역에서 설정을 한 번 더 확인한 뒤 인스턴스 시작(Launch instance) 버튼을 클릭합니다.

인스턴스 목록에서 상태가 running이 될 때까지 잠시 기다린 뒤,
- 인스턴스 상세 정보에서 퍼블릭 IPv4 주소를 복사
- 브라우저 주소창에
http://{복사한 IP}입력
사용자 데이터 스크립트가 실행되는 데 몇 분 정도 걸릴 수 있어요.
잠시 후 새로고침했을 때 Hello World from … 라는 문구가 보이면, 첫 EC2 인스턴스 생성은 성공입니다!
EC2 보안 그룹 자세히 알아보기

앞에서 인스턴스를 만들면서 보안 그룹을 한 번 설정해봤으니, 이제 보안 그룹이 정확히 어떤 역할을 하는지 간단히 정리해볼게요.
보안 그룹이 하는 일
보안 그룹(Security Group)은 EC2 인스턴스에 연결되는 가상 방화벽이에요.
인스턴스로 들어오고 나가는 트래픽을 규칙으로 제어합니다.
- 인바운드(Inbound): 인스턴스로 들어오는 트래픽 규칙
- 아웃바운드(Outbound): 인스턴스에서 나가는 트래픽 규칙
기본 동작은 다음과 같아요.
- 모든 인바운드 트래픽은 기본적으로 차단돼요.
- 모든 아웃바운드 트래픽은 기본적으로 허용돼요.
추가로 알아두면 좋은 특징도 있어요.
- 하나의 보안 그룹을 여러 EC2 인스턴스에 동시에 연결할 수 있어요.
- 보안 그룹은 같은 리전, 같은 VPC 안에서만 사용할 수 있어요.
- 보안 그룹은 stateful하게 동작해요.
- 인바운드 규칙으로 허용된 연결에 대한 응답 트래픽은 아웃바운드 규칙과 관계없이 자동으로 허용됩니다.
현재 인스턴스에 설정된 규칙 확인하기

EC2 콘솔 왼쪽 메뉴에서 보안 그룹(Security groups)을 클릭해요.
앞에서 인스턴스를 생성할 때 사용한 보안 그룹을 선택합니다.
아마 다음과 같은 규칙이 설정돼 있을 거예요.
- 인바운드 규칙
- 포트 22: SSH 허용
- 포트 80: HTTP 허용
- 아웃바운드 규칙
- 모든 트래픽 허용
우리가 실제로 SSH로 접속하고,
브라우저에서 웹 페이지를 볼 수 있었던 이유가 바로 이 설정 덕분이에요.
HTTPS(443) 규칙 추가하기

나중에 HTTPS로 접근하고 싶다면, 보안 그룹에 규칙을 하나 더 추가하면 됩니다.
- 보안 그룹 상세 화면에서 인바운드 규칙 편집(Edit inbound rules) 클릭
- 규칙 추가(Add rule) 선택
- 유형: HTTPS / 포트: 443 / 소스: 필요한 범위
- 학습용이라면 0.0.0.0/0도 괜찮아요.
- 저장
이 상태에서 인증서까지 설정해주면,
EC2 인스턴스에 HTTPS로도 안전하게 접근할 수 있습니다.
SSH로 인스턴스 접속해보기
아까 키 페어를 생성하면서 잠깐 이야기했는데요, SSH 연결은 Mac, Linux, windows 10 이상의 버전에서만 가능합니다. 즉, 10 이하의 Windows 운영체제를 사용하고 계신다면 Putty를 이용하거나 EC2 Instance Connect를 사용해야 합니다. EC2 Instance Connect는 웹 기반의 방식으로 모든 운영체제에서 가능합니다.
저는 MacOS에서의 접속을 시도해보겠습니다.
우선 아까 인스턴스를 생성하며 받은 Pem Key를 가지고 있어야 합니다. 이후 SSH 연결을 위해 EC2가 준비되었는지 확인해야합니다. 인바운드 규칙에 22포트로 SSH연결이 허용되고 있는지를 확인 후 IPv4 주소를 복사합니다.
그 이후 터미널을 열고 pem key가 있는 곳으로 이동합니다. 저의 경우 다운로드 폴더로 이동하였습니다.
이후 SSH 접속을 시도합니다.
ssh -i {pemkey-name} ec2-user@{ec2-ipv4}
여기서 pemkey-name에는 pem 키 파일 명을, ec2-ipv4는 아까 복사한 ip주소를 입력합니다.
이렇게하면 접속이 가능합니다.

만약 접속이 안되는 경우!
UNPROTECTED PRIVATE KEY FILE! 이 발생한 경우 해당 pem키 파일에 대한 권한이 부족해서 그렇습니다!
chmod 0400 {pemkey-name} 명령어를 한 이후 다시 접속을 시도하세요!
이제 접속을 했으니 해당 컴퓨터 안에서 리눅스 명령어들이 동작할 것입니다!
예를 들어 ping google.com 명령어를 해보면 잘 동작할 것입니다.
그리고 해당 콘솔에서 aws 관련 명령어도 사용이 가능합니다.
aws iam list-users 명령어를 사용해볼까요?

아마 이런 응답이 발생할 것입니다. 이 경우 자격 증명이 필요하기 때문에 aws configure 명령어를 통해 직접 Access Key ID와 Secret Access Key를 입력하라고 하죠.
하지만 이런 키를 직접 입력하는 건 굉장히 위험합니다. 대신 지난 글에서 배운 IAM을 사용하여 해결할 수 있습니다.
EC2 인스턴스에 IAM 자격증명 추가하기

EC2 인스턴스에 접속한 상태에서 우측 상단 작업 버튼을 눌러 보안 > IAM 역할 수정 으로 이동합니다.

이러한 화면이 나올텐데요, 새 IAM 역할을 생성해서 EC2에 역할을 부여하겠습니다.

저는 맨 아래에 AmazonEC2FullAccess 권한을 주도록 하겠습니다.

이제 새롭게 생성한 역할을 주어 자격 증명을 대체할 수 있게 됩니다. 이제 EC2에서 IAM에 접근할 권한이 있기 때문에 바로 명령어를 실행할 수 있을 겁니다.

는, 사실 제가 준 역할에는 해당 권한은 없네요... 굳이 필요없는 권한이라 주지 않도록 하겠지만 최소한 필요로 하는 권한을 주도록 합시다. 우선 자격증명은 회피할 수 있게 되었네요 ㅎㅎ (IAMReadOnlyAccess 권한을 주면 해당 명령어가 실행된다고 합니다)
다양한 EC2 인스턴스 구매 옵션
저희는 지금 온디맨드 형식의 인스턴스를 사용했습니다. 매초 작업에 따라 가격이 지불되는 형태입니다.
학습용처럼 짧은 시간 사용하는 경우 이러한 방식이 유용하지만 오랜시간 이용해야할 경우 다른 플랜을 사용할 수도 있습니다.
- EC2 온디맨드 플랜
- 사용한 만큼 돈을 낼 수 있음 (OS에 따라 초당 혹은 시간당 지불)
- 요금의 상한이 없지만 하한도 없음
- 오랜시간 사용할 필요가 없음
- 짧은 시간 사용하거나 실험적인 인스턴스 사용에 적합
- 온디맨드 예약 플랜
- 약 72% 정도 저렴하게 사용가능(온디맨드에 비해)
- 기간별 결제형식 별 할인율을 다르게 가져갈 수 있음
- 필요가 없어지거나 필요할때 기존에 결제되어있는 인스턴스를 사고 팔 수 있음
- 컨버터블 예약 인스턴스를 사용하면 인스턴스 사용중에 옵션을 바꿀 수도 있음
- EC2 절감형 플랜
- 오래 사용한다는 전제 하에 72% 정도 저렴하게 사용 가능
- 특정 인스턴스 조직과 리전에 제한
- Instance Size, OS Tenancy등 유연하게 선택 가능
- EC2 스팟 인스턴스
- 온디맨드 플랜에 비해 90% 절약 가능
- AWS 인스턴스중 가장 가성비가 좋은 인스턴스
- 짧은 시간 동작하는 인스턴스에 특화되어 있음
- 배치 작업
- 데이터 분석
- 이미지 처리 등등
- EC2 전용 호스트
- 실제 물리적 서버를 EC2 인스턴스와 함께 받아서 사용할 수 있음
- 규제 준수 요구가 강한 조직에서 사용할 수 있음
- 가장 비싼 유형
- 나만의 소프트웨어 라이센스를 구축해야 할 때 유용
- EC2 전용 인스턴스
- 하드웨어와 상관 없이 EC2 인스턴스만 받아서 물리적 서버의 제한 없이 사용할 수 있음
- 다른 하드웨어와 인스턴스를 공유 가능
EBS Volume은 무엇인가요?
Elastic Block Store(EBS)는 AWS 인스턴스에 연결되는 네트워크형 드라이브입니다. EBS 볼륨은 인스턴스가 종료되고 사라지더라도 데이터를 저장할 수 있습니다. 무료로 30기가 정도의 EBS를 사용할 수 있어 유용합니다.
EBS 볼륨은 네트워크 드라이브이기 때문에 말 그대로 네트워크 연결을 통해 파일을 주고 받습니다. 그래서 약간의 레이턴시가 발생합니다.
하지만 물리적인 드라이브가 아니기 때문에 하나의 인스턴스에서 다른 인스턴스로 옮기기가 편리하죠.
단점은 가용 영역(AZ)에 제약이 있다는 것인데요, 하나의 리전에 생성된 EBS 볼륨은 바로 다른 리전에 붙일 수 없습니다. 그래서 특정 버전의 스냅샷을 만들어 해당 스냅샷을 통해 볼륨을 이동시켜 해당 제약을 회피할 수 있습니다.
또 EBS 볼륨은 프로비저닝 형태입니다. 용량은 몇 기가를 사용할 것인지, 초당 IO 연산 속도는 어느정도로 설정할 것인지를 미리 설정해야 합니다.
한번 실제로 사용해볼까요?
EC2 콘솔 좌측에 볼륨 메뉴로 들어가면 아까 EC2 인스턴스를 생성하며 함께 생성된 EBS 볼륨을 확인할 수 있습니다.

이렇게 현재 볼륨이 생성되어 사용중임을 알 수 있습니다.
현재 가용영역은 ap-northeast-2a를 사용중이네요. 그럼 이제 하나의 볼륨을 더 생성하여 EC2와 연결해봅시다.
볼륨 화면에서 우측 상단 볼륨 생성을 눌러봅시다.

먼저 볼륨 설정을 하는데요, 크기는 30기가 이상이면 과금이 되므로, 그 안에서 설정합니다. 저는 2기가로 설정하겠습니다.
이후 IOPS와 처리량은 기호에 맞게 설정하면 되는데요, 중요한 점은 가용 영역을 아까 EBS와 같게 해야합니다. 그래야 해당 EC2에 연결이 될 수 있겠죠? 이후 아래 생성버튼을 눌러 볼륨을 생성해봅시다.

이렇게되면 새로운 볼륨이 생성되어 총 2개의 볼륨이 존재하는 것을 확인할 수 있습니다.

새롭게 생성된 볼륨을 연결하기 위해 먼저 볼륨이 생성 상태가 되어야 합니다. 현재는 아직 생성중이므로 잠깐 기다리고, 생성이 완료 상태가 되면 작업버튼을 눌러, 볼륨 연결을 선택합니다.

이후 연결할 인스턴스를 선택하여 볼륨 연결 버튼을 눌러봅시다. 그러면 볼륨 연결이 완료됩ㄴ디ㅏ.
이제 인스턴스 메뉴로 돌아가서 확인해봅시다.

EC2에 볼륨이 기존의 8기가 짜리에 더해 2기가짜리 볼륨 하나가 추가로 생성되었음을 확인했습니다!
하지만, EBS 항상 백업을 해야합니다. 예를 들어, 인스턴스가 종료되면 설정상 EBS가 바로 삭제되기도 하고, 다른 가용영역으로 이동을 하기 위해서도 백업을 해야하죠. 그래서 EBS 는 스냅샷의 형태로 백업을 지원합니다.
EBS 백업은 필수는 아니지만 항상 권장되는 옵션입니다.
스냅샷을 스냅샷 아카이브로 이동시키면 75% 저렴하게 이용할 수 있습니다.
또 EBS 스냅샷이 삭제되더라도 Recycle Bin에 남아있기 때문에 사고로 삭제된 파일을 빠르게 복구할 수도 있습니다.
일반적으로 스냅샷은 실제 EBS 볼륨으로 돌아오기 까지 시간이 조금 소요되는데,약간의 과금을 하면 빠르게 복구할 수 있다는 점도 있습니다.
그럼 실제로 스냅샷을 생성해보겠습니다.

아까 생성한 2기가 볼륨의 스냅샷을 생성할 건데요, 스냅샷으로 만들 볼륨을 체크한 후 우측 상단 작업 > 스냅샷 생성을 클릭합니다.

해당 스냅샷을 식별할 수 있도록 설명과 태그를 부착 후 생성합니다.
이후 좌측 메뉴에서 볼륨 아래의 스냅샷 메뉴를 눌러 들어가보면

스냅샷이 생성된 것을 확인할 수 있습니다.
그럼 다른 가용영역으로 스냅샷을 이동시켜보도록 하겠습니다. 생성된 스냅샷에 우클릭 후 스냅샷 복사를 눌러주세요.

이후 스냅샷 생성때와 같이 설명을 누르고 이동시킬 리전을 선택합니다. 저는 ap-northeast-1 로 이동시켜보겠습니다.

이렇게 새로운 가용영역에 스냅샷을 만들었습니다. 이 스냅샷을 기반으로 실제 볼륨을 만들어 이동시킬 수 있겠죠?
AMI는 무엇인가요?
Amazon Machine Image(AMI)는 EC2 인스턴스 사용자의 사용자 지정 옵션을 말합니다. 아까 EC2 인스턴스를 생성할 때 그 안에 웹서버를 설치후 실행하게 끔 명령어를 넣은 부분을 기억하시나요? 그 부분이 바로 AMI입니다.
저희는 AWS 에서 제공하는 공용 AMI를 통해 EC2 인스턴스 실행 시 AMI의 동작을 살펴보았는데요, 저희만의 AMI를 커스텀해서 만들고 유지할 수도 있습니다. 실제로 누군가 만들어 놓은 AMI를 사고 팔수 있는 마켓플레이스도 존재하죠.
EC2 인스턴스 저장소
EBS에 대해서 위에서 살펴보았는데, EBS는 좋지만 치명적인 단점이 있습니다. 바로 네트워크 기반의 통신으로 동작하기 때문에 약간의 레이턴시가 발생한다는 것인데요, 이를 해겨하기 위해 EC2 인스턴스 저장소를 사용할 수 있습니다.
EC2 인스턴스를 사용하면 입출력 성능이 향상됩니다. 하지만 EC2 인스턴스와 생명주기가 같기 때문에 만약 인스턴스가 종료되면 해당 데이터도 함께 사라집니다. 그래서 인스턴스 저장소를 사용할 때에는 항상 백업을 주기적으로 해놓는것이 중요합니다.
EFS는 무엇인가요?

Elastic File System(EFS) 는 관리형 네트워크 파일 시스템입니다. EC2에도 마운트가 되어 마치 EBS처럼 동작이 가능하죠.
EBS와 다르게 가용영역에 제한이 없다는 것도 큰 장점입니다.
고가용성에 확장성 높은 서비스인 대신 가격이 조금 나가는게 단점이라고 할 수 있습니다.
보안 그룹을 통해 EFS로의 접근 권한을 관리할 수 있고 프로비저닝 설정 등을 미리 하지 않고 파일시스템이 자동으로 오토 스케일링을 지원합니다.
EFS를 사용하면 1000개 이상의 NFS 클라이언트, 10GB/s의 트래픽을 처리할 수 있고, 페타바이트 스케일의 네트워크 파일 시스템으로 자동으로 스케일링을 지원합니다. 이는 엄청난 수치지요.
이렇게 보면 EBS와 컨셉이 겹치기도 하는데요, 상황과 요구사항에 맞게 적절한 스택을 선정하는 것이 중요합니다.
결론
함께 EC2와 EC2에서 데이터를 어떻게 관리하는지 개략적으로 함께 살펴보았는데요.
실제 EC2를 사용해 서버를 배포했음에도 몰랐던 여러 포인트들을 알게 되었습니다.
다음 번에는 실제 적용을 통해 실 사례에 적용하여 요금이나 성능을 개선한 부분을 글로 남겨보도록 하겠습니다~!
'DevOps > AWS 🛒' 카테고리의 다른 글
| AWS IAM으로 안전하게 협업하기 (0) | 2024.06.18 |
|---|
안녕하세요, 저는 주니어 개발자 박석희 입니다. 언제든 하단 연락처로 연락주세요 😆