AWS上でインスタンスを構築してwordpressを起動するまで

  • 0
    いいね
  • 0
    コメント

    About

    wordpressをAWS上で立ち上げてみました。

    利用技術

    • Terraform
    • Itamae

    ソースコードはこちらです https://github.com/tjinjin/wordpress-sandbox

    Terraform

    main.tf
    data "aws_ami" "centos" {
      most_recent = true
    
      filter {
        name   = "product-code"
        values = ["aw0evgkw8e5c1q413zgy5pjce"]
      }
    }
    
    resource "aws_instance" "wp" {
      ami                    = "${data.aws_ami.centos.id}"
      instance_type          = "t2.micro"
      key_name               = "tjinjin-terraform"
      vpc_security_group_ids = ["${aws_security_group.wp.id}"]
    
      root_block_device {
        delete_on_termination = "true"
      }
    
      tags {
        Name = "wordpress"
      }
    }
    
    resource "aws_security_group" "wp" {
      name        = "wordpress"
      description = "wordpress sg"
    
      ingress {
        from_port   = 22
        to_port     = 22
        protocol    = "tcp"
        cidr_blocks = ["${var.my_ipaddr}"]
      }
    
      ingress {
        from_port   = 80
        to_port     = 80
        protocol    = "tcp"
        cidr_blocks = ["${var.my_ipaddr}"]
      }
    
      egress {
        from_port   = 0
        to_port     = 0
        protocol    = "-1"
        cidr_blocks = ["0.0.0.0/0"]
      }
    
      tags {
        Name    = "wordpress"
        Created = "terraform"
      }
    }
    
    output "wordpress_ip" {
      value = "${aws_instance.wp.public_ip}"
    }
    

    AMIはcentosの公式のものを使用しています。product-codeはこちらのページから判断しました。 https://wiki.centos.org/Cloud/AWS

    Itamae

    一部プラグインを使いつつ、他は自分で書きました。もともとchefを使っている人間だったのでhttp_request というresource名を知らなかったため、苦労しましたw

    $ itamae ssh --host aws-wordpress roles/wp.rb 
    

    これをすれば適用できます。

    残作業

    ここまでくればあとはmysqlの設定とwordpress上での設定だけです。

    $ cat /var/log/mysqld.log | grep generate
    $ mysqladmin -u root password -p
    $ mysql -u root -p
    
    mysql> create database wordpress;
    mysql> grant all privileges on wordpress.* to wordpress@localhost identified by '<password>';
    

    あとは画面で設定をすれば一応起動するところまで到達できます。