방금 아마존의 새로운 Elastic Beanstalk 제품에 가입했습니다. 내가 알 수없는 것은 Beanstalk 인스턴스에 SSH하는 방법입니다. Beanstalk가 대신 인스턴스를 생성했기 때문에 개인 키가 없습니다.
eb ssh
방금 아마존의 새로운 Elastic Beanstalk 제품에 가입했습니다. 내가 알 수없는 것은 Beanstalk 인스턴스에 SSH하는 방법입니다. Beanstalk가 대신 인스턴스를 생성했기 때문에 개인 키가 없습니다.
eb ssh
답변:
나는 그것이 2 단계 과정이라는 것을 알았습니다. 이는 관련 리전의 EC2 인스턴스에 액세스하기 위해 키 페어를 이미 설정했다고 가정합니다.
elasticbeanstalk-default
해당 리전에서 Elastic Beanstalk 인스턴스를 시작한 경우 보안 그룹 이 있어야합니다 .SSH 액세스 규칙을 추가하도록 보안 그룹을 편집하십시오. 아래는 특정 IP 주소에서 들어오는 것만 허용하도록 잠겨 있습니다.
SSH | tcp | 22 | 22 | 192.168.1.1/32
Existing Key Pair
필드 에서 키 페어 이름을 선택하십시오 . 인스턴스가 다시 시작되면 AWS 콘솔 EC2 인스턴스 탭 또는 API를 통해 호스트 이름을 가져와야합니다. 그런 다음 서버에 ssh 할 수 있어야합니다.
$ ssh -i path/to/keypair.pub ec2-user@ec2-an-ip-address.compute-1.amazonaws.com
참고 : 환경 구성에 키 페어를 추가하려면 Beanstalk가 현재 인스턴스를 종료하고 KeyPair로 새 인스턴스를 시작하려고하므로 인스턴스의 종료 방지 기능을 해제해야합니다.
참고 : 무언가가 작동하지 않으면 Beanstalk 애플리케이션 / 환경의 "이벤트"탭을 확인하고 무엇이 잘못되었는지 확인하십시오.
Elastic beanstalk CLI v3은 이제 명령으로 직접 SSH를 지원합니다 eb ssh
. 예 :
eb ssh your-environment-name
EC2 인스턴스 주소를 찾기 위해 보안 그룹을 설정해야하는 번거 로움이 없습니다.
이 멋진 트릭도 있습니다.
eb ssh --force
임시로 포트 22를 0.0.0.0으로 강제로 열고 exit
. 이것은 번거 로움없이 최고 답변의 이점을 약간 혼합 합니다 . 디버깅 이외의 다른 사람에게 일시적으로 권한을 부여 할 수 있습니다. 물론 공개 키를 호스트에 업로드하여 액세스 할 수 있어야합니다. 일단 그렇게하고 나면 eb ssh
다른 사람이 할 수 있습니다
ssh ec2-user@ec2-xx-xxx-xxx-xx.compute-1.amazonaws.com
eb ssh production
. 설정 옵션을 사용하여 특정 환경을 설정할 수도 있습니다.eb ssh production --setup
Linux 클라이언트 및 간단한 AWS Beanstalk 설치 (단일 EC2 인스턴스)에서의 2013 년 8 월의 경험은 다음과 같습니다 (위의 커뮤니티 Wiki 기반).
awsweb...
보안 그룹을 선택하면 세부 정보가 페이지 하단에 표시됩니다행운을 빕니다
나는 이것도 가지고 놀고있다.
서비스가 다시 시작되므로 5 분 동안 커피를 만드십시오.
같은 리전의 ec2 탭에 새로운 실행중인 인스턴스가 표시됩니다. ssh ec2-user@ec2-xx-xxx-xx-xxx.compute-1.amazonaws.com과 같이 3에 추가 된 키를 사용하여 ec2-user로 공개 dns 이름으로 ssh
위의 답변은 약간 낡았습니다.
먼저 키 페어를 생성 한 다음 Elastic Beanstalk 환경에 연결합니다.
키 페어를 만드는 단계
생성 된 키 페어를 Elastic Beanstalk 환경에 연결하는 단계
AWS-> 서비스-> Elastic Beanstalk
환경을 선택하고 왼쪽에서 구성을 클릭하십시오.
구성 개요에서 보안에서 수정을 선택하십시오.
가상 머신 권한에서 작성한 키 쌍을 선택하십시오.
저장을 클릭 한 다음 구성 저장을 클릭하십시오.
EC2 인스턴스에 반영하는 데 시간이 걸립니다.
탄력적 Bean 및 EB CLI를 사용 eb ssh
하는 경우 인스턴스에 로그인하는 데 사용하십시오 . 다음 링크 http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-ssh.html에 지정된 옵션을 사용할 수 있습니다.
퍼블릭 IP 주소를 사용하여 ec2 인스턴스에 직접 연결해야합니다. elasticbeanstalk URL을 사용하여 연결할 수 없습니다.
ec2 콘솔에서 인스턴스 IP 주소를 찾아서 찾을 수 있습니다.
또한 포트 22가 열려 있는지 확인해야합니다. 기본적으로 EB CLI는 ssh 연결이 완료된 후 포트 22를 닫습니다. ssh 세션이 완료된 후 eb ssh -o를 호출하여 포트를 열린 상태로 유지할 수 있습니다.
경고 : 탄력적 Beantalk는 언제든지 인스턴스를 대체 할 수 있음을 알아야합니다. 탄력적 Beantalk 인스턴스에서 상태가 보장되지는 않습니다. 수정하는 것은 언제든지 사라질 수 있으므로 테스트 및 디버깅 목적으로 만 ssh를 사용하는 것이 좋습니다.
현재 UI를 사용하여 ElasticBeanstalk ec2 인스턴스의 키 페어를 설정하는 방법은 다음과 같습니다. 경고 : ElasticBeanstalk 앱에서 EC2 인스턴스를 업데이트해야합니다. 참고 :이 작업을 수행하기 전에 EC2 대시 보드에서 키 페어를 생성해야합니다.
1) AWS Dashboard에서 ElasticBeanstalk 서비스를 선택합니다. 2) 사용하려는 애플리케이션을 선택합니다. 3) '구성'을 선택하십시오. 4) '인스턴스'구성 상자에서 기어 (설정) 아이콘을 선택하십시오. 5) 그러면 '서버'라는 제목의 페이지로 이동합니다. 여기서 'EC2 키 페어'드롭 다운 필드를 원하는 키 페어로 업데이트하고 '저장'을 선택하십시오.
주목해야 할 것은 여러 인스턴스가있는 응용 프로그램에서는 작동하지 않을 수 있다는 것입니다 (그러나 모두 키 쌍과 동일한 지역에있을 가능성이 높습니다).
프로비저닝 중에 Beanstalk가 생성하는 인스턴스에 키를 추가하는 방법을 찾기 위해 여기에 왔습니다 (우리는 Terraform을 사용하고 있습니다). Terraform에서 다음을 수행 할 수 있습니다.
resource "aws_elastic_beanstalk_environment" "your-beanstalk" {
...
setting {
namespace = "aws:autoscaling:launchconfiguration"
name = "EC2KeyName"
value = "${aws_key_pair.your-ssh-key.key_name}"
}
...
}
그런 다음 해당 키를 사용하여 상자에 SSH로 연결할 수 있습니다.
eb init
환경을 사용하여 CLI를 설정 한 경우 다음과 같이 간단해야합니다.
eb ssh --setup
새 키 페어를 만들거나 존재하는 경우 기존 키 페어를 사용할 수 있습니다.
eb use
내가 아직하지 않았지만 기존 환경에 연결할 수도 있습니다 .
CLI 설치에 대한 자세한 내용-https: //docs.aws.amazon.com/console/elasticbeanstalk/eb-cli-install
환경 구성에 따라 환경 용으로 생성 된 EC2 인스턴스에 퍼블릭 IP 주소가 없을 수 있습니다. 다음을 통해 확인할 수 있습니다.
마지막으로 새 EIP를 선택 하고 작업 메뉴에서 주소 연결을 선택하십시오 . 해당 IP를 EC2 인스턴스와 연결하십시오. 당신은을 사용하여 연결할 수 있어야합니다eb ssh
지금 .
을 실행하여 연결 세부 정보를 재설정 할 수 있습니다 eb ssh --setup
.
나는 또한 얼마 전에 같은 문제에 부딪쳤다. 키 파일을 사용하고 싶었지만 Amazon은 기존 EC2 서버에 키 파일을 추가 할 수 없다고 말합니다. 첫 번째 Beanstalk 애플리케이션의 경우 Amazon이 애플리케이션을 사전 구성합니다. 새 애플리케이션을 작성해야하며 Beanstalk 앱을 실행하는 EC2 서버를 구성하여 이전 pem 파일 (Putty를 사용하는 경우 PPK)을 사용하거나 새 애플리케이션을 작성할 수 있습니다. 이제 SSH 할 수 있어야합니다.
그런 다음 이전 앱을 구성하고 삭제하십시오.