323. NAT 인스턴스

NAT Instance

  • NAT= Network Address Translation
  • 사설 서브넷의 EC2 인스턴스가 인터넷에 연결되게 한다. ( 배스천 서버랑 비슷한 듯 다르다.) 
  • 공용 서브넷에 NAT 을 설치해야한다. 
  • EC2 설정에서 : Source / destination Check 옵션을 비활성화 해야한다.
  • EIP 가 부착되어야한다.
  • 라우팅 테이블에 사설 서브넷이 NAT 인스턴스로 연결되도록 구성해야한다. 

사설 서브넷의 ec2가 외부의 server 와 통신할려면 .공용 서브넷의 NAT 인스턴스에 연결하고 여기서 라우팅을 변경한다. 

 

server 입장에서 패킷을 받았을때 10.0.0.20 소스가 아니라 12.34.56.78 소스이다. 

이런 식으로 구성해 볼 것이다. 

Comment 

사실 NAT 인스턴스는 이제 NatGateway로 구현할 수 있다. 

가용성도 낮고 대역폭도 작다. 

그래도 실습해보자! 


324. NAT 인스턴스 실습

인스턴스 설치

아마존에서 지원 하지 않기 때문에 커뮤니티 이미지를 설치해야한다. 

x86_64

네트워크 설정

Demo VPC 에서
보안 규칙을 몇개 추가한다.

지난 시간에 만든 PrivateInstance가 NAT 인스턴스로 접속하게 한다. 

네트워킹 소스/대상 확인 변경으로 간다

중지로 저장

BastionHost 에서 privateInstance 접속하기 

ssh 명령어로 로그인

핑을 쏴도 보내지지 않는다. ?

프라이빗 서브넷에 접속은 가능하지만 인터넷에 연결이 되어있지는 않다. 

프라이빗 라우팅 테이블 수정하기 

0.0.0.0/0 외부 ip 로 갈려면 nat 인스턴스를 통해 가야하도록 정했다. 

nat 인스턴스를 통한다.

하지만 여전히 인터넷 접속 불가능하다. 

 

Nat 인스턴스의 보안그룹 편집 

모든 ICMP - IPv4 허용

이제 핑이 된다. 

 

Nat 인스턴스 삭제하기 

 

 


324. NAT Gateway

NAT Gateway 

  • AWS 에서 제공하는 NAT, 높은 광대역, 가용성 , 완전관리형
  • 사용한 만큼 비용청구 
  • 특별한 가용존에 사용되고 EIP를 사용한다. 
  • ec2 와 같은 서브넷에서 사용될 수 없다.
  • IGW 가 필요하다 private subnet -> NATGW -> IGW
  • 5~45Gbps 광대역
  • 보안그룹 관리할 필요 없음.

사설 서브넷은 인터넷에 연결 되어있지 않다.

NAT GW 를 통해서 인터넷에 연결한다. 

NAT GW 의 고가용성

NAT GW은 az에 국한된다. 

여러개의 NAT GW를 구성해서 내결함성을 가질 수 있다. 

AZ를 가로질러 갈 수 없다. 

NAT GW 와 NAT instance 와 비교

결론은 NAT GW 가 좋다. 

보안그룹 x , 배스천 호스트 쓸 필요도 없다. 


326. NAT Gateway 실습

Nat Instance 삭제

위에서 Nat instance를 삭제하고 나면

privateRouteTable에서 라우팅 에러가 뜬다 .

0.0.0.0/0 의 대상은 nat instance 였기 때문

NAT Gateway 생성

EIP 를 할당해서 생성해보자!

라우팅 테이블 편집

privateRoubeTable 에서 0.0.0.0/0 은 NatGW 로 가게 한다. 

privateinstance 가 인터넷에 연결 가능해졌다


327. NACL 및 보안그룹

NACL 은 stateless 라서 들어오고 나가는거 다 확인하지만 

SG는 stateful 이라서 한번이라도 확인하면 그후에는 검사안하고 허용해준다. 

  • NACL 은 서브넷 단의 방화벽 역할 
  • 한 서브넷당 하나의 NACL 을 가지고 처음에는 기본 NACL 을 가진다. 
  • NACL 규칙 
    • 1~32766 의 번호를 가지고 낮은 숫자일 수록 우선 순위가 높다. 
    • 100 단위로 하는 것을 권장 
  • 초기에 NACL 은 모든 접속을 거부할 것이다. 
  • NACL은 특정 IP 주소의 접근을 차단하는 훌륭한 방법이다. 

NACL 은 서브넷 단에서 일어난다.

기본 NACL

기본 NACL 은 모든 인/아웃바운드를 허용한다.

임시 포트

  • 클라이언트가 연결할려면 포트를 지정해야한다. 하지만 응답 받을때 특정한 포트로 받을 수 있다.
  • OS 에 따라 포트 범위가 다르다. 

접속할때 443 포트를 지정했지만 응답시 50105 임의의 포트로 응답받게 했다. 

NACL 과 임시포트

웹서버에서 db로 접속할때 3306 을 명시한다.

응답 받을 때는 임시 포트로 응답받기 때문에 다른 범위의 포트로 받게 되면 못 받기 때문에 조심해야한다.

각각의 연결 조합을 고려해야한다.

Security Group vs. NACLs  

sg 는 인스턴스  NACL 은 서브넷 단 

sg는 허용 규칙 NACL 은 허용, 거부 규칙 가능 -> 특정 ip 거부 가능


328. NACL 및 보안 그룹 실습

nacl 이 설치되어있다.

인바운드 규칙에 모두 허용이다. 100 숫자가 낮기 때문에 

HTTPD 서버 설치

배스천 호스트로 이동 

sudo yum install -y httpd

sudo systemctl enable httpd

sudo systemctl start httpd

sudo su

 

echo "hello world" > /var/www/html/index.html

bastion 호스트의 sg 인바운드 규칙 편집

 

배스천 호스트에 접속할 수 있다. 

NACL 수정해보기 

80 번으로 http 접속을 거부하는 규칙을 추가해보자 

 

-> 무한로딩에 걸린다 .

 

80을 140 으로 하면 100이 우선시 되서 접속이 잘된다. 

 


329. VPC 피어링 

VPC Peering

서로다른 aws 네트워크를 연결하는 기술 

같은 네트워크에 있는 것처럼한다. 

CIDR를 중복시키지 말것 

전이 되지 않는다. ( a와 b 연결, b와 c 연결 했다고해서 a~c 연결되는 것은 아니다. ) 

Good to know 

다른 계정, 다른 리전의 VPC 와 연결할 수 있다. 

보안 그룹도 공유할 수 있다. 

VPC 피어링을 해보자! 


330. VPC 피어링 실습 

DdfaultVPC 와 DemoVPC 를 연결해보자! 

 

Default Instance 만들기 

DefaultVPC 로 지정한다 .

 

해당 인스턴스로 접속

bastion 호스트에도 접속

지난 시간에 만들었던거

여기서도 똑같이 뜨게 만들자.

 

피어링 연결 생성

요청 수락 작업을 한다. 

라우팅 테이블 수정하기

 Default 라우팅 테이블이랑 PublicRouteTable을 연결할 것이다. 

DefaultVPC 의 CIDR 172.31.0.0/16 으로 들어오는건 피어링 연결로 다 접속 시킨다. 

 

이번엔 DefaultRouteTable 수정

DemoVPC의 CIDR 10.0.0.0/16 으로는 피어링 연결로 보낸다. 

연결되었다.

결론 

vpc 피어링하고 서로 연결하게 할려면 routetable 두개다 수정해야한다. 

 

+ Recent posts