シンプルなcode-server
環境を作るためのCloudFormationテンプレートです。
このテンプレートはAWS Cloud9の代替を意図して作成しました。
主な用途としてAWS Workshopsやコミュニティイベントのハンズオン等での 一時的な 利用を想定しています。
Warning
このテンプレートは永続的な開発環境として使うことを意図していません
永続的な開発環境が必要な場合はCoderを使用してください。
本テンプレートは新規にVPCとcode-server
がインストールされた1台のEC2インスタンスを作成します。
以下の環境でテスト済みです。
- AWS 東京リージョン (ap-northeast-1)
- Amazon Linux 2023 : 2023.5.20240730.0
- code-server : v4.91.1
VPC、EC2、IAMロールを作成可能な権限を持つユーザーで作業してください。
はじめにローカル環境で以下のコマンドを実行して、自分のグローバルIPアドレスを取得してください。
取得したグローバルIPアドレスは次の手順で使います。
#
# ローカル環境で次のコマンドを実行します
#
# Widnows環境の場合
curl.exe -s https://checkip.amazonaws.com
# macOSおよびLinux環境の場合
curl -s https://checkip.amazonaws.com
次に東京リージョンでAWS CloudShellを起動し以下のコマンドを実行して環境を構築します。
YOUR_GLOBAL_IP
変数にご自身のグローバルIPアドレスを設定します。
#
# 東京リージョンのAWS CloudShellで以下のコマンドを実行します
#
# 本リポジトリをclone
git clone https://github.com/stknohg/code-server-cfn.git --depth 1
cd code-server-cfn/
# 自分のグローバルIPアドレスを設定
export YOUR_GLOBAL_IP="XX.XX.XX.XX"
# CloudFormationスタックを作成
aws cloudformation create-stack --stack-name temp-code-server \
--template-body file://./code-server.yaml \
--parameters "ParameterKey=UserCIDR,ParameterValue=${YOUR_GLOBAL_IP}/32" \
--capabilities CAPABILITY_NAMED_IAM
CloudFormationスタックがエラー無く完了すればセットアップは完了です。
code-server
へアクセスする際にパスワードが必要になります。
このパスワードはEC2インスタンスのOS内部に保存されており、SSM Sessionでインスタンス内部に接続してから次のコマンドを実行して取得してください。
#
# SSM Sessionを使いEC2インスタンスに接続して次のコマンドを実行します
#
# code-serverのパスワードを取得
sudo cat /home/ec2-user/.config/code-server/config.yaml | grep password:
続けてWEBブラウザを起動しhttps://<Your EC2 instance Public IP>/
にアクセスしてください。
直接IPアドレスを指定しているので「接続がプライベートでない」旨のエラーがでますがそのまま続行します。
するとcode-server
のログイン画面に遷移しますので、先ほど取得したパスワードを入力し「SUBMIT」ボタンをクリックします。
初期設定を済ませて、後は自由にWeb IDEを利用してください。
直接IPアドレスを指定しているため以下のSSLエラーが出ますが、これは意図した挙動ですので無視してください。
An SSL certificate error occurred when fetching the script.
Warning
SSLエラーを解消したい場合は別途適切なサーバー証明書を導入してください。
もしくは code-server でなく Coder を使用してください。
Note
短時間の利用であれば Pinggyを使う構成 で代替することもできます。
Web IDEの利用を終えた後はEC2インスタンスを停止し、CloudFormationスタックを削除して環境を削除します。
東京リージョンでAWS CloudShellを起動し以下のコマンドを実行すると環境を削除できます。
#
# 東京リージョンのAWS CloudShellで以下のコマンドを実行します
#
# CloudFormationスタックの削除
aws cloudformation delete-stack --stack-name temp-code-server
本テンプレートはMIT Licenseで公開しています。
必要に応じて改変してご利用ください。