メモ > サーバ > サービス: AWS > AWS CloudShell
AWS CloudShell
AWS対応のシェルプロンプト(CLI)の作業を簡単かつセキュアにし、できるだけ手間を少なくする。
CloudShellは追加料金なしで利用できるが、実行する他のAWSリソースに対しては料金が発生する。
AWS CloudShell - AWS リソースへのコマンドラインアクセス | Amazon Web Services ブログ
https://aws.amazon.com/jp/blogs/news/aws-cloudshell-command-line-access-to-aws-resources/
AWS CloudShell の料金 - AWS CloudShell
https://docs.aws.amazon.com/ja_jp/cloudshell/latest/userguide/shell-pricing.html
待望の新サービス AWS CloudShell がリリースされました! #reinvent | DevelopersIO
https://dev.classmethod.jp/articles/new-service-aws-cloudshell-reinvent-2020/
東京リージョンでAWS CloudShellを使ってみた | DevelopersIO
https://dev.classmethod.jp/articles/lim_aws_cloudshell/
AWSコンソールから、ブラウザで、AWS CLIを実行できる。
AWS CLIを使ってちょっとした作業をするとき、実行環境を用意しなくてもいい。
AWS CloudShell を早速使ってみました - Qiita
https://qiita.com/hirosys-biz/items/ede1bce935e7d922c979
CloudShell経由でEC2に接続できなくも無いようだが、推奨されない方法かもしれない。
■起動
東京リージョンでAWS CloudShellを使ってみた | DevelopersIO
https://dev.classmethod.jp/articles/lim_aws_cloudshell/
AWSコンソールから「CloudShell」を選択すると起動できる。
もしくはAWSコンソールの任意の画面で、ページ上部の「[>_]」アイコンをクリックすることでも起動できる。
(初めてアクセスしたときは「AWS CloudShell へようこそ」が表示されるので、「閉じる」をクリック。)
初期設定などなく、いきなりコンソールが表示されている。
東京リージョンで利用できる。
テキストのコピー&ペーストもできる。
内部はAmazonLinux2である…と紹介されている記事を見かけたが、
2024年7月時点で確認するとAmazonLinux2023になっていた。
$ cat /etc/system-release
Amazon Linux release 2023.4.20240611 (Amazon Linux)
ストレージは /home に1GB割り当てられている…と紹介されている記事を見かけたが、
2024年7月時点で確認すると10GB以上の空きがあった。
$HOME 以外のファイルは永続化されないらしいので注意。また $HOME に置いたファイルも、120日間CloudShellへのアクセスが無いと自動で削除されるらしい。
$ df -h
Filesystem Size Used Avail Use% Mounted on
overlay 16G 3.5G 12G 24% /
tmpfs 64M 0 64M 0% /dev
shm 64M 0 64M 0% /dev/shm
/dev/nvme1n1 16G 3.5G 12G 24% /home
/dev/loop0 974M 68K 907M 1% /home/cloudshell-user
/dev/nvme0n1p1 30G 14G 17G 45% /aws/mde/mde
CloudShellで操作できる範囲は、基本的にコンソールにログインしているIAMユーザーの権限となる。
$ aws --version
aws-cli/2.17.13 Python/3.11.9 Linux/6.1.96-102.177.amzn2023.x86_64 exec-env/CloudShell exe/x86_64.amzn.2023
$ aws s3 ls refirio-ses-log
PRE ses-log-2024/
$ aws s3 ls refirio-ses-log/ses-log-2024/07/19/06/
2024-07-19 06:03:30 7787 refirio-ses-kinesis-1-2024-07-19-06-02-27-f3ea1db3-1584-456a-990b-8e329981f4c1
2024-07-19 06:10:25 3996 refirio-ses-kinesis-1-2024-07-19-06-09-23-8122b612-ffaf-4319-b57c-08e3758c78ca
2024-07-19 06:11:54 23751 refirio-ses-kinesis-1-2024-07-19-06-10-51-b94bf9fc-e077-4715-b79e-bcc00e16347e
デフォルトで「cloudshell-user」というユーザになっているが、rootになることもできる。
ただしrootになると、各種AWSリソースを操作する権限が無くなった。
$ id
uid=1000(cloudshell-user) gid=996(cloudshell-user) groups=996(cloudshell-user),997(docker)
$ pwd
/home/cloudshell-user
$ sudo su -
# id
uid=0(root) gid=0(root) groups=0(root)
# pwd
/root
■EC2への接続
※未検証。
接続できるようだが、あらかじめ鍵やセキュリティグループの設定が必要みたい。
EC2インスタンスにSSH接続したい?それAWS CloudShellもできるよ! #reinvent | DevelopersIO
https://dev.classmethod.jp/articles/aws-cloudshell-ssh-to-ec2-instance/
■Session Managerとの比較
※未検証。
まだローカルディスクに秘密鍵を置いてるの?AWS CloudShellを使えば大丈夫。ってはなし - サーバーワークスエンジニアブログ
https://blog.serverworks.co.jp/2021/01/05/cloudshell
日常的にEC2へ接続するための用途なら、Session Managerを使うのがいいみたい。
■Cloud9との比較
AWSでLinuxベースのCLIをお手軽に使いたい - APC 技術ブログ
https://techblog.ap-com.co.jp/entry/2023/03/17/195101
Cloud9でも同じようなことができる。
ただしCloud9はエディタであり、また利用には料金がかかる。
あくまでもCLI実行環境として使うだけなら、CloudShellを使うと良さそう。