보통, 서버를 구축할 때 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에 접속 하기
두 번째 방법은 간단합니다. 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로 넘겨줍니다.
넘겨준 후에 확인해 보면 키가 서버로 옮겨진 것을 확인할 수 있습니다.
※ 혼자 공부하며 정리한 글이기에 틀린 부분이나 궁금한 점 댓글 달아주세요
'AWS' 카테고리의 다른 글
[AWS] password를 이용하여 ec2 instance에 접속 (0) | 2022.04.03 |
---|---|
[AWS] Route53 Private DNS로 ALB와 연동하기 (0) | 2022.03.24 |
[AWS] EC2에 Apache Tomcat 설치하기 (0) | 2022.03.23 |
[AWS] EC2 ssh port 변경하기 (2) | 2022.01.19 |
[AWS] Public Subnet, Private Subnet, ALB, ASG 를 이용한 서버 아키텍쳐 구축(2) - AutoScaling Group 만들기 (0) | 2022.01.15 |