在AWS上创建有状态的弹性块存储。

sebs的Python项目详细描述


有状态弹性块存储(sebs)

Sebs是为需要在自动调整中粘贴有状态应用程序的情况而创建的 最大大小为1的组。Sebs将确保在重新创建实例时 无论在哪个AZ中重新创建实例,都会将卷重新附加回实例。在

为什么

在实例是retired的情况下,单个实例ASG是很好的保护。 它还可以帮助您在实例所在的AZ发生故障时启用滚动升级和灾难恢复。在

先决条件

  • Python3
  • EC2实例配置文件,具有创建/删除快照和卷的权限。在

IAM策略示例

{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":["ec2:DetachVolume","ec2:AttachVolume","ec2:DeleteVolume","ec2:DeleteSnapshot","ec2:CreateTags","ec2:CreateSnapshot","ec2:CreateVolume"],"Resource":["arn:aws:ec2:*:*:instance/*","arn:aws:ec2:*::snapshot/*","arn:aws:ec2:*:*:volume/*"]},{"Effect":"Allow","Action":["ec2:DescribeInstances","ec2:DescribeVolumes","ec2:DescribeSnapshots"],"Resource":"*"}]}

安装

Sebs应该从EC2实例运行,也可以从userdata或任何CaC工具运行。 Sebs可以从pip或GitHub安装。在

来自pip

^{pr2}$

来自GitHub

python3 -m pip install git+https://github.com/DontShaveTheYak/sebs.git#egg=sebs

使用

sebs
usage: sebs [-h] -b BACKUP [-n NAME] [-v] [--version]

optional arguments:
  -h, --help            show this help message and exit
  -b BACKUP, --backup BACKUP
                        <Required> List of Devices to Backup
  -n NAME, --name NAME  <Optional> specify a your app name.
  -v, --verbose         Verbosity (-v, -vv, etc)
  --version             show program's version number and exit

注意:如果要在一个区域中有多个实例,请使用sebs,然后需要传入一个名称。在

sebs -b /dev/xvdz -n ${MY_APP_NAME}

下面是一个示例userdata脚本

#!/bin/bashexec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console)2>&1echo"Running Sebs"
yum install python3 -y
python3 -m pip install sebs

# On RHEL and Amazon Linux2 /usr/local/bin is not in the path for root user.
/usr/local/bin/sebs -b /dev/xvdz -n example-app

echo'Waiting on device /dev/xvdz to be available.'while[ ! -e /dev/xvdz ];do sleep 1;doneecho'Device is ready.'

在第一次运行时,sebs将用一个控制标记标记安装在/dev/xvdz的卷。 如果实例被重新创建,sebs将查找带有控制标记和 如果找到该卷,它会将该卷作为与之前相同的设备装载到实例中。在

贡献

请阅读CONTRIBUTING.md。在

版本控制

我们使用SemVer进行版本控制。对于可用版本, 参见tags on this repository。在

要查看发生了什么变化,请参阅CHANGELOG。在

许可证

此项目是在GPLv3许可下授权的-有关详细信息,请参阅LICENSE文件

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在SWT中关闭CTabItem时如何获取警告消息?   java如何从中获取文本字符串   java带有(int[][])的方法意味着什么?   java我在创建这个安卓浮动泡泡动画时做错了什么?   将边距属性作为列表项的java表抛出异常ClassCastException   java如何在Storm拓扑中测量延迟和吞吐量   java如何在javafx中序列化事件?   java访问main()之外的线程   java如何强制某些方法仅对kotlin可见   java如何使用quartzscheduler启动具有多个crontrigger的作业?   java无法使用VM选项获取转储文件:引发OOM异常时出现HEAPDUMPONAUTOFMEMORYERROR   java无法在安卓中的FTP服务器上上载文件   java RecordView未显示   java有没有办法在Eclipse中隐藏/折叠虚张声势的注释?   java如何从xml中提取xml。广州?