Graviton是亚马逊云科技推出的基于ARM架构的处理器,现在已经能适配到Amazon EC2 T4g/c86等几乎所有主流的程序语言。本教程会手把手教大家如何在Graviton实例免费领取Amazon EC2 T4g和x86架构云服务器,并安装、配置并运行不同程序语言的运行环境。
一、前提条件
1、会在Linux环境下进行基本操作,比如源码编译。
2、拥有AWS(直达官网)账号,AWS账号注册指南:
3、了解亚马逊云科技的基本操作,像安全组配置、Amazon EC2实例启动。详情可以参考:《亚马逊免费云服务器申请与使用教程》。
4、了解Web应用程序的基本概念
5、做好实验环境的准备,包括启动Amazon EC2实例、获取示例代码等。
二、亚马逊免费云服务器Amazon EC2 T4g/x86领取教程下面将演示如何分别启动一个Graviton2实例和一个x86实例,用于后面的实验。
1、创建安全组
进入Amazon EC2控制台,然后点击“安全组”。
创建一个安全组,要开放80、8080、9080、5000-5010这些端口,源设置为“0.0.0.0/0”;还要开放22端口,源设置为MyIP。
2、启动Graviton实例
进入Amazon EC2控制台,点击“启动新实例”。
在Amazon EC2配置向导中,选择AMI为Amazon Linux 25.10版本的免费套餐,系统架构设置为ARM,机型选择m6g.large,把根卷调整为50G后启动实例,安全组就用前面步骤创建的那个。
更新系统并安装必要的工具,输入以下命令:
sudo yum update -y
sudo yum install git -y
sudo reboot
下载本次实验需要的源码到Amazon 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
…
3、启动Amazon EC2 x86实例
如果有兴趣对比不同架构下相同应用代码的运行情况,可以启动一个Amazon EC2 m5.large实例,具体操作步骤这里就不详细说了,按照上面步骤即可。
(1)登录到实例
从Windows登录到实例:
#使用 powershell 通过 ssh 命令连接到实例
从Mac登录到实例
三、亚马逊免费云服务器Amazon EC2 T4g/x86配置教程#使用 Terminal 通过 ssh 命令连接到实例
这部分主要带你在搭载Graviton处理器的免费云服务器Amazon EC2实例上完成常见开发语言环境的安装配置,并运行一个简单的Web程序。
1、在Graviton运行Java应用程序
(1)搭建运行环境
登录到服务器,输入以下命令安装Java11运行环境:
$ 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)
(2)运行应用程序
获取项目代码并启动应用程序,输入以下命令:
cd ~/GravitonDemo
cd graviton-demo-springboot
./mvnw packagejava -jar target/graviton2-demo-0.0.1-SNAPSHOT.jar
在浏览器中访问刚才部署的应用(地址是http://EC2-IP:8080,要注意Web服务端口在安全组中已经开放)。如果运行正常,就能看到Web应用返回的实例相关信息。
到这里,你就完成了基于Graviton的Java应用部署运行,能发现操作和在X86环境下是一样的。
2、在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
在浏览器中查看运行效果(要确保Amazon EC2安全组已经开放应用服务器端口,比如5004)。如果运行正常,能看到Web应用返回的实例相关信息。在浏览器中输入http://服务器ip:5004就能查看。
3、在Graviton运行Python应用程序
(1)搭建运行环境
Amazon Linux2系统已经包含了python3运行环境,输入以下命令查看版本:
$ python3 –version
(2)运行应用程序
切换到Python工程,启动demo程序,输入以下命令:
#进入Pythondemo目录
$ cd ~/GravitonDemo/graviton-demo-python#运行demo程序
$ python3 python3demo.py
在浏览器中查看运行效果(要确保Amazon EC2安全组已经开放应用服务器端口,比如5003)。如果运行正常,能看到Web应用返回的实例相关信息。在浏览器中输入http://服务器ip:5003就能查看。
4、在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
之后会显示出PHP的版本信息,这样就完成了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
在浏览器中访问刚才部署的应用(要确保Amazon EC2安全组已经开放应用服务器端口,比如80)。如果运行正常,就能看到Web应用返回的实例相关信息。在浏览器中输入http://服务器ip:80就能查看。
到这里,你就完成了基于Graviton的PHP应用部署运行,能发现操作和在X86环境下是一样的。
5、在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
在浏览器中查看运行效果(要确保Amazon EC2安全组已经开放应用服务器端口,比如5001)。如果运行正常,能看到Web应用返回的实例相关信息。在浏览器中输入http://服务器ip:5001就能查看。
6、在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
在浏览器中查看运行效果(要确保Amazon EC2安全组已经开放应用服务器端口,比如5000)。如果运行正常,能看到Web应用返回的实例相关信息。在浏览器中输入http://服务器ip:5000就能查看。
7、在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: yes1) 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)
会显示出cargo的版本信息,这样就完成了Rust1.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`
在浏览器中访问刚才部署的应用(要确保Amazon EC2安全组已经开放应用服务器端口,比如5006)。如果运行正常,就能看到Web应用返回的实例相关信息。在浏览器中输入http://服务器ip:5006就能查看。
所有实验完成后,要记得访问AWS后台停止或者终止实验中用到的Amazon EC2实例,避免产生不必要的费用。
(本文由美国主机侦探原创,转载请注明出处“美国主机侦探”和原文地址!)

微信扫码加好友进群
主机优惠码及时掌握

QQ群号:938255063
主机优惠发布与交流