0


AWS搭建简单的WEB API访问公网网站

1.登录到相关的平台AWS平台

2.创建相应的AWS的IAM账号要进行相应权限的授权进行许可,或者拥有导入的IAM账号

其中Linux环境以及其maos等环境,Windows下导入环境不相同相关配置也不一样需要区别,对于前者使用export导入相关的环境于实体主机之中,而在windows环境中则需要用set 命令导入,且前者导入环境内密钥需要加双引号,而后者则不需要加。

3.对于使用aws cli的工具:

这边采用是python的pip进行安装,前提要有相对于的python的解释器以及安装了pip环境变量,后者则需要使用pip安装,这边采用是国内源安装,对于绑定国内源暂时不介绍。

在国内安装AWS CLI时,使用国内镜像源可以加快下载速度。通过清华大学的镜像源安装AWS CLI的步骤:
安装Python
确保你的电脑上安装了Python。可以从Python官网下载并安装。安装时,记得勾选“Add Python to PATH”。
使用国内源安装AWS CLI

打开命令提示符(CMD)。
使用pip安装AWS CLI,指定清华大学的镜像源:

pip install awscli -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade --user

配置AWS CLI
安装完成后,你需要配置AWS CLI:

在命令提示符中输入:

aws configure
按照提示输入你的AWS访问密钥、秘密访问密钥、默认区域和输出格式。

一般前面的两个创建好的密钥对,这需要提前创建,默认区域选择自己IAM下使用的区域一般为us-esat-1区域,格式一般为json

验证安装
可以使用以下命令来验证安装是否成功:
aws --version

查看具体密钥IAM信息:

aws get-caller-identity

4.创建密钥准备准备工作以及IAM账户准备工作:

在EC2的控制台选择创建密钥对

在IAM控制台这边创建用户,可以导出为csv的账号密钥:

一般来说csv里面就包含所需要的俩对密钥一般下载下来具体看,或者下载下来在在cli工具进行环境导入一般是export或者set导入到本地实体的物理变量中。

5.创建安全组一般会有一个默认default安全组不需要使用,自己在EC2控制先创建网络安全组:

一般来说为2个不同的组对于流量来说一般是控制入站规则,如果需要http则放行80,需要postgresql则方向5432端口,需要ssh本地连接则需要放行22端口按照具体需要进行配置,一般默认ip,tcp协议

6.创建EC2实列以及RDS关系型数据库,一般要高级选项进行具体配置,先要创建好EC2服务器在去创建RDS方便进行连接EC2实列,而其中密钥对这些也要进行勾选,还有配置标签根据实际情况进行键值对填入,IP分配一般为默认的IP地址。

7.S3存储桶的具体:

具体来说1S3存储桶较为简单,其把本地物理机的文件上传到云端S3存储桶进行存储,以用来备份一般是可以文件或者文件夹形式进行上传。

8.EC2端连接RDS的准备处理:

安装psql的工具

在AWS的Amazon Linux中安装 PostgreSQL 客户端 (psql) 。以下是详细步骤,适用于 Amazon Linux

  1. 使用 yum 安装 PostgreSQL 客户端
    对于 Amazon Linux 系统(包括 Amazon Linux 2 和 Amazon Linux 1),可以使用 yum 来安装 PostgreSQL 客户端工具(psql)。
    步骤:

1.更新包管理器的缓存:
为确保你安装的是最新的可用软件包,首先更新包列表:

sudo yum update -y

2.安装 PostgreSQL 客户端:
运行以下命令安装 PostgreSQL 客户端工具(psql):

sudo yum install postgresql -y

该命令会安装 PostgreSQL 客户端及相关工具,包括 psql。

3.验证安装:
安装完成后,可以通过以下命令检查 psql 是否安装成功:

psql --version

如果安装成功,输出类似如下内容:
psql (PostgreSQL) 9.6.20

