AWS45.ElastiCache使用案例

时间:2022-06-23
本文章向大家介绍AWS45.ElastiCache使用案例,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

ElastiCache使用案例

== 实验步骤

=== 创建 IAM 角色

  • 导航到IAM
  • 左侧菜单中,单击角色 。单击创建角色该按钮以创建新的 IAM 角色
  • 在创建角色部分,为角色选择可信实体类型
  • AWS 服务
  • 使用案例:EC2
  • 单击下一步
  • 添加权限:现在,您可以看到策略列表。按名称S3fullaccess搜索权限,然后单击AmazonS3FullAccess
  • 按名称AmazonSSMManagedInstanceCore搜索权限然后单击添加
  • 单击下一步
  • 角色名称:输入 TestCache
  • 已成功按名称 TestCache 创建了一个 IAM 角色。
  • 注意:您可以使用其他名称创建角色,然后将其附加到 EC2 实例

=== 创建 S3 存储桶

  • 请确保您位于美国东部(弗吉尼亚北部)us-east-1 区域。
  • 顶部菜单导航到 S3
  • 在 S3 页面上,单击创建存储桶填写存储桶详细信息
  • 桶名称:输入mys3bucket-lab
  • 注意: S3 存储桶名称是全局唯一的,请选择一个可用的名称
  • AWS 区域:选择美国东部(弗吉尼亚北部)美国东部-1
  • 对于对象所有权:选择ACL 已启用
  • 对象所有权:对象编写者
  • 对于此存储桶的“阻止公有访问”设置部分
  • 取消选中"阻止所有公共访问"选项,然后选中确认选项。
  • 其他设置保留为默认值。
  • 创建存储桶按钮
  • S3 存储桶已创建

=== 将文件上传到 S3 存储桶

  • 单击您的存储桶名称。
  • 在对象中,您可以看到以下消息
  • 此存储桶中没有任何对象
  • 您可以从本地计算机本实验所需文件

==== 本实验所需文件位于此仓库附件目录

  • 将文件上传到我们的 S3 存储桶
  • 点击上传按钮。
  • 点击添加文件按钮。
  • 浏览您的本地文件并选择它
  • 单击上传按钮上传
  • 您可以从屏幕顶部的传输面板中查看上传进度
  • 上传文件后,它将显示在存储桶中

=== 启动 EC2 实例

==== (1)控制台启动实例

==== (2)选择系统镜像

==== (3)选择实例类型

==== (4)配置实例

  • 实例的数量:选择 1
  • 向下滚动到 IAM 角色,然后选择我们在上述步骤中创建的TestCache角色
  • 其他字段保留为默认值

==== (5)添加存储

==== (6)添加标签

==== (7) 配置安全组

  • 添加 SSH

. 选择类型: 选择 SSH
. 协议:TCP
. 端口范围:22

. 源:选择"任何位置"

  • 添加 Redis

. 选择类型: 选择 自定义 TCP
. 协议:TCP
. 端口范围:6379

. 源:选择"任何位置"

  • 添加 Flask

. 选择类型: 选择 自定义 TCP
. 协议:TCP
. 端口范围:5000

. 源:选择"任何位置"

  • 点击下一步 审核和启动

==== (8) 审核启动

  • 检查所有选定的设置,无误点击启动
  • 选择现有密钥对,确认并单击启动实例

=== 不使用ElastiCache下测试

  • 通过会话管理器 进入 EC2 实例

==== 安装所需的软件包并导入S3储存桶文件

  • 通过在终端中输入以下命令来安装所需的软件包

yum -y update

pip3 install virtualenv

  • 通过在终端中输入以下命令来导入S3储存桶文件
  • 注意:S3对象URL替换成自己的存储桶对象URL

aws s3 cp s3://mys3bucket-lab/requirements.txt requirements.txt
aws s3 cp s3://mys3bucket-lab/session-store-1.py session-store-1.py

aws s3 cp s3://mys3bucket-lab/session-store-2.py session-store-2.py

  • 运行Flask web应用服务器
  • 通过在终端中输入以下命令来运行

virtualenv venv
source ./venv/bin/activate
pip3 install -r requirements.txt
export FLASK_APP=session-store-1.py
export SECRET_KEY=0987654321

flask run -h 0.0.0.0 -p 5000 --reload

  • 通过粘贴到浏览器中来访问公共IP地址:5000,您将看到如下所示的响应
  • 登录访问公共IP地址:5000/login
  • 输入任意名称点击login
  • 通过刷新可以看到访问次数增加

