年末ですね。
こんにちはエンジニアの sakasai です。
最近BeatSaberの動画(これとか、これとか)に突然ハマって、OCULUS QUEST 2 を買おうか迷い中です。
さて、AWS re:Invent 2020 で CloudShell が発表されましたね。
- https://aws.amazon.com/jp/about-aws/whats-new/2020/12/introducing-aws-cloudshell/
- https://aws.amazon.com/jp/cloudshell/
- https://aws.amazon.com/jp/blogs/news/aws-cloudshell-command-line-access-to-aws-resources/
- https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html
少し出遅れ感はありますが、使ってみた感じなどを書いておこうと思います。
最初発表されたあとに東京リージョンで使えるということで、ドキュメントを見ずにすぐ使おうとしたらマネジメントコンソールのサービス一覧の中になくてどこから起動するのか探してしまいました。
ヘッダのアイコンか
サービス名で検索すると
起動できます。(ヘッダのアイコンをクリックすると別タブで開きます)
あとはAmazonLinux2にターミナルで接続したときとほぼ同じように使えますね。
yum updateしたり
$ sudo yum -y update
Loaded plugins: ovl, priorities
amzn2-core | 3.7 kB 00:00:00
Resolving Dependencies
--> Running transaction check
...
Complete!
/proc/version見てみたり
$ sudo cat /proc/version
Linux version 4.14.209-160.335.amzn2.x86_64 (mockbuild@ip-10-0-1-132) (gcc version 7.3.1 20180712 (Red Hat 7.3.1-11) (GCC)) #1 SMP Wed Dec 2 23:31:46 UTC 2020
cpuinfoみたり
$ sudo cat /proc/cpuinfo |head
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 85
model name : Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
stepping : 7
microcode : 0x5002f01
cpu MHz : 2499.998
cache size : 36608 KB
physical id : 0
meminfoみたり
$ sudo cat /proc/meminfo |head
MemTotal: 3977864 kB
MemFree: 2124868 kB
MemAvailable: 3503624 kB
Buffers: 52424 kB
Cached: 1451896 kB
SwapCached: 0 kB
Active: 498776 kB
Inactive: 1191192 kB
Active(anon): 147628 kB
Inactive(anon): 140 kB
日付はタイムゾーンを環境変数にセットして日本時間にできますね。
$ date
Fri Dec 25 13:51:46 UTC 2020
$ export TZ=Asia/Tokyo
$ date
Fri Dec 25 22:52:08 JST 2020
AWS CLIコマンド実行したり
$ aws --version
aws-cli/2.0.58 Python/3.7.3 Linux/4.14.209-160.335.amzn2.x86_64 exec-env/CloudShell exe/x86_64.amzn.2
$ aws s3 ls
2020-12-22 07:20:34 *****
Python実行したり
$ python3 -V
Python 3.7.9
$ pip3 -V
pip 9.0.3 from /usr/lib/python3.7/site-packages (python 3.7)
$ python3 -m venv venv
$ . venv/bin/activate
$ pip3 install -U pip
Collecting pip
Downloading pip-20.3.3-py2.py3-none-any.whl (1.5 MB)
|████████████████████████████████| 1.5 MB 24.7 MB/s
...
Successfully installed pip-20.3.3
$ python -V
Python 3.7.9
$ pip -V
pip 20.3.3 from /home/cloudshell-user/venv/lib64/python3.7/site-packages/pip (python 3.7)
$ pip install boto3
Collecting boto3
Downloading boto3-1.16.43-py2.py3-none-any.whl (130 kB)
|████████████████████████████████| 130 kB 20.2 MB/s
...
Installing collected packages: six, urllib3, python-dateutil, jmespath, botocore, s3transfer, boto3
Successfully installed boto3-1.16.43 botocore-1.19.43 jmespath-0.10.0 python-dateutil-2.8.1 s3transfer-0.3.3 six-1.15.0 urllib3-1.26.2
$ python
Python 3.7.9 (default, Aug 27 2020, 21:59:41)
[GCC 7.3.1 20180712 (Red Hat 7.3.1-9)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import boto3
>>> client = boto3.client('s3')
>>> for bucket in client.list_buckets()['Buckets']:
... print(bucket['Name'])
...
*****
>>> exit()
samコマンドでLambdaの開発したり
$ sam init
SAM CLI now collects telemetry to better understand customer needs.
...
-----------------------
Generating application:
-----------------------
Name: sam-app
Runtime: python3.7
Dependency Manager: pip
Application Template: hello-world
Output Directory: .
Next steps can be found in the README file at ./sam-app/README.md
$ ls -lA sam-app/
total 28
drwxrwxr-x 2 cloudshell-user cloudshell-user 4096 Dec 25 23:03 events
-rw-rw-r-- 1 cloudshell-user cloudshell-user 3730 Dec 25 23:03 .gitignore
drwxrwxr-x 2 cloudshell-user cloudshell-user 4096 Dec 25 23:03 hello_world
-rw-rw-r-- 1 cloudshell-user cloudshell-user 0 Dec 25 23:03 __init__.py
-rw-rw-r-- 1 cloudshell-user cloudshell-user 7490 Dec 25 23:03 README.md
-rw-rw-r-- 1 cloudshell-user cloudshell-user 1623 Dec 25 23:03 template.yaml
drwxrwxr-x 3 cloudshell-user cloudshell-user 4096 Dec 25 23:03 test
dockerが入ってないので、sam local invoke するとコケますね。
$ cd sam-app/
$ sam build
Building codeuri: hello_world/ runtime: python3.7 metadata: {} functions: ['HelloWorldFunction']
Running PythonPipBuilder:ResolveDependencies
Running PythonPipBuilder:CopySource
Build Succeeded
...
$ sam local invoke
Error: Running AWS SAM projects locally requires Docker. Have you got it installed and running?
右上のActionsでタブを開いたり、ファイルアップロード・ダウンロードなどが出来るようです。
いろいろいじってリセットしたくなったら「Delete AWS CloudShell home directory」でリセットできるみたいです。
いつもの削除確認が出るので、deleteを入力して削除します。
しばらく待つとターミナルが再度起動して、もろもろ消えてます。
$ ls -lA
total 20
-rw-r--r-- 1 cloudshell-user cloudshell-user 18 Dec 25 14:21 .bash_logout
-rw-r--r-- 1 cloudshell-user cloudshell-user 193 Dec 25 14:21 .bash_profile
-rw-r--r-- 1 cloudshell-user cloudshell-user 314 Dec 25 14:21 .bashrc
drwxr-xr-x 3 cloudshell-user cloudshell-user 4096 Dec 25 14:21 .config
-rw-r--r-- 1 cloudshell-user cloudshell-user 777 Dec 25 14:21 .zshrc
CloudShellからEC2にssh接続することも出来るようです。(リンク先にも書いてますがおそらく非推奨なやり方です)
まだ最初のさわり程度しかいじれてませんが、ブラウザ上のターミナルで操作もストレスなくさくさく動いてくれるので、いろいろ便利に使えそうです。
手順書の基本操作をCloudShellにするとか、ハンズオンセミナーとかでAWS CLIの操作が必要なときにCloudShellで実行してもらうとかにも使えそうですね。
こんなネタ的なものとかも出てましたが、早速こんなイベントも企画されてました。
これからどんどん使っていこうと思います。
弊社ではエンジニア募集してます。
https://www.wantedly.com/companies/company_6372758/projects
気になった方はお気軽にご連絡ください。(カジュアル面談でちょっと話が聞きたいとかも大丈夫です)