这表明 PostgreSQL 客户端工具安装成功。
2. 连接到 PostgreSQL 数据库
安装完成后,你可以使用 psql 命令连接到远程或本地的 PostgreSQL 数据库。以下是一个连接 PostgreSQL 数据库的示例:
psql -h <hostname> -U <username> -d <dbname>

补充具体就是 psql -h 你RDS的终端节点一般是写入节点 -U 就是你的数据库创建时候的数据库名称,-p 就是端口号 然后就是输入你的RDS数据库密码如果忘记在下图进行修改,切记不要自动生成一般不记得容易。而且尽量在登录EC2实列切换至sudo su超级用户权限以防后续出现错误。


-h <hostname>: PostgreSQL 服务器的主机名或IP地址。
-U <username>: 登录PostgreSQL的用户名。
-d <dbname>: 要连接的数据库名称。

例如,连接到本地数据库 mydatabase,用户名为 postgres:
psql -h localhost -U postgres -d mydatabase

安装特定版本的 PostgreSQL 客户端
如果你需要安装特定版本的 PostgreSQL 客户端工具,可以通过添加 PostgreSQL 官方仓库来安装。
添加 PostgreSQL 官方仓库(可选)

安装 PostgreSQL 官方仓库(以安装 PostgreSQL 15为例):

sudo amazon-linux-extras enable postgresql15
安装 PostgreSQL 客户端工具:
启用后,你可以使用以下命令来安装指定版本的 PostgreSQL 客户端:

sudo yum install postgresql13 -y

验证版本:
安装后,检查 psql 版本:

psql --version

在EC2实列中连接到数据库输入密码正确后就需要使用其他命令:

psql输入进行postgresql进行相关操作

\q退出数据库

exit完全退出

CREATE DATABASE unicorndb; 创建数据库

postqreS=> CREATE USER UiCOrndD WITH ENCRYPTED PASSWORD
"unicorndb';
CREATE ROLE 创建数据库的用户以及密码

OStqreS=>GRANT ALL PRIVILEGES ON DATABASE unicorndb To unicorndb;
GRANT 给其赋予其全部操作数据库的权限

创建数据表要进入才能创建具体数据库:

\c进入 unicondb;

\dt 进入内部进行操作

unicondb>

CREATE TABLE IF NOT EXISTS unicorntable (
id INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
requestid VARCHAR(255),
requestvalue VARCHAR(255),
hits INT
);

CREATE TABE
inicorndb->\dt
查看具体的数据表内容

以上完成了具体的远程在EC2出连接RDS并创建完成基础需要的数据库的表

9.部署具体的Web API的排除:

首先要不能安装httpd的服务以防后续报错端口占用80,若占用需要卸载的httpd相应的包以及依赖。

sudo systemctl stop httpd
sudo service httpd stop
sudo systemctl disable httpd
sudo yum remove httpd
sudo yum autoremove
清除相关的日志

sudo rm -rf /etc/httpd/
sudo rm -rf /var/log/httpd/
检查完成卸载残余

which httpd
以上是完成httpd端口占用的80的服务

10.GO环境配置内容:

先执行脚本./ refund.sh进行相关配置(一般不需要看情况)

首先要安装好GO的相关需要的配置

在 Amazon Linux 上安装 Go (Golang) 环境的步骤如下:
更新系统
在安装 Go 之前,首先确保系统包是最新的:
sudo yum update -y

下载 Go 安装包
访问 Go 官方下载页面 获取 Go 版本的下载链接,或者直接通过命令行下载。以下命令使用了 Go 1.20 版本(你可以替换为最新版本):
wget https://golang.org/dl/go1.20.linux-amd64.tar.gz

如果你使用的是 Amazon Linux 2,可以直接运行上述命令来下载 Go 的 Linux 版本。
解压 Go 安装包
下载完成后,解压安装包到 /usr/local 目录:
sudo tar -C /usr/local -xvzf go1.20.linux-amd64.tar.gz

