Summary: This post will focus on getting my VMware based application to run on AWS with Ravello. In my last post in the VCA-DCV certification series, if you remember, I stopped my exercise when I had two Ubuntu VMs running in Ravello’s ESXi and was starting to set up an application to run on them. This is how it turned out.
Ilan and Chen found me an application to work with: Spring’s Pet Clinic. The application is basically an information system that is accessible through a web browser, requiring a web server and a database. The plan was to use each of my two VMs for each of these and see that I know how to make them talk with one another.
The VMs I originally created were 1 vCPU 2GB RAM. I had no point of reference to guide my speed expectations. Let me tell you. They were SLOW. We really put in a good effort to install Tomcat on my Ubuntu1 and MySQL on my Ubuntu2, but seriously, nothing was happening. When Ilan was about to throw my computer against the wall, we decided to take the safer route and increased the compute to 4 vCPU and 4GB RAM. That was nice.
We installed everything that needed installing (Tomcat, MySQL, Git, Maven, JDK). We created the petclinic.war file and were ready to see if we have petclinic running. Browsed to it. Another success. All that was left was to define the right path to the DB, so that the VMs would know how to talk to each other. Done and done.
“Now upload your VMware VMs to AWS and run the application in the cloud” was the final piece of my exercise.
“Upload to AWS” meant I needed something to upload to Ravello, so I tried to “download file” one of my VMs from the ESXi to my computer. Apparently it would have taken over 300 minutes. Not quite the plan. Luckily I was sitting right next to our support engineers, so I opened a physical support ticket: “Eddie, what’s going on?”, “You should Export OVF”. “I tried to download it”. “No. Export OVF”. Okay. Supposed to take 11 minutes. Stay tuned.
Not the best idea
11 minutes later I had an OVF file on my laptop. Another 9 minutes after that, my other VM was an OVF on my computer. I then went on to import the files to Ravello.
It wasn’t long before I had Ubuntu1 and Ubuntu2 in my library in Ravello. I dragged both VMs to the application canvas and was almost done. The only thing left to do was to tell my MySQL VM what IP it should use (the same internal IP it had in our ESXi). That’s it. I hit publish (on AWS Virginia in cost optimized mode), made sure to create an external http connection to my web server, and I was done. Browsed to my application, now running on AWS.