일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- terraform
- elasticsearch
- POD
- EC2
- IAC
- ansible
- AWS
- leetcode
- WSGI
- YAML
- Deployment
- dockerfile
- kernel
- IAM
- asgi
- asyncio
- EKS
- Python
- event loop
- ebs
- docker
- Django
- github
- Kubernetes
- 자바스크립트
- K8S
- FastAPI
- intervals
- Service
- 쿠버네티스
- Today
- Total
궁금한게 많은 개발자 노트
[ AWS ] EC2 instance connect with SSH 본문
Cloud위에서 동작하는 Server에 접속하는 방법으로는 SSH(Secure Shell)을 사용할 수 있습니다.
컴퓨터에 설치된 OS에 따라 다른 방법으로 SSH를 통해 접속할 수 있습니다. 일반적으로 Mac, Linux, Windows 10버전 이상에서는 SSH가 사용가능하며, Windows 10버전 이하에서는 putty를 사용합니다.
AWS 웹상에서 EC2 Instance Connect를 사용할 수도 있습니다. (모든 OS에서 사용 가능)
SSH 접속은 EC2 instance의 Security Group의 inbound rule을 SSH접속이 가능하도록 설정해야 합니다.
ex) Inbound rule Type:SSH, Protocol:TCP, Port range:22, Source: Anywhere IPv4
Linux/Mac OS SSH 사용 방법:
EC2 Machine위에서 Amazon Linux 2를 동작시켜줍니다. 여기에 접근하기 위해서는 Security Group의 설정이 필요합니다.
EC2 instance의 public IPv4 IP를 통해 SSH접속이 가능합니다. (Security Group에서 허용된 port를 사용합니다)
$ ssh -i key-pair.pem ec2-user@IP address[ec2 instance public IPv4]
Amazon Linux 2 AMI(Amazon Machine Image)에서 EC2 instance에 접속할 수 있는 user를 ec2-user로 설정해두었기 때문에 ssh접속 시에 username은 ec2-user입니다. 또한 ssh접속을 위해서는 .pem 파일이 필요합니다.
.pem파일은 EC2생성 시에 생성한 키 페어인데, 생성하지 않았다면,
생성되어 있는 EC2설정에서 키 페어 설정이 가능합니다. (.pem은 openSSH에서 사용, .ppk는 putty에서 사용)
SSH Troubleshooting
1. Timeout발생 시 거의 모든 경우에 Security Group을 확인하면 해결할 수 있음 (잘 설정 되어 있다면 방화벽 확인)
2. Connection Refused시 instance image가 Amazon LInux 2인지 확인, 키페어 확인
EC2 instance Connet
AWS 웹상에서 SSH를 사용하여 EC2 instance에 쉽게 접근할 수 있습니다. EC2 tab -> Connect를 통해 접근 가능
이 방법을 이용하면 키페어를 다운받거나 업로드해서 접속할 필요가 없습니다. 웹상에서 SSH접속을 위해 해당 EC2 instance를 위한 키페어를 자동으로 입력해줍니다. 웹에서 바로 접근이 가능하여 쉽게 확인할 수 있는 장점이 있습니다.
SSH로 접근한 EC2 instance내에서 aws cli를 사용할 수도 있습니다. 하지만 instance내부에서 절때 aws configure를 통해 IAM Access Key나 Screte Acess Key등의 개인 정보를 입력하면 안됩니다. 다음에 다른 사용자에 의해 instance가 접속되고 해당 정보들이 얻어질 수 있기 때문입니다.
그래서 이때 우리는 IAM Role을 사용할 수 있습니다. EC2 Instance에 IAM Role을 설정함으로써, EC2 instance에서의 권한을 부여받을 수 있습니다. 즉, aws configure를 통해 개인 정보를 입력하지 않더라도 IAM Role에 의해 권한을 부여 받을 수 있습니다. 이 방법을 통해서만 credentials를 instance로 전달하는 것이 안전합니다.
'DevOps' 카테고리의 다른 글
[ AWS ] EC2 Instance Storage Section (0) | 2022.12.08 |
---|---|
[ AWS ] EC2 instance Purchasing Options (0) | 2022.12.08 |
[ AWS ] EC2 Security Groups (0) | 2022.10.12 |
[ AWS ] EC2 Instance basic (0) | 2022.10.09 |
[ AWS ] IAM Permissions (0) | 2022.10.07 |