JSCODE Logo
JSCODE 박재성JSCODE 제이온JSCODE 시니
온라인 강의프로그래밍 과외책/전자책무료 강의
유튜브블로그
후기
완강 후기 이벤트블로그 리뷰 이벤트AWS SAA 합격 후기 이벤트
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2026 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침

비전공자도 이해할 수 있는 AWS 중급/실전 (보안 가용성편)

서비스 운영에 필수적인 네트워크 구성 방법 (VPC)

목표 설정
VPC란? / VPC를 왜 쓰는 걸까?
CIDR이란? / CIDR 표기법 해석 방법
[예제] CIDR 표기법 해석하기
사설 IP(프라이빗 IP) vs 공인 IP(퍼블릭 IP)
[실습] 사설 IP(프라이빗 IP)로 통신해보기
[실습] VPC 생성하기
서브넷이란 ?
[실습] 서브넷 생성하기
[실습] 퍼블릭 서브넷에 EC2 배치해보기
인터넷 게이트웨이란?
[실습] 인터넷 게이트웨이 생성하기
라우팅 테이블이란?
[실습] 라우팅 테이블 생성하기
AWS 아키텍처 그림으로 표현해보기
[복습] 퍼블릭 서브넷에 EC2 배치하기

외부 접근을 차단해 보안 강화시키기 (프라이빗 서브넷)

NAT 게이트웨이란 ?
[실습] NAT 게이트웨이 생성하기
[실습] 프라이빗 서브넷에 EC2 배치해서 외부 접근 차단하기
[실습] 프라이빗 서브넷의 EC2에 접속하는 방법
Bastion Host란?
[실습] 퍼블릭 서브넷에 Bastion Host 배치하기

서비스 장애 예방하기 (고가용성, 시스템 이중화)

가용성이란 ? / 시스템 이중화란 ?
가용 영역이란 ?
[실습] 가용 영역 2개를 활용해 VPC 구성하기
[실습] 새로운 가용 영역에 EC2 배치하기
[실습] 프라이빗 서브넷에 RDS 인스턴스 추가하기
[실습] 프라이빗 서브넷에 있는 RDS에 접속하는 방법
[실습] EC2 인스턴스에 Spring Boot 프로젝트 배포하기
[실습] ELB 추가하기
RDS의 다중 AZ 배포란?
[실습] RDS에 다중 AZ 배포 설정으로 장애 대비하기

접근 범위를 제한해서 보안 강화시키기 (보안 그룹)

최소 권한의 원칙(PoLP)이란?
보안 그룹이란?
[실습] 로드 밸런서(ALB)의 보안 그룹 수정하기
[보충 강의] 보안 그룹에 포함되지 않은 주체가 요청을 보내면 어떻게 작동할까?
[실습] EC2(Bastion Host)의 보안 그룹 수정하기
[실습] EC2(백엔드 서버)의 보안 그룹 수정하기
[실습] RDS(데이터베이스 서버)의 보안 그룹 수정하기

현업에서 자주 사용하는 AWS 인프라 아키텍처 직접 구축하기

[최종 미션] 현업에서 자주 사용하는 AWS 인프라 아키텍처 직접 구축해보기
[해설 강의] VPC 구성하기
[해설 강의] Bastion Host 배치하기
[해설 강의] RDS 배치하기
[해설 강의] 백엔드 서버 배치하기
[해설 강의] ALB 배치하기
[해설 강의] 보안 그룹 타이트하게 수정하기 (Bastion Host, ELB, 백엔드 서버, RDS)
← 블로그 목록으로 돌아가기

[실습] 사설 IP(프라이빗 IP)로 통신해보기

JSCODE 박재성
JSCODE 박재성
2026. 03. 14.
author
JSCODE 박재성
category
AWS
createdAt
Dec 6, 2025 03:49 AM
isPublic
isPublic
series
비전공자도 이해할 수 있는 AWS 중급/실전 (보안 가용성편)
slug
exercise-communicate-with-private-ip
type
post
updatedAt
Mar 14, 2026 09:00

