[Cloud]/[AWS]

[AWS] ssh 이용해서 private subnet 접근하기

마린독 2024. 3. 20. 17:18
728x90

 

 

VPC는 퍼블릭 서브넷 1개, 프라이빗 서브넷 1개 라우팅 테이블은 각각 1개씩 2개, 퍼블릭 라우팅 테이블만 인터넷 게이트웨이에 연결해주고 NAT 게이트웨이는 없습니다

 

 

1) VPC 생성

 

VPC -> VPC 생성

 

VPC 접속

 

 

서브넷, 라우팅 테이블, 인터넷 게이트웨이 등 한 번에 생성하고 설정하기 위해 VPC 등을 클릭합니다

 

 

이름은 구분을 쉽게 하기 위해 test2로 하겠습니다 IPv4 CIDR 블록도 처음 설정시 서브넷 16으로 되어 있을텐데 초기값으로 설정합니다

 

가용영역, 서브넷, NAT 게이트웨이 설정

 

 

위에서 말한대로 서브넷 수는 각각 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

 

[AWS] ec2에 퍼블릭 IPv4 DNS가 없을 때 해결 방법

내가 생성한 ec2에 이렇게 퍼블릭 IPv4 DNS가 없는 경우가 있습니다 이런 경우 해결 방법은 다음과 같습니다 VPC -> VPC -> 해당 ec2가 설정된 VPC 클릭 -> 작업 -> VPC 설정 편집 -> DNS 설정 -> DNS 호스트 이

hgk5722.tistory.com

 

여기에 들어가서 해결하시기 바랍니다

 

 

인스턴스 ID를 클릭해서 접속

 

 

 

연결에 들어가 EC2 인스턴스 연결에서 오른쪽 아래 연결 버튼 클릭

 

 

 

접속이 잘 됩니다

 

 

만일 안된다면, 해당 EC2의 보안그룹에서 22번 포트 SSH를 허용하는 보안그룹이 인바운드 규칙에 포함되어 있는지 확인해 보셔야합니다!

 

 

이 곳을 들어가서 참고하시면 됩니다!

https://hgk5722.tistory.com/555

 

[AWS] SSH 인바운드 규칙 추가

EC2 인스턴스가 콘솔에서 위의 버튼으로 접속이 안되서 아래와 같이 화면이 출력되는 경우가 있습니다.    그런 경우 EC2인스턴스가 속해 있는 보안그룹에 SSH 22번 포트가 닫혀 있는 경우일 수

hgk5722.tistory.com

 

 

이제 키페어 생성할 때 만들어서 다운로드 폴더에 있는 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 인스턴스에 접속했습니다

 

 

728x90