これは、2019年 code-server に Advent Calender の 第15日目の記事です。
前回に続き、EC2 Instance を 立ち上げたいと思います。
目次
ローカル環境篇 1日目
オンライン環境篇 1日目 作業環境を整備する
オンライン環境篇 3日目 Boto3 で EC2 インスタンスを立ち上げる
オンライン環境篇 4日目 Code-Serverをクラウドで動かしてみる
オンライン環境篇 5日目 Docker 上で、code-server を立ち上げる
オンライン環境篇 7日目 git 上のcompose を EC2上に展開する
...
オンライン篇 .. Coomposeファイルで構築
オンライン篇 .. K8Sを試してみる
...
魔改造篇
はじめに
前回までで、boto3 x python で EC2 Instance を 立ち上げました。
そして、Code-Server を動かしました。
今回は、Docker を利用して、Code-Serverを立ち上げてみましょう。
EC2 Instance を作る
前回のつづきから
$ git clone https://github.com/kyorohiro/advent-2019-code-server.git
$ cd advent-2019-code-server/remote_cs04/
$ docker-compose build
$ docker-compose up -d
ブラウザで、http://127.0.0.1:8443/
を開く。
Terminal 上で
$ pip install -r requirements.txt
$ aws configure
..
..
EC2Instance を 作成
$ python main.py --create
EC2 情報を取得
$ python main.py --get
>>>> i-0d1e7775a07bbb326
>>>>
>>>> 3.112.18.33
>>>> ip-10-1-0-228.ap-northeast-1.compute.internal
>>>> 10.1.0.228
>>>> {'Code': 16, 'Name': 'running'}
SSHで中に入る
$ chmod 600 advent-code-server.pem
$ ssh -i advent-code-server.pem ubuntu@3.112.18.33
Docker を install
Docker 環境を作成していきます
EC2上で
$ sudo apt-get update
$ sudo apt-get install -y docker.io
Docker の Hello World
$ sudo docker run hello-world
atest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:4fe721ccc2e8dc7362278a29dc660d833570ec2682f4e4194f4ee23e415e1064
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
Code-Server を 起動してみよう
$ mkdir -p ${HOME}/.local/share/code-server/extensions
$ sudo docker run -it -p 0.0.0.0:8080:8080 -p0.0.0.0:8443:8443 codercom/code-server:v2 --cert
info Server listening on https://0.0.0.0:8080
info - Password is 86821ed9f02ef11d83e980da
info - To use your own password, set the PASSWORD environment variable
info - To disable use `--auth none`
info - Using generated certificate and key for HTTPS
できました!!
削除しよう
# ec2 instance から logout
$ exit
# local の code-server 上で
$ python main.py --delete
なんども使い回したいならば、 ec2 instance を停止するようにしてください
※ 次回か次次回
次回
手動で行っていた作業を、自動化してあげましょう!!
コード