본문으로 건너뛰기

AWS Day 4 - 0115

AWS Day 4 - 0115

목차


VPC Architecture

VPC 워크플로 생성 완료

리소스 타입리소스 ID상태
VPCvpc-0217f2fbe39a25c1d✅ 생성 완료
S3 Endpointvpce-05bd9d59a285fac92✅ 생성 완료
Internet Gatewayigw-0f775bf918c698150✅ 연결 완료
NAT Gatewaynat-0e81945c0b580713b✅ 활성화 완료
Elastic IPeipalloc-00da42b2f94366036✅ 할당 완료

VPC 생성 구성표

1. VPC 기본 설정

항목
VPC Namepista-vpc
VPC IDvpc-0217f2fbe39a25c1d
IPv4 CIDR10.0.0.0/16
DNS 호스트 이름활성화
DNS 확인활성화

2. 서브넷 구성

퍼블릭 서브넷 (Public Subnets)

서브넷 ID서브넷 이름가용 영역CIDR 블록
subnet-06df70d34d815a011pista-subnet-public1-ap-south-1aap-south-1a10.0.0.0/20
subnet-04a5e97911d5f9893pista-subnet-public2-ap-south-1bap-south-1b10.0.16.0/20

프라이빗 서브넷 (Private Subnets)

서브넷 ID서브넷 이름가용 영역CIDR 블록
subnet-06957dbccecbf67d5pista-subnet-private1-ap-south-1aap-south-1a10.0.128.0/20
subnet-014c426d2ed520633pista-subnet-private2-ap-south-1bap-south-1b10.0.144.0/20

3. 인터넷 게이트웨이 (Internet Gateway)

항목
IGW IDigw-0f775bf918c698150
연결 대상pista-vpc (vpc-0217f2fbe39a25c1d)

4. 라우팅 테이블 (Route Tables)

라우팅 테이블 ID연결된 서브넷용도
rtb-0787b468e025d9a56Public 서브넷인터넷 연결
rtb-0ad303e664c907446Private 서브넷NAT Gateway 연결
rtb-0abcd9fc52cdc8641Private 서브넷NAT Gateway 연결

5. NAT Gateway

항목
NAT Gateway IDnat-0e81945c0b580713b
Elastic IPeipalloc-00da42b2f94366036
상태활성화

6. VPC Endpoints

항목
Endpoint IDvpce-05bd9d59a285fac92
서비스S3
연결된 라우팅 테이블Private 서브넷 라우팅 테이블

7. 리소스 요약

리소스 타입개수비고
VPC110.0.0.0/16
퍼블릭 서브넷2Multi-AZ (ap-south-1a, ap-south-1b)
프라이빗 서브넷2Multi-AZ (ap-south-1a, ap-south-1b)
Internet Gateway1VPC 당 1개
NAT Gateway1Public 서브넷 배치
라우팅 테이블3Public 1개, Private 2개
S3 VPC Endpoint1Gateway 타입

EC2 생성

아키텍처 개요

┌─────────────────────────────────────────────────┐
│ pista-vpc (10.0.0.0/16) │
│ vpc-0217f2fbe39a25c1d │
└─────────────────────────────────────────────────┘

┌────────────────────────┴────────────────────────┐
│ Internet Gateway (igw-xxx) │
└────────────────────────┬────────────────────────┘

┌───────────────────────────────────────┴───────────────────────────────────────┐
│ │
┌───────────┴───────────┐ ┌─────────────┴───────────┐
│ ap-south-1a (AZ-A) │ │ ap-south-1b (AZ-B) │
├───────────────────────┤ ├─────────────────────────┤
│ ┌───────────────────┐ │ │ ┌─────────────────────┐ │
│ │ Public Subnet 1 │ │ │ │ Public Subnet 2 │ │
│ │ 10.0.0.0/20 │ │ │ │ 10.0.16.0/20 │ │
│ │ subnet-06df70... │ │ │ │ subnet-04a5e... │ │
│ │ │ │ │ │ │ │
│ │ ┌───────────────┐ │ │ │ │ ┌─────────────────┐ │ │
│ │ │pista-ec2-pub1 │ │ │ │ │ │ pista-ec2-pub2 │ │ │
│ │ │13.233.184.126 │ │ │ │ │ │ 3.109.203.118 │ │ │
│ │ │(Nginx+AMI) │ │ │ │ │ │ (Nginx+AMI) │ │ │
│ │ └───────────────┘ │ │ │ │ └─────────────────┘ │ │
│ │ ┌───────────────┐ │ │ │ │ │ │
│ │ │ NAT Gateway │ │ │ │ │ │ │
│ │ └───────────────┘ │ │ │ │ │ │
│ └───────────────────┘ │ │ └─────────────────────┘ │
│ ┌───────────────────┐ │ │ ┌─────────────────────┐ │
│ │ Private Subnet 1 │ │ │ │ Private Subnet 2 │ │
│ │ 10.0.128.0/20 │ │ │ │ 10.0.144.0/20 │ │
│ └───────────────────┘ │ │ └─────────────────────┘ │
└───────────────────────┘ └─────────────────────────┘

