안녕하세요!!
오늘은 저번 포스팅인..
2021.03.29 - [AWS/EC2] - Private EC2 접속 방법 (1) - Bastion EC2 생성
2021.03.29 - [AWS/EC2] - Private EC2 접속 방법 (2) - Pem 파일 변환 및 PuTTY 설정
글에 이어서 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 해주시면 됩니다.
자.. 다시 EC2로 돌아와서 Public DNS 이름을 확인해보겠습니다.
해당 Public DNS를 복사합니다.
PuTTY를 실행하고 이전에 저장한 Session을 Load 해준 후, Host Name 쪽에 복사한 Public DNS를 붙여넣기 합니다.
그러고.. Open을 하면 OS 계정을 묻습니다.
OS 계정정보는 Amazon Linux 경우에는 ec2-user, CentOS는 centos, Ubuntu는 ubuntu ... AMI 제공자마다
설정해놓은 초기 OS 계정이 있습니다. 자세한건 역시..!! 구글링!!^^
저희는 Amazon Linux2 이기때문에 ec2-user를 입력하겠습니다!!
그러면..!
축하드립니다. Error에 당첨되셨습니다.
왜일까요 ??
보통 학원에서 VMware를 이용하여 Linux를 학습하셨다면 패스워드 방식에 익숙하실 겁니다.
그러나, AWS에서 제공되는 AMI는 초기에 모두 Key 방식 인증입니다.
또한, 보안상 권장되는 방식 또한 FM은 'Key 방식 인증' 과 '서버 및 관리자당 Key를 각각 할당' 입니다.
자 .. 다시 PuTTY를 실행하고.. 위와 마찬가지로 Load를 눌러줍니다.
그리고, SSH - Auth에서 Private key file for authentication 쪽의 Browse를 눌러 이전에 저장한 ppk 파일을 불러옵니다.
그 후, 다시 Session으로 넘어가서 Host Name에 ec2-user@PUBLIC_DNS 를 입력하겠습니다.
여기서 PUBLIC_DNS는 각각 환경에 맞는 EC2의 Public DNS를 입력하시면 됩니다.
(만약 AMI가 Amazon Linux가 아니라면, ec2-user부분도 환경에 맞는 OS 계정으로 바꿔주세요.)
그리고 Open 을 눌러보시면 정상적으로 접속 되시는 것 확인하실 수 있습니다.
만약 아래와 같이 Timed out이 발생한다면, Session 자체가 맺어지지 않은 것 입니다.
원인은 아래 4가지 중 분명히 있습니다.
- EC2 자체에 Public IP가 할당되어 있지 않다.
- EC2의 SSH or RDP 포트가 LISTEN 상태가 아니다.
- 접속하고자 하는 EC2의 Security Group:Inbound rule에 내 IP가 등록되어 있지않다.
- EC2가 있는 Subnet과 연결된 Routing table에 IGW로 나가는 규칙이 없다.
여기서 LISTEN 상태가 아닌 것은 신규생성한 Instance이기 때문에 배제하고 그 외 3가지들에 대해서 살펴보겠습니다.
먼저 EC2 자체에 Public IP가 없는지 여부입니다.
만약 위와 같이 Public IP가 할당되지 않았다면, 임시적으로 EIP를 할당하여 EC2에 Attach 해줄 수 있습니다.
주의사항은 EC2에 EIP 한개는 무료지만, EIP를 사용중이지 않게되면 비용이 과금됩니다.
여기서 사용중이지 않다는 의미는 EIP가 Detached 상태거나, Attachd 상태지만 EC2가 Stop 상태일 때도 포함됩니다.
두번째, SG에 내 IP가 등록되어 있지 않은 경우 입니다.
EC2 정보에서 해당 SG를 선택하면 Security Group 화면으로 이동됩니다.
(여담이지만, SG는 ENI에 할당됩니다. EC2에 할당되는 것이 아닙니다. EC2에 붙어있는 ENI에 할당되는 것 입니다.
이 개념은 후에 IP가 동적인 녀석들(Ex. ALB ...)을 SG에서 다룰 때 꼭 짚어두셔야 할 개념입니다.)
SG로 이동하여 Inbound rule을 확인하고, 규칙에 존재하지 않는다면 아래와 같이 넣어줍니다.
혹은 규칙이 들어가있더라도, 환경에 따라 IP가 변동되었을 수도 있으니 My IP를 한번 더 선택하여 IP를 갱신합니다.
마지막으로 Routing table 확인 입니다.
EC2 정보에서 Subnet ID 부분을 클릭하시면 EC2가 위치한 Subnet(VPC 콘솔)으로 이동하는데요.
여기서 Subnet에 연결된 Routing table에 IGW로 나가는 규칙이 있는지 확인하시면 됩니다.
만약 규칙이 없다면, 규칙을 추가하시면 되고, 규칙을 추가하려는데 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 비활성화
'AWS > EC2' 카테고리의 다른 글
Amazon Linux2 NTP(chrony) 설정하기 (2) | 2021.06.06 |
---|---|
Private EC2 접속 방법 (4) - Private EC2 접속하기 (2) | 2021.03.29 |
Private EC2 접속 방법 (2) - Pem 파일 변환 및 PuTTY 설정 (0) | 2021.03.29 |
Private EC2 접속 방법 (1) - Bastion EC2 생성 (1) | 2021.03.29 |
Compute Optimizer를 사용하여 비용 최적화하기 (0) | 2021.02.14 |