翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS CloudShell の開始方法
この入門チュートリアルでは、AWS CloudShell の起動方法およびシェルコマンドラインインターフェイスを使用して主なタスクを実行する方法を示します。
まず、AWS Management Consoleにサインインして、を選択しますAWS リージョン。次に、 CloudShell 新しいブラウザウィンドウが開き、使用するシェルタイプが表示されます。
次に、ホームディレクトリに新しいフォルダを作成し、ローカルマシンからそのフォルダにファイルをアップロードします。コマンドラインからプログラムとして実行する前に、あらかじめインストールされているエディタを使用してそのファイルを編集します。最後に、AWS CLIコマンドを呼び出して Amazon S3 バケットを作成し、ファイルをオブジェクトとしてバケットに追加します。
前提条件
IAM アクセス許可
AWS以下の管理ポリシーを IAM ID (ユーザー、ロール、グループなど) AWS CloudShell にアタッチすることで、のアクセス権限を取得できます。
AWSCloudShellFullAccess: AWS CloudShell とその機能へのフルアクセスをユーザーに提供します。
このチュートリアルでは、AWS のサービスとの対話も行います。具体的には、S3 バケットを作成し、そのバケットにオブジェクトを追加することで Amazon S3 を操作します。IAM ID には、s3:CreateBucket
s3:PutObject
少なくともおよびのアクセス権限を付与するポリシーが必要です。
詳細については、Amazon Simple Storage Service ユーザーガイドのAmazon S3 Action を参照してください。
演習ファイル
この演習では、コマンドラインインターフェイスからプログラムとして実行されるファイルをアップロードして編集することが含まれます。ローカルマシンでテキストエディタを開き、次のコードスニペットを追加します。
import sys x=int(sys.argv[1]) y=int(sys.argv[2]) sum=x+y print("The sum is",sum)
次に、add_prog.py
という名前でファイルを保存します。
目次
ステップ 1: AWS Management Console にサイインします。
このステップでは、IAM ユーザー情報を入力して、AWS Management Consoleにアクセスします。コンソールにすでに入っている場合は、ステップ 2に進みます。
IAM ユーザーのサインイン URL を使用するか、メインのサインインページに移動して、AWS Management Consoleにアクセスできます。
注記
root ユーザーとしてサインインすることもできます。この ID は、AWS のサービスアカウント内のすべてのリソースに完全にアクセスできます。日常的なタスクには (それが管理タスクであっても)、ルートユーザーを使用しないよう強くお勧めします。代わりに、初期の IAM ユーザーを作成するためにのみ、ルートユーザーを使用するというベストプラクティスに従います。
ステップ 2: リージョンを選択し、起動してAWS CloudShell、シェルを選択します。
このステップでは、AWS CloudShellコンソールインターフェイスから起動しAWS リージョン、使用可能なシェルを選択し、、Bash PowerShell、などの任意のシェルに切り替えますZ shell。
-
AWS リージョン作業する地域を選択するには、「地域を選択」 メニューに移動し、AWS作業対象としてサポートされている地域を選択します。(使用可能なリージョンがハイライト表示されます)。
重要
リージョンを切り替えると、インターフェースが更新され、AWS リージョン選択したリージョンの名前がコマンドラインテキストの上に表示されます。永続ストレージに追加したファイルは、このストレージ内でのみ使用できます。AWS リージョンリージョンを変更すると、別のストレージやファイルにアクセスできるようになります。
重要
CloudShell コンソールの左下にあるを起動したときに選択したリージョンで利用できない場合、デフォルトのリージョンは選択したリージョンに最も近いリージョンに設定されます。 CloudShell Console Toolbarデフォルトリージョンとは別のリージョンのリソースを管理する権限を付与するコマンドを実行できます。詳細については、「作業中」を参照してくださいAWS リージョン。
例
ヨーロッパ (スペイン) eu-south-2 を選択してもヨーロッパ (スペイン) では利用できない場合eu-south-2、デフォルトの地域はヨーロッパ (スペイン) eu-west-1 に最も近いヨーロッパ (アイルランド) eu-south-2 に設定されます。 CloudShell
デフォルトのリージョンのヨーロッパ (アイルランド) eu-west-1 のサービスクォータを使用すると、 CloudShell すべてのリージョンで同じセッションが復元されます。デフォルトのリージョンは変更される可能性があり、 CloudShell その場合はブラウザウィンドウに通知されます。
-
からAWS Management Console、 CloudShell 以下のオプションのいずれかを選択して起動できます。
-
ナビゲーションバーで、CloudShellアイコンを選択します。
-
検索ボックスに「CloudShell」と入力し、を選択しますCloudShell。
-
「最近訪れた」ウィジェットで、を選択しますCloudShell。
-
コンソールの左下にあるを選択しますCloudShell。Console Toolbar
-
CloudShell セッションの高さを調整するには、ドラッグします
=
。 -
CloudShell セッションを全画面に切り替えるには、「新しいブラウザタブで開く」 アイコンをクリックします。
-
コマンドプロンプトが表示されたら、シェルは対話的な操作の準備ができています。
注記
AWS CloudShell を正常に起動または操作できない問題が発生した場合、AWS CloudShell のトラブルシューティング でこれらの問題を特定して対処するための情報を確認してください。
-
-
プリインストールされているシェルを選択して使用するには、コマンドラインプロンプトにそのプログラム名を入力します。
シェル環境にプリインストールされているバージョンについては、AWS CloudShell コンピュート環境セクションのシェルテーブルを参照してください。
ステップ 3: ファイルをダウンロードする AWS CloudShell
このステップでは、ファイルをダウンロードする手順を順を追って説明します。
-
ファイルをダウンロードするには、[アクション] に移動し、メニューから [ファイルのダウンロード] を選択します。
[ファイルのダウンロード] ダイアログボックスが表示されます。
-
ダウンロードファイルダイアログボックス、ダウンロードするファイルのパスを入力します。
注記
ダウンロードするファイルを指定するときは、絶対パスもしくは相対パスを使用できます。相対パス名で指定すると、
/home/cloudshell-user/
がデフォルトで自動的にスタートに追加されます。というわけで、というファイルをダウンロードするにはmydownload-file
、以下の両方が有効なパスです。-
絶対パス:
/home/cloudshell-user/subfolder/mydownloadfile.txt
-
相対パス:
subfolder/mydownloadfile.txt
-
-
[ダウンロード] を選択します。
ファイルパスが正しい場合は、ダイアログボックスが表示されます。このダイアログボックスを使用して、デフォルトでのアプリケーションでファイルを開くことができます。または、ファイルをローカルマシン上のフォルダーに保存することもできます。
注記
CloudShell を起動しても、ダウンロードオプションは使用できませんConsole Toolbar。 CloudShell コンソールまたは Chrome ウェブブラウザを使用してファイルをダウンロードすることができます。ファイルのダウンロード方法について詳しくは、「ステップ 3: ファイルをダウンロードする」をご覧くださいAWS CloudShell。
ステップ 4: ファイルをにアップロードする AWS CloudShell
このステップでは、ファイルをアップロードし、ホームディレクトリの新しいディレクトリに移動する方法について説明します。
現在の作業ディレクトリをチェックするには、プロンプトで次のコマンドを入力します。
pwd
Enter キーを押すと、シェルは現在の作業ディレクトリ (例:
/home/cloudshell-user
) を返します。このディレクトリにファイルをアップロードするには、[アクション] に移動し、メニューから [ファイルをアップロード] を選択します。
[ファイルをアップロード] ダイアログボックスが表示されます。
Browse (参照) を選択します。
システムの「ファイルアップロード」ダイアログで、このチュートリアル用に作成したテキストファイル (
add_prog.py
) を選択し、「開く」を選択します。アップロードファイル ダイアログボックスで、アップロード を選択します。
プログレスバーはアップロードを追跡します。アップロードが成功すると、
add_prog.py
がホームディレクトリのルートに追加されたというメッセージがチェックされます。ファイルのディレクトリを作成するには、ディレクトリ作成コマンドを入力します:
mkdir mysub_dir
アップロードしたファイルをホームディレクトリのルートから新しいディレクトリに移動するには、
mv
コマンドを使用します。mv add_prog.py mysub_dir
.作業ディレクトリを新しいディレクトリに変更するには、
cd mysub_dir
を入力します。コマンドプロンプトがアップロードされ、作業ディレクトリが変更されたことを示します。
-
現在のディレクトリ
mysub_dir
の内容を表示するには、ls
コマンドを入力します。ワーキングディレクトリの内容が一覧表示されます。これには、アップロードしたばかりのファイルが含まれます。
ステップ 5: ファイルを削除する AWS CloudShell
このステップでは、からファイルを削除する方法について説明しますAWS CloudShell。
-
ファイルを削除するにはAWS CloudShell、
rm
(remove) などの標準シェルコマンドを使用します。rm my-file-for-removal
-
指定した条件を満たす複数のファイルを削除するには、
find
コマンドを実行します。次の例では、名前に「.pdf」というサフィックスを含むファイルをすべて削除します。
find -type f -name '*.pdf' -delete
注記
AWS CloudShell特定の場所での使用をやめたとします。AWS リージョンその後、そのリージョンの永続ストレージにあるデータは、指定した期間が経過すると自動的に削除されます。詳細については、「永続ストレージ」を参照してください。
ステップ 6: ホームディレクトリのバックアップを作成する
-
バックアップファイルを作成する
ホームディレクトリの外部に一時フォルダを作成します。
HOME_BACKUP_DIR=$(mktemp --directory)
以下のオプションのいずれかを使用してバックアップを作成できます。
-
tar を使用してバックアップファイルを作成します。
tar を使用してバックアップファイルを作成するには、以下のコマンドを入力します。
tar \ --create \ --gzip \ --verbose \ --file=${HOME_BACKUP_DIR}/home.tar.gz \ [--exclude ${HOME}/.cache] \ // Optional ${HOME}/ echo "Home directory backed up to this file: ${HOME_BACKUP_DIR}/home.tar.gz"
-
zip を使用してバックアップファイルを作成します。
zip を使用してバックアップファイルを作成するには、以下のコマンドを入力します。
zip \ --recurse-paths \ ${HOME_BACKUP_DIR}/home.zip \ ${HOME} \ [--exclude ${HOME}/.cache/\*] // Optional echo "Home directory backed up to this file: ${HOME_BACKUP_DIR}/home.zip"
-
-
バックアップファイルを外部に転送します。 CloudShell
次のオプションのいずれかを使用して、バックアップファイルを外部に転送できます CloudShell。
-
バックアップファイルをローカルマシンにダウンロードします。
前のステップで作成したファイルをダウンロードできます。からファイルをダウンロードする方法の詳細については CloudShell、「ファイルのダウンロード元」を参照してくださいAWS CloudShell。
ファイルのダウンロードダイアログボックスに、ダウンロードするファイルのパス (例:
/tmp/tmp.iA99tD9L98/home.tar.gz
) を入力します。 -
バックアップファイルを S3 に転送します。
バケットを生成するには、以下のコマンドを入力します。
aws s3 mb s3://${BUCKET_NAME}
AWS CLI を使用してファイルを S3 バケットにコピーします。
aws s3 cp ${HOME_BACKUP_DIR}/home.tar.gz s3://${BUCKET_NAME}
注記
データ転送料金が適用される場合があります。
-
-
S3 バケットへの直接Backup
S3 バケットに直接バックアップするには、以下のコマンドを入力します。
aws s3 cp \ ${HOME}/ \ s3://${BUCKET_NAME} \ --recursive \ [--exclude .cache/\*] // Optional
ステップ 7: シェルセッションを再開する
注記
セキュリティ対策として、長時間キーボードもしくはポインタを使用してシェルと対話しないと、セッションは自動的に停止します。長時間実行されているセッションも自動的に停止されます。詳細については、「シェルセッション」を参照してください。
-
シェルセッションを再開するには、[アクション]、[再起動 AWS CloudShell] を選択します。
再起動すると、AWS CloudShellAWS リージョン現在のアクティブなセッションがすべて停止することが通知されます。
-
確認するには、[再起動] を選択します。
インターフェースに、 CloudShell コンピューティング環境が停止中であることを示すメッセージが表示されます。環境を停止して再起動したら、新しいセッションでコマンドラインでの作業を開始できます。
注記
場合によっては、環境を再起動するまで数分かかる場合があります。
ステップ 8: シェルセッションのホームディレクトリを削除する
警告
ホームディレクトリの削除は元に戻せないアクションで、ホームディレクトリに保存されているデータはすべて完全に削除されます。ただし、次のような場合には、このオプションを考慮してもよいでしょう。
-
ファイルを誤って変更したため、コンピューティング環境にアクセスできません。AWS CloudShellホームディレクトリを削除すると、AWS CloudShell がデフォルト設定に戻ります。
-
AWS CloudShell からすべてのデータをすぐに削除してください。AWS CloudShellリージョンでの使用を停止すると、AWSAWS CloudShellそのリージョンで再度起動しない限り、永続ストレージは保持期間の終了時に自動的に削除されます。
ファイルの長期保存が必要な場合は、Amazon S3 やなどのサービスを検討してください CodeCommit。
-
シェルセッションを削除するには、[アクション]、[AWS CloudShell ホームディレクトリの削除] を選択します。
AWS CloudShellホームディレクトリを削除すると、AWS CloudShell環境に現在保存されているすべてのデータが削除されることが通知されます。
注記
このアクションは元に戻すことができません。
-
削除を確認するには、テキスト入力フィールドに delete と入力し、[Delete] を選択します。
AWS CloudShell AWS リージョン は現在のアクティブなセッションをすべて停止し、すぐに新しい環境を作成します。
シェルセッションを手動で終了する
コマンドラインで、コマンドを使用して
exit
コシェルセッションを終了し、シェルセッションを終了し、ログアウトができます。次いで、任意のキーを押して再接続すれば、引き続き AWS CloudShell を使用できます。
ステップ 9: ファイルのコードを編集し、コマンドラインを使用して実行します。
このステップでは、Vimプリインストールされているエディターを使用してファイルを操作する方法を示します。その後、コマンドラインからそのファイルをプログラムとして実行します。
前のステップでアップロードしたファイルを編集するには、次のコマンドを入力します。
vim add_prog.py
シェルインターフェースが更新され、エディターが表示されます。Vim
でファイルを編集するにはVim、Iキーを押します。次に、プログラムが 2 つの数字ではなく 3 つの数字を足すように内容を編集します。
import sys x=int(sys.argv[1]) y=int(sys.argv[2]) z=int(sys.argv[3]) sum=x+y+z print("The sum is",sum)
注記
テキストをエディタに貼り付けて、安全な貼り付け機能を有効にすると、警告が表示されます。コピーされたマルチテキストには、悪意のあるスクリプトが含まれている可能性があります。セーフペースト機能を使えば、ペーストする前にテキスト全体を検証できます。テキストが安全であることが満足したら、Paste (貼り付ける)を選択します。
-
プログラムを編集したら、EscVimを押してコマンドモードに入ります。次に、
:wq
コマンドを入力してファイルを保存し、エディターを終了します。注記
コマンドモードを初めて使用する場合、Vim最初はコマンドモードと挿入モードを切り替えるのが難しいと感じるかもしれません。コマンドモードは、ファイルを保存してアプリケーションを終了するときに使用されます。挿入モードは、新しいテキストを挿入するときに使用されます。挿入モードに入るにはを押しI、コマンドモードに入るにはを押しますEsc。Vimの詳細や、で使用できるその他のツールについてはAWS CloudShell、を参照してください開発ツールおよびシェルユーティリティ。
-
メインのコマンドラインインターフェイスで、次のプログラムを実行し、入力用に 3 つの数値を指定します。構文は次のとおりです。
python3 add_prog.py 4 5 6
コマンドラインにプログラムの出力が表示されます:
The sum is 15
ステップ 10: AWS CLI を使用して、ファイルを Amazon S3 バケットにオブジェクトとして追加します
このステップでは、Amazon S3 バケットを作成し、PutObjectメソッドを使用してコードファイルをオブジェクトとしてそのバケットに追加します。
注記
ほとんどの場合、 CodeCommitソフトウェアファイルをバージョン管理されたリポジトリにコミットするなどのサービスを使用できます。このチュートリアルでは、AWS CLI in を使用して他の AWS AWS CloudShell サービスと連携する方法を示します。この方法を使用すれば、追加のリソースをダウンロードもしくはインストールする必要はありません。さらに、ユーザーはシェル内で既に認証されているので、呼び出しを行う前に認証情報を設定する必要はありません。
-
指定した場所にバケットを作成するにはAWS リージョン、以下のコマンドを入力します。
aws s3api create-bucket --bucket insert-unique-bucket-name-here --region us-east-1
注記
us-east-1
リージョン外にバケットを作成しようとする場合、LocationConstraint
パラメータ付きのcreate-bucket-configuration
を追加してリージョンを指定します。構文の例を次に示します。$ aws s3api create-bucket --bucket my-bucket --region eu-west-1 --create-bucket-configuration LocationConstraint=eu-west-1
呼び出しが成功すると、コマンドラインに次の出力のようなサービスからの応答が表示されます。
{ "Location": "/insert-unique-bucket-name-here" }
注記
バケットの命名規則に従わないと、次のエラーが表示されます。
CreateBucketオペレーションの呼び出し時にエラーが発生しました (InvalidBucketName): 指定されたバケットは無効です
。 -
ファイルをアップロードし、作成したばかりのバケットにオブジェクトとして追加するには、メソッドを呼び出します。PutObject
aws s3api put-object --bucket insert-unique-bucket-name-here --key add_prog --body add_prog.py
オブジェクトが Amazon S3 バケットにアップロードされると、コマンドラインには次の出力のようなサービスからの応答が表示されます。
{"ETag": "\"ab123c1:w:wad4a567d8bfd9a1234ebeea56\""}
ETag
は保存されたオブジェクトのハッシュです。このハッシュを使用して、Amazon S3 にアップロードされたオブジェクトの整合性を確認できます。