EC2 인스턴스 구성표

Public EC2 (Multi-AZ)

항목pista-ec2-public1pista-ec2-public2
Instance IDi-04faedf4be101aa90i-0b74975cc11789343
AMI IDami-02b8269d5e85954ef (Ubuntu 24.04)ami-07f154542028f106a (pista-nginx-ami)
Instance Typet3.microt3.micro
가용 영역ap-south-1aap-south-1b
서브넷pista-subnet-public1-ap-south-1apista-subnet-public2-ap-south-1b
퍼블릭 IPv413.233.184.1263.109.203.118
퍼블릭 DNSec2-13-233-184-126.ap-south-1.compute.amazonaws.comec2-3-109-203-118.ap-south-1.compute.amazonaws.com
프라이빗 IPv410.0.7.23210.0.25.36
보안 그룹pista-sb-public1pista-sb-public1
Key Pairpista-keypista-key
상태실행 중 ✅실행 중 ✅
시작 시간2026/01/15 09:59 GMT+92026/01/15 10:20 GMT+9
역할Web Server (Nginx)Web Server (Nginx)

Private EC2 (Multi-AZ)

항목pista-ec2-private1pista-ec2-private2
Instance IDi-019fe787e872c272bi-08a0966b733f511e9
AMI IDami-07f154542028f106a (pista-nginx-ami)ami-07f154542028f106a (pista-nginx-ami)
Instance Typet3.microt3.micro
가용 영역ap-south-1aap-south-1b
서브넷pista-subnet-private1-ap-south-1apista-subnet-private2-ap-south-1b
프라이빗 IPv410.0.139.12910.0.147.168
보안 그룹pista-sg-privatepista-sg-private
Key Pairpista-keypista-key
상태실행 중 ✅실행 중 ✅
시작 시간2026/01/15 10:58 GMT+92026/01/15 11:19 GMT+9

인스턴스 세부 정보

항목
테넌시default
가상화 유형hvm
크레딧 사양unlimited
부트 모드uefi-preferred (uefi)
IMDSv2Required
종료 방지비활성
중지 방지비활성
Enclaves Support비활성

AMI 생성

AMI 구성표

항목
Namepista-nginx-ami
AMI IDami-07f154542028f106a
원본 AMIami-02b8269d5e85954ef
원본 리전ap-south-1
소유자 계정824065647982
상태사용 가능
생성 날짜2026/01/15 10:10 GMT+9
아키텍처x86_64
플랫폼Linux/UNIX
가상화 유형hvm
루트 디바이스 유형EBS
부트 모드uefi-preferred
설명ubuntu-nginx-image
표시 여부프라이빗
등록 취소 보호Disabled

블록 디바이스 매핑

디바이스스냅샷/유형크기
/dev/sda1snap-0133ed5b677defaa0 (gp3)10 GB
/dev/sdbephemeral0-
/dev/sdcephemeral1-

Target Group & Load Balancer

아키텍처 개요

┌─────────────────────────┐
│ Internet │
└───────────┬─────────────┘

┌───────────┴─────────────┐
│ pista-alb-web1 │
│ (Application LB) │
│ HTTP:80 → pista-nginx │
└───────────┬─────────────┘

┌───────────┴─────────────┐
│ Target Group │
│ (pista-nginx) │
│ Port: 80 │
└───────────┬─────────────┘

┌───────────────────┴───────────────────┐
│ │
┌───────────┴───────────┐ ┌─────────────┴───────────┐
│ pista-ec2-public1 │ │ pista-ec2-public2 │
│ ap-south-1a │ │ ap-south-1b │
│ 10.0.7.232:80 │ │ 10.0.25.36:80 │
└───────────────────────┘ └─────────────────────────┘

Application Load Balancer 구성표

기본 구성

항목
Namepista-alb-web1
TypeApplication Load Balancer
상태✅ 활성
체계 (Scheme)Internet-facing
IP 주소 유형IPv4
VPCpista-vpc (vpc-0217f2fbe39a25c1d)
호스팅 영역ZP97RAFLXTNZK
DNS 이름pista-alb-web1-906245508.ap-south-1.elb.amazonaws.com
ARNarn:aws:elasticloadbalancing:ap-south-1:824065647982:loadbalancer/app/pista-alb-web1/effd8a4890ae6334
생성 날짜2026/01/15 10:40 GMT+9

