-
AWS :: EC2에 접속하여 S3 조회하기 (SSH, WSL, AWS CLI)AWS 2021. 7. 6. 15:32728x90
0. SSH 란 ?
- SSH = Secure SHell, 즉 '보안 쉘'
- 원격 호스트 컴퓨터에 접속하기 위해 사용되는 인터넷 프로토콜
- 쉘을 통해 원격 접속을 하는 것이므로 기본적으로 CLI 환경에서 작업한다.
- 기본 포트는 22번이다.
- ssh 키(key)는 공개키(public key)와 개인키(private key)로 이루어진다.
- 개인키는 로컬 환경에 위치해야 하고, 공개키는 원격 환경에 위치해야 한다.
- ssh 접속을 시도하면 ssh Client가 두 키의 일치 여부를 확인한다.
1. EC2의 생성 및 WSL 환경 설정
- Amazon EC2 인스턴스를 한 개 생성한다.
- 별도의 조작 없이 default 설정을 유지하여 생성하여도 무방하다. (접속이 잘 되는지만 확인할 것이기 때문)
- 사용할 AMI(Amazon Machine Image)는 다음과 같다.
- 인스턴스 생성 마지막 단계 중, 새로운 키 페어(key pair)를 생성하고, 이에 대한 파일을 다운받아 저장해둔다. (기존의 키 페어가 없다는 가정 하에 진행)
- 본 작성자는 Window 운영체제에서 작업을 수행하였고, 리눅스 터미널 환경을 사용하기 위해 WSL을 설치하였다.
- putty를 사용하는 방법도 있지만, 본 게시물에서는 WSL만을 사용하는 것으로 한다.
- WSL을 설치하고, 사용할 계정을 생성한 후 "$ ls"를 통해 조회해보면 다음과 같다.
- mount를 통해, 로컬 PC와 WSL 환경 간 파일 공유를 수행한다.
- /mnt/~ 경로를 통해 위에서 저장한 키 페어(.pem) 파일을 WSL 환경으로 복사하여 가져온다.
- 이 때 복사하여 가져온 파일은 /home/user_id/.ssh 에 저장한다.
- .ssh 폴더가 없다면 생성한다. (mkdir .ssh)
2. pem 파일을 통해 Amazon EC2 접속
- putty가 아닌 WSL로 접속을 하는 것의 장점 중의 하나는, 별도의 키 조작 없이 생성한 키 그대로를 사용하여 접속이 가능하다는 점이라고 생각한다.
- 다음 명령어를 통해 EC2에 접속한다. (접속 전, EC2를 실행하고 퍼블릭 IPv4 DNS 주소를 복사해둔다.)
3. config 만들기
- 위와 같이 너무 길고 복잡한 명령어를 대신하여 config 파일을 만들어 좀 더 수월한 작업을 할 수 있다.
- 하나의 config 안에 여러 개의 접속 정보를 저장하면, 여러 개의 인스턴스 접속을 편리하게 할 수 있다.
- vi 편집기를 통해 config 파일을 연다. (경로 : /home/user_id/.ssh)
- config 파일 안에 다음과 같은 내용을 작성한다.
- connect-01 : 하나의 함수라고 생각한다면, 함수 명이라고 보면 된다. 이 이름을 통해 ssh에 접속하게 된다.
- HostName : public IPv4 DNS
- User : 사용자 명 (여기서는 ubuntu)
- IdentityFile : pem 파일 경로 (여기서는 /home/user_id/.ssh/)
- 위와 같은 config가 있다고 한다면, "$ ssh connect-01" 명령어를 통해 인스턴스(1)에 접속할 수 있고, "$ ssh connect-02" 명령어를 통해 다른 인스턴스(2)에 접속할 수 있다.
4. AWS CLI를 통해 S3 조회
- WSL을 통해, 임의로 생성한 EC2 인스턴스에 접근한 상황이다.
- 현재 아무런 패키지가 설치되지 않았으므로, AWS 공식 홈페이지의 안내와 같이 AWS CLI를 설치해준다.
- 설치 후 "$ aws --version"을 통해 설치가 완료되었는지 확인한다.
- "$ aws s3 ls"를 통해 인스턴스 내의 버킷을 조회할 수 있다.
728x90'AWS' 카테고리의 다른 글
AWS :: S3 데이터를 slack에 notify하기 (AWS Lambda) (0) 2021.07.08 AWS :: API Gateway를 통해 S3에 데이터 저장하기 (1/2) (1) 2021.07.07 AWS :: S3에서 S3로 데이터 복사하기 (0) 2021.07.06 AWS :: Well-Architected Framework (0) 2021.06.28 AWS :: Lightsail vs Elastic Beanstalk (0) 2021.06.28