aws

【B-12】 AWS CloudShell

AWS CloudShell は、AWS マネジメントコンソール上で ブラウザから直接 CLI 操作ができる環境 です。
ローカル環境に AWS CLI をインストールしなくても、AWS の各種操作を実行できます。

[学習フェーズ]

1. AWS CloudShell とは?

AWS CloudShell は、AWS 上で直接 CLI(コマンドラインインターフェース)を実行できるサービス です。
コンソールからボタン一つで開けるため、すぐに AWS CLI を使った操作が可能になります。

2. プリインストールされているツール

CloudShell には、以下のツールが あらかじめインストール済み です。

ツール役割
AWS CLIAWS の各種リソースを管理
Python 3スクリプト実行や AWS SDK(Boto3)利用
Node.jsAWS SDK for JavaScript の利用
Gitソースコード管理
Tar, Zipファイル圧縮・解凍
jqJSON データの加工・解析

3. CloudShell の使用用途

CloudShell は、以下のような用途で活用できます。

  • AWS リソースの操作
    • aws s3 lsaws ec2 describe-instances でリソース確認
  • 簡単なスクリプト実行
    • Python や Bash を使って AWS 操作を自動化
  • ファイルのアップロード・ダウンロード
    • aws s3 cp を使って S3 にファイルを転送

[実践フェーズ]

以下で学習したCLIコマンドをCloudShellでも実施してみましょう。

ローカル環境のセットアップが不要なため、簡単に実行できるはずです。

AWS CloudShell を使って、requests ライブラリを含めた ZIP ファイルを作成し、Lambda にデプロイ してみましょう。

CloudShellを使わない場合は、ローカル環境やEC2からダウンロードしZIP化、Lambdaに送付する手順ですが、CloudShellを使うと比較的簡単に実現できます。

【B-16】 Lambda も併せて学習してください。

ハンズオン手順

  • Lambda関数の作成
    • AWS コンソールで Lambda 関数を作成
    • ランタイムは Python 3.9 以上を選択
  • CloudShell で Python 環境をセットアップ
    • mkdir lambda-package && cd lambda-package
    • requests をローカルにインストールし、Lambda 用に ZIP 化する準備。
      • pip install requests -t .
  • Lambda のコードを作成

GitHub API にリクエストを送り、レスポンスを返すシンプルな Lambda 関数を作成。

cat <<EOF > lambda_function.py
import json
import requests

def lambda_handler(event, context):
response = requests.get("https://api.github.com")
return {
"statusCode": 200,
"body": json.dumps(response.json())
}
EOF
  • AWS CLI を使って Lambda に ZIP をデプロイ
    • zip -r9 lambda_function.zip ./*
    • aws lambda update-function-code --function-name MyLambdaFunction --zip-file fileb://lambda_function.zip
  • GUI画面でLambdaにコードとライブラリが入っているか確認