네트워크 매핑

가용 영역서브넷 ID서브넷 이름CIDR 블록
ap-south-1asubnet-06df70d34d815a011pista-subnet-public1-ap-south-1a10.0.0.0/20
ap-south-1bsubnet-04a5e97911d5f9893pista-subnet-public2-ap-south-1b10.0.16.0/20

보안 그룹

보안 그룹 이름보안 그룹 IDVPC
defaultsg-0bbb85f3798dd9fc0vpc-0217f2fbe39a25c1d

리스너 및 라우팅

프로토콜포트기본 작업대상 그룹
HTTP80대상 그룹으로 전달pista-nginx (가중치: 1, 100%)

Target Group 구성표 (pista-nginx)

항목
Namepista-nginx
Target TypeInstances
ProtocolHTTP
Port80
VPCpista-vpc (vpc-0217f2fbe39a25c1d)
Health Check ProtocolHTTP
Health Check Path/
대상 고정성

등록된 대상 (Registered Targets)

인스턴스 ID이름포트가용 영역프라이빗 IPv4서브넷 IDHealth
i-04faedf4be101aa90pista-ec2-public180ap-south-1a10.0.7.232subnet-06df70d34d815a011✅ healthy
i-0b74975cc11789343pista-ec2-public280ap-south-1b10.0.25.36subnet-04a5e97911d5f9893✅ healthy

💡 Multi-AZ 구성: 두 가용 영역(ap-south-1a, ap-south-1b)에 분산 배치하여 고가용성 확보

🌐 접속 URL: http://pista-alb-web1-906245508.ap-south-1.elb.amazonaws.com


Internal ALB 구성표 (pista-alb-web2)

기본 구성

항목
Namepista-alb-web2
TypeApplication Load Balancer
상태✅ 활성
체계 (Scheme)Internal
IP 주소 유형IPv4
VPCpista-vpc (vpc-0217f2fbe39a25c1d)
호스팅 영역ZP97RAFLXTNZK
DNS 이름internal-pista-alb-web2-467231669.ap-south-1.elb.amazonaws.com
ARNarn:aws:elasticloadbalancing:ap-south-1:824065647982:loadbalancer/app/pista-alb-web2/9b76fd11712a1d05
생성 날짜2026/01/15 11:05 GMT+9

네트워크 매핑 (Private Subnets)

가용 영역서브넷 ID서브넷 이름CIDR 블록
ap-south-1asubnet-06957dbccecbf67d5pista-subnet-private1-ap-south-1a10.0.128.0/20
ap-south-1bsubnet-014c426d2ed520633pista-subnet-private2-ap-south-1b10.0.144.0/20

보안 그룹

보안 그룹 이름보안 그룹 ID
pista-sg-privatesg-0d2a23ba2827e1eff

리스너 및 라우팅

프로토콜포트기본 작업대상 그룹
HTTP80대상 그룹으로 전달pista-tg-private (100%)

Target Group 구성표 (pista-tg-private)

항목
Namepista-tg-private
ARNarn:aws:elasticloadbalancing:ap-south-1:824065647982:targetgroup/pista-tg-private/220b225dcf1aab2d
Target TypeInstances
ProtocolHTTP
Port80
VPCpista-vpc (vpc-0217f2fbe39a25c1d)

등록된 대상 (Private)

인스턴스 ID이름포트가용 영역프라이빗 IPv4Health
i-019fe787e872c272bpista-ec2-private180ap-south-1a10.0.139.129⏳ 초기화

💡 Internal ALB: VPC 내부에서만 접근 가능. Public EC2에서 Private EC2로 트래픽 라우팅 시 사용


Auto Scaling

아키텍처 개요

┌─────────────────────────────────────┐
│ Internet │
└──────────────────┬──────────────────┘

┌──────────────────┴──────────────────┐
│ pista-alb-web3 (ALB) │
│ Internet-facing, HTTP:80 │
└──────────────────┬──────────────────┘

┌──────────────────┴──────────────────┐
│ Target Group: pista-alb-web3 │
└──────────────────┬──────────────────┘

