미스터 역마살

AWS 네트워크 #06 - bastion host를 통한 private ec2 접속 본문

IT/AWS

AWS 네트워크 #06 - bastion host를 통한 private ec2 접속

Mr. YeokMaSsal 2021. 7. 26. 00:45
728x90
반응형

지난 이야기

AWS 네트워크 #01 - VPC

AWS 네트워크 #02 - Subnet

AWS 네트워크 #03 - ROUTE TABLE, NAT GATEWAY

AWS 네트워크 #04 - Security Group

AWS 네트워크 #05 - EC2 생성 (Batstion host, private ec2)

bastion host 접속 및 ssh 터널링 설정

이번엔 bastion host를 접속하고 bastion host를 통해 private 망에 있는 ec2에 접속 하여 index.html 페이지를 꾸며 보자

작업순서는 아래와 같다.

  1. putty 설치
  2. puttygen을 이용하여 ppk 파일 생성
  3. bastion host 설정 및 터널링 설정
  4. bastion host 접속 및 private subnet에 위치한 ec2 접속
  5. private subnet에 위치한 ec2에 apache 설치 및 실행

 

Putty 설치

bastion host를 ssh로 접속하기 위해서는 putty라는 프로그램을 통해 접근이 가능하다.

먼저 putty를 설치 하겠다.

putty는 아래 설치 경로에서 설치하면 된다. 만약 설치가 잘 안된다면 구글링을 통해 설치하길 바란다.

 www.putty.org/

 

Download PuTTY - a free SSH and telnet client for Windows

Is Bitvise affiliated with PuTTY? Bitvise is not affiliated with PuTTY. We develop our SSH Server for Windows, which is compatible with PuTTY. Many PuTTY users are therefore our users as well. From time to time, they need to find the PuTTY download link. W

www.putty.org

 

Puttygen을 이요하여 ppk 파일 생성

저번 시간에 배스천 및 EC2 생성시 키페어를 생성 하였다. 이번에는 이 키(.perm 파일)을 ppk 파일로 생성해보자

ppk 파일을 통해 putty에 접속할 수 있다.

윈도우 창에서 puttygen을 검색하여 실행 시킨다.

 

puttygen에서 load 버튼을 클릭한다.

 

파일 선택 창에서 우측 하단의 파일 확장자를 all file로 선택하고 

 

생성 했던 perm 파일을 선택 한다.

 

save private key 버튼을 클릭하여 .ppk 파일을 생성한다.

앞으로 이 ppk 파일을 통해 putty에서 ssh 접속을 할 것이다.

 

Putty로 bastion host 설정

putty를 실행 후 아래와 같이 세팅한다.

  • Connection > SSH > Auth 에서 private key file for authentication 을 ppk 파일로 선정한다.
  • Connection > Data 에서 Auto login username을 ec2-user로 설정한다. (ec2 생성시 초기 사용자 이름은 ec2-user이다)
  • Session 메뉴에서 hostname, save session 명을 입력하고 save 버튼을 클릭한다.

 

bastion host의 public ip를 putty의 hast name에 입력하고 saved session을 알아보기 편하게 작성하여 save 버튼을 클릭하여 해당 내용을 저장 한다.

 

SSH 터널링 설정

이제는 bastion host의 ssh 터널링 설정을 해야한다.

그전에 먼저 터널링에 대한 개념을 가지고 있어야 한다.

SSH 터널링이란?

먼저 터널링이란 특정 한 네트웍에서 다른 네트웍으로 데이터를 보낼 수 있도록 터널(일종의 통로)를 만들어 주는것을 말한다. 우리는 우리가 속해있는 일반 인터넷 환경에서 private 망에 있는 곳으로 접속하기 위해서는 이 터널링을 통해 private 망으로 접근이 가능하다.

그럼 ssh 터널링은 무엇일까? 
ssh 터널링은 이러한 터널링을 ssh 프로토콜을 이용해서 하는것이다. 따라서 우리는 private subnet의 ec2는 이 bastion host의 터널링 설정을 통해 접속한다. 

 

포트 포워딩이란?

포트 포워딩의 개념은 아래의 글을 참조하면 좋을 듯 하다.

https://lamanus.kr/59

 

포트 포워딩이란?

과거에는 집에 보통 컴퓨터 한 대만 사용하고 스마트폰이 없었기 때문에 인터넷을 설치한다고 하더라도 모뎀만 있으면 컴퓨터에 인터넷을 연결할 수 있었습니다. 최근 들어서는 가족 구성원 한

lamanus.kr

 

만약 ssh 터널링과 포트 포워딩의 개념이 이해되지 않는다면 일단 여기 나와 있는대로 따라 해보면 조금은 이해가 갈것이다.

 

아까 까지 save 한 상태 그대로 두고 아래의 절차를 계속 진행 한다.

저장한 정보를 클릭하여 open 버튼으로 bastion host ec2에 접속한다.

 

그럼 아래와 같이 접속이 정상적으로 되는것을 확인 할 수 있다.

만약 접속이 안된다면 보안그룹 설정에서 ssh(22번포트)가 내 ip가 접속이 허용되어있는지 인바운드 규칙을 확인해보면 된다.

 

 

bastion host를 통해 Private 서브넷에 있는 ec2 접속

현재 bastion host의 접속까지 마무리 된 상태다.

이제 우리는 이 bastion host를 통해 private 망에 있는 ec2에 ssh로 접근하려고 한다.

방법은 매우 간단하다. 먼저 private subnet 망에 있는 ec2 2개 각각의 프라이빗 ipv4 주소를 복사 해놓는다.

나의 경우는  아래와 같다. 아마 모두 다르게 설정 되어있을 것이므로 aws 콘솔을 통해 확인 하기 바란다.

  • private ec2 01 : 10.0.2.249
  • private ec2 01 : 10.0.3.245

그리고 나선 아래와 같이 ssh 입력후 그 주소를 옆에 써주면 된다.

입력 후 뭐 yes/no 묻는게 나오면 yes라고 입력하면 된다.

그럼 이제 bastion host를 통해 private 망에 있는 ec2에 접속을 한것이다.

 

Private subnet에 위치한 ec2에 아파치 설치 및 실행

이제 application 서버의 환경을 설정 해보자

sudo -s

yum update -y

yum install httpd -y

service httpd start

chkconfig httpd on

cd /var/www/html

#ec2 이름에 맞게 입력
echo "Hello world ec2-01" > index.html

 

한줄씩 차근 차근 실행하면 된다.

Private  망에 위치한 2개의 ec2에 대해 위의 코드를 모두 실행 해 준다.

 

다음 이야기

다음엔 dns를 통해 private 망에 있는 ap 서버에 접근 해보고 elb를 통한 로드밸런싱을 공부해보자

 

 

 

728x90
Comments