生产环境的应用程序语言复杂多样,Graviton目前已经可以适配几乎所有的主流程序语言。下面站长百科主要通过AWS产品介绍常见开发语言(Java、NodeJS、Python、PHP、Ruby、Golang以及Rust)在Graviton的运行环境安装配置。
完成本动手实验后,将掌握如何基于Graviton实例安装配置如下程序语言的运行环境:
- Java
- NodeJS
- Python
- PHP
- Ruby
- Go
- Rust
一、Amazon EC2环境准备
这里需要启动一个Graviton2实例、一个 x86实例用于后续实验。
相关阅读:《亚马逊云服务器免费领取教程》
(一)创建安全组
1、进入EC2 控制台,点击安全组。
2、创建安全组,开放 80、8080、9080、5000-5010 端口,源设置为 “0.0.0.0/0”;开放 22 端口,源设置为MyIP。
(二)启动Graviton实例
1、进入EC2控制台,点击“启动新实例”。
2、在EC2配置向导中选择 AMI 为 Amazon Linux 2 5.10 版本,系统架构设置 ARM ,机型选择 m6g.large 并调整根卷为 50G 后启动实例,安全组使用前面步骤创建的安全组
3、更新系统及安装必要的工具。
sudo yum update -y sudo yum install git -y sudo reboot
4、下载本次实验中需要使用的源码到EC2实例
$ git clone https://github.com/nwcd-samples/GravitonDemo.git $ cd GravitonDemo $ ls -l 总用量 8 ... -rw-rw-r-- 1 ec2-user ec2-user 1925 2月 17 06:12 godemo.go drwxrwxr-x 4 ec2-user ec2-user 92 2月 17 06:12 graviton-demo-php drwxrwxr-x 3 ec2-user ec2-user 71 2月 17 06:12 graviton-demo-rust drwxrwxr-x 4 ec2-user ec2-user 90 2月 17 06:12 graviton-demo-springboot -rw-rw-r-- 1 ec2-user ec2-user 3272 2月 17 06:12 socketdemo_python2.py ...
(三)启动x86实例
如有兴趣对比不同架构下相同应用代码的运行情况,可以启动一个 m5.large 实例,操作步骤在此略过。
(四)登录到实例
1、从 windows 登录到实例
#使用 powershell 通过 ssh 命令连接到实例
2、从 Mac 登录到实例
#使用 Terminal 通过 ssh 命令连接到实例
二、动手实验
(一)在 Graviton 运行 Java 应用程序
1、搭建运行环境
登录到服务器,运行如下命令安装 Java 11 运行环境
$ sudo yum install java-11-amazon-corretto -y $ java -version openjdk version "11.0.18" 2023-01-17 LTS OpenJDK Runtime Environment Corretto-11.0.18.10.1 (build 11.0.18+10-LTS) OpenJDK 64-Bit Server VM Corretto-11.0.18.10.1 (build 11.0.18+10-LTS, mixed mode)
通过以上步骤,即可完成 Java 11 环境搭建。
2、运行应用程序
获取项目代码并启动应用程序
cd ~/GravitonDemo cd graviton-demo-springboot ./mvnw package java -jar target/graviton2-demo-0.0.1-SNAPSHOT.jar
通过浏览器访问上一步部署的应用(http://EC2-IP:8080,留意 Web 服务端口在安全组已开放)。运行正常的话,可以看到 Web 应用返回了实例相关的信息。
至此已完成了基于 Graviton 的 Java 应用部署运行,可以留意到操作上与在 X86 环境一致。
(二)在Graviton运行NodeJS应用程序
1、搭建运行环境
登录到服务器运行以下命令安装配置 nodejs 运行环境
#安装nodejs curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash 、~/.nvm/nvm.sh nvm install 16
查看 nodejs 版本
node -e "console.log('Running Node.js ' + process.version)"
通过以上步骤即可完成 nodejs 运行环境的安装。
2、运行应用程序
切换到 node 工程,并启动 demo 程序
#进入nodejs demo目录 $ cd ~/GravitonDemo/graviton-demo-nodejs # 更新npm版本 $ npm install -g npm # 安装依赖 $ npm install #运行demo程序 $ node nodejsdemo.js
浏览器中查看运行效果(请确保 EC2 安全组已开放应用服务器端口,比如 5004)。运行正常的话,可以看到 Web 应用返回了实例相关的信息。
在浏览器中输入http://服务器ip:5004 查看运行效果
浏览器显示效果
(三)在Graviton运行Python应用程序
1、搭建运行环境
Amazon Linux2 系统已经包含了python3 运行环境,通过以下命令查看版本。
查看 Python 版本
$ python3 --version
2、运行应用程序
切换到 Python 工程,并启动 demo 程序
#进入Pythondemo目录 $ cd ~/GravitonDemo/graviton-demo-python #运行demo程序 $ python3 python3demo.py
浏览器中查看运行效果 (请确保 EC2 安全组已开放应用服务器端口,比如 5003)。运行正常的话,可以看到 Web 应用返回了实例相关的信息。
在浏览器中输入http://服务器ip:5003 查看运行效果
浏览器显示效果
(四)在Graviton运行PHP应用程序
1、搭建运行环境
登录服务器,运行如下命令安装 PHP 运行环境
$ sudo amazon-linux-extras enable php8.1 $ sudo yum clean metadata $ sudo amazon-linux-extras install php8.1 nginx1 -y $ php -v PHP 8.1.14 (cli) (built: Jan 20 2023 18:11:37) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.14, Copyright (c) Zend Technologies
通过以上操作,我们完成了 Graviton 环境的 PHP + Nginx 环境部署。
2、运行应用程序
切换到目录,复制 PHP 项目资源至 nginx 目录
$ cd ~/GravitonDemo/graviton-demo-php $ sudo cp -r assets /usr/share/nginx/html/ $ sudo cp index.php /usr/share/nginx/html/ $ sudo service nginx restart
通过浏览器访问上一步部署的应用(请确保 EC2 安全组已开放应用服务器端口,比如80)。运行正常的话,可以看到 Web 应用返回了实例相关的信息。
在浏览器中输入http://服务器ip:80 查看运行效果
至此,已完成了基于 Graviton 的 PHP 应用部署运行,可以留意到操作上与在 X86 环境一致。
(五)在 Graviton 运行 Ruby 应用程序
1、搭建运行环境
登录到服务器运行以下命令安装配置 ruby 运行环境
#安装ruby sudo amazon-linux-extras list | grep ruby sudo amazon-linux-extras install -y ruby3.0
查看 ruby 版本
ruby -v
通过以上步骤即可完成 ruby 运行环境的安装。
2、运行应用程序
切换到 ruby 工程,并启动 demo 程序
#进入ruby demo目录 $ cd ~/GravitonDemo/graviton-demo-ruby #运行demo程序 $ ruby rubydemo.rb
浏览器中查看运行效果 (请确保 EC2 安全组已开放应用服务器端口,比如 5001)。运行正常的话,可以看到 Web 应用返回了实例相关的信息。
在浏览器中输入http://服务器ip:5001 查看运行效果
浏览器显示效果
(六)在 Graviton 运行 Go 应用程序
1、搭建运行环境
登录到服务器运行以下命令安装配置 go 运行环境
#安装golang $ sudo yum install -y golang #配置golang $ mkdir -p ~/GoWorkSpace $ echo "export GOPATH=$HOME/GoWorkSpace">>~/.bashrc $ echo "export PATH=$PATH:$GOPATH/bin">>~/.bashrc $ source ~/.bashrc #可选 #如上一步配置golang 环境变量出错请执行以下命令后退出连接,重新登录 #出错信息“manpath: can't set the locale: make sure $LC * and $LANG are correct” $ echo "LANG=en_US.utf-8" | sudo tee -a /etc/environment $ echo "LC_ALL=en_US.utf-8" | sudo tee -a /etc/environment
查看 golang 版本
go version
通过以上步骤即可完成 go 运行环境的安装和配置。
2、运行应用程序
切换到 golang 工程,并启动 demo 程序
#编译golang代码 $ cd ~/GravitonDemo/graviton-demo-go $ go install godemo.go #运行demo程序 $ ~/GoWorkSpace/bin/godemo
浏览器中查看运行效果 (请确保 EC2 安全组已开放应用服务器端口,比如 5000)。运行正常的话,可以看到 Web 应用返回了实例相关的信息。
在浏览器中输入http://服务器ip:5000 查看运行效果
浏览器显示效果
(七)在 Graviton 运行 Rust 应用程序
1、搭建运行环境
登录到服务器,运行如下命令安装 Rust 运行环境。
# 安装gcc $ sudo yum install gcc -y # 安装rust最新版本 $ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ... You can uninstall at any time with rustup self uninstall and these changes will be reverted. Current installation options: default host triple: aarch64-unknown-linux-gnu default toolchain: stable (default) profile: default modify PATH variable: yes 1) Proceed with installation (default) 2) Customize installation 3) Cancel installation >1 $ source "$HOME/.cargo/env" $ cargo -V cargo 1.67.1 (8ecd4f20a 2023-01-10)
通过以上步骤,即可完成 Rust 1.67.1 环境搭建。
2、运行应用程序
切换到 Rust 工程,并启动 Web 服务
$ cd ~/GravitonDemo/graviton-demo-rust $ cargo run Compiling cookie_store v0.12.0 Compiling h2 v0.3.15 Compiling time v0.3.17 Compiling rand v0.8.5 Compiling webpki-roots v0.21.1 Compiling local-channel v0.1.3 Compiling qstring v0.7.2 Compiling num_cpus v1.15.0 Compiling encoding_rs v0.8.32 Compiling mime v0.3.16 Compiling language-tags v0.3.2 Compiling chunked_transfer v1.4.1 Compiling httpdate v1.0.2 Compiling base64 v0.21.0 Compiling ureq v1.5.5 Compiling actix-server v2.2.0 Compiling actix-web-codegen v4.1.0 Compiling serde_urlencoded v0.7.1 Compiling actix-macros v0.2.3 Compiling time v0.1.45 Compiling iana-time-zone v0.1.53 Compiling json v0.12.4 Compiling chrono v0.4.23 Compiling ec2_instance_metadata v0.3.0 Compiling zstd v0.12.3+zstd.1.5.2 Compiling actix-http v3.3.0 Compiling actix-web v4.3.0 Compiling graviton2-demo-rust v0.1.0 (/home/ec2-user/rust-graviton2-demo) Finished dev [unoptimized + debuginfo] target(s) in 2m 12s Running `target/debug/graviton2-demo-rust`
通过浏览器访问上一步部署的应用 (请确保 EC2 安全组已开放应用服务器端口,比如 5006)。运行正常的话,可以看到 Web 应用返回了实例相关的信息。
在浏览器中输入http://服务器ip:5006 查看运行效果
浏览器显示效果
至此,已完成了基于 Graviton 的 Rust 应用部署运行,可以留意到操作上与在 X86 环境一致。
三、清理实验环境
在所有实验完毕后,请留意停止或者终止实验中用到的 EC2 实例,以免产生不必要的费用。
相关推荐:
《Amazon Lightsail上启动cPanel & WHM实例教程》
《亚马逊云科技Amazon EC2部署DeepSeek-R1蒸馏模型教程》
-
广告合作
-
QQ群号:4114653