AWS

[AWS] Private EC2 Instance에 접속하기

hanrabong 2022. 3. 30. 23:21

 

 보통, 서버를 구축할 때 web service에 직접 접근하는 것을 막기 위해 private subnet에 위치시키곤 합니다. private subnet에 위치한 web server에 직접 접근하려면 어떻게 해야할까요?

 

 첫 번째로는 ssm을 사용하면 됩니다. ssm을 사용하면 키를 이용하지 않고 public instance에 접근 가능하고 private instance에도 접근 가능합니다. 대신에 aws cli와 ssm plugin등 설치해야 할게 많습니다. 또한 ssm-agent가 server에 깔려 있지 않으면 instance를 만들 때 user data로 ssm agent를 설치해야 합니다.

 

 두 번째는 pem key를 이용하면됩니다. public instance에 접근하기 위해서 key가 필요합니다. private instance에도 접근할 때 키가 필요한데 이 키를 public ec2 instance(bastion server)에 보내주어서 그 키를 이용하여 접속할 수 있습니다.

 

 

첫 번째 방법은 전에 썼던 글을 참고해 주세요

2021.08.18 - [AWS] - [AWS Session Manager] SSH 없이 Session manager로 EC2 instance에 접속 하기

 

[AWS Session Manager] SSH 없이 Session manager로 EC2 instance에 접속 하기

. AWS를 사용하면서 계속 key를 발급받고 key를 이용해서 ssh 접속을 해왔습니다. 오늘은 ssh 접속이 아닌 AWS 서비스 중 System manager의 Session Manager를 사용해서 EC2 instance에 접근을 해보겠습니다. 먼저..

hanrabong.com

 

 두 번째 방법은 간단합니다. scp 명령어를 사용하여 키를 보내주면 됩니다. scp에 대해서 간력히 설명하자면 scp는 Secure Copy Protocol의 줄임말로 네트워크 컴퓨터 간에 파일을 전송하는 프로토콜입니다. 원격으로 컴퓨터에 연결을 할 수 있는 ssh와 비슷합니다. 간략히 말하면 ssh를 통해 다른 컴퓨터에 원격으로 연결을 할 수 있고 scp를 이용해 다른 원격 컴퓨터에 파일을 전송할 수 있습니다. scp는 ssh 연결을 사용하여 파일을 전송하므로 ssh 포트와 같은 포트를 사용해야 합니다.

 

명령어는 다음과 같습니다. AWS에서 amazon-linux-2 AMI를 사용했다고 가정하겠습니다.

scp -i <보낼 서버 인증 키> -P <포트 번호> <보내고 싶은 파일> ec2-user@<ec2 instance ip>:~

ex)
scp -i ./Downloads/test.pem -P 22222 ./Downloads/test.pem ec2-user@1.2.3.4:~

 

 

public instace를 생성해서 해당 ec2에 키를 넘겨 보겠습니다.

 

 

 처음 EC2에 접속했을 때 키 파일이 없는걸 확인할 수 있습니다.

키 유무 확인

 

local에서 키 파일을 bastion server로 넘겨줍니다.

키를 넘겨주는 과정

 

 

 넘겨준 후에 확인해 보면 키가 서버로 옮겨진 것을 확인할 수 있습니다.

키 유무 확인

 

 

 

※ 혼자 공부하며 정리한 글이기에 틀린 부분이나 궁금한 점 댓글 달아주세요