클라우드/AWS

[AWS] EC2 Instance Connect 환경 구축하고 private instance에 연결하기

팽팽 2023. 8. 9. 19:34

- ec2 instance connect는 새로나온 서비스

- 기존의 bastion host를 통해서 private instance에 접근하자 얺고 엔드포인트를 통해 접근하는 방식임

- 기본적으로 private subnet에 엔드포인트를 생성해두면, 테스트서버에서 ssh 연결하면 엔드포인트로 접속하게됨

- 돈이 별로 나오지 않아서 앞으로 많이 쓰이게 될 것 !

 

 

1. VPC/Subnet 구성

VPC와 EIC를 배치할 서브넷과 접속해볼 인스턴스를 생성할 서브넷 두개의 서브넷이 필요함

 

2. EC2 instance connect endpoint 생성

Private subnet에 생성하자, 보안그룹으로는 ssh에 대해서만 열어주었음

 

3. private 서브넷에 있는 인스턴스 생성

- 보안그룹 EIC 엔드포인트에 대해서만 열어줌

==> EC2 Instance Connect는 다음 AMI에 사전 설치됨
       – Amazon Linux 2 2.0.20190618 이상
       – 우분투 20.04 이상

 

4. IAM 권한 주기

- 사용자에게 ec2인스턴스연결을 할 수 있는 권한을 줬음

{
    "Version": "2012-10-17",
    "Statement": [

        {
            "Sid": "EC2InstanceConnect",
            "Effect": "Allow",
            "Action": [
                "ec2-instance-connect:*"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

4. private instance -> 연결

앤드포인트에 연결하면 따로 bastion host두지 않아도 바로 프라이빗 인스턴스에 연결됨

 

 

터널링해서 연결해보자

다른 vpc의 public subnet에 있는 access-server 하나 만들고, 이 Ubuntu 서버에 접속해서 private한 서버로 접근해보자

그러기 전에...... 많은걸 해줘야했음

- aws-cli version 

 

AWS Cli 버전 2 설치

Linux에서 AWS CLI 버전 2를 설치하는 방법에 관해 알아보겠습니다. Prerequisites 운영 체제에 기본 제공 unzip 명령이 없는 경우 unzip 설치 포스트를 참고하여 설치합니다. 설치하기 명령줄에서 다음 단

jjnomad.tistory.com

- key값 권한 주기...

- 자꾸 Permission Denied(public key) 뜨길래 sudo vim /etc/ssh/sshd_config 들어가서 권한 수정도 해줌 -> 개짜증낫음

PermitRootLogin prohibit-password -> PermitRootLogin yes
PasswordAuthentication no -> PasswordAuthentication yes

sudo /etc/init.d/ssh restart

 

 

5.  터널링 연결

- 테스트 서버에서 대상 프라이빗 서버로 연결해보기

ssh ubuntu@인스턴스아이디 -i new-key.pem -o ProxyCommand='aws ec2-instance-connect open-tunnel --instance-id 인스턴스 아이디'

 

 

ㅠ,ㅠ

 

 

https://blog.nuricloud.com/aws-with-no-eip-ssh-connect-using-ec2-instance-connect-endpoint/

 

[AWS] 공인IP 없이 SSH접속 방법 – EC2 인스턴스 커넥트 엔드포인트 사용 | 누리클라우드 뉴스룸

 

blog.nuricloud.com