Terrafom入門(EC2を作る)

Terraform by HashiCorpに入門した。後回しにし続けてきたのだけど、良いという話を聞いたので触ってみることにした。

環境

$ terraform -version
Terraform v0.13.5

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.14.6
BuildVersion:   18G4032

Terraform入門

Introduction - Terraform by HashiCorpを一通りやった。

Introductionを進める中で、一点だけ引っかかった。

$ terraform init
$ terraform fmt
$ terraform validate
$ terraform apply

Error: No valid credential sources found for AWS Provider.
        Please see https://terraform.io/docs/providers/aws/index.html for more information on
        providing credentials for the AWS Provider

以下のprofileの"default"が定義されていない。

provider "aws" {
  profile = "default"
  region  = "us-west-2"
}

profileの行を消すとAWS_PROFILEが使われる。再実行して問題なく動いた。

覚えるコマンドも少ないし、applyで変更点を示してくれるし、この時点でかなり良い雰囲気を感じた。

VPC-subnect-EC2を作る

VPC周りのネットワーク関係を設定して、EC2を起動してSSHしたい。これは基本の流れかなと思っている。

以下のリソースを作り、EC2にSSHできるようにする。

  • VPC 1つ
  • public subnet 1つ
  • その他ネットワーク関係(internet gateway, route table)
  • subnet内にEC2 1つ
  • EC2にはssh key pairを渡す
  • EC2にはpublic DNSホスト名を付与する

初学者でも分かりやすいサイトを見つけて、参考にさせてもらった。

完成!!

ほとんど写経みたいになったが、動くものになった。
Sample/terraform/vpc_subnet at master · eiKatou/Sample

eimbp:vpc_subnet $ terraform apply
(省略..)
aws_instance.main_ec2: Creation complete after 29s [id=i-0ef99236fc8311f0a]

Apply complete! Resources: 8 added, 0 changed, 0 destroyed.

Outputs:

main_ec2_public_dns = ec2-54-186-36-40.us-west-2.compute.amazonaws.com

eimbp:vpc_subnet $ ssh -i ./ec2-key-pair ec2-user@ec2-54-186-36-40.us-west-2.compute.amazonaws.com


       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/

Terraformの感想

思った以上に良い。使いこなしたら神になれると思った。 internet_god

投稿日 2020年11月28日