生產(chǎn)環(huán)境的應用程序語言復雜多樣,Graviton目前已經(jīng)可以適配幾乎所有的主流程序語言。下面站長百科主要通過AWS產(chǎn)品介紹常見開發(fā)語言(Java、NodeJS、Python、PHP、Ruby、Golang以及Rust)在Graviton的運行環(huán)境安裝配置。
完成本動手實驗后,將掌握如何基于Graviton實例安裝配置如下程序語言的運行環(huán)境:
- Java
- NodeJS
- Python
- PHP
- Ruby
- Go
- Rust
一、Amazon EC2環(huán)境準備
這里需要啟動一個Graviton2實例、一個 x86實例用于后續(xù)實驗。
相關閱讀:《亞馬遜云服務器免費領取教程》
(一)創(chuàng)建安全組
1、進入EC2 控制臺,點擊安全組。
2、創(chuàng)建安全組,開放 80、8080、9080、5000-5010 端口,源設置為 “0.0.0.0/0”;開放 22 端口,源設置為MyIP。
(二)啟動Graviton實例
1、進入EC2控制臺,點擊“啟動新實例”。
2、在EC2配置向導中選擇 AMI 為 Amazon Linux 2 5.10 版本,系統(tǒng)架構設置 ARM ,機型選擇 m6g.large 并調(diào)整根卷為 50G 后啟動實例,安全組使用前面步驟創(chuàng)建的安全組
3、更新系統(tǒng)及安裝必要的工具。
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、搭建運行環(huán)境
登錄到服務器,運行如下命令安裝 Java 11 運行環(huán)境
$ 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 環(huán)境搭建。
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 環(huán)境一致。
(二)在Graviton運行NodeJS應用程序
1、搭建運行環(huán)境
登錄到服務器運行以下命令安裝配置 nodejs 運行環(huán)境
#安裝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 運行環(huán)境的安裝。
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、搭建運行環(huán)境
Amazon Linux2 系統(tǒng)已經(jīng)包含了python3 運行環(huán)境,通過以下命令查看版本。
查看 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、搭建運行環(huán)境
登錄服務器,運行如下命令安裝 PHP 運行環(huán)境
$ 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 環(huán)境的 PHP + Nginx 環(huán)境部署。
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 環(huán)境一致。
(五)在 Graviton 運行 Ruby 應用程序
1、搭建運行環(huán)境
登錄到服務器運行以下命令安裝配置 ruby 運行環(huán)境
#安裝ruby sudo amazon-linux-extras list | grep ruby sudo amazon-linux-extras install -y ruby3.0
查看 ruby 版本
ruby -v
通過以上步驟即可完成 ruby 運行環(huán)境的安裝。
2、運行應用程序
切換到 ruby 工程,并啟動 demo 程序
#進入ruby demo目錄 $ cd ~/GravitonDemo/graviton-demo-ruby #運行demo程序 $ ruby rubydemo.rb
瀏覽器中查看運行效果 (請確保 EC2 安全組已開放應用服務器端口,比如 5001)。運行正常的話,可以看到 Web 應用返回了實例相關的信息。
在瀏覽器中輸入http://服務器ip:5001 查看運行效果
瀏覽器顯示效果
(六)在 Graviton 運行 Go 應用程序
1、搭建運行環(huán)境
登錄到服務器運行以下命令安裝配置 go 運行環(huán)境
#安裝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 環(huán)境變量出錯請執(zhí)行以下命令后退出連接,重新登錄 #出錯信息“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 運行環(huán)境的安裝和配置。
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、搭建運行環(huán)境
登錄到服務器,運行如下命令安裝 Rust 運行環(huán)境。
# 安裝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 環(huán)境搭建。
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 環(huán)境一致。
三、清理實驗環(huán)境
在所有實驗完畢后,請留意停止或者終止實驗中用到的 EC2 實例,以免產(chǎn)生不必要的費用。
相關推薦:
《Amazon Lightsail上啟動cPanel & WHM實例教程》
《亞馬遜云科技Amazon EC2部署DeepSeek-R1蒸餾模型教程》
-
廣告合作
-
QQ群號:4114653