[AWS] ssh 이용해서 private subnet 접근하기
VPC는 퍼블릭 서브넷 1개, 프라이빗 서브넷 1개 라우팅 테이블은 각각 1개씩 2개, 퍼블릭 라우팅 테이블만 인터넷 게이트웨이에 연결해주고 NAT 게이트웨이는 없습니다
1) VPC 생성
VPC -> VPC 생성
서브넷, 라우팅 테이블, 인터넷 게이트웨이 등 한 번에 생성하고 설정하기 위해 VPC 등
을 클릭합니다
이름은 구분을 쉽게 하기 위해 test2
로 하겠습니다 IPv4 CIDR 블록도 처음 설정시 서브넷 16으로 되어 있을텐데 초기값으로 설정합니다
위에서 말한대로 서브넷 수는 각각 1개, NAT 게이트웨이는 없음으로 설정합니다.
그리고 DNS 호스트 이름 활성화는 반드시 설정합니다!
그러면 위 사진과 같이 미리 보기가 나오게 됩니다
VPC 생성을 눌러줍니다
2) 보안 그룹 설정
VPC 메뉴의 하단에 있는 보안 그룹을 클릭해서 들어가 줍니다
보안 그룹 생성 클릭
이름은 vpc와 통일을 위해 test2-sg
vpc는 방금 생성한 test2-vpc 선택
인바운드 아웃바운드 규칙은 실습이므로 모두 허용으로 하겠습니다
인바운드 규칙 -> 규칙 추가 -> 유형(모든 트래픽) -> 소스(Anywhere-IPv4)
태그도 알아보기 쉽게 키는 Name 값은 test2-sg
보안 그룹 생성 클릭
3) EC2 생성하기 - 퍼블릭 인스턴스 생성
인스턴스 시작 클릭
이름은 test2-public-ec2, 애플리케이션 및 OS 이미지는 Amazon Linuz 2023 프리 티어 선택
인스턴스 유형은 프리 티어 가능한 t2.micro 선택
처음 생성시 키 페어가 없는데 새 키 페어 생성
클릭
이름은 test2-public-keypair 형식은 pem
키 페어 생성을 누르면 다운로드 폴더에 키 페어가 생성됩니다
네트워크 설정에서 편집을 클릭(편집을 누르지 않으면 기본 설정으로 진행됩니다)
네트워크 설정에서 vpc는 test2-vpc
서브넷은 test2-subnet-public1
퍼블릭 IP 자동 할당은 반드시 활성화
를 시켜주세요
방화벽에서 기존 보안 그룹 선택
일반 보안 그룹 마크다운을 클릭하고 test2-sg를 선택
모두 맞게 설정했으면 인스턴스 시작 클릭
4) EC2 생성하기 - 프라이빗 인스턴스 생성
프라이빗 인스턴스는 이름만 test2-private-ec2로 바꾸고 설정은 비슷합니다
인스턴스 유형도 프리 티어가 가능한 t2.micro를 설정해 줍니다
키 페어 생성을 누르고 이름은 test2-private-keypair 파일 형식은 pem
네트워크 설정 - 편집 클릭
vpc는 test2-vpc 서브넷은 test2-subnet-private1
퍼블릭 IP 자동 할당은 "비활성화"
기존 보안 그룹 선택을 누르고 test2-sg 선택
모두 맞게 설정했다면 인스턴스 생성 클릭
6) 퍼블릭 인스턴스 설정
4번에서 만든 public이 잘 만들어졌다면 퍼브릭 IPv4 DNS도 뜨게 됩니다 만일 그렇지 않다면
https://hgk5722.tistory.com/503
여기에 들어가서 해결하시기 바랍니다
인스턴스 ID를 클릭해서 접속
연결에 들어가 EC2 인스턴스 연결에서 오른쪽 아래 연결 버튼 클릭
접속이 잘 됩니다
만일 안된다면, 해당 EC2의 보안그룹에서 22번 포트 SSH를 허용하는 보안그룹이 인바운드 규칙에 포함되어 있는지 확인해 보셔야합니다!
이 곳을 들어가서 참고하시면 됩니다!
https://hgk5722.tistory.com/555
이제 키페어 생성할 때 만들어서 다운로드 폴더에 있는 test2-private-keypair를 찾습니다
더블클릭해서 메모장으로 실행하면 다음과 같이 뜨게됩니다
방금 접속한 EC2에 다음과 같은 명령어 입력
vim test2-private-keypair.pem
vim으로 연결되었으니 insert 모드로 진입하기 위해 알파벳 i
입력
그 후 방금 메모장에 보이던 test2-private-keypair의 내용을 전부 붙혀넣기
그 다음 esc를 한번 눌러 명령모드로 돌아오고 :wq!
를 눌러 저장 후 빠져나와줍니다
ls 를 눌러 제대로 파일이 생성되었는지 확인
다음 명령어 입력
chmod 400 test2-private-keypair.pem
그 다음 명령어를 치기전에
test2-private-ec2에 접속해 프라이빗 IPv4 주소를 복사
다시 명령어 창으로 돌아와서 다음과 같은 명령어 입력
ssh -i "test2-private-keypair.pem" ec2-user@<프라이빗 서브넷의 프라이빗 IPv4 주소>
@ 다음에 오는 <>에는 방금 복사한 프라이빗 IPv4 주소를 넣어주어야 합니다. 각자 다르니 확인 후 넣어주세요
엔터치면 yes를 입력해줍니다
그러면 위 사진과 같이 10.0.134.185로 접속된 것을 확인할 수 있다
10.0.13.96 ==> 10.0.134.185로 바뀐 것이 보이시나요?
성공적으로 private 인스턴스에 접속했습니다