Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- tableau
- 카카오엔터프라이즈
- 꾸석지돌판한우
- olist
- 부트캠프
- 클라우드엔지니어
- 데이터분석
- 오늘의로하
- 파이썬문법
- AIaaS
- 데이터분석포트폴리오
- AIaaS마스터클래스2기
- 영종도카페
- Kaggle
- 판교생활
- 하늘도시맛집
- 태블로
- sql
- 개발자교육
- 이커머스데이터분석
- 포트폴리오
- 한국생산성본부
- 스나이퍼팩토리
- 클라우드개발자
- 하늘도시속눈썹
- 인턴생활
- 판교타코익스프레스
- 카카오클라우드
- wecookieyou
- 하루기록
Archives
- Today
- Total
Alroha
[스나이퍼팩토리] 카카오클라우드 - 클라우드 개발자 교육 9주차 본문
🗓️ AWS - VPC 구축
🧭 AWS 글로벌 인프라
- 리전 > 가용영역 > 데이터센터 > 엣지 네트워크
| 리전(Region) | 물리적 위치(예: ap-northeast-2 서울) | 대부분 서비스는 리전 단위. DR은 다중 리전 배치 |
| 가용영역(AZ) | 리전 내 분리된 데이터센터 묶음 | 최소 2개 이상(보통 3개). 다중 AZ로 고가용성 |
| 엣지 로케이션 | 전세계 캐시 포인트 | CloudFront/Global Accelerator가 지연 최소화 |
✅ 고가용성은 다중 AZ, 재해복구는 다중 리전!
🏗️ VPC 아키텍처
- VPC연결 플로우
-> 서브넷 설정(test-public-subnet 10.0.0.0/24(퍼블릭 서브넷 자동할당 ip 활성화), test-private-subnet 10.0.10.0/24) -> 인터넷 게이트웨이(test-igw) : testvpc1에 연결
VPC: 10.0.0.0/16
├─ Public Subnet: 10.0.0.0/24 (Auto-assign public IP: ✔)
│ ├─ Internet Gateway (IGW) 연결
│ └─ EC2: Pub-svr (Ubuntu 24.04, 10.0.0.100, Public IP 有)
│
└─ Private Subnet: 10.0.10.0/24
├─ NAT Gateway (Public Subnet에 위치, EIP 필요)
└─ EC2: Pri-svr (Amazon Linux 2023, 10.0.0.200, Private IP Only)
🔁 라우팅 테이블 설계(핵심)
| test-public-rt | test-public-subnet | 0.0.0.0/0 → IGW |
| test-private-rt | test-private-subnet | 0.0.0.0/0 → NAT Gateway |
🧠 이유: 프라이빗 서브넷 인스턴스가 아웃바운드 인터넷(패키지 설치/업데이트)을 하려면 NAT GW를 경유해야 함. NAT는 퍼블릭 서브넷에 있어야 하고 EIP가 필요!
🔐 보안 제어 (Security Group vs NACL)
| SG | NACL | |
| 적용 범위 | 인스턴스 단위 | 서브넷 단위 |
| 상태 추적 | Stateful (응답 자동 허용) | Stateless (양방향 규칙 필요) |
| 용도 | 일반적 트래픽 제어 | 서브넷 전체 정책/거부 리스트 |
| 권장 | 기본은 SG로 설계, NACL은 특수정책 |
실습 개요
- public-sub-sg (Pub-svr용)
- Pub-svr
- Os -> ubuntu 24.04
- 인스턴스 타입: t2micro
- 네트워크 편집 : testvpc1, test-public-subnet, 10.0.0.100
- 보안 키페어 생성 pem 으로 설정, 보안그룹 생성: public—sub-sg
- 사용자 데이터(선택사항) : 도커 엔진 설치하는 스크립트 첨부 (설치 부분에 -y옵션 추가하기)
- test-pri-sg (Pri-svr용)
- Os -> amazon linux2023
- 인스턴스 타입: t2micro
- 네트워크 편집 : testvpc1, test-private-subnet, 10.0.0.200
- 앞에 설정한 기존 키페어 선택
- 보안그룹 생성: test-pri-sg사용자 데이터(선택사항) : 도커 엔진 설치하는 스크립트 첨부(설치 부분에 -y옵션 추가하기)
- EC2 -2 인스턴스 생성
- EC2 -1 인스턴스 생성
- 퍼블릭 서브넷 설정 (test-public-subnet을 퍼블릭서브넷으로 만들기 위해) (test-public-rt 에 라우팅 0.0.0.0/0 test-igw 추가)
- 라우팅 테이블 설정 (test-public-rt, test-private-rt) -> testvpc1에 연결
- VPC(testvpc1 10.0.0.0/16)
✅ 프라이빗 인스턴스는 직접 인터넷에서 접근 불가. 접속은 **Bastion(퍼블릭)**을 경유.
🧪 EC2 생성 & 유저데이터(자동 도커 설치)
Pub-svr (Ubuntu 24.04)
- 네트워크: testvpc1, test-public-subnet, 10.0.0.100
- 키페어: hj-keypair.pem
- User Data (Ubuntu)
#!/bin/bash
set -eux
apt-get update -y
apt-get install -y ca-certificates curl gnupg lsb-release
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \
> /etc/apt/sources.list.d/docker.list
apt-get update -y
apt-get install -y docker-ce docker-ce-cli containerd.io
systemctl enable --now docker
Pri-svr (Amazon Linux 2023)
- 네트워크: testvpc1, test-private-subnet, 10.0.0.200
- 키페어: hj-keypair.pem
- User Data (AL2023)
#!/bin/bash
set -eux
dnf update -y
dnf install -y docker
systemctl enable --now docker
usermod -aG docker ec2-user
🔑 SSH 접속
1) 퍼블릭 서버 접속
chmod 400 hj-keypair.pem
ssh -i hj-keypair.pem ubuntu@<Public-IP-of-Pub-svr>
# 예시
ssh -i hj-keypair.pem ubuntu@43.203.182.36
2) 프라이빗 서버 접속 — Bastion 사용
Bastion Host란?
외부에서 직접 접근 불가한 프라이빗 리소스로 가는 중간 관문 역할의 보안 강화용 퍼블릭 서버.장점: 외부 노출 최소화, 로깅/감사 용이, 중앙 통제
실습에서는 Pub-svr가 Bastion 역할 수행
- 점프 방식 ①: Bastion 접속 후 내부로 Hop
- # Step1: Bastion ssh -i hj-keypair.pem ubuntu@<Public-IP> # Step2: 내부 프라이빗로 ssh ec2-user@10.0.0.200
- 점프 방식 ②: 로컬에서 -J 옵션으로 한 번에
- ssh -i hj-keypair.pem -J ubuntu@<Public-IP> ec2-user@10.0.0.200
❗️Permission denied 발생시 체크
키파일 권한: chmod 400
사용자: Ubuntu는 ubuntu, Amazon Linux는 ec2-user
Pri-svr SG: Inbound SSH from Bastion 허용 여부
🧰 문제 발생 요소
🟨 “인스턴스 상태 검사 1/2에서 멈춤”
- 오류
- Instance status check 실패: ping 연결이 되지 않음
- 조치
- Stop → Start로 인스턴스 재부팅(연결됨)
🧠 Additional
NAT Gateway vs NAT Instance
항목 NAT Gateway NAT Instance
| NAT Gateway | NAT Instance | |
| 관리 | 완전관리형(무중단/고성능) | 직접 관리 필요(스케일링/HA) |
| 설치 위치 | 퍼블릭 서브넷 + EIP | 퍼블릭 서브넷(ENI/EIP) |
| 권장 | 표준 | 특수 요구/커스텀 라우팅 시 |
VPC peering vs Transit Gateway
항목 피어링 TGW
| VPC Peering | Transit Gateway | |
| 토폴로지 | 메시 (대수 늘면 복잡) | 허브&스포크 (단순/중앙관리) |
| 라우팅 | VPC 간 정적 라우팅 | TGW 라우팅 도메인 |
| 규모 | 소규모 간단 연결 | 대규모/다수 VPC 권장 |
📝 커맨드 스니펫
# 키 권한
chmod 400 hj-keypair.pem
# 퍼블릭 접속
ssh -i hj-keypair.pem ubuntu@
# 프라이빗 접속(점프)
ssh -i hj-keypair.pem -J ubuntu@ ec2-user@10.0.0.200
# 네트워크 확인(점프 이후)
ip addr; ip route; curl -I https://amazon.com
📚 과제


본 후기는 [카카오엔터프라이즈x스나이퍼팩토리] 카카오클라우드로 배우는 AIaaS 마스터 클래스 2기(B-log) 리뷰로 작성 되었습니다.
'IT > Kakao cloud 부트캠프' 카테고리의 다른 글
| [스나이퍼팩토리] 카카오클라우드 - 클라우드 개발자 교육 8주차(클라우드 네트워크) (0) | 2025.09.24 |
|---|---|
| [스나이퍼팩토리] 카카오클라우드 - 클라우드 개발자 교육 8주차(파일서비스- FTP/NFS/Samba 서비스) (0) | 2025.09.24 |
| [스나이퍼팩토리] 카카오클라우드 - 클라우드 개발자 교육 8주차(클라우드를 위한 리눅스 - DNS/Nginx) (0) | 2025.09.24 |
| [스나이퍼팩토리] 카카오클라우드 - 클라우드 개발자 교육 7주차(입출력, 텍스트 처리) (0) | 2025.09.18 |
| [스나이퍼팩토리] 카카오클라우드 - 클라우드 개발자 교육 7주차(리눅스 기본) (0) | 2025.09.18 |