📝
[小ネタ] Elastic Beanstalk 環境の作成中に環境を自己削除できるか
結論
以下のエラーが発生して自己削除できませんでした。
An error occurred (InvalidParameterValue) when calling the TerminateEnvironment operation: Cannot terminate environment named nodejs-dev. It is currently pending creation.
検証
コマンド実行環境は CloudShell です。
# EB CLI のインストール
$ git clone https://github.com/aws/aws-elastic-beanstalk-cli-setup.git
$ python ./aws-elastic-beanstalk-cli-setup/scripts/ebcli_installer.py
$ echo 'export PATH="/home/ec2-user/.ebcli-virtual-env/executables:$PATH"' >> ~/.bash_profile && source ~/.bash_profile
$ eb --version
EB CLI 3.21.0 (Python 3.9.20 (main, Dec 11 2024, 00:00:00)
[GCC 11.4.1 20230605 (Red Hat 11.4.1-2)])
# サンプルアプリの取得
$ mkdir nodejs
$ cd nodejs
$ wget https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/samples/nodejs.zip
$ unzip nodejs.zip
$ rm nodejs.zip
# 削除スクリプト作成
$ cat > .ebextensions/delete_env.config << 'EOF'
commands:
01_delete_environment:
command: |
#!/bin/bash
nohup aws elasticbeanstalk terminate-environment --environment-name nodejs-dev --region ap-northeast-1 > /tmp/terminate.log 2>&1 &
ignoreErrors: true
EOF
# Elastic Beanstalk 環境の作成
$ eb init
$ eb create --single
デプロイ完了後に EC2 インスタンスにログインして /tmp/terminate.log を確認したところ、冒頭のエラーが記録されていました。
環境作成中であるため削除ができない旨のメッセージです。
$ sudo cat /tmp/terminate.log
An error occurred (InvalidParameterValue) when calling the TerminateEnvironment operation: Cannot terminate environment named nodejs-dev. It is currently pending creation.
また、CloudTrail にも TerminateEnvironment でエラーが発生して記録が残っていましたが、エラーメッセージからは原因を特定できない記録でした。
"errorCode": "InvalidParameterValueException",
"errorMessage": "An unknown error occurred",
まとめ
今回は Elastic Beanstalk 環境の作成中に環境を自己削除できるかという内容を紹介しました。
どなたかの参考になれば幸いです。
Discussion