본문 바로가기

AWS/EC2

Private EC2 접속 방법 (3) - Bastion EC2 접속하기

안녕하세요!!

오늘은 저번 포스팅인..

2021.03.29 - [AWS/EC2] - Private EC2 접속 방법 (1) - Bastion EC2 생성

 

Private EC2 접속 방법 (1) - Bastion EC2 생성

안녕하세요 ! 오늘은 클라우드에 대한 관심이 높아지고, 국비학원에서 클라우드를 다루는만큼(저도 국비학원 출신입니다.) AWS를 처음 접하시는 분들에게 Bastion Instance에서 Privete Instance로 접속하

junhyeong-jang.tistory.com

 

 

2021.03.29 - [AWS/EC2] - Private EC2 접속 방법 (2) - Pem 파일 변환 및 PuTTY 설정

 

Private EC2 접속 방법 (2) - Pem 파일 변환 및 PuTTY 설정

안녕하세요. 오늘은 지난 포스팅 Private EC2 접속방법(1) - Bastion EC2 생성 에 이어서, 다운로드한 pem 파일을 ppk 파일로 변환하고 PuTTY 설정을 해보도록 하겠습니다. 바로 포스팅 시작할게요. 먼저 PuTT

junhyeong-jang.tistory.com

글에 이어서 1편에서 생성한 Bastion Instance에 2편에서 설정한 PuTTY 세션으로 접속해보도록 하겠습니다!


먼저 생성한 Bastion Instance의 Public DNS주소(or Public IP)를 알아내야합니다.

(권장사항은 Public DNS 입니다.)

만약, Public DNS가 보이지 않으신다면..! VPC - VPC 선택 - Actions - Edit VPC hostnames - Enable 해주시고,

Instance를 Stop - Start 해주시면 됩니다.

 

VPC DNS hostname 설정


자.. 다시 EC2로 돌아와서 Public DNS 이름을 확인해보겠습니다.

해당 Public DNS를 복사합니다.

 

Public DNS 확인 및 복사


PuTTY를 실행하고 이전에 저장한 Session을 Load 해준 후, Host Name 쪽에 복사한 Public DNS를 붙여넣기 합니다.

 

Host Name에 Public DNS 붙여넣기

그러고.. Open을 하면 OS 계정을 묻습니다.

OS 계정정보는 Amazon Linux 경우에는 ec2-user, CentOS는 centos, Ubuntu는 ubuntu ... AMI 제공자마다

설정해놓은 초기 OS 계정이 있습니다. 자세한건 역시..!! 구글링!!^^

 

저희는 Amazon Linux2 이기때문에 ec2-user를 입력하겠습니다!!

그러면..!

 

Error 당첨!!!

축하드립니다. Error에 당첨되셨습니다.

왜일까요 ??

보통 학원에서 VMware를 이용하여 Linux를 학습하셨다면 패스워드 방식에 익숙하실 겁니다.

그러나, AWS에서 제공되는 AMI는 초기에 모두 Key 방식 인증입니다.

또한, 보안상 권장되는 방식 또한 FM은 'Key 방식 인증' 과 '서버 및 관리자당 Key를 각각 할당' 입니다.


자 .. 다시 PuTTY를 실행하고.. 위와 마찬가지로 Load를 눌러줍니다.

그리고, SSH - Auth에서 Private key file for authentication 쪽의 Browse를 눌러 이전에 저장한 ppk 파일을 불러옵니다.

 

Key 파일 로드

 

그 후, 다시 Session으로 넘어가서 Host Name에 ec2-user@PUBLIC_DNS 를 입력하겠습니다.

여기서 PUBLIC_DNS는 각각 환경에 맞는 EC2의 Public DNS를 입력하시면 됩니다.

(만약 AMI가 Amazon Linux가 아니라면, ec2-user부분도 환경에 맞는 OS 계정으로 바꿔주세요.)

 

Key 파일을 등록 한 후 Host Name 입력하여 Open

 

그리고 Open 을 눌러보시면 정상적으로 접속 되시는 것 확인하실 수 있습니다.

 

Bastion Instance 접속 성공.


만약 아래와 같이 Timed out이 발생한다면, Session 자체가 맺어지지 않은 것 입니다.

