Amazon ECS 최적화 AMI 에서 EC2 인스턴스 연결 엔드포인트 사용하기
Failed to connect to your instance
Error establishing SSH connection to your instance. Try again later.
ECS 클러스터의 EC2 용량 공급자를 통해 오토스케일링 그룹(ASG)으로 프라이빗 서브넷에 실행된 EC2 인스턴스에 EC2 Instance Connect 엔드포인트를 사용하여 연결에 실패했습니다. AWS 문서에 따르면, Amazon ECS-optimized Linux AMIs는 ec2-instance-connect 설치가 가능하며 최신 Amazon Linux 버전에는 기본적으로 포함하고 있다고 나와있지만 Amazon ECS‐optimized AMI(al2023-ami-ecs-hvm-2023.0.20241031-kernel-6.1-arm64)에서 기본적으로 설치된 패키지가 아닙니다.
$ yum list installed | grep ec2
amazon-ec2-net-utils.noarch 2.5.1-1.amzn2023.0.1 @System
cloud-init-cfg-ec2.noarch 22.2.2-1.amzn2023.1.12 @System
dracut-config-ec2.noarch 3.0-4.amzn2023.0.2 @System
ec2-utils.noarch 2.2.0-1.amzn2023.0.1 @System
grub2-efi-aa64-ec2.aarch64 1:2.06-61.amzn2023.0.12 @System
$ sudo dnf install ec2-instance-connect -y
$ sudo cat /etc/ssh/sshd_config | grep AuthorizedKeysCommand
AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f
AuthorizedKeysCommandUser ec2-instance-connect
$ sudo dnf --releasever=latest update -y
Amazon ECS Optimized AMI의 사용자 데이터로 ec2-instance-connect 패키지 설치하기
ECS 클러스터의 오토스케일링 그룹에서 EC2 인스턴스를 실행할 때 사용하는 시작 템플릿의 사용자 데이터 스크립트로 EC2 Instance Connect 엔드포인트 연결을 위한 패키지를 설치할 수 있습니다.
$ sudo dnf list installed | grep ec2
amazon-ec2-net-utils.noarch 2.5.1-1.amzn2023.0.1 @System
cloud-init-cfg-ec2.noarch 22.2.2-1.amzn2023.1.12 @System
dracut-config-ec2.noarch 3.0-4.amzn2023.0.2 @System
ec2-instance-connect.noarch 1.1-19.amzn2023 @amazonlinux
ec2-instance-connect-selinux.noarch 1.1-19.amzn2023 @amazonlinux
ec2-utils.noarch 2.2.0-1.amzn2023.0.1 @System
grub2-efi-aa64-ec2.aarch64 1:2.06-61.amzn2023.0.12 @System