Amazonの新しいElastic Beanstalk製品にサインアップしました。私が理解できないのは、BeanstalkインスタンスにSSHで接続する方法です。 Beanstalkが代わりにインスタンスを生成したため、秘密キーはありません。
2段階のプロセスであることがわかりました。これは、関連するリージョンのEC2インスタンスにアクセスするためのキーペアをすでに設定していることを前提としています。
elasticbeanstalk-default
セキュリティグループが必要です。セキュリティグループを編集して、SSHアクセスのルールを追加します。以下は、特定のIPアドレスからの進入のみを許可するためにロックダウンします。
SSH | tcp | 22 | 22 | 192.168.1.1/32
Existing Key Pair
]フィールドでキーペアの名前を選択します。インスタンスが再起動したら、AWS Console EC2インスタンスタブから、またはAPI経由でホスト名を取得する必要があります。その後、サーバーにSSH接続できるはずです。
$ ssh -i path/to/keypair.pub [email protected]
注:キーペアを環境設定に追加するには、Beanstalkが現在のインスタンスを終了し、KeyPairで新しいインスタンスを開始しようとするため、インスタンスの終了保護をオフにする必要があります。
注:何かが機能しない場合は、Beanstalkアプリケーション/環境の[イベント]タブを確認し、何が問題だったかを調べてください。
Elastic beanstalk CLI v3は、コマンドeb ssh
を使用した直接SSHをサポートするようになりました。例えば。
eb ssh your-environment-name
EC2インスタンスのアドレスを見つけるというセキュリティグループを設定する面倒な作業は必要ありません。
このクールなトリックもあります:
eb ssh --force
これにより、ポート22が一時的に0.0.0.0に開かれ、exit
になるまで開いたままになります。これにより、手間をかけずに、トップアンサーの利点がビットとブレンドされます。デバッグなどのために、自分以外のユーザーに一時的にアクセスを許可できます。もちろん、彼らがアクセスできるようにするには、ホストに公開鍵をアップロードする必要があります。それをしたら(そしてeb ssh
の中にいる限り)、他の人は
ssh [email protected]
Linuxクライアントと単純なAWS Beanstalkインストール(単一EC2インスタンス)での2013年8月の私の経験は次のとおりです(上記のコミュニティWikiに基づく)
awsweb...
セキュリティグループを選択すると、ページの下部に詳細が表示されますがんばろう
EC2インスタンスの[インスタンスアクション]メニューには、便利な[接続]オプションがあります。インスタンスの正しいURLで実行するための正確なSSHコマンドを提供します。 Jableyの全体的な指示は正しいです。
私もこれで遊んでいます。
サービスが再開されるので、5分間コーヒーを入れます
同じリージョンのec2タブに、実行中の新しいインスタンスが表示されます。 3で追加されたキーを使用して、ec2-userとしてパブリックDNS名にssh ssh [email protected]
上記の答えは少し古いです。
最初にキーペアを作成し、それを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を使用して接続することはできません。
インスタンスのIPアドレスは、ec2コンソールで検索して見つけることができます。
また、ポート22が開いていることを確認する必要があります。デフォルトでは、ssh接続が完了すると、EB CLIはポート22を閉じます。 sshセッションの完了後、eb ssh -oを呼び出してポートを開いたままにすることができます。
警告:Elastic Beanstalkはいつでもインスタンスを置き換えることができることを知っておく必要があります。状態は、どのElastic Beantalkインスタンスでも保証されません。変更したものはいつでも消える可能性があるため、テストとデバッグの目的にのみsshを使用することをお勧めします。
現在のUIでElasticBeanstalk ec2インスタンスのキーペアを設定する方向は次のとおりです。警告:これには、ElasticBeanstalkアプリのEC2インスタンスの更新が必要です。注:これに先立って、EC2ダッシュボードでキーペアを作成しておく必要があります。
1)AWSダッシュボードで、ElasticBeanstalkサービスを選択します2)使用するアプリケーションを選択します。 3)[構成]を選択します4)[インスタンス]構成ボックスで歯車(設定)アイコンを選択します。 5)これにより、「サーバー」というタイトルのページが表示されます。ここで、「EC2キーペア」ドロップダウンフィールドを目的のキーペアで更新し、「保存」を選択できます。
注意すべきことの1つは、これが複数のインスタンスを持つアプリケーションでは機能しない可能性があることです(ただし、それらがすべてキーペアと同じリージョンにある場合は、おそらくそうだと思います)。
プロビジョニング中に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で接続できます。
環境設定によっては、環境用に作成されたEC2インスタンスにパブリックIPアドレスがない場合があります。次の方法で確認できます。
最後に、新しいEIPを選択して、アクションメニューからAssociate addressを選択します。そのIPをEC2インスタンスに関連付けます。これで、eb ssh
を使用して接続できるはずです。
eb ssh --setup
を実行して、接続の詳細をリセットできます。