![見出し画像](https://assets.st-note.com/production/uploads/images/64713571/rectangle_large_type_2_4b3790588850544ad2f00f9eaa8cea4c.jpeg?width=1200)
【105】【AWS】【Terraform】キーペアの設定
この記事を読むとキーペア設定について理解を深めることができます。
EC2インスタンスへの接続方法
AWSで仮想サーバーを構築しました。
どうやって接続するのでしょうか?
Macの場合、
SSH クライアント
EC2 Instance Connect
AWS Systems Manager Session Manager
この3つの選択肢がありますが、
SSHクライアントが一般的です。
必須の設定
AWSのインスタンスにSSH接続するためには、プライベートキーを見つけ、アクセス許可を設定する必要があります。
要するに公開鍵認証を行うわけです。
Terraformを使う場合は、ローカルの環境でキーペアをまず作成しましょう。
キーペアの作成や公開鍵認証についてはこの記事で。
これで公開鍵と秘密鍵を作成しました。
Terraform上に鍵の値を直接書くのは危険ですので、秘匿情報をターミナルで入力するようにします。
具体的には下記のコードを書きます。
variable "key_name" {
description = <<DESCRIPTION
your_key.pubを入力してください。
.pubがつく公開鍵の方です。
秘密鍵と間違えないように。
DESCRIPTION
}
variable "public_key" {
description = <<DESCRIPTION
cat ~/.ssh/your_key.pub
で出力された値を直打ちして下さい。
(パス名のみだと、私の環境ではエラーがでました。)
DESCRIPTION
}
作成したキーペアをterraformに設定しましょう。
resource "aws_key_pair" "auth" {
key_name = var.key_name
public_key = var.public_key
}
そして、設定したキーペアをインスタンスと関連付けます。
key_name = aws_key_pair.auth.id
過去の記事で作ったインスタンスに設定します。
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 3.27"
}
}
required_version = ">= 0.14.9"
}
provider "aws" {
profile = "default"
region = "ap-northeast-1"
}
resource "aws_instance" "app_server" {
// このamiはUbuntuです
ami = "ami-0df99b3a8349462c6"
instance_type = "t3.micro"
key_name = aws_key_pair.auth.id
associate_public_ip_address = true
subnet_id = aws_subnet.public.id
vpc_security_group_ids = [aws_security_group.docker_ubuntu.id]
tags = {
Name = "ExampleAppServerInstance"
}
}
resource "aws_key_pair" "auth" {
key_name = var.key_name
public_key = var.public_key
}
関連記事
参考文献
実践Terraform AWSにおけるシステム設計とベストプラクティス (技術の泉シリーズ(NextPublishing)) オンデマンド (ペーパーバック)
Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂3版
最後に
私がブログを書く目的は、素晴らしい本や、素晴らしい方々の技術記事を知って頂きたいからです。ぜひ、上記の参考文献を見て下さい。(noteなので広告とかは一切ありません。)
現在、株式会社grabssに行くために最後の悪あがきをしています!!
過去の活動
30日間でブログ記事を100件投稿しました。
トータルの投稿数
この記事は105件目の投稿です。
よろしければ、スキボタン及びサポートお願いします。勉強の励みになります。
この記事が気に入ったらサポートをしてみませんか?