혜잉이의 소소한 공간

[AWS#4] VPC 구성 본문

Cloud/AWS

[AWS#4] VPC 구성

kimhyeing 2025. 1. 15. 10:51

① VPC 다이어그램 제작

② VPC 생성

③ 인터넷 게이트웨이 생성 및 VPC 연결

④ 퍼블릭 서브넷 생성

⑤ 퍼블릭 라우팅 테이블 생성(퍼블릭 서브넷 연결 및 인터넷 게이트웨이 기본 경로 등록)

⑥ 퍼블릭 보안 그룹 생성

⑦ 퍼블릭 서브넷 EC2 인스턴스 생성

⑧ 퍼블릭 EC2 인스턴스 접속 및 통신 테스트

⑨ NAT 게이트웨이 생성

⑩ 프라이빗 서브넷 생성

⑪ 프라이빗 라우팅 테이블 생성(프라이빗 서브넷 연결 및 NAT 게이트웨이 기본 경로 등록)

⑫ 프라이빗 보안 그룹 생성

⑬ 프라이빗 서브넷 EC2 인스턴스 생성

⑭ 프라이빗 EC2 인스턴스 접속 및 통신 테스트

⑮ EC2 인스턴스 메타데이터 확인

 

 

 

  • 이름 정의

MyVPC01

MyIGW

MyPublicSubnet

MyPublicRouting

MyPublicSecugroup

MyWeb1

MyNatGW

MyPrivateSubnet

MyPrivateRouting

MyPrivateSecugroup

Myweb11

 

 

 

1. VPC 생성

(사설 IP 대역으로 할당, 나중에 AWS 에서 할당해주는 공인 IP 대역과 충돌나면 안되므로.)

 

10.0.0.0/8 - 10.x.x.x

10.0.0.0/16 - 10.0.x.x

10.0.0.0/32 - 10.0.0.x

 

 

 

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

→ VPC에서 사용할 수 있도록 IGW 를 붙여줘야함.

 

 

 

3. VPC <> IGW 연결

→ 인터넷 게이트웨이 <> MyVPC까지 연동 완료.

 

 

4. 퍼블릭 서브넷 생성

(외부에서 접근 가능, 인터넷 가능, 주로 외부에 공개가 되는 서버가 사용)

 

==================================================================

* 사설 IP 대역 

(인터넷이 되지 않는 내부에서 사용하는 주소)

10.0.0.0 ~ 10.255.255.255

172.16.0.0 ~ 172.31.255.255

192.168.0.0 ~ 192.168.255.255

NAT 를 통해서 인터넷과 통신 (사설 IP 를 공인 IP 로 변경)

==================================================================

 

 

→ MyVPC01 VPC에 해당 서브넷을 생성

 

 

 

→ 공인 IP 가 할당되야하므로 꼭 체크, 공인 IP가 할당되지 않으면 외부에서 접근이 불가능하므로

 

 

 

5. 퍼블릭 라우팅 테이블 생성

→ 퍼블릭 서브넷에서 사용하도록 연결해줘야함.

 

→ 해당 라우팅 테이블을 해당 서브넷에 연결했다라는 내용을 확인할 수 있음.

 

모든 라우팅을 인터넷 게이트웨이로 보내겠다 라는 의미.

 

→ 즉, 해당 서브넷으로 트래픽이 들어오고 목적지가 전체라면 인터넷 게이트웨이로 보낸다라는 말.

 

 

 

6. 퍼블릭 서브넷 보안그룹 생성

→ 출발지가 뭐든간에 해당 포트로의 접근을 허용하겠다라는 의미.

 

태그는 넣든 안넣든 상관 없음, 필수사항은 아님.

 

 

7. 퍼블릭 서브넷 EC2 인스턴스 생성

 

 

 

 

8. 퍼블릭 EC2 인스턴스 접속 및 통신 테스트

(SSH 를 이용하여 접근, 보안그룹 인바운드 규칙에서 SSH를 오픈하였기 때문에 통신이 가능한 것)

→ 관리하려면 SSH 포트 오픈은 필수 !

 

# EC2 인스턴스에 연결

  • 루트 권한으로 변경

[ec2-user@MyWeb1 ~]$ sudo -s

[root@MyWeb1 ec2-user]#

 

  • 접속자 확인

[root@MyWeb1 ec2-user]# w

08:22:46 up 10 min, 2 users, load average: 0.01, 0.08, 0.09 USER TTY LOGIN@ IDLE JCPU PCPU WHAT ec2-user pts/0 08:21 1:08 0.02s 0.02s sshd: ec2-user [priv] ec2-user pts/1 08:21 0.00s 0.00s 0.01s sudo -s

 

  • 접속 시 보여줄 화면 출력

[root@MyWeb1 ec2-user]# cat /var/www/html/index.html

<h1><p style=color:red>MyWeb1 test web page</p></h1>

 

  • IP 주소 확인 
    (사설 IP 밖에 안보임)

 

 

  • Putty 접속

 

 

 

9. NAT 게이트웨이 생성

* 탄력적 IP 주소 : 공인 IP 가 할당되면 유동적으로 변경될 수도 있는데, 한번 받은 공인 IP는 변경없이 그대로 사용하겠다라는 의미
즉, NAT 게이트웨이를 삭제해도 할당 받은 IP를 그대로 사용 가능 (재사용 가능)

 

 

 

 

10. 프라이빗 서브넷 생성

 

 

11. 프라이빗 라우팅 테이블 생성
(프라이빗 서브넷 연결 및 NAT 게이트웨이 기본 경로 등록)

 

즉, 목적지가 뭐가 되든 간에 NAT 게이트웨이로 트래픽을 보내겠다라는 말.

 

12. 프라이빗 보안 그룹 생성

 

 

 

13. 프라이빗 서브넷 EC2 인스턴스 생성

 

#!/bin/bash
hostnamectl --static set-hostname MyWeb11
echo "toor1234." | passwd --stdin root 
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
sed -i 's/^#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
systemctl restart sshd
yum install -y httpd
echo "<h1><p style="color:blue">MyWeb11 test web page</p></h1>"  > /var/www/html/index.html
systemctl enable --now httpd.service 

 

14. 프라이빗 EC2 인스턴스 접속 및 통신 테스트

프라이빗 서브넷이더라도 퍼블릭 서브넷에서 ping test 가능


[ec2-user@MyWeb1 ~]$ curl http://10.0.100.41
<h1><p style=color:blue>MyWeb11 test web page</p></h1>

 

  •  퍼블릭 인스턴스에서 ping, ssh, http 접속 가능
    - 같은 VPC 환경이여도 보안그룹에서 허용하지 않았다고 한다면 접속 불가능.
      보안그룹을 open 해놨기 때문에 가능한 것임을 명심할 것,
      (EC2 인스턴스에서 이용하는 방화벽)
  • 인스턴스에 연결 눌렀을 경우 접속 불가능.
    - 공인 IP 가 없으므로 접속 불가능. 접속하려면 직렬 콘솔을 통해 다이렉트로는 연결 가능

 

  • http 상태 확인 

[root@MyWeb11 ~]# systemctl status httpd
��� httpd.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; preset: di>
     Active: active (running) since Sat 2025-01-18 02:53:47 UTC; 11min ago
       Docs: man:httpd.service(8)
   Main PID: 3192 (httpd)
     Status: "Total requests: 1; Idle/Busy workers 100/0;Requests/sec: 0.00147;>
      Tasks: 177 (limit: 1058)
     Memory: 13.5M
        CPU: 840ms
     CGroup: /system.slice/httpd.service
             ├─3192 /usr/sbin/httpd -DFOREGROUND
             ├─3231 /usr/sbin/httpd -DFOREGROUND
             ├─3236 /usr/sbin/httpd -DFOREGROUND
             ├─3242 /usr/sbin/httpd -DFOREGROUND
             └─3265 /usr/sbin/httpd -DFOREGROUND

Jan 18 02:53:47 MyWeb11 systemd[1]: Starting httpd.service - The Apache HTTP Se>
Jan 18 02:53:47 MyWeb11 httpd[3192]: AH00558: httpd: Could not reliably determi>
Jan 18 02:53:47 MyWeb11 systemd[1]: Started httpd.service - The Apache HTTP Ser>
Jan 18 02:53:47 MyWeb11 httpd[3192]: Server configured, listening on: port 80

 

15. EC2 인스턴스 메타데이터 확인

 

[ec2-user@MyWeb1 ~]$ sudo su
[root@MyWeb1 ec2-user]# curl http://169.254.169.254/latest/meta-data
ami-id
ami-launch-index
ami-manifest-path
block-device-mapping/
events/
hostname
identity-credentials/
instance-action
instance-id
instance-life-cycle
instance-type
local-hostname
local-ipv4
mac
managed-ssh-keys/
metrics/
network/
placement/
profile
public-hostname
public-ipv4
public-keys/
reservation-id
security-groups
services/


system[root@MyWeb1 ec2-user]# 

 

16. RDP 연결 (원격 데스크톱 연결)

  • 퍼블릭 보안그룹 수정

 

 

  • 키페어 생성

 

 

  • EC2 생성

 

 

  • RDS 암호 다운로드

 

 

 

  • 로그인

 

 

 

 

 

 

 

 

====================================================

* 삭제할 때는 의존성 관계 적용

 

A  

              B 

                         C

====================================================

 

 

 

 

'Cloud > AWS' 카테고리의 다른 글

[AWS#6] Lambda  (1) 2025.01.18
[AWS#5] RDS 구성  (1) 2025.01.18
[AWS#3] S3 서비스  (0) 2025.01.15
[AWS#2] 계정 생성 및 MFA 인증  (0) 2025.01.15
[AWS#1] 클라우드 개요  (0) 2025.01.15