module-demo

This commit is contained in:
Edward Viaene
2018-06-20 12:39:48 +00:00
parent 6824a885ad
commit ec721b75bd
7 changed files with 112 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
#!/bin/bash
REGION="eu-west-1"
`AWS_PROFILE=ward aws ecr get-login --no-include-email --region ${REGION}`
+49
View File
@@ -0,0 +1,49 @@
data "aws_caller_identity" "current" {}
module "my-ecs" {
source = "github.com/in4it/terraform-modules//modules/ecs-cluster?ref=v1.0.0"
VPC_ID = "${module.vpc.vpc_id}"
CLUSTER_NAME = "my-ecs"
INSTANCE_TYPE = "t2.small"
SSH_KEY_NAME = "${aws_key_pair.mykeypair.key_name}"
VPC_SUBNETS = "${join(",", module.vpc.public_subnets)}"
ENABLE_SSH = true
SSH_SG = "${aws_security_group.allow-ssh.id}"
LOG_GROUP = "my-log-group"
AWS_ACCOUNT_ID = "${data.aws_caller_identity.current.account_id}"
AWS_REGION = "${var.AWS_REGION}"
}
module "my-service" {
source = "github.com/in4it/terraform-modules//modules/ecs-service?ref=v1.0.0"
VPC_ID = "${module.vpc.vpc_id}"
APPLICATION_NAME = "my-service"
APPLICATION_PORT = "80"
APPLICATION_VERSION = "latest"
CLUSTER_ARN = "${module.my-ecs.cluster_arn}"
SERVICE_ROLE_ARN = "${module.my-ecs.service_role_arn}"
AWS_REGION = "${var.AWS_REGION}"
HEALTHCHECK_MATCHER = "200"
CPU_RESERVATION = "256"
MEMORY_RESERVATION = "128"
LOG_GROUP = "my-log-group"
DESIRED_COUNT = 2
ALB_ARN = "${module.my-alb.alb_arn}"
}
module "my-alb" {
source = "github.com/in4it/terraform-modules//modules/alb?ref=v1.0.0"
VPC_ID = "${module.vpc.vpc_id}"
ALB_NAME = "my-alb"
VPC_SUBNETS = "${join(",", module.vpc.public_subnets)}"
DEFAULT_TARGET_ARN = "${module.my-service.target_group_arn}"
DOMAIN = "*.ecs.newtech.academy"
INTERNAL = false
ECS_SG = "${module.my-ecs.cluster_sg}"
}
module "my-alb-rule" {
source = "github.com/in4it/terraform-modules//modules/alb-rule?ref=v1.0.0"
LISTENER_ARN = "${module.my-alb.http_listener_arn}"
PRIORITY = 100
TARGET_GROUP_ARN = "${module.my-service.target_group_arn}"
CONDITION_FIELD = "host-header"
CONDITION_VALUES = ["subdomain.ecs.newtech.academy"]
}
+4
View File
@@ -0,0 +1,4 @@
resource "aws_key_pair" "mykeypair" {
key_name = "mykeypair"
public_key = "${file("${var.PATH_TO_PUBLIC_KEY}")}"
}
+3
View File
@@ -0,0 +1,3 @@
provider "aws" {
region = "eu-west-1"
}
+23
View File
@@ -0,0 +1,23 @@
resource "aws_security_group" "allow-ssh" {
vpc_id = "${module.vpc.vpc_id}"
name = "allow-ssh"
description = "security group that allows ssh and all egress traffic"
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
ingress {
from_port = 22
to_port = 22
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
tags {
Name = "allow-ssh"
}
}
+12
View File
@@ -0,0 +1,12 @@
variable "AWS_REGION" {
default = "eu-west-1"
}
variable "PATH_TO_PRIVATE_KEY" {
default = "mykey"
}
variable "PATH_TO_PUBLIC_KEY" {
default = "mykey.pub"
}
+18
View File
@@ -0,0 +1,18 @@
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
name = "vpc-module-demo"
cidr = "10.0.0.0/16"
azs = ["${var.AWS_REGION}a", "${var.AWS_REGION}b", "${var.AWS_REGION}c"]
private_subnets = ["10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24"]
public_subnets = ["10.0.101.0/24", "10.0.102.0/24", "10.0.103.0/24"]
enable_nat_gateway = false
enable_vpn_gateway = false
tags = {
Terraform = "true"
Environment = "prod"
}
}