AWS リソースを破壊する:Cloud-Nuke または AWS-Nuke?
開発アカウントで作業しているのに、Terraform が循環から抜け出せず、残りのリソースを簡単に破棄できないということですか? Nuke CLI の世界に入りましょう!
雲核
執筆時点では、バージョン v0.1.16 を使用しました
Go で書かれた From Gruntwork は、aws-nuke ほど多くのオブジェクトを破壊しません。 2017 年 5 月から使用されています
~/.aws/credentials
を使用している場合 、(賢明に!)アカウントエイリアスを選択します(myenv-dev
私の場合) そこから:
AWS_PROFILE=myenv-dev ~/Downloads/cloud-nuke_darwin_amd64 aws
しかし実際には、スコープを 1 つのリージョンに絞り込みたいと思うでしょう。そのため、コマンド ラインで指定する必要があります:
AWS_PROFILE=myenv-dev ~/Downloads/cloud-nuke_darwin_amd64 aws --region=eu-west-1
リスト引数で呼び出すと aws --list-resource-types
削除がサポートされているリソースのリストが表示されます:
ami asg ebs ec2 ecsserv eip ekscluster elb elbv2 lc rds snap
aws-nuke
執筆時点では、バージョン v2.14.0 を使用していました
Ruby で書かれた rebuy.de から、多くのオブジェクトが破棄されますが、すべてではないにしても、フィルターをサポートし、構成ファイルが必要です。 2016 年 6 月から存在しています。
構成ファイルを提供する必要があります。最小限のものは次のようになります nuke.yml
ファイル
regions: - eu-west-1 - global # for resources not bound to a specific region, such as Route53 zones for example account-blacklist: - "111222333444" # production accounts: "999888777666": {} # aws-nuke-example
~/.aws/credentials
を使用している場合 、アカウント エイリアス (myenv-dev
) を (賢明に) 選択します。 私の場合) そこから:
AWS_PROFILE=myenv-dev ~/Downloads/aws-nuke-v2.14.0-darwin-amd64 --config nuke.yml
リスト引数で呼び出すと resource-types
、削除がサポートされているリソースのリストを取得します:
ACMCertificate ACMPCACertificateAuthority ACMPCACertificateAuthorityState APIGatewayAPIKey APIGatewayClientCertificate APIGatewayDomainName APIGatewayRestAPI APIGatewayUsagePlan APIGatewayVpcLink AWSBackupPlan AWSBackupRecoveryPoint AWSBackupSelection AWSBackupVault AppStreamDirectoryConfig AppStreamFleet AppStreamFleetState AppStreamImage AppStreamImageBuilder AppStreamImageBuilderWaiter AppStreamStack AppStreamStackFleetAttachment AutoScalingGroup AutoScalingPlansScalingPlan BatchComputeEnvironment BatchComputeEnvironmentState BatchJobQueue BatchJobQueueState Cloud9Environment CloudDirectoryDirectory CloudDirectorySchema CloudFormationStack CloudFrontDistribution CloudFrontDistributionDeployment CloudHSMV2Cluster CloudHSMV2ClusterHSM CloudSearchDomain CloudTrailTrail CloudWatchAlarm CloudWatchDashboard CloudWatchEventsRule CloudWatchEventsTarget CloudWatchLogsDestination CloudWatchLogsLogGroup CodeBuildProject CodeCommitRepository CodeDeployApplication CodePipelinePipeline CodeStarProject CognitoIdentityPool CognitoUserPool CognitoUserPoolDomain ConfigServiceConfigRule ConfigServiceConfigurationRecorder ConfigServiceDeliveryChannel DAXCluster DAXParameterGroup DAXSubnetGroup DataPipelinePipeline DatabaseMigrationServiceCertificate DatabaseMigrationServiceEndpoint DatabaseMigrationServiceEventSubscription DatabaseMigrationServiceReplicationInstance DatabaseMigrationServiceReplicationTask DatabaseMigrationServiceSubnetGroup DeviceFarmProject DirectoryServiceDirectory DynamoDBTable DynamoDBTableItem EC2Address EC2ClientVpnEndpoint EC2ClientVpnEndpointAttachment EC2CustomerGateway EC2DHCPOption EC2Image EC2Instance EC2InternetGateway EC2InternetGatewayAttachment EC2KeyPair EC2LaunchTemplate EC2NATGateway EC2NetworkACL EC2NetworkInterface EC2PlacementGroup EC2RouteTable EC2SecurityGroup EC2Snapshot EC2SpotFleetRequest EC2Subnet EC2TGW EC2TGWAttachment EC2VPC EC2VPCEndpoint EC2VPCEndpointServiceConfiguration EC2VPCPeeringConnection EC2VPNConnection EC2VPNGateway EC2VPNGatewayAttachment EC2Volume ECRRepository ECSCluster ECSClusterInstance ECSService ECSTaskDefinition EFSFileSystem EFSMountTarget EKSCluster ELB ELBv2 ELBv2TargetGroup EMRCluster EMRSecurityConfiguration ESDomain ElasticBeanstalkApplication ElasticBeanstalkEnvironment ElasticTranscoderPipeline ElasticacheCacheCluster ElasticacheReplicationGroup ElasticacheSubnetGroup FSxBackup FSxFileSystem FirehoseDeliveryStream GlueClassifier GlueConnection GlueCrawler GlueDatabase GlueDevEndpoint GlueJob GlueTrigger IAMGroup IAMGroupPolicy IAMGroupPolicyAttachment IAMInstanceProfile IAMInstanceProfileRole IAMLoginProfile IAMOpenIDConnectProvider IAMPolicy IAMRole IAMRolePolicy IAMRolePolicyAttachment IAMSAMLProvider IAMServerCertificate IAMServiceSpecificCredential IAMUser IAMUserAccessKey IAMUserGroupAttachment IAMUserPolicy IAMUserPolicyAttachment IAMVirtualMFADevice IoTAuthorizer IoTCACertificate IoTCertificate IoTJob IoTOTAUpdate IoTPolicy IoTRoleAlias IoTStream IoTThing IoTThingGroup IoTThingType IoTThingTypeState IoTTopicRule KMSAlias KMSKey KinesisAnalyticsApplication KinesisStream KinesisVideoProject LambdaEventSourceMapping LambdaFunction LaunchConfiguration LifecycleHook LightsailDisk LightsailDomain LightsailInstance LightsailKeyPair LightsailLoadBalancer LightsailStaticIP MQBroker MSKCluster MachineLearningBranchPrediction MachineLearningDataSource MachineLearningEvaluation MachineLearningMLModel MediaConvertJobTemplate MediaConvertPreset MediaConvertQueue MediaLiveChannel MediaLiveInput MediaLiveInputSecurityGroup MediaPackageChannel MediaPackageOriginEndpoint MediaStoreContainer MediaStoreDataItems MediaTailorConfiguration MobileProject NeptuneCluster NeptuneInstance NetpuneSnapshot OpsWorksApp OpsWorksCMBackup OpsWorksCMServer OpsWorksCMServerState OpsWorksInstance OpsWorksLayer OpsWorksUserProfile RDSDBCluster RDSDBClusterParameterGroup RDSDBParameterGroup RDSDBSubnetGroup RDSInstance RDSSnapshot RedshiftCluster RedshiftParameterGroup RedshiftSnapshot RedshiftSubnetGroup RekognitionCollection ResourceGroupGroup RoboMakerDeploymentJob RoboMakerFleet RoboMakerRobot RoboMakerRobotApplication RoboMakerSimulationApplication RoboMakerSimulationJob Route53HostedZone Route53ResourceRecordSet S3Bucket S3MultipartUpload S3Object SESConfigurationSet SESIdentity SESReceiptFilter SESReceiptRuleSet SESTemplate SFNStateMachine SNSEndpoint SNSPlatformApplication SNSSubscription SNSTopic SQSQueue SSMActivation SSMAssociation SSMDocument SSMMaintenanceWindow SSMParameter SSMPatchBaseline SSMResourceDataSync SageMakerEndpoint SageMakerEndpointConfig SageMakerModel SageMakerNotebookInstance SageMakerNotebookInstanceState SecretsManagerSecret ServiceCatalogConstraintPortfolioAttachment ServiceCatalogPortfolio ServiceCatalogPortfolioProductAttachment ServiceCatalogPortfolioShareAttachment ServiceCatalogPrincipalPortfolioAttachment ServiceCatalogProduct ServiceCatalogProvisionedProduct ServiceCatalogTagOption ServiceCatalogTagOptionPortfolioAttachment ServiceDiscoveryInstance ServiceDiscoveryNamespace ServiceDiscoveryService SimpleDBDomain StorageGatewayFileShare StorageGatewayGateway StorageGatewayTape StorageGatewayVolume WAFRegionalByteMatchSet WAFRegionalByteMatchSetIP WAFRegionalIPSet WAFRegionalIPSetIP WAFRegionalRateBasedRule WAFRegionalRateBasedRulePredicate WAFRegionalRegexMatchSet WAFRegionalRegexMatchTuple WAFRegionalRegexPatternSet WAFRegionalRegexPatternString WAFRegionalRule WAFRegionalRulePredicate WAFRegionalWebACL WAFRegionalWebACLRuleAttachment WAFRule WAFWebACL WAFWebACLRuleAttachment WorkLinkFleet WorkSpacesWorkspace
結論
everything
を削除する必要がある場合 いくつかのリソースを除外できるなら、aws-nuke
だと思います 行く方法です!