✅ [실습] 사설 IP(프라이빗 IP)로 통신해보기

  1. EC2 인스턴스 생성
    1. notion image
      notion image
      notion image
       
  1. EC2 인스턴스에 접속하기
    1. notion image
      notion image
       
  1. 웹 서버(Nginx) 설치하기
    1. $ sudo apt update # apt 패키지 리스트 최신화 $ sudo apt install nginx -y # nginx 설치 $ sudo systemctl start nginx # nginx 시작 $ sudo systemctl status nginx # nginx 상태 확인
       
  1. 웹 서버가 잘 실행되고 있는 지 접속해보기
    1. notion image
      EC2 인스턴스의 Public IP로 요청을 보내보자.
       
      notion image
      정상적으로 접속되는 걸 확인할 수 있다. curl 명령어를 활용해서도 보내보자.
       
      notion image
      정상적으로 응답을 잘한다.
       
      notion image
      이번에는 EC2의 Private IP로 요청을 보내보자.
       
      notion image
      요청에 대한 정상적인 응답이 오지 않는다.
       
      이전 강의에서 Private IP(사설 IP)는 동일한 네트워크 환경에서만 통신할 수 있는 주소라고 얘기했다. 하지만 노트북에서 접속하는 네트워크 환경(KT 공유기)과 EC2 인스턴스의 네트워크 환경(AWS의 VPC)이 서로 다르기 때문에 접속이 안 된 것이다.
 
 

✅ 동일한 네트워크 환경에 EC2 인스턴스 추가하기

  1. 기존 EC2 인스턴스의 VPC 확인
    1. 동일한 네트워크 환경에 EC2 인스턴스를 추가하기 위해, Nginx가 설치된 EC2 인스턴스의 VPC를 확인하자.
      notion image
       
  1. 새로운 EC2 인스턴스 생성
    1. 이전에 생성했던 EC2 인스턴스와 옵션은 동일하게 EC2 인스턴스를 생성하면 된다.
      다만, 동일한 VPC 환경에서 구성해야 하기 때문에 이 부분만 체크를 해보자.
      notion image
      notion image
      동일한 VPC임을 확인했다면 인스턴스를 시작하자.
       
  1. 새로운 EC2 인스턴스에 접속해서 기존 인스턴스에 요청 보내보기
    1. notion image
      Public IP로 요청했을 때 정상적으로 응답하는 걸 알 수 있다. 이번에는 Private IP로 요청을 보내보자.
       
      notion image
      Private IP로 요청을 보냈음에도 불구하고 정상적으로 응답이 잘 왔다. 즉, 성공적으로 통신을 한 것이다. 성공적으로 통신을 할 수 있었던 이유는 2개의 EC2 인스턴스가 동일한 네트워크 환경에 놓여있었기 때문이다.
       
 

✅ 사설 IP란?

👨🏻‍🏫
자, 사설 IP의 의미가 뭔지 다시 한 번 정리하고 넘어가자.
사설 IP란 외부 인터넷과 직접 연결되지 않고, 내부 네트워크에서만 사용되는 주소이다. 다른 말로 프라이빗 IP라고도 얘기한다.
 
그리고 사설 IP는 ‘동일한 네트워크 환경’에서만 서로 통신할 수 있다. 여기서 얘기하는 ‘동일한 네트워크 환경’이라 함은 크게 2가지 의미로 이해하면 충분하다.
  • 같은 공유기(와이파이)를 사용하고 있는 경우
  • 같은 VPC인 경우
 
 

✅ 비용 절감을 위해 EC2 인스턴스 삭제

notion image
 
📎
이 글은 비전공자도 이해할 수 있는 AWS 중급/실전 (보안, 가용성편) 강의의 수업 자료 중 일부입니다.