첫 번째 EC2 인스턴스 시작하기
시작 마법사를 따라 AMI와 인스턴스 유형을 선택하고 키 페어를 구성한 뒤 SSH로 연결합니다.
첫 번째 EC2 인스턴스 시작하기은(는) CoddyKit의 무료 Cloud & IT Cert Prep 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cloud & IT Cert Prep 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
Amazon EC2란 무엇인가요?
Amazon Elastic 컴퓨팅 클라우드(EC2)는 인스턴스라고 하는 크기 조정 가능한 가상 머신을 클라우드에서 제공합니다. 운영 체제, CPU, 메모리, 스토리지, 네트워크 용량을 선택할 수 있습니다. EC2는 AWS의 기본 컴퓨팅 서비스입니다. 지속적이고 상태를 유지하는 컴퓨팅이 필요한 거의 모든 아키텍처가 EC2를 직접 사용하거나 그 위에 구축된 서비스(ECS, EKS, EMR)를 통해 EC2에 의존합니다. 인스턴스는 VPC 안에서 실행되며 필요에 따라 시작, 중지, 재부팅 또는 종료할 수 있습니다.
Amazon 머신 이미지(AMI)
Amazon 머신 이미지(AMI)는 EC2 인스턴스의 운영 체제, 소프트웨어, 구성을 정의하는 템플릿입니다. AWS는 수천 개의 AMI(Amazon Linux 2023, Ubuntu, Windows Server)를 제공하고, Marketplace 공급업체는 사전 구성된 소프트웨어가 포함된 AMI를 게시합니다. 또한 실행 중인 인스턴스를 캡처하여 사용자 지정 AMI를 직접 만들 수도 있습니다. 인스턴스를 시작할 때 AMI를 선택하면 루트 볼륨의 콘텐츠와 아키텍처(x86_64 또는 ARM)가 결정됩니다.
# Find latest Amazon Linux 2023 AMI in us-east-1
aws ec2 describe-images \
--owners amazon \
--filters 'Name=name,Values=al2023-ami-*-x86_64' \
--query 'sort_by(Images, &CreationDate)[-1].ImageId' \
--output textEC2 시작 마법사: 단계별 안내
콘솔의 EC2 시작 마법사는 다음 단계를 안내합니다. 1) 이름 및 태그, 2) AMI 선택, 3) 인스턴스 유형(CPU/메모리 조합), 4) SSH 액세스를 위한 키 페어, 5) 네트워크 설정(VPC, 서브넷, 보안 그룹), 6) 스토리지(루트 EBS 볼륨 크기 및 유형), 7) 고급 설정(IAM 역할, 사용자 데이터 스크립트, 메타데이터 옵션). 각 단계를 이해하면 구성에 관한 시험 문제에도 자신 있게 답할 수 있습니다.
# Equivalent CLI launch
aws ec2 run-instances \
--image-id ami-0abcdef1234567890 \
--instance-type t3.micro \
--key-name MyKeyPair \
--security-group-ids sg-12345678 \
--subnet-id subnet-12345678 \
--iam-instance-profile Name=MyEC2Role \
--user-data file://user-data.shSSH 인증을 위한 키 페어
키 페어는 공개 키(AWS가 저장)와 개인 키(사용자가 다운로드하며 한 번만 가능)로 구성됩니다. EC2 인스턴스를 시작하면 AWS는 기본 사용자의 ~/.ssh/authorized_keys 파일에 공개 키를 삽입합니다(Amazon Linux의 경우 ec2-user, Ubuntu의 경우 ubuntu 등). 개인 키를 사용하여 연결합니다. ssh -i my-key.pem ec2-user@<public-ip>. 개인 키를 잃어버리면 대안으로 Systems Manager Session Manager를 사용하지 않는 한 인스턴스에 SSH로 접속할 수 없습니다.
# Generate a new key pair and save the private key
aws ec2 create-key-pair \
--key-name MyKeyPair \
--query 'KeyMaterial' \
--output text > MyKeyPair.pem
chmod 400 MyKeyPair.pem
# Connect to the instance
ssh -i MyKeyPair.pem ec2-user@54.123.45.67인스턴스 수명 주기 상태
EC2 인스턴스는 여러 상태를 거칩니다. Pending: 인스턴스가 시작 중입니다(요금이 부과되지 않음). Running: 인스턴스가 활성 상태입니다(초 또는 시간 단위로 요금이 부과됨). Stopping: 중지 상태로 전환 중입니다(EBS 기반 인스턴스에만 해당). Stopped: 인스턴스가 꺼진 상태이며 연결된 EBS 스토리지 비용만 지불합니다. Terminated: 영구적으로 삭제된 상태이며 다시 시작할 수 없습니다. 이러한 상태를 이해하는 것은 결제(On-Demand 요금은 Running 상태일 때만 발생)와 아키텍처(Spot 인스턴스는 Stopped 상태를 거치지 않고 종료됨)에 중요합니다.
# Stop and start an instance
aws ec2 stop-instances --instance-ids i-0abcdef1234567890
aws ec2 start-instances --instance-ids i-0abcdef1234567890
# Terminate permanently
aws ec2 terminate-instances --instance-ids i-0abcdef1234567890EC2 퍼블릭 및 프라이빗 IP 주소
기본적으로 퍼블릭 서브넷의 인스턴스에는 퍼블릭 IPv4 주소(동적이며 중지/시작 시 변경됨)와 프라이빗 IPv4 주소(VPC 내에서 중지/시작해도 유지됨)가 할당됩니다. 유지되는 퍼블릭 IP가 필요하면 Elastic IP(EIP)를 할당하십시오. 이는 해제할 때까지 사용자가 소유하는 정적 퍼블릭 IPv4 주소입니다. EIP는 실행 중인 인스턴스에 연결되어 있으면 무료지만, 연결되지 않았거나 실행 중인 인스턴스 하나에 두 개 이상 할당하면 요금이 부과됩니다.
# Allocate an Elastic IP and associate it with an instance
aws ec2 allocate-address --domain vpc
aws ec2 associate-address \
--instance-id i-0abcdef1234567890 \
--allocation-id eipalloc-12345678사용자 데이터: 부트스트랩 스크립트
사용자 데이터는 인스턴스가 처음 시작될 때 한 번 실행되는 셸 스크립트(또는 cloud-init 구성)입니다. 패키지 설치, 소프트웨어 구성, S3에서 애플리케이션 코드 가져오기 등에 사용할 수 있습니다. 사용자 데이터는 루트로 실행되며 기본적으로 재부팅 시 다시 실행되지 않습니다. 시작 구성에 base64로 인코딩된 텍스트로 전달됩니다. 사용자 데이터를 짧게 유지하고 복잡한 설정에는 미리 빌드한 AMI를 사용하면 자동 확장 시작 시간이 단축됩니다.
#!/bin/bash
# user-data.sh — runs on first boot
yum update -y
yum install -y httpd
echo '<h1>Hello from EC2</h1>' > /var/www/html/index.html
systemctl start httpd
systemctl enable httpd연결 방법: SSH와 Systems Manager 비교
EC2 인스턴스에 액세스하는 기본 방법은 두 가지입니다. SSH: 보안 그룹에서 22번 포트를 열고 개인 키 파일을 사용해야 합니다. AWS Systems Manager Session Manager: 어떤 포트도 열지 않고, 키 페어 없이, 브라우저 기반 또는 CLI 셸 액세스를 제공합니다. 또한 CloudTrail을 통해 전체 감사 추적을 남깁니다. Session Manager를 사용하려면 SSM 에이전트(Amazon Linux 및 Windows Server AMI에 사전 설치됨)와 AmazonSSMManagedInstanceCore 정책이 연결된 IAM 역할이 필요합니다. Session Manager는 운영 인스턴스에 권장되는 액세스 방법입니다.
# Start a Session Manager session (no SSH needed)
aws ssm start-session --target i-0abcdef1234567890EC2 인스턴스 메타데이터
EC2 인스턴스 메타데이터 서비스(IMDS)는 169.254.169.254에 있는 HTTP 엔드포인트로, 인스턴스 내부에서만 액세스할 수 있습니다. 인스턴스 ID, AMI ID, 퍼블릭 IP, IAM 역할 자격 증명, 가용 영역 등의 실행 정보를 제공합니다. IMDSv2(현재 권장되는 방식)는 세션 기반 토큰을 요구하므로, 취약한 애플리케이션을 통해 서버 측 요청 위조(SSRF) 공격으로 메타데이터를 읽는 것을 방지합니다. 항상 인스턴스에서 IMDSv2를 필수로 사용하도록 구성하십시오.
# Get instance ID using IMDSv2
TOKEN=$(curl -X PUT 'http://169.254.169.254/latest/api/token' \
-H 'X-aws-ec2-metadata-token-ttl-seconds: 21600' -s)
curl -H "X-aws-ec2-metadata-token: $TOKEN" -s \
http://169.254.169.254/latest/meta-data/instance-id배치 그룹
배치 그룹은 인스턴스가 기본 하드웨어에 분산되는 방식을 제어합니다. Cluster: 초저지연 네트워크와 높은 대역폭을 위해 하나의 AZ에서 인스턴스를 서로 가깝게 배치합니다. HPC에 적합합니다. Spread: 연관된 장애를 줄이기 위해 각 인스턴스를 서로 다른 하드웨어에 배치합니다. 소수의 중요한 인스턴스 집합에 적합하며 AZ당 최대 7개까지 지원합니다. Partition: 별도의 랙에 있는 논리적 파티션으로 인스턴스를 나눕니다. 랙 인식이 중요한 Hadoop이나 Cassandra 같은 대규모 분산 시스템에 적합합니다.
# Create a cluster placement group
aws ec2 create-placement-group \
--group-name HighPerfCluster \
--strategy clusterEC2 종료 방지
종료 방지는 콘솔, CLI 또는 API를 통해 인스턴스가 실수로 종료되는 것을 방지합니다. 중요한 인스턴스를 시작할 때 활성화하십시오. 참고로 종료 방지가 활성화되어 있어도 별도로 인스턴스 보호를 구성하지 않으면 Auto Scaling Group은 축소 이벤트 중에 인스턴스를 종료할 수 있습니다. 루트 EBS 볼륨의 DeleteOnTermination 속성은 인스턴스가 종료될 때 볼륨을 자동으로 삭제할지 결정합니다. 일반적으로 루트 볼륨에는 true, 보존할 데이터 볼륨에는 false를 사용하는 것이 좋습니다.
# Enable termination protection
aws ec2 modify-instance-attribute \
--instance-id i-0abcdef1234567890 \
--disable-api-termination빠른 확인
이 강의에서 배운 AWS Solutions Architect(SAA-C03) 개념을 얼마나 이해했는지 확인하십시오.
강의 요약
이 강의에서는 다음을 배웠습니다. EC2 인스턴스는 선택한 인스턴스 유형, 키 페어, 보안 그룹 및 선택적 사용자 데이터와 함께 AMI에서 시작됩니다. Elastic IP는 유지되는 퍼블릭 주소를 제공하지만 일반 퍼블릭 IP는 중지/시작 시 변경됩니다. 또한 운영 인스턴스에는 SSH보다 Systems Manager Session Manager가 권장되는 액세스 방법입니다. 다음에는 인스턴스 유형과 요금 모델을 비교합니다.
자주 묻는 질문
“첫 번째 EC2 인스턴스 시작하기” 강의는 무료인가요?
네 — “첫 번째 EC2 인스턴스 시작하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cloud & IT Cert Prep 강의 전체를 잠금 해제할 수 있습니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
“첫 번째 EC2 인스턴스 시작하기”에서 뭘 배우나요?
시작 마법사를 따라 AMI와 인스턴스 유형을 선택하고 키 페어를 구성한 뒤 SSH로 연결합니다. 브라우저에서 직접 실행하는 실습 코드로 Cloud & IT Cert Prep을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Cloud & IT Cert Prep을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Cloud & IT Cert Prep은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“첫 번째 EC2 인스턴스 시작하기” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Cloud & IT Cert Prep 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Cloud & IT Cert Prep 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 첫 번째 EC2 인스턴스 시작하기
- 인스턴스 유형 및 요금 모델
- 보안 그룹 및 키 페어
- EC2 스토리지: 인스턴스 스토어와 EBS