Deploying a Go Application to an ECS Instance

In the previous article, we have discussed how to deploy a local Java application directly to an Alibaba Cloud ECS instance. In this article, we will introduce how to deploy a Go application to an Alibaba Cloud Elastic Compute Service (ECS) instance.

Develop an Application Locally

The coding method is similar no matter whether you compile Go applications that run on the cloud or locally. Therefore, this article takes a Go application for printing “Hello World” on a Web page as an example to explain the deployment method.

Image for post
Image for post
//Alibaba Cloud Toolkit. http://www.aliyun.com/product/cloudtoolkit
func setupRouter() *gin.Engine {
// Disable Console Color
// gin.DisableConsoleColor()
r := gin.Default()
// Ping test
r.GET("/ping", func(c *gin.Context) {
c.String(http.StatusOK, "Alibaba Cloud Toolkit: Hello World.")
})
return r
}
func main() {
r := setupRouter()
// Listen and Server in 0.0.0.0:8080
r.Run(":80")
}

You can download the source code through this link.

The preceding code is a standard Go project used to print the string “Hello World” on a Web page.

Install Plug-in

Alibaba Cloud provides an Eclipse-based plug-in to help developers efficiently deploy applications written in the local IDE to ECS instances.

URL of the plug-in: https://www.aliyun.com/product/cloudtoolkit_en

The installation process of this Eclipse-based plug-in is similar to that of a common plug-in, and therefore will not be detailed here.

Configure the Plug-in Preferences

After installing the plug-in, configure the preferences by choosing:

Top menu > Window > Preferences > Alibaba Cloud Toolkit > Accounts.

When the following page is displayed, configure the AK and SK of your Alibaba Cloud account to complete the configuration of preferences.( If you are using a RAM user account, enter the AK and SK of the RAM user.)

Image for post
Image for post

Deploy the Application

In Eclipse, right-click the project name and choose Alibaba Cloud > Deploy to ECS from the shortcut menu. The following deployment window is displayed:

Image for post
Image for post

In the Deployment Configurations dialog box, set the deployment parameters, and click Deploy to complete the initial deployment.

Description of Deployment Parameters

  • Deploy File: Two options are available.
  • Maven Build: If Maven is used to build the current project, you can use Alibaba Cloud Toolkit to directly build and deploy the application.
  • Upload File: If Maven is not used to build the current project, or a locally packaged deployment file already exists, you can select and directly upload the local deployment file.
  • Target Deploy ECS: Select a region from the drop-down list, and then select the ECS instance to be deployed in the region.
  • Deploy location: Enter the deployment path on the ECS instance, for example, /root/tomcat/webapps.
  • Command: Enter the application startup command, for example, sh /root/restart.sh. This parameter specifies the command to be executed after the application package is deployed. For a Go program, it is usually a series of program startup commands.
source ~/.bash_profile
pkill -f 'go-demo'
mv /tmp/go-demo /root/go-demo
chmod 755 /root/go-demo
sh -c /root/go-demo

Reference:https://www.alibabacloud.com/blog/deploying-a-go-application-to-an-ecs-instance_594790?spm=a2c41.12883022.0.0

Written by

Follow me to keep abreast with the latest technology news, industry insights, and developer trends.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store