Terraform でキーペア登録し起動した EC2 に SSH接続
今回やること
- Mac ローカルで公開鍵、秘密鍵を生成
- Terraform で EC2 起動、セキュリティグループで SSH (ポート 22)許可、key-pair 登録
Terraform の Hello World 的なチュートリアルと思っていただけたら幸いです。
環境
- Mac OS 10.12.3 (Sierra)
- Terraform 0.9.1
公開鍵、秘密鍵生成
RSA フォーマットで鍵を生成します。
1 | $ ssh-keygen -t rsa |
公開鍵を起動した EC2 インスタンスに登録し
秘密鍵でアクセスします。
以下のように利用する予定です。
1 | $ ssh -i ~/.ssh/terraform-test <ec2 user>@<ec2 public ip> |
Terraform 設定ファイル
Point !
resource "aws_key_pair"
で使用する公開鍵設定をしています。resource "aws_security_group"
で SSH(ポート 22)を開いてます。resource "aws_instance"
で使用しているセキュリティグループの指定はvpc_security_group_ids
を利用- セキュリティグループの条件追加・削除する場合にインスタンスを一度削除し作り直すことをしたくない場合に vpc_security_group_ids を利用すると良いです。
main.tf
1 | provider "aws" { |
- variables.tf
1 | variable "access_key" {} |
- terraform.tfvars
1 | access_key = "A******************Q" |
いざ実行
- 実行計画確認
1 | $ terraform plan |
- 実行
1 | $ terraform apply |
確認
AWS コンソール上で起動確認
- キーペアに terraform-test が指定されています。
- vpc, subnet も自動的にアタッチされてます。
- キーペア
一応キーペアを見てみると登録されているのがわかります。
- セキュリティグループ確認
- SSH ログイン確認
1 | $ ssh -i ~/.ssh/terraform-test ubuntu@ec2-54-65-244-25.ap-northeast-1.compute.amazonaws.com |
無事 SSH ログインできました!
所感
terraform を見ながら各パラメータの利用意図を確認しながら
設定してみましたが
パラメータの説明自体はざっくりで利用方法まではわからないです。
Teffaform のチュートリアルに始まり
その他 Stack Overflow で
適宜パターンを蓄積していく学習が程よいと思います。
参考
Terraformで立てたEC2に後からSGを追加しようとするとEC2が再作成される - tjinjin's blog
About 初回に立てた時はSGが1つだったが、あとからSGを追加したくなったときどうなるか試した結果です。
Terraform でキーペア登録し起動した EC2 に SSH接続
https://kenzo0107.github.io/2017/03/26/2017-03-27-create-keypair-by-terraform/