結論
1.キーペアを作成する
2.key_nameで指定する
3.githubにpushしてTerraformCloudでapplyしてインスタンス起動
4.sshで接続する
4ステップで終わりか!余裕だね!
経緯
今までEC2インスタンス起動する時ってキーペアを新規作成していて、都度秘密鍵をダウンロードしていた。
TerraformCloudで実行しているからローカルに出力とかできないしどうすんだ?と思ったのがきっかけ。そういえばキーペアって一回も使ったことがなかった。
1.キーペアを作成する
EC2 > キーペア からキーペアの作成
今回はwindowsでteratermから接続する予定なのでRSAの.pem形式を選択
名前は「tfc_key」、秘密鍵はローカルで保管。
2.key_nameで指定する
key_nameのところにキーペアの名前を入れてあげる
provider "aws" {
region = "us-east-1"
}
resource "aws_instance" "example" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
key_name = "tfc_key"
tags = {
Name = "ExampleInstance"
}
}
3.githubにpushしてTerraformCloudでapplyしてインスタンス起動
ここはまた別の記事で詳細まとめようと思います。
とりあえずTerraform Cloud上でapplyしたらインスタンスが起動された。
4.sshで接続する
teratermからパブリックIPv4アドレスを入力してsshで接続。余裕でした。
今回AMIはAmazonLinux2023で起動した。デフォルトユーザー名はec2-userらしいので、それを入力して秘密鍵選択して接続できない!!!なんで!??
5.なんか色々設定を見直す
もちろんTerraformではEC2以外(VPCとか)も作成しているのでその設定を確認したり、起動したEC2インスタンスのキーペアを確認してちゃんと紐付けられているかなどなど、、、
6.「teraterm」「AmazonLinux2023」「繋がらない」
全然Terraform関係ないところで問題がありました
参考にさせていただきました↓
teratermのバージョンによってはAmazonLinux2023に接続できない(ssh-rsaシグネチャ無効化に引っかかる)らしい。使っているteratermのバージョンは4.106、アウト!
Terraformに関する記事じゃないんですか?
新しいことを始めて上手くいかない時、まず疑うのは全く自信がない新しく学び始めた範囲になるのは仕方ない。灯台下暗しを教訓とした備忘録。