Home
home

2장 실습 - Amazon VPC로 프라이빗 서브넷 구성

1. 프라이빗 용도의 서브넷 구성

이전 실습에서 생성한 사용자 VPC에 프라이빗 용도의 서브넷 환경을 구성합니다.
이전 실습의 자원을 삭제한 상태라면, 다시 자원을 배포 후 돌아와 주세요.
신규 서브넷 생성
VPC 서비스 서브넷 (메뉴 진입) → 서브넷 생성 (버튼 클릭)
VPC ID: MY-VPC (선택)
서브넷 이름: PRIVATE-SUBNET (입력)
가용 영역: 아시아 태평양 (서울) / ap-northeast-2c (선택)
IPv4 서브넷 CIDR 블록: 10.2.2.0/24 (입력)
서브넷 생성 (버튼 클릭)
사용자 라우팅 테이블 생성
라우팅 테이블 (메뉴 진입) → 라우팅 테이블 생성 (버튼 클릭)
이름: Private-RT (입력)
VPC: MY-VPC (선택)
라우팅 테이블 생성 (버튼 클릭)
라우팅 테이블 - 서브넷 연결
서브넷 연결 (탭 클릭)
명시적 서브넷 연결서브넷 연결 편집 (버튼 클릭)
이용 가능한 서브넷: PRIVATE-SUBNET (선택)
연결 저장 (버튼 클릭)
NAT 게이트웨이 생성 및 연결
NAT 게이트웨이 (메뉴 진입) → NAT 게이트웨이 생성 (버튼 클릭)
이름: MY-NAT (입력)
서브넷: PUBLIC-SUBNET (선택)
연결 유형: 퍼블릭 (선택)
탄력적 IP 할당 (버튼 클릭)
NAT 게이트웨이 생성 (버튼 클릭)
라우팅 경로 추가
라우팅 테이블 (메뉴 진입) → 대상 라우팅 테이블 (선택)
라우팅 (탭 진입) → 라우팅 편집 (버튼 클릭)
라우팅 추가 (버튼 클릭)
대상: 0.0.0.0/0 (선택)
대상: NAT 게이트웨이 (선택) → MY-NAT (선택)
변경 사항 저장 (버튼 클릭)
VPC 리소스 맵 확인
VPC (메뉴 진입) → 대상 VPC (선택)
리소스 맵 (탭 선택)

2. EC2 인스턴스 생성

생성한 프라이빗 용도의 서브넷에 EC2 인스턴스를 생성합니다.
이번 실습은 CloudFormation을 통해 EC2 인스턴스와 보안 그룹을 생성합니다.
CloudFormation 템플릿 다운로드
아래 CloudFormation 템플릿 파일을 다운로드합니다.
CH2_LAB2.yaml
2.1 KB
Parameters: KeyName: Description: Name of an existing EC2 KeyPair to enable SSH access to the instances. Linked to AWS Parameter Type: AWS::EC2::KeyPair::KeyName ConstraintDescription: must be the name of an existing EC2 KeyPair. InstanceType: Description: Enter t2.nano, t2.micro Default is t2.micro. Type: String Default: t2.micro AllowedValues: - t2.nano - t2.micro LatestAmiId: Description: (DO NOT CHANGE) Type: 'AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>' Default: '/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64' AllowedValues: - /aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64 VpcId: Type: AWS::EC2::VPC::Id Description: Select the ID of MY-VPC. SubnetId: Type: AWS::EC2::Subnet::Id Description: Select the ID of PRIVATE-SUBNET. Resources: MyInstance: Type: AWS::EC2::Instance Properties: ImageId: !Ref LatestAmiId InstanceType: !Ref InstanceType SubnetId: !Ref SubnetId KeyName: !Ref KeyName Tags: - Key: Name Value: PRIVATE-EC2 SecurityGroupIds: - !Ref MySG UserData: Fn::Base64: !Sub | #!/bin/bash echo "root:qwe123" | chpasswd sed -i 's/^PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config sed -i 's/^#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config systemctl restart sshd dnf install httpd -y systemctl start httpd && systemctl enable httpd echo "<h1>[인프런] AWS Networking - 2장 실습 프라이빗 웹 서버</h1>" > /var/www/html/index.html MySG: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: Enable HTTP access via port 80 and SSH access via port 22 VpcId: !Ref VpcId SecurityGroupIngress: - IpProtocol: tcp FromPort: 80 ToPort: 80 CidrIp: 0.0.0.0/0 - IpProtocol: tcp FromPort: 22 ToPort: 22 CidrIp: 0.0.0.0/0
YAML
복사
# CH2_LAB2.yaml 파일 내용
CloudFormation 스택 생성 설정
CloudFormation 서비스 → 스택 (메뉴 진입) → 스택 생성 (버튼 클릭)
1단계 - 스택 생성
템플릿 준비: 기존 템플릿 선택 (선택)
템플릿 소스: 템플릿 파일 업로드 (선택)
파일 선택 → 템플릿 파일 선택 (CH2_LAB2.yaml) → 열기
다음 (버튼 클릭)
2단계 - 스택 세부 정보 지정
스택 이름: Private-EC2
InstanceType: t2.micro or t2.nanp
KeyName: 각자 생성한 키 페어 선택
SubnetId: PRIVATE-SUBNET (선택)
VpcId: MY-VPC (선택)
다음 (버튼 클릭)
3단계 - 스택 옵션 구성
기본 값 유지
다음 (버튼 클릭)
4단계 - 검토 및 작성
설정된 정보 확인
전송 (버튼 클릭)
EC2 인스턴스 생성 확인
EC2 서비스 → 인스턴스 (메뉴 진입)
대상 인스턴스 확인
다음 단계를 진행하기 위해 세부 정보프라이빗 IPv4 주소를 확인하고 복사해 둡니다.