┌──────────────────────────────────┴──────────────────────────────────┐
│ Auto Scaling Group: pista-as-1 │
│ (원하는: 1, 최소: 1, 최대: 3) │
├─────────────────────────────────┬───────────────────────────────────┤
│ ap-south-1a │ ap-south-1b │
├─────────────────────────────────┼───────────────────────────────────┤
│ ┌─────────────────────────┐ │ ┌─────────────────────────┐ │
│ │ Public Subnet 1 │ │ │ Public Subnet 2 │ │
│ │ 10.0.0.0/20 │ │ │ 10.0.16.0/20 │ │
│ │ ┌───────────────────┐ │ │ │ ┌───────────────────┐ │ │
│ │ │ EC2 (Auto Scale) │ │ │ │ │ EC2 (Auto Scale) │ │ │
│ │ └───────────────────┘ │ │ │ └───────────────────┘ │ │
│ └─────────────────────────┘ │ └─────────────────────────┘ │
│ ┌─────────────────────────┐ │ ┌─────────────────────────┐ │
│ │ Private Subnet 1 │ │ │ Private Subnet 2 │ │
│ │ 10.0.128.0/20 │ │ │ 10.0.144.0/20 │ │
│ │ ┌───────────────────┐ │ │ │ ┌───────────────────┐ │ │
│ │ │ EC2 (Auto Scale) │ │ │ │ │ EC2 (Auto Scale) │ │ │
│ │ └───────────────────┘ │ │ │ └───────────────────┘ │ │
│ └─────────────────────────┘ │ └─────────────────────────┘ │
└─────────────────────────────────┴───────────────────────────────────┘

┌──────────────────┴──────────────────┐
│ Launch Template: pista-template-web1 │
│ AMI: Ubuntu 24.04 + Nginx │
└─────────────────────────────────────────┘

Launch Template 구성표

항목
Template Namepista-template-web1
Template IDlt-0faea3501f9d01252
Version1 (기본값)
설명web server template
생성 날짜2026/01/15 11:55 GMT+9
소유자pyh5523@gmail.com

인스턴스 세부 정보

항목
AMI IDami-02b8269d5e85954ef (Ubuntu 24.04)
Instance Typet2.micro
Key Pairpista-key
서브넷pista-subnet-public1-ap-south-1a (subnet-06df70d34d815a011)
Security Grouppista-sb-public1 (sg-07c24c47b85248aad)

스토리지

디바이스스냅샷크기볼륨 타입종료 시 삭제
/dev/sda1snap-02aec5d73c95cb35b10 GBgp3

User Data

#!/bin/bash
sudo apt-get update && sudo apt-get -y install nginx vim
sudo systemctl enable nginx
sudo systemctl restart nginx

HOSTNAME=$(hostname)
IP=$(hostname -I | awk '{print $1}')

sudo tee /var/www/html/index.html << 'EOF'
<!DOCTYPE html>
<html lang="ko">
...
</html>
EOF

sudo sed -i "s/HOSTNAME_PLACEHOLDER/$HOSTNAME/" /var/www/html/index.html
sudo sed -i "s/IP_PLACEHOLDER/$IP/" /var/www/html/index.html
echo "charset utf-8;" | sudo tee /etc/nginx/conf.d/charset.conf
sudo systemctl restart nginx

💡 User Data: 인스턴스 시작 시 Nginx 설치 및 Hostname/IP 표시 페이지 자동 생성

Auto Scaling Group 구성표

항목
ASG Namepista-as-1
Launch Templatepista-template-web1 (lt-0faea3501f9d01252)
Template VersionDefault (1)
VPCpista-vpc (vpc-0217f2fbe39a25c1d)
가용 영역 배포균형 잡힌 최선 노력

네트워크 구성 (Public 서브넷만)

가용 영역서브넷CIDR
ap-south-1apista-subnet-public1-ap-south-1a10.0.0.0/20
ap-south-1bpista-subnet-public2-ap-south-1b10.0.16.0/20

💡 Public 서브넷만 사용: 웹 서버는 인터넷 연결이 필요하므로 Private 서브넷 제거

로드 밸런서 연결 (pista-alb-web3)

항목
LB Namepista-alb-web3
LB TypeApplication Load Balancer
체계Internet-facing
VPCpista-vpc
서브넷public1 (ap-south-1a), public2 (ap-south-1b)
리스너HTTP:80
대상 그룹pista-alb-web3 (신규 생성)

상태 확인

상태 확인 유형상태
EC2 상태 확인✅ 항상 활성화
Elastic Load Balancer 상태 확인✅ 활성화 (권장)
상태 확인 유예 기간15초

그룹 크기 및 크기 조정

항목
원하는 용량1
최소 용량1
최대 용량3
크기 조정 정책없음 (수동 조정)
인스턴스 유지관리 정책혼합 동작: 정책 없음
용량 예약 기본 설정기본값
인스턴스 축소 보호비활성화

Installation Scripts

Web Server (Nginx)

📄 web.sh - Nginx 웹 서버 설치 스크립트

Database Initialization

📄 init_database.sh - 데이터베이스 초기화 스크립트

FastAPI Installation

📄 install_fastapi.sh - FastAPI 설치 스크립트


관련 문서

그래프 뷰

그래프 데이터 로딩 중…
현재: AWS Day 4 - 0115
노드 클릭 → 이동 · 드래그 → 위치 조정