【问题标题】:Terminating AWS Elastic Beanstalk environment终止 AWS Elastic Beanstalk 环境
【发布时间】:2021-09-29 06:05:27
【问题描述】:

我想终止我的 AWS Elastic Beanstalk 环境,但我想保留与该环境关联的 RDS 数据库实例的快照。

我已经成功创建了相关 RDS 数据库的快照,但是当我去终止 Elastic Beanstalk 环境时,它说这样做会:

用快照终止database-in-question

这是否意味着我创建的快照以及数据库实例将被删除?如果是这样,我怎样才能避免快照被删除?

【问题讨论】:

  • 它应该要求你保留快照。它不这样做吗?
  • @Marcin 不,不幸的是它没有要求我保留快照...
  • 你去RDS控制台做手动快照了吗?
  • @Marcin 我想是的;我做了:操作 > 在 RDS 控制台的数据库区域中拍摄快照
  • 您可以按照以下步骤保留rds备份-> aws.amazon.com/premiumsupport/knowledge-center/…

标签: amazon-web-services amazon-elastic-beanstalk


【解决方案1】:

Elastic Beanstalk 在后台使用 CloudFormation 来预置您的环境。 CloudFormation 的工作原理是它有一个堆栈,其中包含它创建的所有资源,并且一旦您删除了 Beanstalk 环境,该堆栈就会被删除。因此,它将删除作为堆栈一部分的所有资源。您可以在控制台中转到 CloudFormation 并查看它。

如果您手动创建了数据库快照,它将位于 CloudFormation 堆栈之外,因此不会被删除。

但是,作为 Beanstalk 环境设置的一部分,您的 DB 会有一些自动备份。当您终止您的环境时,这些将被删除。

这是我的测试环境堆栈:

$ aws cloudformation describe-stack-resources --stack-name awseb-e-jjqgv3nwgp-stack --profile=personal
{
    "StackResources": [
        [...],
        {
            "StackName": "awseb-e-jjqgv3nwgp-stack",
            "StackId": "arn:aws:cloudformation:eu-central-1:[my_account]:stack/awseb-e-jjqgv3nwgp-stack/f21c2e00-ea6d-11eb-9f61-02ad9e7e97f6",
            "LogicalResourceId": "AWSEBRDSDBSecurityGroup",
            "PhysicalResourceId": "awseb-e-jjqgv3nwgp-stack-AWSEBRDSDBSecurityGroup-1SDABJ60VF7G8",
            "ResourceType": "AWS::EC2::SecurityGroup",
            "Timestamp": "2021-07-21T21:52:52.931000+00:00",
            "ResourceStatus": "CREATE_COMPLETE",
            "DriftInformation": {
                "StackResourceDriftStatus": "NOT_CHECKED"
            }
        },
        {
            "StackName": "awseb-e-jjqgv3nwgp-stack",
            "StackId": "arn:aws:cloudformation:eu-central-1:[my_account]:stack/awseb-e-jjqgv3nwgp-stack/f21c2e00-ea6d-11eb-9f61-02ad9e7e97f6",
            "LogicalResourceId": "AWSEBRDSDatabase",
            "PhysicalResourceId": "aa1v9kyuepq8x1c",
            "ResourceType": "AWS::RDS::DBInstance",
            "Timestamp": "2021-07-21T21:59:24.817000+00:00",
            "ResourceStatus": "CREATE_COMPLETE",
            "DriftInformation": {
                "StackResourceDriftStatus": "NOT_CHECKED"
            }
        },
        [...]
    ]
}

这是我的 RDS 快照:

