Skip to content

Instantly share code, notes, and snippets.

# --------------------------------------------------------------
# RDS SUBNET
# ---------------------------------------------------------------
resource "aws_db_subnet_group" "db" {
name = "${data.consul_keys.ck.var.project_name}-${var.install_name}"
subnet_ids = [
"${data.terraform_remote_state.network.aws_subnet_dataapp}"]
tags {
Name = "${data.consul_keys.ck.var.project_name}-${var.install_name}"
BillingBusinessApp = "${data.consul_keys.ck.var.billing_business_app}"
# Generate Plan and apply
terraform plan -out=biznet.plan
terraform apply "thehktech.plan"
# If you want to destroy
terraform destroy
# --------------------------------------------------------------
# Step 1 : Create APIGateway
# ---------------------------------------------------------------
resource "aws_api_gateway_rest_api" "apigateway" {
name = "${data.consul_keys.ck.var.project_name}-${data.consul_keys.ck.var.env}-${var.install_name}-backend"
description = "Serverless application for SLM"
}
# --------------------------------------------------------------
# Step 2 : Create APIGateway Ressource
# --------------------------------------------------------------
# External ALB
# ---------------------------------------------------------------
resource "aws_alb" "ext_alb" {
name = "${data.consul_keys.ck.var.project_name}-${var.install_name}-${var.env}-edeal-alb-pub"
subnets = ["${data.terraform_remote_state.network.aws_subnet_front}"]
security_groups = ["${data.consul_keys.ck.var.sg_alb_pub_id}"]
internal = false
idle_timeout = "${data.consul_keys.ck.var.alb_idle_timeout}"
# ---------------------------------------------------------------------
# Auto Scaling Group Edeal
# ---------------------------------------------------------------------
resource "aws_autoscaling_group" "ec2-edeal" {
#launch_configuration = "${aws_launch_template.ec2_launch.id}"
name = "${data.consul_keys.ck.var.project_name}-${var.install_name}-${var.env}-edeal"
max_size = "${data.consul_keys.ck.var.asg_max_size}"
min_size = "${data.consul_keys.ck.var.asg_min_size}"
desired_capacity = "${data.consul_keys.ck.var.asg_desired_capacity}"
# Install ansible
easy_install pip
# Instance name and ID
AWS_REGION="${region}"
INSTANCE_ID="$( curl http://169.254.169.254/1.0/meta-data/instance-id )"
#Download Ansible scripts
if [ ! -d "/home/ec2-user/${project_name}" ]; then
su - ec2-user -c "mkdir /home/ec2-user/${project_name}"
# --------------------------------------------------------------
#### Step 1: Create VPC
# --------------------------------------------------------------
resource "aws_vpc" "hg_vpc" {
cidr_block = "10.20.0.0/16"
enable_dns_hostnames = true
enable_dns_support = true
tags = {
BillingBusinessApp = "hg-devops"
resource "aws_cloudwatch_event_rule" "daily" {
name = "daily_enforce_bucket_kms_encryption"
description = "run everyday"
#schedule_expression = "${var.cron_schedule_enforce_bucket_encryption} "
event_pattern = <<PATTERN
{
"source": [
"aws.s3"
],
variable "lambda_s3_bucket" {
type = string
default = "BUCKET-THAT-CONTAIN-LAMBDAZIPCODE"
}
variable "kms_key_id" {
type = string
default = "KMSKEY-ARN3"
}
data "aws_iam_policy_document" "lambda_policy_doc" {
statement {
effect = "Allow"
actions = [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"config:PutEvaluations",
]