Tuesday, May 23, 2023
HomeSoftware EngineeringThe right way to Deploy a Java Software in AWS ECS utilizing...

The right way to Deploy a Java Software in AWS ECS utilizing Terraform


To be able to deploy a Java software into AWS ECS (Elastic Container Service) utilizing Terraform, we have to take into account just a few various things.

Step 1 – Java Software

Create a file referred to as HelloWorld.java and add the next code to it:

public class HelloWorld {
    public static void predominant(String[] args) {
        System.out.println("Hi there, World!");
    }
}

We now must construct our class as follows:

javac HelloWorld.java

As soon as that is finished, we will bundle our software right into a jar file:

jar cvf my-app.jar HelloWorld.class

Step 2 – Dockerfile

Subsequent create a file referred to as Dockerfile and duplicate the next code into it:

FROM openjdk:11-jre-slim

WORKDIR /app

COPY goal/my-app.jar /app

CMD ["java", "-jar", "my-app.jar"]

Word that goal/my-app.jar on this code is the relative path from the Dockerfile to the my-app.jar that we packaged in step 1 above.

Step 3 – Terraform

Subsequent we’ll concentrate on the Terraform. To do that, we will both create totally different Terraform information, however on this instance, we’ll merely create a single file referred to as predominant.tf.

On this file, we’ll first create an ECS process definition:

useful resource "aws_ecs_task_definition" "my_task_definition" {
  household                   = "my-task-definition"
  container_definitions    = jsonencode([
    {
      name      = "my-container"
      image     = "my-docker-image"
      cpu       = 256
      memory    = 512
      portMappings = [
        {
          containerPort = 8080
          hostPort      = 8080
        }
      ]
    }
  ])
}

Adopted by an ECS service:

useful resource "aws_ecs_service" "my_service" {
  identify            = "my-service"
  cluster         = aws_ecs_cluster.my_cluster.id
  task_definition = aws_ecs_task_definition.my_task_definition.arn
  desired_count   = 1

  network_configuration {
    subnets          = [aws_subnet.my_subnet.id]
    security_groups  = [aws_security_group.my_security_group.id]
    assign_public_ip = true
  }
}

Step 4 – Working the Terraform

Now we have to run the Terraform code, which we will do from the terminal as follows:

terraform init
terraform apply
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments