の開始方法 AWS CloudShell - AWS CloudShell

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

の開始方法 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 アイデンティティには、最低限、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 を使用するか、メインのサインインページに移動します。

    IAM user sign-in URL
    • ブラウザを開き、次のサインイン URL を入力します。管理者にもらったアカウントエイリアスもしくはアカウント ID を account_alias_or_id と置き換えます。

      https://account_alias_or_id.signin.aws.amazon.com/console/
    • IAM サインイン認証情報を入力し、[サインイン]を選択します。

    IAM ユーザーとしてのサインイン
    Main sign-in page
    • https://aws.amazon.com/console/ を開きます。

    • このブラウザを使用して以前にサインインしなかった場合は、メインのサインインページが表示されます。IAM ユーザー を選択し、アカウントエイリアスもしくはアカウント ID を入力して、[次へ] を選択します。

      IAM ユーザーとしてのサインイン
    • 以前にすでに IAM ユーザーとしてサインインしている場合。ブラウザには、 AWS アカウントのアカウントエイリアスもしくはアカウント ID が記憶されている可能性があります。その場合、IAM サインイン認証情報を入力し[サインイン]を選択します。

      IAM ユーザーとしてのサインイン
    注記

    ルートユーザーとしてサインインすることもできます。この ID は、アカウント内のすべての AWS のサービス およびリソースに完全にアクセスできます。日常的なタスクには (それが管理タスクであっても)、ルートユーザーを使用しないよう強くお勧めします。代わりに、初期の IAM ユーザーを作成するためにのみ、ルートユーザーを使用するというベストプラクティスに従います。

ステップ 2: リージョンを選択し、 を起動して AWS CloudShellシェルを選択する

このステップでは、コンソールインターフェイス AWS CloudShell から を起動し、使用可能な を選択し AWS リージョン、、Bash PowerShell、 などの任意のシェルに切り替えますZ shell。

  1. 作業 AWS リージョン する を選択するには、「リージョンの選択」メニューに移動し、作業するサポートされている AWS リージョンを選択します。(使用可能なリージョンがハイライト表示されます)。

    重要

    リージョンを切り替えると、インターフェースが再読込みされ、選択した AWS リージョン の名前がコマンドラインテキストの上に表示されます。永続的ストレージに追加したファイルは、同じ AWS リージョン内のみにて使用できます。リージョンを変更すると、異なるストレージおよびファイルにアクセスできます。

    重要

    コンソールの左下にある CloudShell で を起動するときにConsole Toolbar、選択したリージョンで CloudShell が使用できない場合、デフォルトのリージョンは、選択したリージョンに最も近いリージョンに設定されます。デフォルトのリージョンとは別のリージョンのリソースを管理する許可を付与するコマンドを実行できます。詳細については、「 での作業 AWS リージョン」を参照してください。

    欧州 (スペイン) を選択してeu-south-2 CloudShell も、欧州 (スペイン) では利用できない場合eu-south-2、デフォルトのリージョンは欧州 (スペイン) に最もeu-west-1近い欧州 (アイルランド) に設定されますeu-south-2。

    デフォルトのリージョンである欧州 (アイルランド) ではサービスクォータを使用し、すべてのリージョンでeu-west-1同じ CloudShell セッションが復元されます。デフォルトのリージョンが変更され、 CloudShell ブラウザウィンドウで通知される場合があります。

  2. から AWS Management Console、次のいずれかのオプション CloudShell を選択して を起動できます。

    1. ナビゲーションバーで、 CloudShell アイコンを選択します。

    2. 検索ボックスにCloudShell「」と入力し、 を選択しますCloudShell

    3. 最近アクセスしたウィジェットで、 を選択しますCloudShell

    4. コンソールの左Console Toolbar下にある CloudShell を選択します。

      • CloudShell セッションの高さを調整するには、 をドラッグします=

      • CloudShell セッションを全画面表示に切り替えるには、新しいブラウザで開く タブアイコンをクリックします。

    AWS CloudShell インターフェイスの主な機能。

    コマンドプロンプトが表示されたら、シェルは対話的な操作の準備ができています。

    注記

    が正常に起動または操作できない問題が発生した場合は AWS CloudShell、 でそれらの問題を特定して対処するための情報を確認してくださいトラブルシューティング AWS CloudShell

  3. 作業に使用するプリインストールシェルを選択するには、コマンドラインプロンプトでプログラム名を入力します。

    Bash

    bash

    Bash に切り替えると、コマンドプロンプトの記号が $ に更新します。

    注記

    Bash は、 の起動時に実行されるデフォルトのシェルです AWS CloudShell。

    PowerShell

    pwsh

    に切り替えると PowerShell、コマンドプロンプトの記号が に更新されますPS>

    Z shell

    zsh

    Z shell に切り替えると、コマンドプロンプトの記号が % に更新します。

    シェル環境にプリインストールされているバージョンについては、AWS CloudShell コンピューティング環境セクションのシェルテーブルを参照してください。

ステップ 3: からファイルをダウンロードする AWS CloudShell

注記

このオプションは VPC 環境では使用できません。

このステップでは、ファイルのダウンロード手順について説明します。

  1. ファイルをダウンロードするには、[アクション] に移動し、メニューから [ファイルのダウンロード] を選択します。

    [ファイルのダウンロード] ダイアログボックスが表示されます。

  2. [ファイルのダウンロード]ダイアログボックスでダウンロードするファイルのパスを入力します。

    ファイルのダウンロードのパスを指定する。
    注記

    ダウンロードするファイルを指定するときは、絶対パスもしくは相対パスを使用できます。相対パス名で指定すると、/home/cloudshell-user/ がデフォルトで自動的にスタートに追加されます。mydownload-file というファイルをダウンロードしようとする場合、次のどちらも有効なパスです。

    • 絶対パス: /home/cloudshell-user/subfolder/mydownloadfile.txt

    • 相対パス: subfolder/mydownloadfile.txt

  3. [ダウンロード] を選択します。

    ファイルパスが正しい場合は、ダイアログボックスが表示されます。このダイアログボックスを使用して、デフォルトでのアプリケーションでファイルを開くことができます。または、ファイルをローカルマシン上のフォルダに保存することもできます。

注記

ダウンロードオプションは、 CloudShell で を起動するときには使用できませんConsole Toolbar。ファイルは、 CloudShell コンソールから、または Chrome ウェブブラウザを使用してダウンロードできます。ファイルのダウンロード方法の詳細については、「ステップ 3: からファイルをダウンロードする AWS CloudShell」を参照してください。

ステップ 4: にファイルをアップロードする AWS CloudShell

注記

このオプションは VPC 環境では使用できません。

このステップでは、ファイルをアップロードし、ホームディレクトリ内の新しいディレクトリに移動させる方法を説明します。

  1. 現在の作業ディレクトリをチェックするには、プロンプトで次のコマンドを入力します。

    pwd

    Enter を押すと、シェルは現在の作業ディレクトリ (例えば、/home/cloudshell-user など) を戻します。

  2. ファイルをこのディレクトリにアップロードするには、[アクション] に移動し、メニューから [ファイルのアップロ―ド] を選択します。

    [ファイルのアップロード] ダイアログボックスが表示されます。

  3. Browse (参照) を選択します。

  4. システムの[ファイルのアップロード]ダイアログボックスで、このチュートリアル (add_prog.py) 用に作成したテキストファイルを選択し、[オープン]を選びます。

  5. [ファイルのアップロード]ダイアログボックスで、[アップロード]を選択します。

    プログレスバーはアップロードを追跡します。アップロードが成功すると、add_prog.pyがホームディレクトリのルートに追加されたというメッセージがチェックされます。

  6. ファイルのディレクトリを作成するには、ディレクトリ作成コマンドを入力します: mkdir mysub_dir

  7. アップロードしたファイルをホームディレクトリのルートから新しいディレクトリに移動するには、mv コマンドを使用します。

    mv add_prog.py mysub_dir.

  8. 作業ディレクトリを新しいディレクトリに変更するには、cd mysub_dirを入力します。

    コマンドプロンプトがアップロードされ、作業ディレクトリが変更されたことを示します。

  9. 現在のディレクトリ mysub_dir の内容を表示するには、ls コマンドを入力します。

    作業ディレクトリの内容が一覧表示されます。ここには、アップロードしたばかりのファイルも含まれます。

ステップ 5: からファイルを削除する AWS CloudShell

このステップでは、 からファイルを削除する方法について説明します AWS CloudShell。

  1. からファイルを削除するには AWS CloudShell、 rm (削除) などの標準シェルコマンドを使用します。

    rm my-file-for-removal

  2. 指定した条件を満たす複数のファイルを削除するには、find コマンドを実行します。

    次の例では、名前に「.pdf」という接頭辞が含まれるすべてのファイルを削除します。

    find -type f -name '*.pdf' -delete
注記

特定の AWS CloudShell で の使用を停止するとします AWS リージョン。そのリージョンにある永続的ストレージ内のデータは、指定された期間を過ぎると自動的に削除されます。詳細については、「永続的ストレージ」を参照してください。

ステップ 6 : ホームディレクトリのバックアップを作成する

  1. バックアップファイルの作成

    ホームディレクトリの外部に一時フォルダを作成します。

    HOME_BACKUP_DIR=$(mktemp --directory)

    次のいずれかのオプションを使用して、バックアップを作成できます。

    1. 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"
    2. 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"
  2. バックアップファイルを外部に転送する CloudShell

    次のいずれかのオプションを使用して、バックアップファイルを の外部に転送できます CloudShell。

    1. バックアップファイルをローカルマシンにダウンロード

      前のステップで作成したファイルをダウンロードすることができます。からファイルをダウンロードする方法の詳細については CloudShell、「 からファイルをダウンロードする AWS CloudShell」を参照してください。

      ファイルのダウンロードダイアログボックス内で、ダウンロードするファイルのパス (例えば、/tmp/tmp.iA99tD9L98/home.tar.gz など) を入力します。

    2. バックアップファイルを S3 に転送する

      バケットを生成するには、次のコマンドを入力します。

      aws s3 mb s3://${BUCKET_NAME}

      AWS CLI を使用してファイルを S3 バケットにコピーします。

      aws s3 cp ${HOME_BACKUP_DIR}/home.tar.gz s3://${BUCKET_NAME}
      注記

      データ転送料金が適用される場合があります。

  3. 直接 S3 バケットにバックアップする

    直接 S3 バケットにバックアップを行うには、次のコマンドを入力します。

    aws s3 cp \ ${HOME}/ \ s3://${BUCKET_NAME} \ --recursive \ [--exclude .cache/\*] // Optional

ステップ 7 : シェルセッションを再開する

注記

セキュリティ対策として、長時間キーボードもしくはポインタを使用してシェルと対話しないと、セッションは自動的に停止します。長時間実行されているセッションも自動的に停止します。詳細については、「シェルセッション」を参照してください。

  1. シェルセッションを再開するには、[アクション]、[再開 AWS CloudShell] を選択します。

    再起動すると、現在の のすべてのアクティブなセッションが AWS CloudShell 停止することが通知されます AWS リージョン。

  2. 確認するには、[再開]を選択します。

    インターフェイスには、 CloudShell コンピューティング環境が停止しているというメッセージが表示されます。環境が停止して再開したら、新しいセッションでコマンドラインの操作を開始できます。

    注記

    場合によっては、環境を再起動するまで数分かかる場合があります。

ステップ 8 : シェルセッションのホームディレクトリを削除する

注記

このオプションは VPC 環境では使用できません。VPC 環境を再起動すると、そのホームディレクトリは削除されます。

警告

ホームディレクトリを削除することは、ホームディレクトリに保存されているすべてのデータが完全に削除されるという不可逆的なアクションです。ただし、次のような場合には、このオプションを考慮してもよいでしょう。

  • ファイルが正しく変更されておらず、 AWS CloudShell コンピューティング環境にアクセスできません。ホームディレクトリを削除する AWS CloudShell と、デフォルト設定に戻ります。

  • からすべてのデータを AWS CloudShell すぐに削除したい。 AWS リージョン AWS CloudShell で の使用を停止すると、リージョンで AWS CloudShell を再度起動しない限り、保持期間の終了時に永続ストレージが自動的に削除されます

ファイルに長期ストレージが必要な場合は、Amazon S3 や などのサービスを検討してください CodeCommit。

  1. シェルセッションを削除するには、アクション AWS CloudShell ホームディレクトリ の削除 を選択します。

    AWS CloudShell ホームディレクトリを削除すると、現在 AWS CloudShell 環境に保存されているすべてのデータが削除されることが通知されます。

    注記

    このアクションは元に戻すことができません。

  2. 削除されたことを確認するには、テキスト入力フィールドに削除と入力した上で、[削除] を選択します。

    [Delete home directory] (ホームディレクトリの削除) ボタンをアクティブにする。

    AWS は現在の 内のすべてのアクティブなセッション CloudShell を停止 AWS リージョン し、新しい環境をすぐに作成します。

    シェルセッションを手動で終了する

    コマンドラインで、コマンドを使用してexitコシェルセッションを終了し、シェルセッションを終了し、ログアウトができます。次いで、任意のキーを押して再接続すれば、引き続き AWS CloudShellを使用できます。

ステップ 9 : ファイルのコードを編集し、コマンドラインを使用して実行する

このステップでは、プリインストールされた Vim エディタを使用してファイルを操作する方法を説明します。その後、コマンドラインからそのファイルをプログラムとして実行します。

  1. 前のステップでアップロードしたファイルを編集するには、次のコマンドを入力します。

    vim add_prog.py

    シェルインターフェースがアップロードされ、Vim エディタが表示されます。

  2. 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 (貼り付ける)を選択します。

  3. プログラムを編集したら、Esc をクリックして Vim コマンドモードに入力します。次に、 :wq コマンドを入力してファイルを保存し、エディタを終了します。

    注記

    Vim コマンドモードを初めて使用する場合、はじめはコマンドモードと挿入モードの切り替えが難しいと感じるかもしれません。コマンドモードは、ファイルを保存してアプリケーションを終了するときに使用されます。挿入モードは、新しいテキストを挿入するときに使用されます。挿入モードと入力するには、 I を押し、コマンドモードと入力して、 Esc を押します。Vim および で利用可能なその他のツールの詳細については、 AWS CloudShell「」を参照してください開発ツールおよびシェルユーティリティ

  4. メインコマンドラインインターフェースで、次のプログラムを実行し、入力用に次の 3 つの数値を指定します。構文は次のとおりです。

    python3 add_prog.py 4 5 6

    コマンドラインにプログラムの出力が表示されます: The sum is 15

ステップ 10: AWS CLI を使用してAmazon S3バケットにファイルをオブジェクトとして追加する

このステップでは、Amazon S3 バケットを作成し、 PutObjectメソッドを使用してコードファイルをそのバケットのオブジェクトとして追加します。

注記

ほとんどの場合、 などのサービスを使用して CodeCommit、バージョン管理されたリポジトリにソフトウェアファイルをコミットできます。このチュートリアルでは、 AWS CLI で を使用して他の AWS のサービスと AWS CloudShell やり取りする方法を示します。この方法を使用すれば、追加のリソースをダウンロードもしくはインストールする必要はありません。さらに、ユーザーはシェル内で既に認証されているので、呼び出しを行う前に認証情報を設定する必要はありません。

  1. 指定された にバケットを作成するには 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) が発生しました。指定されたバケットは無効です。

  2. ファイルをアップロードし、作成したばかりのバケットにオブジェクトとしてファイルを追加するには、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 にアップロードされたオブジェクトの整合性を確認できます