天天看点

ECS 使用体验

本人现在是软件工程专业的一名大三学生,因为课程项目需求,使用阿里云 ECS 来部署 web 应用。以下是一些简单的使用过程和感受。

环境准备❤️

鉴于小组成员对各发行版的熟悉程度,选择了 Ubuntu 作为 ECS 的操作系统。

其实个人觉得用在服务器上的话除了包管理以外各发行版的区别也不是特别大,滚动更新的除外。不过服务器一般不会用滚动更新的发行版,可以理解😂。(桌面环境的话 Arch 私货推荐哦~)

重置 root 密码😉

我记得创建 ECS 实例的时候没有设置 root 密码,所以在实例创建完之后还是重置一下,自己设置新的 root 密码。

ECS 使用体验

控制台->ECS->实例,找到操作->更多操作->密码/密钥->重置实例密码即可。

新建用户😎

一般情况下不推荐用 root 用户登录(小心误操作),所以创建普通用户:

useradd -m ivy           

-m

表示为该用户创建

home

目录。

随后输入

passwd ivy

为该用户设置密码。

有时候还是要用 root 权限的(摊手),修改

/etc/sudoers

,新加一行

ivy ALL=(ALL) ALL

,这样用户

ivy

就能使用

sudo

命令了。(也可以把用户加到

admin

组,取消

/etc/sudoers

%admin ALL=(ALL) ALL

前面的注释。)

ECS 使用体验

更新软件😮

用新的用户登陆之后可以先把系统中的软件包更新一下,Ubuntu 的话两条命令就行。

# 获取最新软件库
sudo apt update
# 更新软件包
sudo apt upgrade           

(包管理器真是伟大的发明。)

数据库 MySQL😦

我们项目用到了 MySQL,Ubuntu 可以直接通过命令行安装:

sudo apt install mysql-server           

安装完后查看 MySQL 的状态:

sudo systemctl status mysql
# 正常情况下应该已经是 active 状态了,如果没运行的话可以用以下命令启动 MySQL
# sudo systemctl start mysql           

MySQL 安装完成后会生成数据库的

root

用户和一个管理员

debian-sys-maint

(在

/etc/mysql/debian.cnf

中可以查看密码),我直接使用

root

用户登录:

sudo mysql -u root           

在默认情况下

root

用户只能在 ECS 本机上登录。

导入数据😏

创建数据库并且指定到新创建的数据库:

CREATE DATABASE water;
USE water           

我们这个项目有原型,包含一份导入数据用的

sql

文件,直接用这个文件导入就可以了:

source 文件路径           

添加 MySQL 用户🤣

为了方便远程连接,添加一个新用户并赋予权限:

CREATE USER water-admin IDENTIFIED BY '密码';
GRANT ALL ON water.* TO `water-admin`;
FLUSH PRIVILEGES;           

验证用户

water-admin

的权限:

SHOW GRANTS FOR `water-admin`;           

现在可以用新的用户管理数据库

water

下的表了。

(要不要重启 MySQL 我忘了,应该是不用。)

还要放开

3306

端口才能远程连接 MySQL:

sudo ufw allow 3306           

再去阿里云控制台找到安全组,放行

3306

端口。

项目运行环境😊

项目使用了

jdk-17

,所以我也安装了对应版本的 JDK:

sudo apt install openjdk-17-jdk           

验证 Java 版本:

$ java --version
openjdk 17 2021-09-14
OpenJDK Runtime Environment (build 17+35-Ubuntu-120.04)
OpenJDK 64-Bit Server VM (build 17+35-Ubuntu-120.04, mixed mode, sharing)           

项目导出和运行🤖

为了验证项目的实际工作情况可以先把项目打包放到 ECS 上运行,这里把项目本身和依赖打包成若干个

jar

包,通过 Java 直接在后台运行,把标准输出重定向到

/dev/null

,错误信息重定向追加输出到一个文件:

sudo java -jar ~/water/water_jar/water.jar 1> /dev/null 2>> ~/error.txt &           

项目程序会监听

8080

端口,所以也需要放开这个端口。

(正式部署的时候大概不会这么草率了吧,笑。)

使用感受💕

由于之前有一年用过 ECS 作为个人博客的宿主机(那时候大部分操作都由宝塔面板代劳),我倒是没有遇到太大的困难,整个过程还是比较轻松的。希望通过之后的项目开发过程,技术力能够不断提高吧。

另外,给这个飞天加速计划点个赞。同样配置的 ECS 自己买确实是花费不少,而通过这个计划同学们就能省下经费挽救干瘪的钱包,你做得好啊阿里云!