원인은 아래 4가지 중 분명히 있습니다.

 

- EC2 자체에 Public IP가 할당되어 있지 않다.

- EC2의 SSH or RDP 포트가 LISTEN 상태가 아니다.

- 접속하고자 하는 EC2의 Security Group:Inbound rule에 내 IP가 등록되어 있지않다.

- EC2가 있는 Subnet과 연결된 Routing table에 IGW로 나가는 규칙이 없다.

 

Timed out Error


여기서 LISTEN 상태가 아닌 것은 신규생성한 Instance이기 때문에 배제하고 그 외 3가지들에 대해서 살펴보겠습니다.

먼저 EC2 자체에 Public IP가 없는지 여부입니다.

 

Public IP 미존재

 

만약 위와 같이 Public IP가 할당되지 않았다면, 임시적으로 EIP를 할당하여 EC2에 Attach 해줄 수 있습니다.

주의사항은 EC2에 EIP 한개는 무료지만, EIP를 사용중이지 않게되면 비용이 과금됩니다.

여기서 사용중이지 않다는 의미는 EIP가 Detached 상태거나, Attachd 상태지만 EC2가 Stop 상태일 때도 포함됩니다.


두번째, SG에 내 IP가 등록되어 있지 않은 경우 입니다.

 

EC2에 할당된 SG 선택

 

EC2 정보에서 해당 SG를 선택하면 Security Group 화면으로 이동됩니다.

(여담이지만, SG는 ENI에 할당됩니다. EC2에 할당되는 것이 아닙니다. EC2에 붙어있는 ENI에 할당되는 것 입니다.

이 개념은 후에 IP가 동적인 녀석들(Ex. ALB ...)을 SG에서 다룰 때 꼭 짚어두셔야 할 개념입니다.)

 

SG로 이동하여 Inbound rule을 확인하고, 규칙에 존재하지 않는다면 아래와 같이 넣어줍니다.

혹은 규칙이 들어가있더라도, 환경에 따라 IP가 변동되었을 수도 있으니 My IP를 한번 더 선택하여 IP를 갱신합니다.

 

SG에 Inbound rule 체크.


마지막으로 Routing table 확인 입니다.

 

EC2 상세정보에서 Subnet 클릭하여 이동

 

EC2 정보에서 Subnet ID 부분을 클릭하시면 EC2가 위치한 Subnet(VPC 콘솔)으로 이동하는데요.

여기서 Subnet에 연결된 Routing table에 IGW로 나가는 규칙이 있는지 확인하시면 됩니다.

 

Routing 규칙 확인

 

만약 규칙이 없다면, 규칙을 추가하시면 되고, 규칙을 추가하려는데 IGW 자체가 탐색이 안된다면 IGW를 생성하고

VPC에 Attache 해주시면 됩니다.


여기까지 Bastion Instance에 접속하는 방법과 접속이 되지 않을 때 트러블슈팅 하는 방법을 알아봤습니다.

네트워크는 Point-to-Point로 하나씩 하나씩 짚어나가시는게 가장 정확하고 빠릅니다.

 

다음 포스팅에서는 Private EC2에 접속하는 방법을 알아보도록 할텐데요.

Private EC2가 Linux라면 간단하게 SSH를 통해서 접속할 수 있는데, 만약 Windows 라면 어떨까요??

 

두가지 방법 다 다음 포스팅에서 소개드리도록 하겠습니다!!^^

또한, 사용하시는 ec2-user | centos | ubuntu ... 등은 Default 계정으로써 보안에 취약합니다.

이러한 계정을 비활성화 하는 방법은 아래 포스팅 참고 해주시기 바랍니다!!^^

 

2021.02.04 - [AWS/EC2] - EC2(Linux) 사용자 별 .pem 파일 생성하기 및 ec2-user 비활성화

 

EC2(Linux) 사용자 별 .pem 파일 생성하기 및 ec2-user 비활성화

안녕하세요. 오늘은 EC2(Linux)를 생성할 때, 기본적으로 생성되는 ec2-user와 ec2-user에 맵핑되어 있는 Default .pem 파일을 비활성화 하고, 사용자별로 .pem 파일을 만들어주도록 하겠습니다. 이렇게 하는

junhyeong-jang.tistory.com