3 Tier Architecture 구축(1) - VPC, OpenVPN, COMPUTE

안상운·2025년 3월 9일
post-thumbnail

1. VPC

  • 추가 자원 생성
    Internet Gateway
    NAT Gateway

  • 라우팅 테이블 생성
    RT-Public Subnet (PublicSubnet - A/Czone 연결, 0.0.0.0/0 IGW 연결)
    RT-NAT Subnet-Azone (NatSubnet-Azone 연결 , 0.0.0.0/0 NATGW Azone )
    RT-NAT Subnet-Czone (NatSubnet-Czone 연결 , 0.0.0.0/0 NATGW Czone )
    RT-Private Subnet

1. vpc 생성.

  • VPC CIDR
    VPC 192.168.0.0/16

2. 서브넷 생성

  • Azone
    Public Subnet 192.168.10.0/24
    Nat Subnet 192.168.110.0/24
    Private Subnet 192.168.210.0/24

참고로 서울리전의 b가용영역에서 t2.micro요금제를 쓸수가 없기때문에 c가용영역에 만드는걸 추천...!
전 나중에 알게되서 다시 만들었습니다.

  • Bzone
    Public Subnet 192.168.20.0/24
    Nat Subnet 192.168.120.0/24
    Private Subnet 192.168.220.0/24

3. 인터넷 게이트웨이 생성.

  • IGW-evan

4. NAT 게이트웨이 생성.


5. routing

라우팅 편집 -> 그림처럼 연결

2. OpenVPN

1. 인스턴스 생성.

OpenVPN Access Server 선택ㅍ-> 인스턴스 시작시 구독.


EC2에서 OpenVPN이란?
OpenVPN은 오픈 소스 기반의 VPN (Virtual Private Network) 소프트웨어로, 안전한 네트워크 연결을 제공하는 데 사용.
EC2에서 OpenVPN을 설정하면 AWS 내부 네트워크와 외부 사용자 간의 안전한 터널을 구축할 수 있음.

2. openvpn 설정


숫자 -1, yes, 패스워드 입력외에는 모두 enter

  • 로그인(초기 아이디 = openvpn)

  • openvpn client 다운

  • openvpn profile 다운
  • OpenVPN Connect 앱의 인터페이스

현재 VPN이 정상적으로 연결된 상태...!

  • OpenVPN을 통해 특정 VPN 서버(예: 13.125.77.9)에 연결된 상태.
  • CONNECTED 상태로 표시되며, 정상적으로 VPN을 사용할 수 있습니다.
  • 현재 2.5KB/s의 속도로 데이터를 송수신 중.
  • BYTES IN (다운로드), BYTES OUT (업로드) 등의 네트워크 활동 정보를 확인 가능.

3. Import Profile

"Import Profile"이란?
"Import Profile"은 OpenVPN 서버에 연결하기 위한 설정 파일 (.ovpn 파일)을 불러오는 과정.

🔹 VPN 프로파일 (Profile)
OpenVPN 서버에 접속하려면, 서버의 설정이 담긴 프로파일 파일 (.ovpn)이 필요합니다.
이 파일에는 VPN 서버 주소, 인증 정보, 암호화 설정 등이 포함됨.



  • 현재 OpenVPN을 통해 AWS VPC 내부에 있는 172.31.11.167에 정상적으로 접근할 수 있는 상태.

  • 내부 서버, 데이터베이스, 또는 프라이빗 네트워크 리소스를 사용할 수 있음.

  • 만약 VPN 없이 ping 172.31.11.167을 실행하면 응답이 오지 않을 가능성이 큼 (왜냐하면 172.31.x.x는 AWS 내부 사설 IP이기 때문).

즉, OpenVPN을 사용하여 AWS 내부 네트워크의 자원에 접근할 수 있는지 확인하는 과정이었고, 현재는 VPN을 통해 내부 네트워크가 정상적으로 연결됨. 🚀

OpenVPN을 사용하면 EC2의 퍼블릭 IP가 변해도 VPN을 통해 AWS 내부 사설 IP(172.31.x.x)로 계속 접속할 수 있음

3. COMPUTE

1. 인스턴스 생성.

a영역과 c영역에 각각 ec2를 생성.

  • 보안그룹 생성.
    두개의 ec2에 규칙은 동일하지만 서로 다른 보안 그룹을 사용
    👉 같은 보안 그룹을 쓰지 않고, 규칙만 동일하게 설정한 별도의 보안 그룹을 각각 설정하는 것이 더 좋은 전략 -> 보안 강화, 확장성 확보, 관리 용이성 때문.

2. 대상 그룹 생성.

빨간 네모로 표시된 EC2 인스턴스(EC2 Nginx Service2 & EC2 Nginx Server2)를 대상 그룹(Target Group)으로 설정 -> 로드 밸런싱과 가용성 향상 때문.

3. 로드밸런스 생성.

웹 애플리케이션 / API 서버 → ALB
고성능 / 낮은 지연시간이 중요한 서비스 (게임, 금융, IoT, 마이크로서비스 통신 등) → NLB
고정 IP가 필요한 경우 → NLB
URL 기반으로 라우팅해야 하는 경우 → ALB
👉 "웹 서비스면 ALB, 초고속 트래픽 처리면 NLB!" 🚀

  • 로드밸런서 생성 완료.

0개의 댓글