1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

TerraformでEC2を作成する時キーペアってどうするの?

Last updated at Posted at 2023-06-11

TerraformでEC2インスタンスを作成する際のSSH鍵の取り扱い方法についてまとめていきます。

自己紹介

  • 都内のDevOps系の企業でエンジニアをやっています。
  • 主にAWSとTerraformを扱っております。
  • フルリモートで勤務しております。
  • 大阪在住、年齢は27歳、趣味は古着屋巡りと映画鑑賞です。

本記事の内容

  • 手順1
    • マネジメントコンソール上でキーペアを作成し、それを使用する方法
  • 手順2
    • ローカルで公開鍵と秘密鍵を生成し、それを使用する方法

VPC

VPCの設定は以下を使用していきます。

スクリーンショット 2023-06-07 22.54.47.png

キーペアの作成[手順1]

マネジメントコンソールから[EC2]>[キーペア]>[キーペアを生成する]を押下してキーペア作成ページに遷移します。

スクリーンショット 2023-06-07 22.50.23.png

[キーペアを生成]を押すと自動的にローカルへの保存画面が表示されるので適切な場所に保存します。
~/.sshディレクトリに保存するのが一般的です。

EC2インスタンスの作成

main.tf

# --------------------------------
# EC2の作成
# --------------------------------
resource "aws_instance" "ssh-key-test-ec2" {
  ami                         = "ami-03dceaabddff8067e" #amazon linux2
  instance_type               = "t2.micro"
  subnet_id                   = aws_subnet.public-subnet-01.id
  vpc_security_group_ids      = [aws_security_group.vpc-01-ec2-sg.id]
  associate_public_ip_address = true
  key_name                    = "terraform_keypair"
  tags = {
    "Name" = "ssh-key-test-ec2"
  }
}

terraform applyします。

接続確認してみます。

スクリーンショット 2023-06-11 11.34.57.png

成功しました。

こちらは簡単でしたね。

流れとしては

  • マネジメントコンソールでキーペアを作成
  • ローカルに秘密鍵を保存
  • そのキーでアクセス
    でした。

SSH鍵の生成[手順2]

上記の記事を参考に実際にやっていきます。

ターミナルでコマンドでSSH鍵を作成

スクリーンショット 2023-06-11 11.47.39.png

公開鍵と秘密鍵が生成されたことが確認できました。

main.tf

# --------------------------------
# キーペアの作成
# --------------------------------
resource "aws_key_pair" "keypair" {
  key_name   = var.key_name # キー名
  public_key = var.public_key_path # ローカル上のキーペアのファイルパス
}
# --------------------------------
# EC2の作成
# --------------------------------
resource "aws_instance" "ssh-key-test-ec2" {
  ami                         = "ami-03dceaabddff8067e"
  instance_type               = "t2.micro"
  subnet_id                   = aws_subnet.public-subnet-01.id
  vpc_security_group_ids      = [aws_security_group.vpc-01-ec2-sg.id]
  associate_public_ip_address = true
  key_name                    = var.key_name
  tags = {
    "Name" = "ssh-key-test-ec2"
  }
}

キーペアのリソースを別途作成する必要あります。

terraform applyします。

接続確認できました。

スクリーンショット 2023-06-11 12.40.50.png

ちゃんとキーペアの作成も確認できました。
スクリーンショット 2023-06-11 12.39.56.png

SSH鍵をを使用する方法難しいと思いましたがこちらもそこまで難しくありませんでした。

今日はここまで。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?