qidao123.com技术社区-IT企服评测·应用市场

标题: 云盘算公有 [打印本页]

作者: 星球的眼睛    时间: 2025-4-15 14:33
标题: 云盘算公有
1.创建vpc
2.创建子网
3.创建互联网网关
4.创建路由表指向互联网网关
5.在子网中编辑路由表关联
5.在子网中修改自动分配IPV4IP
1.创建EC2
在安全中设置入站规则,编辑安全组添加规则TCP 7777 0.0.0.0
2.连接创建密钥对,用puttygen先打开刚才下载的密钥对,需要转换格式成ppk
3.在putty中输入EC2的公网IP,同时在window中Appearance中修改change中修改字体巨细,在connection的SSH的Auth连接到刚才的转换的文件
4.用户名默认为ec2-user
5.切换到root目录下,sudo -i
wget http
/root/server_demo
(可以再开一个窗口进行访问,Duplicate Session)
netstat -ntpl
curl localhost:7777
得到helloword是乐成
浏览器访问 http://公网IP:7777
最后提交http://公网IP:7777
1.右键ec2,映像和模板,从实例创建模板
2.进行server_demo设置
3.添加ELB负载均衡器
4.负载均衡器的安全组需要特殊命名,所以要先创建安全组要有8888
5.创建完的负载均衡器是用DNS在浏览器网址上进行访问http://ELB的DNS:8888
6.在ELB中注册目的Register targets,将新建的三台添加进去,反面写7777

1.创建EC2的方法
2.VPC选择新创建的,在下面的高级具体信息谁人输入部署的手册
在大流量来的时候创建ELB,在大流量走的时候删除集群
在亚马逊云中作为架构师,部署消息队列,部署一个兼容mysql的数据库,数据库中包罗一张名为kv的表,该表拥有两个字符类型的字段mykey和myvalue,server_ai必须对该表可读,server_ai乐成启动的条件是必循乐成连接ai消息队列和数据库,server_ai乐成运行后,会不绝接受工作信息,server_ai乐成处置惩罚信息后会把处置惩罚结果发送到AI消息队列,消息队列处置惩罚结果:处置惩罚结果内消息属性内里包罗名为“mykey”和“myvalue”的两个属性。提取对应的值存入数据库中
团体架构设计思路

具体实施步骤

1. 部署 Amazon SQS 消息队列


2. 部署 Amazon Aurora MySQL 兼容版数据库


sql复制代码


CREATE TABLE kv (


mykey VARCHAR(255) NOT NULL,


myvalue VARCHAR(255),


PRIMARY KEY (mykey)


);

3. 设置 server_ai 的连接和运行逻辑


设置 Amazon SQS 客户端

sqs_client = boto3.client('sqs', region_name='your-region')
work_queue_url = 'https://sqs.your-region.amazonaws.com/your-account-id/ai-work-queue'
result_queue_url = 'https://sqs.your-region.amazonaws.com/your-account-id/ai-result-queue'
设置 Amazon Aurora MySQL 数据库连接

db_config = {
'user': 'your-username',
'password': 'your-password',
'host': 'your-aurora-endpoint',
'database': 'your-database-name'
}
def receive_work_message():
response = sqs_client.receive_message(
QueueUrl=work_queue_url,
MaxNumberOfMessages=1
)
if 'Messages' in response:
return response['Messages'][0]
return None
def process_work_message(message_body):
# 在这里实现工作信息的处置惩罚逻辑
# 假设处置惩罚结果为 mykey='key1', myvalue='value1'
return {'mykey': 'key1', 'myvalue': 'value1'}
def send_result_message(result):
sqs_client.send_message(
QueueUrl=result_queue_url,
MessageBody='Result message',
MessageAttributes={
'mykey': {'DataType': 'String', 'StringValue': result['mykey']},
'myvalue': {'DataType': 'String', 'StringValue': result['myvalue']}
}
)
def store_result_in_db(result):
try:
connection = mysql.connector.connect(**db_config)
cursor = connection.cursor()
sql = "INSERT INTO kv (mykey, myvalue) VALUES (%s, %s) ON DUPLICATE KEY UPDATE myvalue = VALUES(myvalue)"
cursor.execute(sql, (result['mykey'], result['myvalue']))
connection.commit()
except mysql.connector.Error as err:
print(f"Error: {err}")
finally:
if connection.is_connected():
cursor.close()
connection.close()
def main():
while True:
message = receive_work_message()
if message:
message_body = json.loads(message['Body'])
result = process_work_message(message_body)
send_result_message(result)
store_result_in_db(result)
# 删除已处置惩罚的消息
sqs_client.delete_message(
QueueUrl=work_queue_url,
ReceiptHandle=message['ReceiptHandle']
)
if name == 'main':
main()
复制代码


#### 4. 设置安全性和权限


- **IAM 脚色和策略**:


- 为 `server_ai` 创建一个 IAM 脚色,并附加适当的策略,答应其访问 Amazon SQS 消息队列和 Amazon Aurora MySQL 数据库。


- 确保策略中包罗对 `sqs:SendMessage`、`sqs:ReceiveMessage`、`sqseleteMessage` 等 SQS 操作的权限,以及对 RDS 数据库的连接和操作权限。




- **安全组**:


- 检查 Amazon Aurora MySQL 数据库的安全组设置,确保答应 `server_ai` 所在的实例或网络访问数据库。


- 同样,检查 Amazon SQS 消息队列的访问策略,确保 `server_ai` 具有相应的权限。




### 总结


通过以上步骤,你可以在亚马逊云中部署一个兼容 MySQL 的数据