3. 통신 검증

통신 검증은 두 가지 방향으로 진행합니다.
1.
외부 인터넷 → 인스턴스(프라이빗 서브넷)
2.
인스턴스(프라이빗 서브넷) → 외부 인터넷
인터넷 구간에서 인스턴스로 통신
외부 인터넷 구간에서 프라이빗 서브넷에 위치한 인스턴스로 직접 통신이 불가합니다.
퍼블릭 서브넷에 위치한 인스턴스(Bastion Host)로 진입 후 로컬 통신을 수행합니다.
퍼블릭 서브넷의 인스턴스로 SSH 접근 후 진행
curl [프라이빗 IP 주소] 예시) curl 10.2.2.150
Bash
복사
# 프라이빗 서브넷에 위치한 인스턴스로 curl 확인
ssh root@[프라이빗 IP 주소] 예시) ssh root@10.2.2.150
Bash
복사
# 프라이빗 서브넷에 위치한 인스턴스에 ssh 접근 (계정: root / 암호: qwe123)
인스턴스에서 인터넷 구간으로 통신
curl wttr.in/seoul
Bash
복사
# curl 명령으로 서울 날씨 확인
ping -c 3 8.8.8.8
Bash
복사
# 구글 dns 주소로 ping 테스트 (3회)

4. 생성 자원 삭제

이전 실습과 이번 실습에 생성한 모든 자원을 삭제합니다.
PUBLIC-EC2 인스턴스 삭제
서비스 → EC2 서비스 → 인스턴스 (메뉴 진입)
PUBLIC-EC2 (체크)
인스턴스 상태 (토글 확장)
인스턴스 종료 (클릭)
종료(삭제) (버튼 클릭)
PRIVATE-EC2 인스턴스 삭제
서비스 → CloudFormation 서비스 → 스택 (메뉴 진입)
대상 스택 (선택)
우측 상단 - 삭제 (버튼 클릭)
약 1분 내외 시간 소요
NAT 게이트웨이 삭제
서비스 → VPC 서비스 → NAT 게이트웨이 (메뉴 진입)
MY-NAT (선택)
작업 (토글 확장)
NAT 게이트웨이 삭제 (버튼 클릭)
삭제 (입력)
탄력적 IP 삭제
서비스 → VPC 서비스 → 탄력적 IP (메뉴 진입)
탄력적 IP (선택)
작업 (토글 확장)
탄력적 IP 주소 릴리스 (버튼 클릭)
삭제 (입력)
VPC 삭제
서비스 → VPC 서비스 → VPC (메뉴 진입)
MY-VPC (선택)
작업 (토글 확장)
VPC 삭제 (버튼 클릭)
삭제 (입력)
여기까지 2장 - Amazon VPC로 프라이빗 서브넷 구성 실습을 마칩니다.
수고하셨습니다 :)