$ aws rds describe-db-snapshots --profile=personal
{
    "DBSnapshots": [
        {
            "DBSnapshotIdentifier": "foobar-snapshot-test",
            "DBInstanceIdentifier": "aa1v9kyuepq8x1c",
            "SnapshotCreateTime": "2021-07-21T22:09:03.752000+00:00",
            "Engine": "mysql",
            "AllocatedStorage": 5,
            "Status": "available",
            "Port": 3306,
            "AvailabilityZone": "eu-central-1a",
            "VpcId": "vpc-128d5178",
            "InstanceCreateTime": "2021-07-21T21:56:51.205000+00:00",
            "MasterUsername": "foo",
            "EngineVersion": "8.0.23",
            "LicenseModel": "general-public-license",
            "SnapshotType": "manual",
            "OptionGroupName": "default:mysql-8-0",
            "PercentProgress": 100,
            "StorageType": "standard",
            "Encrypted": false,
            "DBSnapshotArn": "arn:aws:rds:eu-central-1:[my_account]:snapshot:foobar-snapshot-test",
            "IAMDatabaseAuthenticationEnabled": false,
            "ProcessorFeatures": [],
            "DbiResourceId": "db-PFQFQBRFBELDWUQTONIPRJRVCU",
            "TagList": []
        },
        {
            "DBSnapshotIdentifier": "rds:aa1v9kyuepq8x1c-2021-07-21-21-57",
            "DBInstanceIdentifier": "aa1v9kyuepq8x1c",
            "SnapshotCreateTime": "2021-07-21T21:57:05.277000+00:00",
            "Engine": "mysql",
            "AllocatedStorage": 5,
            "Status": "available",
            "Port": 3306,
            "AvailabilityZone": "eu-central-1a",
            "VpcId": "vpc-128d5178",
            "InstanceCreateTime": "2021-07-21T21:56:51.205000+00:00",
            "MasterUsername": "foo",
            "EngineVersion": "8.0.23",
            "LicenseModel": "general-public-license",
            "SnapshotType": "automated",
            "OptionGroupName": "default:mysql-8-0",
            "PercentProgress": 100,
            "StorageType": "standard",
            "Encrypted": false,
            "DBSnapshotArn": "arn:aws:rds:eu-central-1:[my_account]:snapshot:rds:aa1v9kyuepq8x1c-2021-07-21-21-57",
            "IAMDatabaseAuthenticationEnabled": false,
            "ProcessorFeatures": [],
            "DbiResourceId": "db-PFQFQBRFBELDWUQTONIPRJRVCU",
            "TagList": []
        }
    ]
}

所以,我们有一份自动快照和一份手动快照。

删除应用程序后,CloudFormation 堆栈被移除,剩下的是手动快照,但自动快照已被删除:

$ aws rds describe-db-snapshots --profile=personal
{
    "DBSnapshots": [
        {
            "DBSnapshotIdentifier": "foobar-snapshot-test",
            "DBInstanceIdentifier": "aa1v9kyuepq8x1c",
            "SnapshotCreateTime": "2021-07-21T22:09:03.752000+00:00",
            "Engine": "mysql",
            "AllocatedStorage": 5,
            "Status": "available",
            "Port": 3306,
            "AvailabilityZone": "eu-central-1a",
            "VpcId": "vpc-128d5178",
            "InstanceCreateTime": "2021-07-21T21:56:51.205000+00:00",
            "MasterUsername": "foo",
            "EngineVersion": "8.0.23",
            "LicenseModel": "general-public-license",
            "SnapshotType": "manual",
            "OptionGroupName": "default:mysql-8-0",
            "PercentProgress": 100,
            "StorageType": "standard",
            "Encrypted": false,
            "DBSnapshotArn": "arn:aws:rds:eu-central-1:[my_account]:snapshot:foobar-snapshot-test",
            "IAMDatabaseAuthenticationEnabled": false,
            "ProcessorFeatures": [],
            "DbiResourceId": "db-PFQFQBRFBELDWUQTONIPRJRVCU",
            "TagList": []
        }
    ]
}

在终止 Beanstalk 上的任何内容之前,您始终可以仔细检查您的 RDS 快照以确保那里有手动快照。

【讨论】:

    猜你喜欢
    • 2021-12-27
    • 2018-11-15
    • 2015-08-05
    • 2015-12-29
    • 2016-12-29
    • 2016-04-20
    • 2016-12-10
    • 1970-01-01
    • 2018-04-27
    相关资源
    最近更新 更多