본문 바로가기

문제해결

Mac M1 EC2 ssh 연결 불가

► 상황

자동배포를 위해 위의 조건으로 EC2 인스턴스를 생성한 뒤, SSH 연결을 시도했다. 그후 인텔리제이 터미널에 EC2 실행 명령어를 입력했으나 실행되지 않았다. 몇 번을 시도해도 계속해서 time out 으로 연결에 실패했다는 오류만 떴다. 

 


 

►에러내용

chmod 400 키파일.pem
MacBookPro AWS % ssh -i "키파일.pem" ubuntu@ec2인스턴스.리전.compute.amazonaws.com 
ssh: connect to host ec2인스턴스.리전.compute.amazonaws.com port 22: Operation timed out
MacBookPro AWS % sudo ssh -i "키파일.pem" ubuntu@ec2인스턴스.리전.compute.amazonaws.com 
Password:

ssh: connect to host ec2-3-39-25-191.ap-northeast-2.compute.amazonaws.com port 22: Operation timed out

찾아보니 다음과 같은 경우에 이런 에러가 뜰 수 있다고 했다.

 

1. EC2 인스턴스가 실행중이 아닐때 

: 하지만 멀쩡히 잘 실행중이었다.

 

2. 보안그룹설정에 인바운드 규칙에서

   22번 포트가 모든IP 또는 특정IP에 대해 열려있는지 확인 

: 아주 잘 설정돼 있었다.

 

3. 네트워크 연결확인

: 와이파이 문제일 경우에도 이럴 수 있다고 한다. 랜선을 구입해서 해봤으나 역시나 안됐다.

 

4. 퍼블릭 IP/DNS 확인

: 인스턴스 재시작시 퍼블릭 IP주소 또는 DNS가 변경될 수 있는데,

 나는 처음부터 고정아이피를 사용하기 위해 탄력적 IP를 발급받아 이용했다.

 


 

►시도 1

해당 인스턴스의 보안그룹에서 인바운드 규칙에 내 아이피에 대해 22번 포트를 허용시켰다. 당연히 이미 모든 포트에 열려있었기에 아무런 변화도 없었다.

 

 

►시도 2

윈도우를 사용하는 다른 백엔드 팀원에게 연결명령어를 전달했다. 그대로 입력하자 바로 실행이 됐다. Mac은 인스턴스 생성시 설정을 다르게 해야하는가 싶어서 알아봤다. AMI를 우분투로 하는것과 Mac은 상관없었지만 그래도 혹시 모르니 AMI를 MacOs 로 설정 후 인스턴스를 생성했다. 연결을 시도하는데, 역시나 안됐다. 그러다 내 맥북이 M1 임을 깨달았다.. 항상 남들 다 되는데 몇시간 동안 씨름하다보면 M1은 다른 것들과 조금씩 설정이 다른 경우가 많았다. 그래서 M1 EC2 설정에 대해 알아봤고, 다음과 같은 공식문서를 발견했다.

Amazon EC2 M1 Mac 인스턴스 출시

공식문서를 끝까지 안보고 호다닥 인스턴스를 생성하려 했는데, 공식문서에서 선택하라는 mac2.metal 인스턴스는 어디에도 안보였다. 그러다 공식문서 아래에서 다음과 같은 한줄을 발견했다.

 

 


 

►해결

Bard
M1 Mac 인스턴스는 다른 운영 체제와 인스턴스 생성 시 AMI 등의 설정이 다릅니다. M1 Mac 인스턴스는 Apple Silicon 기반이기 때문에 x86-64 기반의 다른 운영 체제와 호환되지 않습니다. 따라서 M1 Mac 인스턴스를 생성하려면 macOS Big Sur 또는 macOS Monterey AMI를 사용해야 합니다. 또한 M1 Mac 인스턴스는 다른 운영 체제와 달리 인스턴스 생성 시 CPU, 메모리, 스토리지, 네트워크 등의 설정을 변경할 수 없습니다.

Mac M1은 ARM 아키텍처를 기반으로 하는 반면, 다른 운영 체제는 x86 아키텍처를 기반으로 합니다. 따라서 Mac M1 인스턴스를 생성하려면 ARM 아키텍처를 지원하는 AMI를 사용해야 합니다. 또한 Mac M1 인스턴스는 서울 리전에서 사용할 수 없습니다. 서울 리전은 x86 아키텍처만 지원합니다.

프로젝트 배포를 위한 EC2는 다른 백엔드 팀원분의 컴퓨터에서 실행했다 ! 🤪

 

 


 

►느낀점

노트북에 대한 이해가 필요하다고 느꼈고, 공식 문서를 읽는 버릇을 들여야겠다고 생각했다. 그리고 버지니아 북부가 한국하고 조금더 가깝다고 하는데, 한번 그쪽 리전으로 EC2를 생성해서 되는지 실행해봐야겠당.