[ec2 배포] Failed to connect to your instance

이유정·2023년 11월 5일
10

[ArtGarden_PR]

목록 보기
15/33

나는 무슨 삽질을 남들보다도 10배는 하는 것 같은 느낌이다.
오늘은 갑자기 ssh 연결 조차 안된다.

EC2 Instance Connect is unable to connect to your instance. Ensure your instance network settings are configured correctly for EC2 Instance Connect. For more information, see Set up EC2 Instance Connect at https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-connect-set-up.html.

상황판단1)
내 로컬 터미널로 ssh 접속 하려하니 아예 안되길래
aws 사이트에서 직접 인스턴스 연결 했더니 저 에러가 떴다.
내 컴터의 문제는 아니다.

상황판단2)
새로운 인스턴스를 만들었더니 접속이 잘만 된다.
=> 기존 인스턴스에 갑자기 문제가 생긴 것 ?

시도1) 보안그룹 설정 ssh 22 포트 열어주기


=> 확인해보니 이미 설정되어 있었다.

시도2) t2 medium을 선택하고 jenkins를 설치

이 분은 빈번하게 에러가 난다고 한다. 인스턴스를 만들고 며칠 내에 !? cpu 소비가 30 혹은 50이 될 때 이런 에러가 난다고 주장. 그래서 t2 medium을 선택하고 jenkins를 설치했다고 한다.

https://repost.aws/questions/QUgbwQZtcdTBSdvzOI5UNJgA/failed-to-connect-to-your-instance-ec2-instance-connect-is-unable-to-connect-to-your-instance

=> 일단 알아는 두고 다른 방법을 찾아봐야겠다.

시도3) 인터넷 게이트웨이와 라우팅 설정 필요

참고) https://rainbound.tistory.com/entry/AWS-EC2-SSH-%EB%B0%8F-%EC%97%B0%EA%B2%B0-%ED%95%A0%EB%95%8C-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%84%A4%EC%A0%95

시도4) 어제 nginx 뭐 깔면서 ssh 접속을 어렵게 한다는걸 yes 했던 것 같은데,,,?

=> ngninx는 웹서버로 http 및 https 트래픽을 처리한다. ssh 접속을 차단하는 것은 nginx와는 직접적인 연관이 없다.

즉, SSH로 서버에 접속할 때 연결이 거부되고 있다면, Nginx와는 아무 상관이 없으며, 이는 서버의 네트워크 또는 방화벽 설정에서 발생한 문제일 가능성이 높다!!!

시도5) 서버의 방화벽 설정(ufw)을 확인해서 ssh가 허용되어 있는지 확인하자. ssh가 차단되어 있다면 해당 포트를 허용해야 한다.

sudo ufw status

  • SSH가 허용된 경우:
    출력에서, "22" 또는 "SSH"와 같이 SSH 포트가 "ALLOW"로 표시되면 SSH가 허용되어 있는 것입니다.

  • SSH가 차단된 경우:
    출력에서, "22" 또는 "SSH"와 같이 SSH 포트가 "DENY" 또는 "STATUS: inactive"로 표시되면 SSH가 차단되어 있습니다.

허용 명령어

sudo ufw enable

변경후 로드해야함

sudo ufw reload

=> ssh 허용하게 만들었는데 인스턴스 연결은 아직도 안된다... 날 미치게 하지마

시도6) SSH 서비스 상태 확인

1) SSH 서비스가 정상적으로 실행 중인지 확인합니다. SSH 서비스가 작동 중이지 않을 수 있습니다.

sudo systemctl status ssh

2) 로그인 시도, 포트 리스닝 등의 방법으로 ssh 서비스 정상 작동인지 호가인

sudo netstat -tuln | grep 22

=> 22번 포트에서 리스닝 중이다.

시도7) 인스턴스 재부팅


=> 안됨

시도8) 인스턴스 사용자 데이터 편집하기

스택 오버 플로우에서 여러 글을 읽고 시도한 끝에 이 방안을 시도해봤다. 왜 이 방안을 게시하겠는가? 드디어 해결 ㅠㅠㅠㅠ 나 울어,,,, 이 글을 읽고 있는 당신의 3일 정도를 내가 해결해준 걸 수도,,,, 흑

참고 ) https://stackoverflow.com/questions/41929267/locked-myself-out-of-ssh-with-ufw-in-ec2-aws

위 사이트에서 이런 글이 있다.

설명하자면)

  • 인스턴스 중지를 눌러라 (마우스 오른쪽 클릭)
  • 인스턴스 설정에 들어가라
  • 사용자 데이터 편집에 들어가라
  • 이 글을 복붙에서 저장해라 (밑에 써놓겠습니다!)

복붙해야 하는 글

Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/bash
ufw disable
iptables -L
iptables -F
--//

인내하는 개발자는 반드시 승리한다... 필,,, 승

nginx 설정하면서

이걸 해주니까 다시, 접속이 안된다.

이 분의 글을 참고 해서 아까 내가 복붙해서 사용자 편집에 넣으라고 한 글에 더 더했다.

Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/bash
sudo ufw allow ssh
sudo ufw allow 22
sudo ufw allow 443
sudo ufw allow 8080
sudo ufw allow 80
sudo ufw status 
sudo ufw enable

--//

이렇게 작성하시면 될 것이에요 !

++
도움이 됐다는 분들의 댓글을 보니,,, 너무 감사한 마음과 함께,,, 사용자 데이터 편집에 쓴 글에 대해 그 어떤 설명도 안해놓은게 마음에 걸려서,, 간단하게 스크립트가 뭘 나타낸건지 작성해보았다. !

+추가 작성) 왜 해결된건가 ?

이 스크립트는 AWS 인스턴스에서 UFW(Uncomplicated Firewall)를 설정하여 접속 문제를 해결하는 역할을 합니다.

스크립트 설명


3. 셸 스크립트 섹션

profile
강의 기록 블로그

21개의 댓글

comment-user-thumbnail
2024년 4월 28일

덕분에 해결했어요..감사합니다ㅜㅜ!

1개의 답글
comment-user-thumbnail
2024년 4월 28일

저의 3일을 아껴주셨습니다.. 감사합니다!

1개의 답글
comment-user-thumbnail
2024년 5월 2일

감사합니다.. 감사합니다.. 덕분에 8번으로 해결했습니다!!

1개의 답글
comment-user-thumbnail
2024년 5월 7일

정말 감사합니다.

1개의 답글
comment-user-thumbnail
2024년 5월 23일

저의 3일을 세이브 해주셨군요

2개의 답글
comment-user-thumbnail
2024년 5월 31일

저는 톰캣으로 했는데도 8번까지해서 겨우 해결했네요.... 진짜 감사합니다 덕분에 2시간만 삽질했습니다... 근데 이번엔 myqsl서버에 외부접속이안되네요 ㅎㅎ

2개의 답글
comment-user-thumbnail
2024년 7월 17일

댓글을 안달수가 없군요 선생님.. 3일만큼 감사합니다

1개의 답글
comment-user-thumbnail
2024년 8월 27일

저도 헤매고 있었는데 덕분에 해결했습니다! 감사합니다 ㅠㅜ

1개의 답글
comment-user-thumbnail
2024년 9월 22일

인바운드 규칙 편집하다가 SSH 22 포트 규칙 삭제한지도 모르고 있었네요.
덕분에 빠른 디버깅이 가능했습니다!! 🙇

1개의 답글