미스터 역마살
AWS 네트워크 #06 - bastion host를 통한 private ec2 접속 본문
지난 이야기
AWS 네트워크 #03 - ROUTE TABLE, NAT GATEWAY
AWS 네트워크 #05 - EC2 생성 (Batstion host, private ec2)
bastion host 접속 및 ssh 터널링 설정
이번엔 bastion host를 접속하고 bastion host를 통해 private 망에 있는 ec2에 접속 하여 index.html 페이지를 꾸며 보자
작업순서는 아래와 같다.
- putty 설치
- puttygen을 이용하여 ppk 파일 생성
- bastion host 설정 및 터널링 설정
- bastion host 접속 및 private subnet에 위치한 ec2 접속
- private subnet에 위치한 ec2에 apache 설치 및 실행
Putty 설치
bastion host를 ssh로 접속하기 위해서는 putty라는 프로그램을 통해 접근이 가능하다.
먼저 putty를 설치 하겠다.
putty는 아래 설치 경로에서 설치하면 된다. 만약 설치가 잘 안된다면 구글링을 통해 설치하길 바란다.
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의 터널링 설정을 통해 접속한다.
포트 포워딩이란?
포트 포워딩의 개념은 아래의 글을 참조하면 좋을 듯 하다.
만약 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를 통한 로드밸런싱을 공부해보자
'IT > AWS' 카테고리의 다른 글
AWS 네트워크 #08 - RDS (1/2) (0) | 2021.07.27 |
---|---|
AWS 네트워크 #07 - ELB (0) | 2021.07.26 |
AWS 네트워크 #05 - EC2 생성 (Batstion host, private ec2) (0) | 2021.07.25 |
AWS 네트워크 #04 - Security Group (0) | 2021.07.21 |
AWS 네트워크 #03 - ROUTE TABLE, NAT GATEWAY (0) | 2021.07.21 |