> [!date] published: 2022-12-09 제곧내... 인셉션 과제를 집에서 하고 싶은데 Virtual Box가 m1 맥에서는 안되는 관계로 다른 방법을 찾아야만 했다. UTM은 왜인지 잘 안되고 (첨써봐서 아무것도 모르겠어...) 로컬에 직접 도커를 깔자니 ... 별로 그러고 싶지가 않았다. 클러스터 가야하나 고민하던 중에 잠깐 인셉션 스터디했던 분이 AWS 인스턴스에서 환경 구축했다는 말씀을 하셨던게 기억나서 일단 해보자고 한 것이다. (사실 접속하는 방법을 모르겠어서 한참 헤맸는데 끝까지 안되었으면 주말에 털레털레 클러스터 갈뻔했다... 잘 되어서 다행이야) 별내용은 아닌데 따끈따끈 AWS 계정 처음 만든 기념 (아님) 새벽 4시까지 삽질한 기념으로다가 다시는 얼타지 않게 대강 정리해본다. ## 🌟 AWS EC2 아무것도 몰라서 "AWS 가상환경" 이렇게 검색했는데 AWS 인스턴스가 나왔다. 그래서 AWS 가입을 하고 "인스턴스"를 만드려고 찾았는데 EC2 인스턴스를 만들어주겠다고 했다. 대체... 뭐임 ### ✨ AWS Amazon Web Service. 아마존에서 제공하는 클라우드 컴퓨팅 서비스. 컴퓨팅 리소스를 직접 구매할 필요 없이 인터넷을 통해서 서비스로 사용할 수 있는 것이다. ### ✨ EC2 Amazon Elastic Compute Cloud. 이름에서도 유추할 수 있듯이 컴퓨팅 용량을 유연하게 클라우드에서 제공하는 서비스이다. 직접 해보지는 않았지만 요구사항에 맞게 이런저런 사양들을 변경할 수 있다는 것 같다. 생성하면서 느낀 건 약간 컨테이너와 비슷한 느낌? 이미지를 기반으로 해서 생성할 수 있었다. ### ✨ 인스턴스 만들기 적으려고 보니 인스턴스 만들기는 엄청 간단해서 정리하지 않아도 될 것 같다. 만들기 페이지에 들어가서 시키는대로 이름 설정, 기반 이미지 선택 (나는 과제를 위해 데비안을 선택함), 개인키 파일 이름 설정, 필요하다면 볼륨 설정 (나는 기본값을 설정함.) 까지 하고 나니 바로 인스턴스가 생성되어 접속할 수 있었다. ## 🌟 EC2 인스턴스에 접속하기 (feat. Vscode ssh) 무슨이유에서인지 root계정에서부터 EC2 인스턴스 연결이 안되었다. 처음에는 툴의 문제인 줄 알고 Vscode remote ssh 확장의 사용법을 열심히 찾았는데 알고보니 내가 그냥 매뉴얼을 덜 읽은 것이었다. RTFM 🥲 여전히 AWS 상에서 인스턴스 연결은 잘 안되지만 ssh 연결은 아래 방법대로 하니 잘 되었다. ### ✨ 기본 설정 인스턴스를 만들고 나서 받은 개인키 파일을 루트의 .ssh 폴더에 넣어준다. (사실 위치는 상관없다.) 권한을 400으로 준다. (매뉴얼에는 필요한 경우라고 되어 있었지만 사실상 필수다. 나는 이 권한 설정을 안해서 계속 문제가 발생했었다.) 여기까지만 하면 맥 터미널에서 ssh 명령을 사용해서 바로 접속이 가능했지만... 보다 편한 파일 수정을 위해 vscode 확장을 사용하기로 했다. ### ✨ Remote - ssh 사용해서 접속하기 Remote - ssh 설치하기 vscode에서 F1을 눌러 나오는 입력창에 `> open ssh configuration file` 을 입력해서 `~/.ssh/config` 설정 파일을 연다. ``` Host <호스트명> HostName <인스턴스의 퍼블릭 DNS> User <유저명 - 별다른 설정을 안했다면 admin> IdentityFile <개인키 파일의 경로> ``` 이렇게 설정해준다. 다시 F1을 눌러서 `> connect to host` 를 입력해주고 접속할 host명을 선택해주면 끝. 나는 이 과정에서 계속 `Permission denied (publickey)` 이런 에러가 났었는데 다양한 원인이 있겠지만 내 경우에는 키 파일의 권한이 644였기 때문이었다........ 권한이 너무 많아서 에러가 난다니! 바로 400으로 바꾸어주니 접속이 되었다. ## 🌟 끝 적고나니까 이걸 왜 적었지? 싶긴 한데 분명 나중에 또 하려면 헤매고 있을테니까...