#### 4. 设置安全性和权限
- **IAM 脚色和策略**:
    - 为 `server_ai` 创建一个 IAM 脚色,并附加适当的策略,答应其访问 Amazon SQS 消息队列和 Amazon Aurora MySQL 数据库。
    - 确保策略中包罗对 `sqs:SendMessage`、`sqs:ReceiveMessage`、`sqseleteMessage` 等 SQS 操作的权限,以及对 RDS 数据库的连接和操作权限。

- **安全组**:
    - 检查 Amazon Aurora MySQL 数据库的安全组设置,确保答应 `server_ai` 所在的实例或网络访问数据库。
    - 同样,检查 Amazon SQS 消息队列的访问策略,确保 `server_ai` 具有相应的权限。

### 总结
通过以上步骤,你可以在亚马逊云中部署一个兼容 MySQL 的数据库和消息队列,并实现 `server_ai` 的功能,使其可以或许乐成连接消息队列和数据库,处置惩罚工作信息并将结果存储到数据库中。在现实应用中,你可能需要根据具体的业务需求对架构和代码进行进一步的优化和调整。
团体架构设计思路

具体实施步骤

1. 部署 Amazon SQS 消息队列


2. 部署 Amazon Aurora MySQL 兼容版数据库


sql复制代码


CREATE TABLE kv (


mykey VARCHAR(255) NOT NULL,


myvalue VARCHAR(255),


PRIMARY KEY (mykey)


);

3. 设置 server_ai 的连接和运行逻辑

方案一:使用 Amazon EC2 实例直接部署


python复制代码


import boto3


import mysql.connector


import json




# 设置 Amazon SQS 客户端


sqs_client = boto3.client('sqs', region_name='your-region')


work_queue_url = 'https://sqs.your-region.amazonaws.com/your-account-id/ai-work-queue'


result_queue_url = 'https://sqs.your-region.amazonaws.com/your-account-id/ai-result-queue'




# 设置 Amazon Aurora MySQL 数据库连接


db_config = {


'user': 'your-username',


'password': 'your-password',


'host': 'your-aurora-endpoint',


'database': 'your-database-name'


}




def receive_work_message():


response = sqs_client.receive_message(


QueueUrl=work_queue_url,


MaxNumberOfMessages=1


)


if 'Messages' in response:


return response['Messages'][0]


return None




def process_work_message(message_body):


# 在这里实现工作信息的处置惩罚逻辑


# 假设处置惩罚结果为 mykey='key1', myvalue='value1'


return {'mykey': 'key1', 'myvalue': 'value1'}




def send_result_message(result):


sqs_client.send_message(


QueueUrl=result_queue_url,


MessageBody='Result message',


MessageAttributes={


'mykey': {'DataType': 'String', 'StringValue': result['mykey']},


'myvalue': {'DataType': 'String', 'StringValue': result['myvalue']}


}


)




def store_result_in_db(result):


try:


connection = mysql.connector.connect(**db_config)


cursor = connection.cursor()


sql = "INSERT INTO kv (mykey, myvalue) VALUES (%s, %s) ON DUPLICATE KEY UPDATE myvalue = VALUES(myvalue)"


cursor.execute(sql, (result['mykey'], result['myvalue']))


connection.commit()


except mysql.connector.Error as err:


print(f"Error: {err}")


finally:


if connection.is_connected():


cursor.close()


connection.close()




def main():


while True:


message = receive_work_message()


if message:


message_body = json.loads(message['Body'])


result = process_work_message(message_body)


send_result_message(result)


store_result_in_db(result)


# 删除已处置惩罚的消息


sqs_client.delete_message(


QueueUrl=work_queue_url,


ReceiptHandle=message['ReceiptHandle']


)




if __name__ == '__main__':


main()

方案二:使用 Amazon ECS 容器化部署


4. 设置安全性和权限


5. 使用图形化界面连接


总结

通过以上步骤,你可以在亚马逊云中部署一个兼容 MySQL 的数据库和消息队列,并实现 server_ai 的功能,使其可以或许乐成连接消息队列和数据库,处置惩罚工作信息并将结果存储到数据库中。你可以根据现实需求选择使用 EC2 或 ECS 来部署 server_ai。在现实应用中,你可能需要根据具体的业务需求对架构和代码进行进一步的优化和调整。

3. 安装数据库客户端工具
本地盘算机:
根据数据库类型安装相应的客户端工具。例如:
MySQL:安装 MySQL Workbench 或使用命令行工具 mysql。
PostgreSQL:安装 pgAdmin 或使用命令行工具 psql。
Redshift:使用 SQL Workbenches/J 或 AWS 提供的工具。
EC2 实例:
通过 SSH 连接到 EC2 实例,并安装相应的数据库客户端工具。例如:
bash
sudo yum install mysql -y  # 对于 MySQL
sudo yum install postgresql -y  # 对于 PostgreSQL
4. 测试连接
本地盘算机:
使用客户端工具输入数据库的终端节点、端标语、用户名和密码进行连接。
例如,使用命令行工具连接 MySQL:
bash
mysql -h mydb.xxxxxxxxxx.us-east-1.rds.amazonaws.com -P 3306 -u myuser -p
EC2 实例:
在 EC2 实例上使用相同的命令或客户端工具进行连接。
5. 使用 IAM 数据库认证(可选)
对于支持 IAM 数据库认证的数据库(如 Amazon Aurora),可以使用 IAM 脚色和策略来管理数据库访问权限,而无需存储数据库密码。
步骤:
在 RDS 控制台中启用 IAM 数据库认证。
创建 IAM 脚色并附加到需要访问数据库的 EC2 实例或用户。
使用 IAM 令牌生成数据库密码并连接数据库。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 qidao123.com技术社区-IT企服评测·应用市场 (https://dis.qidao123.com/) Powered by Discuz! X3.4