0
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.

Tarraformを使ってAWSにWebサーバを構築 #6 ~Webサーバ用EC2を立ち上げる~

Last updated at Posted at 2023-07-03

目的

EC2にNginxがインストールされた状態を作り出し、ブラウザからデフォルトページが確認できることをゴールとする。
インフラ構築はTerraformでコード化することで再現性、再利用性、速度などが手作業に比べると高い。
GitHubリンク

手順

  1. TerraformからAWSリソースを操作できるように設定する
  2. Terraformをインストールする
  3. TerraformでEC2サーバを立ち上げてみる
  4. ネットワークを整える(VPC, サブネット, ルーティングテーブル,インターネットゲートウェイ)
  5. セキュリティグループ(ファイアウォール)を設定する
  6. Webサーバ用EC2を立ち上げる
  7. Webサーバが立ち上がる際にWebサーバソフトをインストールするように設定する

今回の到達点

Webサーバ用EC2を立ち上げる

Webサーバを立てる準備

  • ネットワークを構築する
  • ネットワークに許可する通信を設定する
  • EC2をプライベートネットワークに所属させて外部からアクセスできるようにする ←今回はここ!
  • EC2にWebサーバソフト(今回はNginx)をインストールする
Step1. キーペアを作成する

SSHでWebサーバにアクセスする際に必要なキーペアを作成しておく。
このキーペアをEC2をTerraformから作成する際に設定しておくことで、適切なキーペアを持つユーザのみがアクセスできるようにする(コマンド実行するとパスフレーズを求められるが何もしないでEnterがオススメ)。

$ ssh-keygen -t rsa -b 2048 -f kekkepy-keypair

以下2ファイルが作成される。

  • kekkepy-keypair(秘密鍵)
  • kekkepy-keypair.pub(公開鍵)

秘密鍵のファイル名を「kekkepy-keypair.pem」に変更する。
※ファイル内に全角や日本語があるとエラーとなるので除去しておく。

Step2. webserver.tfを作成

EC2インスタンスを作成するための設定を行う。
C:\Users[ユーザ名]\Documents\MyProject\terraform\webserver.tf

webserver.tf
# Key pair
resource "aws_key_pair" "keypair" {
  key_name   = "${var.project}-${var.environment}-keypair"
  public_key = file("./kekkepy-keypair.pub")

  tags = {
    Name    = "${var.project}-${var.environment}-web-sg"
    Project = "${var.project}"
    Env     = "${var.environment}"
  }
}

#Web server
resource "aws_instance" "web_server" {
  ami                         = "ami-0cfc97bf81f2eadc4"
  instance_type               = "t2.micro"
  subnet_id                   = aws_subnet.public-subnet.id
  associate_public_ip_address = true
  vpc_security_group_ids      = [aws_security_group.web_sg.id]
  key_name                    = aws_key_pair.keypair.key_name

  tags = {
    Name    = "${var.project}-${var.environment}-webserver"
    Project = "${var.project}"
    Env     = "${var.environment}"
    Type    = "app"
  }
}

image.png

0
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
0
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?