DevOps Corner Indonesia - Terraform EMR Container Image
10K+
DevOps Corner Indonesia - Terraform EMR Container Image (Provisioning Amazon EMR cluster using Terraform as Infrastructure-as-Code (IaC) tools)
| Image name | Size |
|---|---|
devopscorner/terraform-emr:alpine | |
devopscorner/terraform-emr:alpine-latest | |
devopscorner/terraform-emr:alpine-3.16 |
| Image name | Size |
|---|---|
devopscorner/terraform-emr:ubuntu | |
devopscorner/terraform-emr:ubuntu-latest | |
devopscorner/terraform-emr:ubuntu-22.04 |
docker)docker-compose)aws)terraform)tfenv)Clone this repository
git clone https://github.com/devopscorner/iac-terraform-emr.git
Get Terraform Modules
Officials
./get-officials.sh
-- or --
make sub-officials
Community
./get-community.sh
-- or --
make sub-community
Get All Modules (Officials & Community)
make sub-all
Provisioning your Infra (non existing infrastructure)
Goto terraform/environment/providers/aws/infra
cd core
terraform init
terraform workspace select staging
terraform plan
terraform apply
Provisioning your Terraform State (Remote State)
Goto terraform/environment/providers/aws/tfstate
cd core
terraform init
terraform workspace select staging
terraform plan
terraform apply
Provisioning Amazon EMR (existing infrastructure)
Goto terraform/environment/providers/aws/infra/resources
cd emr
terraform init
terraform workspace select staging
terraform plan
terraform apply
---
notes: you need to define your existing infra in variables.tf
Provisioning Other Infra Resources
ECR Build
Example:
# Alpine
docker build . -t YOUR_AWS_ACCOUNT.dkr.ecr.ap-southeast-1.amazonaws.com/devopscorner/terraform-emr:alpine
With Script:
make build-tf-emr ARGS=YOUR_AWS_ACCOUNT CI_PATH=devopscorner/terraform-emr
ECR Tag
Example:
# Alpine
docker tag YOUR_AWS_ACCOUNT.dkr.ecr.ap-southeast-1.amazonaws.com/devopscorner/terraform-emr:alpine YOUR_AWS_ACCOUNT.dkr.ecr.ap-southeast-1.amazonaws.com/devopscorner/terraform-emr:latest
With Script:
make tag-tf-emr ARGS=YOUR_AWS_ACCOUNT CI_PATH=devopscorner/terraform-emr
ECR Push
Example:
# Alpine
docker push YOUR_AWS_ACCOUNT.dkr.ecr.ap-southeast-1.amazonaws.com/devopscorner/terraform-emr:alpine
# Latest (Alpine)
docker push YOUR_AWS_ACCOUNT.dkr.ecr.ap-southeast-1.amazonaws.com/devopscorner/terraform-emr:latest
With Script:
make push-tf-emr ARGS=YOUR_AWS_ACCOUNT CI_PATH=devopscorner/terraform-emr
Provisioning Cloud9 in EC2 onspot Instances
aws cloud9 create-environment-ec2 --name example-env --description "environment" --instance-type t3.small --subnet-id subnet-id --automatic-stop-time-minutes 60 --owner-arn arn:aws:iam::123:user/User
-- or --
Go to `terraform/environment/providers/aws/infra/resources/cloud9` folder
terraform init
terraform workspace select staging
terraform plan
terraform apply
Destroy Environment Lab
terraform destroy
Docker version
docker -v
---
Docker version 20.10.17-rd, build c2e4e01
docker version
---
Client:
Version: 20.10.17-rd
API version: 1.41
Go version: go1.17.11
Git commit: c2e4e01
Built: Fri Jul 22 18:31:17 2022
OS/Arch: darwin/amd64
Context: default
Experimental: true
Server: Docker Desktop 4.14.1 (91661)
Engine:
Version: 20.10.21
API version: 1.41 (minimum version 1.12)
Go version: go9.7
Git commit: 3056208
Built: Tue Oct 25 18:00:19 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.9
GitCommit: 1c90a442489720eec95342e1789ee8a5e1b9536f
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
docker-init:
Version: 0.19.0
GitCommit: de40ad0
Docker-Compose version
docker-compose -v
---
Docker Compose version v2.11.1
AWS Cli
aws --version
---
aws-cli/2.8.7 Python/3.9.11 Darwin/21.6.0 exe/x86_64 prompt/off
Terraform Cli
terraform version
---
Terraform v1.3.5
on darwin_amd64
- provider registry.terraform.io/hashicorp/aws v3.74.3
- provider registry.terraform.io/hashicorp/local v2.1.0
- provider registry.terraform.io/hashicorp/null v3.1.0
- provider registry.terraform.io/hashicorp/random v3.1.0
- provider registry.terraform.io/hashicorp/time v0.7.2
Terraform Environment Cli
tfenv -v
---
tfenv 2.2.2
Make sure that you didn't push sensitive information in this repository
Content type
Image
Digest
sha256:582e6c21b…
Size
4.1 GB
Last updated
about 4 years ago
docker pull devopscorner/terraform-emr