It's a lovely, foggy Saturday. Perfect time to start digging into AWS.
I figured I would try and get a demo/Hello World Spring Boot App running inside a Docker Container, push the Docker Image up to ECR and try and get it running in Amazon Fargate and blog my experience.
1. Amazon Corretto. I have a slightly-outdated version of Amazon's OpenJDK 17 running on my home Dev machine.
c:\>java -version
openjdk version "17.0.1" 2021-10-19 LTS
OpenJDK Runtime Environment Corretto-17.0.1.12.1 (build 17.0.1+12-LTS)
OpenJDK 64-Bit Server VM Corretto-17.0.1.12.1 (build 17.0.1+12-LTS, mixed mode, sharing)
I guess I could run on this, but decided to get the latest. cURL command to get the latest AmazonCorretto JDK for Windows:
curl -LO https://corretto.aws/downloads/latest/amazon-corretto-17-x64-windows-jdk.zip
At home I run WSL2 on my Windows Dev machine. I have a MacBook Pro also and jump between the 2 of them for personal development.
(don't forget to run a checksum to make sure the file was not tampered with, this actually saved me once)
I then manually went to https://corretto.aws/downloads/latest_sha256/amazon-corretto-17-x64-windows-jdk.zip and verified that the SHA-256 checksum is the same:
a89555d3a482f67bfdb9fe07b906592e9763e047e435f811c34b72bebd4200b3
After unzipping and setting up JAVA_HOME and Windows Path:
c:\>java -version
openjdk version "17.0.5" 2022-10-18 LTS
OpenJDK Runtime Environment Corretto-17.0.5.8.1 (build 17.0.5+8-LTS)
OpenJDK 64-Bit Server VM Corretto-17.0.5.8.1 (build 17.0.5+8-LTS, mixed mode, sharing)
2. Spring Initializr + IntelliJ
I bought a JetBrains All Products Pack earlier this week (previously had been using IntelliJ CE + VS Code for Java + Angular personal development).
IntelliJ Ultimate Edition has great support for Spring Initializr.
Here I am creating a new Spring Boot JAR project, specifying the Amazon Corretto JDK 17 that I just installed.
And selecting Spring Boot Starters (Spring Web, Spring Boot Actuator).
3. Since my goal this weekend is to study and learn about various aspects of AWS, I just need a quick and dirty Spring Boot App that exposes a REST endpoint.
I went to https://spring.io/guides/gs/actuator-service/ and copied over the HelloWorldController and Greeting model, ran it locally through IntelliJ and verified I could hit the REST endpoint on port 8080.
4. Confirmed I could run through IDE and hit the REST endpoint.
Also built the Spring Boot JAR and confirmed I could run that and hit the REST endpoint:
PS C:\work\spring-boot-aws\demo> ./mvnw package
PS C:\work\spring-boot-aws\demo> java -jar .\target\demo-0.0.1-SNAPSHOT.jar