실습 목표
1. 사용자 지정 VPC만든다(10.0.0.0/16)
2. VPC내부에 Public 서브넷(10.0.0.0/24)과 Private 서브넷(10.0.1.0./24)을 만든다
3. VPC를 구성하고 직접적으로 Private 서브넷에 접근할 수 없기때문에 Public 서브넷에서 ssh접속을 할것이다.
- public 서브넷
인터넷 게이트웨이가 있어, 인터넷이 공인ip를 통해 접근할 수 있고 자유롭게 통신 가능하다.
private 서브넷
인터넷 게이트웨이와 공인ip가 없어, NAT게이트웨이를 통해 인터넷으로 패킷을 보냈다 돌아올 순 있지만 인터넷에서 서브넷으로 직접적으로 인바운드하진 못한다.
인터넷은 Private 서브넷의 존재를 모르기 때문에 보안성을 보장한다. 회사 중요 정보를 저장.
VPC 구성
1. VPC 생
서비스 > VPC
오른쪽 위에 VPC 생성 클릭
VPC IP는 10.0.0.0/16을 사용할 것이다.
위의 그림처럼 PUBLIC 서브넷을 만들것이다.
* 그림에서 라우팅 테이블 172.16.0.0..... 이부분은 잘못넣은것이기 때문에 무시
2. PUBLIC 서브넷 생성
VPC > 서브넷
PUBLIC 서브넷 생성해서 IP는 10.0.0.0/24 넣기 (사진생략 ㅋㅋ)
PRIVATE 서브넷도 생성하셈 IP는 10.0.1.0/24
3. 인터넷 게이트웨이
VPC > 인터넷 게이트웨이
PUBLIC 서브넷의 인터넷 통신을 위한 인터넷 게이트웨이를 생성해야한다.
초록창으로 뜬 VPC 연결 클릭
- NAT 게이트웨이
NAT(네트워크 주소 변환) 게이트웨이를 사용하면 프라이빗 서브넷의 스트리밍 인스턴스가 인터넷 또는 다른 AWS 서비스에 연결할 수 있지만 인터넷에서 해당 인스턴스와의 연결을 시작하지 못하도록 할 수 있습니다.
인터넷 게이트웨이
인터넷 게이트웨이는 수평 확장되고 가용성이 높은 중복 VPC 구성 요소로, VPC와 인터넷 간에 통신할 수 있게 해줍니다.
아까 만든 Cloud-VPC에 인터넷 게이트웨이를 연결하자
4. 라우팅 테이블 생성
VPC > 라우팅 테이블
이제 라우팅 테이블에 가서 서브넷이 2개이므로 2개의 테이블을 만들어야한다.
(하지만 아직 PRIVATE 서브넷을 안만들었으니까 하나는 나중에 만들도록 하겠다)
먼저 PUBLIC 서브넷이 사용할 라우팅 테이블을 생성
그다음 아래에 보이는 1. 서브넷 연결 2. 라우팅 설정을 해야한다.
위에서 만들었던 PUBLIC 서브넷 넣는다
라우팅 테이블에 인터넷 게이트웨이를 추가해준다(추가 안하면 인터넷 안됨)
5. PUBLIC 서브넷에 EC2 인스턴스 생성
서비스 > EC2 > 인스턴스
PUBLIC 서브넷에 넣어줄 인스턴스를 생성하자
네트워크는 위에서 생성한 VPC를 넣어준다
서브넷은 PUBLIC 서브넷
퍼블릭 IP는 활성화
※ SSH 키를 사용할 때에는 .ppk 파일 사용
HTTP하고 싶으면 보안그룹에서 HTTP 설정도 해주셈
※ 보안그룹과 네트워크ACL
보안그룹
- 인스턴스 레벨에서의 보안 기술
- 규칙은 상태 저장(stateful) 이다.
(나가는 것이 허용되면 나갔다 다시 들어오는 것 허용, 들어오는 것이 허용되면 들어갔다 다시 나가는 것 허용)
- 기본 설정은 모든 인바운드 트래픽 차단, 모든 아웃바운드 트래픽 허용 이다. -> 인바운드 규칙 Allow으로 추가
네트워크ACL
- 서브넷 레벨에서의 보안 기술
- 상태 비저장(stateless)이므로 인바운드 및 아웃바운드 트래픽 모두에 대한 명시적인 규칙이 필요
- 기본적으로 모든 인바운드 및 아웃바운드 트래픽을 허용 하기 때문에 Deny 기능 사용할 때 사용, 그외엔 주로 보안그룹을 사용한다.
VPC에 PUBLIC 서브넷 생성까지 완료했으니 위의 그림과같이 PRIVATE 서브넷 만들고 NAT 게이트웨이 연결해야겠다
* 그림에서 라우팅 테이블 172.16.0.0..... 이부분은 잘못넣은것이기 때문에 무시
6. NAT 게이트웨이 생성
VPC > NAT 게이트웨이
NAT 게이트웨이는 PUBLIC 서브넷에 생성해야한다.
PRIVATE 서브넷은 직접적으로 인터넷 통신이 안되는 네트워크이기 때문
7. 라우팅 테이블 생성
PRIVATE 서브넷을 위한 라우팅 테이블 생성
위에서 생성한 NAT 게이트웨이 넣어준다
-> 이로써 PUBLIC 서브넷에 있는 인터넷 게이트웨이를 통해 인터넷이 가능해졌다!
PRIVATE 서브넷 넣어준다
8. PRIVATE 서브넷에 EC2 인스턴스 생성
EC2 > 인스턴스
네트워크는 우리가 생성한 VPC
서브넷은 PRIVATE
퍼블릭 IP는 비활성화!! 이제 공인 IP가 없기 때문에 외부 인터넷 -> PRIVATE 서브넷으로 통신을 할 수 없다.
※ SSH 키를 사용할 때에는 .pem 파일 사용
Putty 실행
외부에서 private로 들어갈 수 있는 방법은 없다 public으로 들어간다음 private에 ssh 접속을 한다.
ec2 인스턴스는 패스워드 로그인을 막아놓아서 전자서명방법만 사용 가능 즉, 전자서명키 파일을 public에 넣어서 인증해야한다.
ssh로 private에 접속해서 ping 테스트 해보자(ping 테스트가 성공하면 private에 게이트웨이가 없지만 public에 위치한 NAT 게이트웨이를 통해 인터넷이 가능한 것임)
public subnet
퍼블릭 IPv4 주소 3.36.122.92
프라이빗 IPv4 주소 10.0.0.153
private subnet
프라이빗 IPv4 주소 10.0.1.121
putty .ppk파일로 인증하여 3.36.122.92 으로 접속
[ec2-user@ip-10-0-0-153 ~]$ vi JENA.pem
private 서브넷(리눅스)에 접속하려면 .pem파일이 있어야 하므로 public 홈디렉터리에 위에서 만든 전자서명 .pem파일 내용을 복붙해서 넣는다.
[ec2-user@ip-10-0-0-153 ~]$ chmod 400 JENA.pem
[ec2-user@ip-10-0-0-153 ~]$ ssh -i "JENA.pem" ec2-user@10.0.1.121
i옵션: 공개 키 인증을 위한 ID(개인키)가 읽히는 파일을 선택한다.
private 서브넷에서 ping 테스트 완료!
인터넷이 잘 터지는 구나~
'Cloud > AWS' 카테고리의 다른 글
[AWS] Route53 프라이빗 호스팅 영역 실습 (0) | 2021.05.05 |
---|---|
[AWS] 실습 AWS와 온프레미스간 VPN 통신 (0) | 2021.05.05 |
[ubuntu] AWS CLI 설치 및 EC2 생성 ssh접속 (0) | 2021.05.05 |
[AWS] 외부 무료 도메인 Route53 등록 방법, 장애 조치 라우팅 설정 방법 (2) | 2021.05.03 |
[AWS] EC2 사용해서 아파치 웹서버 만들기 (0) | 2021.04.30 |