iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 16
0
Cloud Native

AWS高手同事離職後不止30天系列 第 16

一大堆機器,到底哪一台是哪一台 @@ > SSH II

  • 分享至 

  • xImage
  •  

三、用Terraform建立EC2 with Key Pair and Open SSH Connect

小編之前用Terraform建立的EC2,因為都沒有任何額外設定。剛好利用這個機會…透過設定Terraform方式…來把key Pair加上去,再「對外開放SSH連線」,看看中間Plan Apply的過程,來進一步熟悉Terraform的使用。

sample.tf

    provider "aws" {
      region     = "ap-northeast-1"
    }

    terraform {
      backend "s3" {
        bucket = "bright-terraform-backend"
        key    = "terraform.tfstate"
        region = "ap-northeast-1"
      }
    }

    resource "aws_instance" "example" {
      ami           = "ami-0689a2637ab83e607"
      instance_type = "t2.micro"
      key_name      = "bright_key"
      vpc_security_group_ids = [
        "${aws_security_group.bastion_from_bright.id}"
      ]
    }
    
    resource "aws_security_group" "bastion_from_bright" {
      name        = "bastion_from_bright"
      description = "ssh demo"

      ingress {
        from_port   = 22
        to_port     = 22
        protocol    = "tcp"
        cidr_blocks = ["61.xxx.xxx.xxx/32"]
      }

      egress {
        from_port       = 0
        to_port         = 0
        protocol        = "-1"
        cidr_blocks     = ["0.0.0.0/0"]
      }
    }

如果邦友有跟著系列文章(Terraform Backends說明)走的話…以上範例異動區塊分別是

  • resource "aws_instance" "example" {...}

    • aws_instance
      Terraform Doc
    • key_name="bright_key"
      就是前一天小編用AWS EC2 Console建立的Key Pair名稱。
    • vpc_security_group_ids=["${aws_security_group.bastion_from_bright.id}"]
      這邊是用「插值」的語法(Interpolation Syntax)讓你可參考下面aws_security_group的資源,可是你可能會發現…下面的區塊並沒有id(id),簡單說,就是當資源建立的時候被輸出的「資源屬性」。Terraform中資源相依有分成隱性/顯性,而插值的語法,就是隱性的。所以Terraform可以因此知道resource "aws_security_group" "bastion_from_bright"需要「先建立」,而resource "aws_instance" "example"就可以取得它的「資源屬性」(還有更多細節在官網喲…)
  • resource "aws_security_group" "bastion_from_bright" {...}

    AWS Security Group文件:是一種虛擬的防火體,用來控制instance的封包走向(從哪裡來,往哪裡去)。

執行計畫:terraform apply

小編目前用的Terraform版本是v0.11.10,所以可以直接apply,它最後會提示你是否要執行(yes),另外要說明的是,因為Key Pair需在啟動instance時加上去,所以執行該計劃時,instance會重新建一個新的…輸出的細節很多,就自己探索吧。


待續…


上一篇
一大堆機器,到底哪一台是哪一台 @@ > SSH I
下一篇
一大堆機器,到底哪一台是哪一台 @@ > SSH III
系列文
AWS高手同事離職後不止30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言