AWS Cloud9の環境をAWS CLIで作成/削除/確認する!

AWS Cloud9の環境をAWS CLIで作成します。AWS Cloud9の環境から、開発環境としてAWS CLIを使用することができるので、シェルで容易に環境の構築および削除をできるようにしておくと便利です。

AWS Cloud9の環境を構築するシェルを作成する!

AWS Cloud9の環境を構築するシェルを作成します。環境を削除する場合のために、作成した環境のIDをJSONファイルに出力します。npmコマンドを使用したときに、メモリ不足のエラーが発生したことがあったので、インスタンスの種類を、t2.smallに変更し、AMIをAmazon Linux 2にしています。

$ cat cloud9-env-create.sh
#!/bin/bash
TAG_NAME=demadm01
DESC=Cloud9
#INSTANCE_TYPE=t2.micro
INSTANCE_TYPE=t2.small
#IMAGE_ID=resolve:ssm:/aws/service/cloud9/amis/amazonlinux-1-x86_64
IMAGE_ID=resolve:ssm:/aws/service/cloud9/amis/amazonlinux-2-x86_64
REGION=ap-northeast-1
CONNECTION_TYPE=CONNECT_SSM
AUTOMATIC_STOP_TIME_MINUTES=30
SUBNET_ID=subnet-04bb63af06feceda7
OUTPUT=json

aws cloud9 create-environment-ec2 \
  --name ${TAG_NAME} \
  --description ${DESC} \
  --instance-type ${INSTANCE_TYPE} \
  --image-id ${IMAGE_ID} \
  --region ${REGION} \
  --connection-type ${CONNECTION_TYPE} \
  --automatic-stop-time-minutes ${AUTOMATIC_STOP_TIME_MINUTES} \
  --subnet-id ${SUBNET_ID} \
  --output ${OUTPUT} \
  | tee `basename $0 .sh`.json

AWS Cloud9の環境をシェルで作成する!

実際に作成してみます。

$ ./cloud9-env-create.sh 
{
    "environmentId": "7084bbb6e4704cfd9a95b5862d749f0d"
}

AWS Cloud9の環境の作成状況を確認するシェルを作成する!

AWS Cloud9の環境の作成状況を確認するシェルを作成します。環境を作成したシェルが生成したJSONファイルを入力にします。

$ cat cloud9-env-describe.sh 
#!/bin/bash
INPUT_JSON=cloud9-env-create.json

aws cloud9 describe-environment-status \
  --cli-input-json file://${INPUT_JSON}

AWS Cloud9の環境の作成状況をシェルで確認する!

実際に確認してみます。

$ ./cloud9-env-describe.sh 
{
    "status": "ready",
    "message": "Environment is ready to use."
}

AWS Cloud9の環境を削除するシェルを作成する!

AWS Cloud9の環境を削除するシェルを作成します。環境を作成したシェルが生成したJSONファイルを入力にします。

$ cat cloud9-env-delete.sh 
#!/bin/bash
INPUT_JSON=cloud9-env-create.json

aws cloud9 delete-environment \
  --cli-input-json file://${INPUT_JSON}

AWS Cloud9の環境をシェルで削除する!

実際に削除してみます。削除時は特にメッセージは出力されません。

$ ./cloud9-env-delete.sh 

AWS Cloud9の環境が削除されたことを確認する!

環境が削除されたことを確認します。削除中は以下のメッセージです。

$ ./cloud9-env-describe.sh 
{
    "status": "deleting",
    "message": "The AWS CloudFormation stack associated with this environment is being deleted. Once the process is complete, your environment will no longer be available. To continue, create a new environment to generate a new stack."
}

削除が完了すると、確認用のシェルではエラーメッセージが出力されます。

 ./cloud9-env-describe.sh 

An error occurred (NotFoundException) when calling the DescribeEnvironmentStatus operation: Unable to find [7084bbb6e4704cfd9a95b5862d749f0d] in database.

おわりに

AWS Cloud9の環境をAWS CLIで作成と削除を行いました。ローカルのPCで開発できない場合に、CloudShellからCloud9の環境を作成するとよいと思います。シェルは、CodeCommitに登録して使用することをおすすめします。

関連記事