这会将 Go 安装到 /usr/local/go 目录。
设置 Go 环境变量
接下来,需要配置 Go 的环境变量。你可以将其添加到 ~/.bash_profile 或 ~/.bashrc 中,确保每次登录时都能自动加载环境变量。
echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.bash_profile

或者,如果你使用的是 ~/.bashrc:
echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.bashrc

为了让配置生效,运行以下命令来加载新的环境变量:
source ~/.bash_profile

验证安装
现在可以通过运行以下命令来验证 Go 是否安装成功:
go version

你应该会看到类似如下的输出,表示 Go 已正确安装:
go version go1.20 linux/amd64

设置 Go 工作目录 (GOPATH)
默认情况下,Go 会将工作目录设置为 $HOME/go,你可以通过以下命令检查 GOPATH:
echo $GOPATH

如果它为空,你可以显式设置它,通常设置为 $HOME/go:
echo "export GOPATH=$HOME/go" >> ~/.bash_profile
echo "export PATH=$PATH:$GOPATH/bin" >> ~/.bash_profile
source ~/.bash_profile

创建并测试 Go 项目
创建一个简单的 Go 项目来验证安装是否成功:
mkdir -p ~/go/src/hello
cd ~/go/src/hello

创建一个 main.go 文件:
nano main.go

在文件中输入以下内容:
package main

import "fmt"

func main() {
fmt.Println("Hello, World!")
}

保存并退出文件编辑器。然后,运行 Go 程序:
go run main.go

如果安装和配置成功,你应该会看到输出:
Hello, World!

安装 Go 的依赖包 (可选)
你可以通过 go get 命令安装第三方库,例如:
go get github.com/gin-gonic/gin

总结

你已经成功在 Amazon Linux 上安装了 Go。
你设置了 Go 环境变量,并验证了安装是否成功。
你创建并运行了一个简单的 Go 项目来测试安装。

以上是完成GO环境配置

接下来就是传输ini,GO二进制文件于EC2实例中

11.一般是用Xsell进行连接其中因为密钥对原因,我们采用密码登录,但需要修改配置文件:

第一步,vim /etc/ssh/sshd_config
1)取消如下命令的注释
ListenAddress 0.0.0.0
Port 22
2)修改如下配置的值为yes
PasswordAuthentication yes
3)注释如下行
#Include /etc/ssh/sshd_config.d/*.conf
4)重启sshd 进程
service restart sshd
修改用户名ec2-user的密码
passwd ec2-user 一般要求是数字大小写特殊字符进行修改

然后使用xshell采用用户名和密码登录

12.配置ini文件:

vim server.ini文件进行

LogLocation" = "./"
"PgsqlHost" = "你的RDS数据的终端写入节点"
"PgsqlPort" = "5432" 端口
"PgsqlUser" = "unicorndb" 数据用户RDS切记
"PgsqlPass" = "unicorndb" RDS数据库密码
"PgsqlDb" = "unicorndb" 数据库
"PgsqlTable" = "unicorntable" 数据表

这是手写ini内容,然后需要加权限chmod +x 文件名或者chmod +777 文件名 进行执行

13.GO二进制文件执行相关:

其中ws-为二进制文件,先要赋予其权限chmod +x

接下就是在该目录执行ws-ec2GO二进制文件

采用就是如下的操作
/home/ec2-user/ws-ec2-root

等待中接下来就是执行出来

在终端或者本地物理机输入curl http://IP或者http://访问网站,出现一个类似的WEB 界面代表成成果完成。

14.就是弹性伸缩与堆栈,负载均衡在搜索栏目可以看到:

这边是已经创建完弹性伸缩

这是堆栈:

15.就是cloud watch 可以在EC2实例操作中可以看到进行配置:

进行相应的安全监控

16.官方的相关技术文档进行相应的技术指导:

标签: aws 云计算

本文转载自: https://blog.csdn.net/2302_76184240/article/details/143506700
版权归原作者 alksql 所有, 如有侵权,请联系我们删除。

“AWS搭建简单的WEB API访问公网网站”的评论:

还没有评论