AWS CloudShellの使い方
こんにちは。AITPの大野です。
今日はAWS CloudShellについて書いていきます。
AWS CloudShellって?
CloudShellとはAWSが用意してくれているCUIオペレーションのためのシェル環境の名前です。
自分専用の踏み台サーバーがあるとイメージしてもらったら良いかと思います。
AWS CLI コマンドもあらかじめ使えるようになっていて、IAMの権限さえあればすぐに使い始めることができます。
しかも無料というありがたいサービスなので有効活用していきたいですね。
使い方
起動の方法
AWSのコンソールにログインし、左下のアイコンをクリックします。

数秒待つとシェルが起動し、すぐにオペレーションを開始できます。
シェル上で利用できるツール
こちらのドキュメントにある通り、シェルにはBash, PowerShell, zshが利用でき、AWS CLI , EB CLI, ECS CLI, SAM CLI がインストール済みです。
Node.jsやPython、Python + Botoもすでに用意されていますので、かなり複雑なこともできそうです。
ファイル転送
CloudShellの自分のホームディレクトリは自分専用のスペースになっていて、自由にファイルを置いておくことが可能です。
120日ログインがなければ消えるという制限はありますが、その条件をクリアしている限り永続化されてるのでストレージとして使うことも可能です。
本当に永続化が必要であればCloudShellからS3に繋いで転送しておけば良いでしょう。
CloudShell右上の Actions からダウンロードとアップロードが選択可能なので、対象のファイルを選ぶことで転送が可能です。

利用例
AWSリソースが使える便利な踏み台 として利用することが多いので例えば以下のような用途が考えられます。
セッションマネージャーで他ホストにアクセス
aws ssm start-session --target i-xxxxxxxxxxxxxxxS3へのファイル転送
aws s3 ls s3://bucket-example
aws s3 put test.txt s3://bucket-example/注意点
CloudShellから各リソースに対して実行はログインしているユーザーの権限になります。
適切な管理がされていれば問題ないですが、ゆるい管理をしているとCloudShellから何でも実行できてしまうので気をつける必要があります。
まとめ
記事を書くまで知らなかったのですが、PythonとBotoがインストール済みだということでした。セットアップなしにいきなり動かせるのは非常に便利です。
また権限の管理をIAMに一任でき、接続のためのportを開けたりということが不要になるのは嬉しいところです。
踏み台サーバーが必要になった場合、CloudShellでカバーできるかどうかはぜひ検討してみることをおすすめします。