AWS Session Manager로 VSC Remote-SSH 연동하기
이 문서는 Production Level에서 AWS Session Manager를 사용하는 사례에 관련된 문서입니다.
개요
AWS Session Manager의 단점 (VSC Remote-SSH)
RSA Public/Private Key System 구축하기
AWS Session Manager의 단점 (VSC Remote-SSH)
앞서 임의 상황에서 VPC 3-Tier Architecture와 Bastion Host가 연 228~457만₩/1y를 지불할 수 있고 이를 AWS Session Manager로 절감하는 방법을 배웠습니다.
하지만 해당 방법은 EC2 Instance에 SSH가 아닌 SSM을 사용합니다.
즉, VSC Remote-SSH를 사용해서 해당 서버에 접속하는 것이 불가능해집니다.
즉 VSC Extensions 중 하나인 VSC Remote-SSH를 사용할 수 없게 된다는 말입니다.
VSC Remote-SSH
VSC Remote-SSH 원격 탐색기
등록된 폴더들을 클릭하면 자동으로 SSH 연결이 완료됩니다.
VPC Interface Endpoint 생성하기
Private Resource에 접근하기 위해서 VPC Interface Endpoint를 사용할 수 있스빈다. 이 서비스는 개별 AZ에 대해서 0.01$의 사용료를 지불해야 합니다.
SLO(Service Level Object, 서비스 목표 수준)에 따라서
1~3 AZs는 약 12~36만₩/1y 정도의 비용이 지불될 것입니다.
이 비용은 역시 서비스의 수 & 운영망의 수와 비례하여 증가한다.
즉, 서비스 3개와 망 3개를 운영하는 순간 한달에 109~328만₩/1y 정도의 비용이 지불됩니다. 만약 팀이 세분화 되어 있다면 세분화된 갯수만큼 비례증가할 것입니다.
기존에 Bastion Host를 사용하는 것에 비해서 약 119~129만₩/1y 정도의 비용이 절감될 것입니다.
RSA Public/Private Key System 구축하기
비대칭 키 알고리즘인 RSA를 사용하여, EC2 Instance와 Local-PC를 연결할 수 있습니다.
RSA Key 생성하기
cat /dev/zero | ssh-keygen -q -N "" > /dev/null
Ec2 Instance에 접속키 등록하기
public_key=$(cat ~/.ssh/id_rsa.pub) public_key_register=$(cat<<EOF echo $public_key > /home/ubuntu.ssh/authorized_keys EOF ) aws ssm send-command \ --document-name "AWS-RunShellScript" \ --parameters commands="$public_key_register" \ --instance-ids id-123451234512345 \ --region ap-northeast-2
VSC Remote-SSH Config 파일 수정하기
Host i-123451234512345 IdentityFile ~\.ssh\id_rsa User ubuntu