==== 现在测试停止实例并重新启动后Flask web应用服务器上的Session是否依然存在

  • 回到EC2控制台,点击操作,点击停止实例
  • 待实例停止后重新启动实例
  • 再次通过会话管理器连接到EC2实例
  • 重复步骤启动Flask web应用服务器以查看Session

cd ~
virtualenv venv
source ./venv/bin/activate
export FLASK_APP=session-store-1.py
export SECRET_KEY=0987654321

flask run -h 0.0.0.0 -p 5000 --reload

  • 登录访问公共IP地址:5000/login
  • 重新启动后公共IP地址已发生变化
  • 输入刚刚的名称点击login
  • 发现Flask web应用服务器上保存的Session不见了
  • 得出结论在没有ElastiCache的情况下Flask web应用服务器重启后无法访问到上次的Session
  • 退出界面暂时停止EC2实例

=== 使用ElastiCache对比测试

==== 创建 Redis 集群

  • 顶部菜单导航到 ElastiCache
  • 单击"立即开始"按钮继续
  • 我们现在将创建一个 Redis 集群
  • 集群引擎:选择 Redis
  • 已启用集群模式:不选中
  • 选择位置:Amazon 云

image::/图片/45图片/创建1.png[创建1]

  • 在 Redis 设置部分中,按如下方式填写详细信息
  • 名称:输入MyRedisCluster
  • 描述: 输入 Redis Cluster for WhizProject
  • 引擎版本兼容性:6.x(默认)
  • 端口:6379(默认)
  • 参数组:default.redis6.x
  • 节点类型:cache.t2.micro(0.5 GiB)
  • 副本数量:1
  • 多可用区:选中
  • 子网组:新建
  • 名称:输入elasticache-subnet-group
  • 描述:输入Subnet group for ElastiCache
  • VPC ID:默认VPC
  • 子网:全选
  • 单击高级 Redis 设置
  • "安全性"中,更改安全组
  • 加入选择EC2实例的安全组保持选择默认安全组
  • "备份"部分中:
  • 启用自动备份:取消选中
  • 将其他选项保留为默认值
  • 最后,单击"创建"按钮。
  • 此集群从创建状态转到可用状态最多需要 10 分钟

==== 复制主终端节点

  • 单击选中集群
  • 复制主终端节点,并将其保存在记事本中,我们将在后面的步骤中使用它
  • 例如:myrediscluster.a4vcgc.ng.0001.use1.cache.amazonaws.com:6379

==== 使用ElastiCache测试

  • 回到EC2控制台启动实例
  • 再次通过会话管理器连接到EC2实例
  • 启动Flask web应用服务器
  • 下方REDIS_URL替换为自己的REDIS主终端节点

cd ~
virtualenv venv
source ./venv/bin/activate
export FLASK_APP=session-store-2.py
export SECRET_KEY=0987654321
export REDIS_URL="redis://myrediscluster.a4vcgc.ng.0001.use1.cache.amazonaws.com:6379"

flask run -h 0.0.0.0 -p 5000 --reload

image::/图片/45图片/启动flask.png[启动flask]

  • 登录访问公共IP地址:5000/login
  • 输入任意名称点击login
  • 通过刷新可以看到访问次数增加

==== 现在测试停止实例并重新启动后Flask web应用服务器上的Session是否依然存在

  • 回到EC2控制台,点击操作,点击停止实例
  • 待实例停止后重新启动实例
  • 再次通过会话管理器连接到EC2实例
  • 重复步骤启动Flask web应用服务器以查看Session
  • 下方REDIS_URL替换为自己的REDIS主终端节点

cd ~
virtualenv venv
source ./venv/bin/activate
export FLASK_APP=session-store-2.py
export SECRET_KEY=0987654321
export REDIS_URL="redis://myrediscluster.a4vcgc.ng.0001.use1.cache.amazonaws.com:6379"

flask run -h 0.0.0.0 -p 5000 --reload

  • 登录访问公共IP地址:5000/login
  • 重新启动后公共IP地址已发生变化
  • 输入刚刚的名称点击login
  • 发现Flask web应用服务器保存的Session依然存在

image::/图片/45图片/
[使用cache访问重启后]

  • 得出结论在使用ElastiCache的情况下Flask web应用服务器重启后依然可以访问到上次的Session

原文地址:https://www.cnblogs.com/ajajroom/p/16406333.html