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

The best way to Deploy a Java Utility in AWS ECS utilizing Terraform


With the intention to deploy a Java software into AWS ECS (Elastic Container Service) utilizing Terraform, we have to take into account a number of various things.

Step 1 – Java Utility

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

public class HelloWorld {
    public static void essential(String[] args) {
        System.out.println("Whats up, World!");
    }
}

We now have to construct our class as follows:

javac HelloWorld.java

As soon as that is completed, we are able to package deal our software right into a jar file:

jar cvf my-app.jar HelloWorld.class

Step 2 – Dockerfile

Subsequent create a file known as Dockerfile and replica the next code into it:

FROM openjdk:11-jre-slim

WORKDIR /app

COPY goal/my-app.jar /app

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

Observe 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 are able to both create totally different Terraform recordsdata, however on this instance, we’ll merely create a single file known as essential.tf.

On this file, we’ll first create an ECS job 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 – Operating the Terraform

Now we have to run the Terraform code, which we are able to 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