brunch

You can make anything
by writing

C.S.Lewis

by 김길원 Feb 05. 2022

아직도 스마트폰으로 AWS 서버에 못 들어가신다고요?

스마트폰에서 AWS EC2 서버 접속 성공 -★

암호화폐 자동매매를 테스트하고 계속 지켜보는 요즘, 최근 프로그램이 엉뚱하게 매수 매도하는 일을 겪었다. 연휴 마지막 날 가족과 저녁 외식하고 있는 상황이었는데 슬랙으로 메시지가 도착했다. 프로그램이 도지 코인을 400만 원 넘게 매수했다는 알람이었다. 이렇게 많은 금액을 매수하도록 프로그래밍을 한 적이 없는데 왜...?라는 질문과 함께 코드 라인이나 계산이 무언가 잘못됐음을 직감했다. 


AWS EC2 가상 서버로 암호화폐 자동매매를 돌리고 있기 때문에 프로그램 코드는 24시간 돌아간다. 프로그램을 잠시 멈추고 싶었는데 주문한 음식이 이제 막 나오기 시작한 상황이었다. 당장 노트북도 없는 상황에서 프로그램을 끌 수 있는 방법이 없었다. 밥이 나와서 일단 먹긴 먹는데 '도지가 갑자기 폭락하면 어떡하지?' '요즘 계속 장도 출렁거리고...'라는 생각이 나를 감싸고 대화에 집중도 잘 안 되었다. 


'프로그램은 잘못이 없고 사실 내 코드에 무언가 문제가 있었겠지...' 부모님과 함께하는 식사 자리에서 어떤 부분이 문제였는지 혼자 생각하기 바빴다. 그렇게 연휴 마지막 날 저녁을 어정쩡하게 보냈다. 




암호화폐 자동매매 프로그램을 돌리는 테스트를 하고 있기 때문에 간혹 매수 매도가 잘못된 시점에선 프로그램을 꺼줘야 할 일이 생긴다. AWS로 24/7 돌리고 있는 상황이라 PC나 노트북으로 접속해서 프로그램을 멈추는 명령어를 직접 입력해줘야 끌 수 있다. 참고로 AWS는 스마트폰에서 크롬이나 인터넷으로는 접속이 불가하다. UI도 2010년으로 돌아온 것 마냥 불편하다.  


그날 밤 원격으로 AWS 접속 방법을 구글링을 하다가 ssh(secure shell)로 활용 방법을 알게 되었다. ssh는 원격으로 다른 컴퓨터나 가상 서버에 접속하는 방법이다. ssh로 접속하는 방법으로는 PC 접속이 가장 대표적이지만 나는 스마트폰으로 접속하고 싶었다. 스마트폰으로 접속하고자 하는 이유는 노트북이 없거나 와이파이가 없는 환경을 대비하기 위함이다. 스마트폰만 있다면 언제 어디서든 AWS 가상 환경에서 프로그램을 껐다 켰다 할 수 있다. 



문제 해결 방향은 알았지만 ssh 관련한 지식이 하나도 없는 나는 몇 시간째 구글링을 하며 컴퓨터 앞에서 시간을 보내고 있었다. 개발자나 프로그래밍을 업으로 삼으시는 분들께는 간단하고 쉬운 내용일지 모르겠으나 처음부터 파헤쳐야 하는 나는 리서치 한계에 봉착하였다. 스마트폰을 이용한 ssh 방법보다는 PC에서 Putty를 사용하는 방법이 가장 많았고, 그대로 따라 했는데 권한이 없거나 접속이 거부되기도 했다. 


그러다가 오늘 아침에 어제저녁에 잡은 실마리로 드디어 스마트폰으로 아마존 AWS 가상 환경에 접속에 성공했다. 전날 밤까지 풀리지 않는 문제는 다음 날 아침에 풀리는 것을 자주 경험하고 있다. 동일한 문제를 겪고 있을 누군가에게 이번 포스팅이 도움이 될 수 있도록 해결 방법을 공유한다. 



우선 스마트폰 ssh로 AWS에 접속하는 전반적인 흐름은 다음과 같다. 

1. 스마트폰 ssh 앱 접속

2. 스마트 폰에 AWS 키페어 다운로드

3. ssh 앱에서 AWS 키페어가 다운받아져 있는 폴더로 이동

4. 인터넷에서 AWS EC2에 접속

5. AWS 인스턴트 실행하고 ssh 클라이언트 접속 아이피 링크 복사

6. ssh 앱으로 돌아와서 링크 붙여 넣기 후 엔터

7. 접속 성공! 




스마트폰으로 접속하려면 안드로이드가 필요하다. 나는 갤럭시 S21을 사용했다. 구글 플레이스토어에서 ssh 접속을 위한 'Termux'를 다운로드한다. Termux는 리뷰 13만 개, 평점 4.6, 1000만 회 이상 다운로드를 기록하고 있다. 광고도 없고 UI도 깔끔하다. 



Termux에서 ssh를 사용하려면 3가지 기본적인 설치가 필요하다. 


$ pkg install openssh 

#ssh에 접속하기 위해 설치 


$ termux-setup-storage

#(중요)termux가 스마트폰 내장/외장 메모리에 접속할 수 있게 해 준다. 스마트폰에 다운로드한 AWS 키페어로 접속해야 하기 때문에 꼭 필요한 기능이다. 스마트폰에 액세스를 허용할 것이냐? 하는 물음엔 당연히 허용을 눌러주자. 


$ pkg install vim

#코드 수정이 필요하면 설치


설치가 끝나면 AWS에서 다운로드한 키페어(키페어는 생성 당시 딱 1회만 다운 가능하니 잘 보관해야 한다)를 스마트폰으로 옮겨주어야 한다. 키페어 생성 당시 다운로드한 키페어를 스마트폰에 넣어주자. 나는 개인 PC에 다운로드한 AWS 키페어를 PC 카카오톡으로 옮긴 후 스마트폰 카카오톡을 열어 다운로드하였다. 다운로드한 후 키페어(내 개인 키페어: upbit-AI.pem)의 저장 경로를 찾아 이동해야 한다. 


ssh로 AWS에 접속하려면 꼭! 키페어가 저장되어있는 위치에서 접속을 시도해야 한다. 'cd'와 'ls -al' 리눅스 명령어 사용해서 저장되어 있는 폴더까지 이동한다. 'cd'는 폴더로 이동하는 명령어이고 'ls -al' 명령어는 해당 폴더 안에 있는 파일 또는 폴더를 검색해주는 명령어이다. 두 가지를 적절히 사용하면서 키페어가 다운되어 있는 곳까지 도달하자. 나는 카카오톡으로 다운로드한 키페어를 넘겼기 때문에 저장 경로는 /storage/shared/KakaoTalkDownload/ 이다.  




여기까지 왔다면 ssh로 접속을 위한 준비는 모두 끝났다. PC로 AWS EC2에 접속해서 인스턴트 연결 탭으로 이동한다. 3번째 탭에 SSH 클라이언트를 클릭하면 맨 아래 ssh로 접속할 수 있는 링크가 나온다. 그대로 복사한다. 


ssh -i "*****" 부분을 복사하고 Termux 앱으로 다시 돌아온다. 키페어가 저장되어 있는 폴더 위치에서 복사한 내용을 붙여 넣는다. 다시 한번 강조하지만 꼭! 키페어가 저장되어 있는 폴더에서 ssh 접속을 시도해야 한다. 키페어가 없는 폴더에서 시도하면 Permission denied라고 문구가 뜨면서 접속이 거절된다. 


그럼 짜잔. 성공적으로 스마트폰에서 ssh를 사용하여 AWS EC2로 접속했다.



성공적으로 AWS EC2 가상 웹서버에 접속했다. 여기서부터는 PC에서 AWS를 사용하는 방법과 동일하다. 스마트폰이라 개발이나 코드 수정엔 불편함은 있지만 응급으로 대처할 이슈가 있다면 그때마다 언제 어디서든 대처할 수 있다는 것이 가장 큰 장점이다. 


요즘 AWS 가상 서버를 종종 이용하면서 참 편하다고 느낀다. 물론 공짜는 아니지만 이런 문명의 혜택을 왜 지금 알게 되었을까. 최근 들어서야 AWS를 아주 조금 활용할 줄 아는 입장이 되었지만 앞으로도 클라우드 비즈니스는 잘 될 수밖에 없다고 느낀다. 이번 아마존 실적 발표에도 AWS가 전년대비 40%가 넘는 매출을 기록했는데 아마존 주주로서 아주 흐뭇하다. 평생 같이 가요 아마존. 아름다운 밈으로 포스팅을 마칩니다. 




브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari