

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

# の開始方法 AWS CloudShell
<a name="getting-started"></a>

この入門チュートリアルでは、シェルコマンドラインインターフェイスを使用して主要なタスクを起動 AWS CloudShell および実行する方法を示します。

まず、 にサインイン AWS マネジメントコンソール し、 を選択します AWS リージョン。新しいブラウザで、CloudShell と使用するシェルタイプを起動します。

次に、ホームディレクトリに新しいフォルダを作成し、ローカルマシンからフォルダにファイルをアップロードします。コマンドラインからプログラムとして実行する前に、プリインストールされたエディタを使用してそのファイルを操作します。最後に、 AWS CLI コマンドを呼び出して Amazon S3 バケットを作成し、ファイルをオブジェクトとしてバケットに追加します。

## 前提条件
<a name="getting-started-prerequesities"></a>

**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 ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-actions)を参照してください。

**演習ファイル**

この演習では、コマンドラインインターフェイスからプログラムとして実行されるファイルをアップロードして編集することが含まれます。ローカルマシンでテキストエディタを開き、次のコードスニペットを追加します。

```
import sys
x=int(sys.argv[1])
y=int(sys.argv[2])
sum=x+y
print("The sum is",sum)
```

次に、`add_prog.py` という名前でファイルを保存します。

## 内容
<a name="getting-started-contents"></a>
+ [ステップ 1: にサインインする AWS マネジメントコンソール](#start-session)
+ [ステップ 2: リージョンの選択、起動 AWS CloudShell、シェルの選択](#launch-region-shell)
+ [ステップ 3: からファイルをダウンロードする AWS CloudShell](#download-file)
+ [ステップ 4: にファイルをアップロードする AWS CloudShell](#folder-upload)
+ [ステップ 5: からファイルを削除する AWS CloudShell](#remove-files)
+ [ステップ 6 : ホームディレクトリのバックアップを作成する](#home-directory-backup)
+ [ステップ 7 : シェルセッションを再開する](#restart-shell-session)
+ [ステップ 8 : シェルセッションのホームディレクトリを削除する](#delete-shell-session)
+ [ステップ 9 : ファイルのコードを編集し、コマンドラインから実行する](#edit-run)
+ [ステップ 10: AWS CLI を使用して Amazon S3 バケットのオブジェクトとしてファイルを追加する](#s3-put)

## ステップ 1: にサインインする AWS マネジメントコンソール
<a name="start-session"></a>

このステップでは、IAM ユーザー情報を入力して にアクセスします AWS マネジメントコンソール。コンソールにすでに入っている場合は、[ステップ 2](#launch-region-shell)に進みます。
+ にアクセスするには、IAM ユーザーのサインイン URL AWS マネジメントコンソール を使用するか、メインのサインインページに移動します。

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

    ```
    https://account_alias_or_id.signin.aws.amazon.com/console/
    ```
  + IAM サインイン認証情報を入力し、［**サインイン**］を選択します。

------
#### [ Main sign-in page ]
  + [https://aws.amazon.com/console/](https://aws.amazon.com/console/) を開きます。
  + このブラウザを使用して以前にサインインしなかった場合は、メインのサインインページが表示されます。IAM ユーザー を選択し、アカウントエイリアスもしくはアカウント ID を入力して、[**次へ**] を選択します。
  + 以前にすでに IAM ユーザーとしてサインインしている場合。ブラウザには、 AWS アカウントのアカウントエイリアスもしくはアカウント ID が記憶されている可能性があります。その場合、IAM サインイン認証情報を入力し［**サインイン**］を選択します。

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

## ステップ 2: リージョンの選択、起動 AWS CloudShell、シェルの選択
<a name="launch-region-shell"></a>

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

1. 作業 AWS リージョン する を選択するには、**「リージョンの選択**」メニューに移動し、[サポートされている AWS リージョン](supported-aws-regions.md)を選択して作業します。(使用可能なリージョンがハイライト表示されます)。
**重要**  
リージョンを切り替えると、インターフェースが再読込みされ、選択した AWS リージョン の名前がコマンドラインテキストの上に表示されます。永続的ストレージに追加したファイルは、同じ AWS リージョン内のみにて使用できます。リージョンを変更すると、異なるストレージおよびファイルにアクセスできます。
**重要**  
Console Toolbar にある CloudShell を起動したときに、選択したリージョンで CloudShell が使用できない場合、デフォルトのリージョンは選択したリージョンに最も近いリージョンに設定されます。デフォルトのリージョンとは別のリージョンのリソースを管理する許可を付与するコマンドを実行できます。詳細については、[「Working in AWS リージョン](working-with-aws-cloudshell.md#region-selection)」を参照してください。  

**Example**  
**例**  
欧州 (スペイン) eu-south-2 を選択したのに CloudShell が欧州 (スペイン) eu-south-2 で利用できない場合、デフォルトのリージョンは欧州 (スペイン) eu-south-2 に最も近い欧州 (アイルランド) eu-west-1 に設定されます。  
デフォルトのリージョンである欧州 (アイルランド) eu-west-1 の Service Quotas を使用すると、同じ CloudShell セッションがすべてのリージョンで復元されます。デフォルトのリージョンは変更される可能性があり、CloudShell ブラウザウィンドウで通知されます。

1. から AWS マネジメントコンソール、次のいずれかのオプションを選択して CloudShell を起動できます。

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

   1. [**検索**］ボックスに 「CloudShell」 と入力し、 [**CloudShell**] を選択します。

   1. **最近アクセスした**ウィジェットで、[**CloudShell**] を選択します。

   1. コンソールの左下の Console Toolbar にある [**CloudShell**］ を選択します。
      + `=` をドラッグすることで CloudShell セッションの高さを調整できます。
      + **[新しいブラウザタブで開く]** をクリックすることにより、CloudShell セッションを全画面に切り替えることができます。

   コマンドプロンプトが表示されたら、シェルは対話的な操作の準備ができています。
**注記**  
が正常に起動または操作できない問題が発生した場合は AWS CloudShell、 でそれらの問題を特定して対処するための情報を確認してください[トラブルシューティング AWS CloudShell](troubleshooting.md)。

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

------
#### [ Bash ]

   `bash`

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

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

------
#### [ PowerShell ]

   `pwsh`

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

------
#### [ Z shell ]

   `zsh`

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

------

   シェル環境にプリインストールされているバージョンの詳細については、「[AWS CloudShell コンピューティング環境](vm-specs.md#installed-shells)」セクションの「[シェルの表](vm-specs.md)」を参照してください。

## ステップ 3: からファイルをダウンロードする AWS CloudShell
<a name="download-file"></a>

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

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

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

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

1. [**ファイルのダウンロード**］ダイアログボックスでダウンロードするファイルのパスを入力します。
**注記**  
ダウンロードするファイルを指定するときは、絶対パスもしくは相対パスを使用できます。相対パス名で指定すると、`/home/cloudshell-user/` がデフォルトで自動的にスタートに追加されます。`mydownload-file` というファイルをダウンロードしようとする場合、次のどちらも有効なパスです。  
**絶対パス:** `/home/cloudshell-user/subfolder/mydownloadfile.txt`
**相対パス:** `subfolder/mydownloadfile.txt`

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

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

**注記**  
Console Toolbar で CloudShell を起動する場合、[ダウンロード] オプションは使用できません。CloudShell コンソールから、または Chrome ウェブブラウザを使用してファイルをダウンロードすることができます。

## ステップ 4: にファイルをアップロードする AWS CloudShell
<a name="folder-upload"></a>

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

このステップでは、ファイルをアップロードし、ホームディレクトリ内の新しいディレクトリに移動させる方法を説明します。<a name="create-folder-upload-file"></a>

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

   `pwd`

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

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

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

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

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

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

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

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

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

   `mv add_prog.py mysub_dir`.

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

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

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

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

## ステップ 5: からファイルを削除する AWS CloudShell
<a name="remove-files"></a>

このステップでは、 からファイルを削除する方法について説明します AWS CloudShell。<a name="remove-files-proc"></a>

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

   `rm my-file-for-removal`

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

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

   ```
   find -type f -name '*.pdf' -delete
   ```

**注記**  
特定の AWS CloudShell で の使用を停止するとします AWS リージョン。そのリージョンにある永続的ストレージ内のデータは、指定された期間を過ぎると自動的に削除されます。詳細については、「[永続的ストレージ](limits.md#persistent-storage-limitations)」を参照してください。

## ステップ 6 : ホームディレクトリのバックアップを作成する
<a name="home-directory-backup"></a>

このステップでは、ホームディレクトリのバックアップを作成する方法について説明します。<a name="home-directory-backup-proc"></a>

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"
      ```

   1. **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"
      ```

1. **CloudShell の外部へのバックアップファイルの転送** 

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

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

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

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

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

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

      ```
      aws s3 mb s3://${BUCKET_NAME}
      ```

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

      ```
      aws s3 cp ${HOME_BACKUP_DIR}/home.tar.gz s3://${BUCKET_NAME}
      ```
**注記**  
データ転送料金が適用される場合があります。

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

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

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

## ステップ 7 : シェルセッションを再開する
<a name="restart-shell-session"></a>

このステップでは、シェルセッションを再開する方法について説明します。

**注記**  
セキュリティ対策として、長時間キーボードもしくはポインタを使用してシェルと対話しないと、セッションは自動的に停止します。長時間実行されているセッションも自動的に停止します。詳細については、「[シェルセッション](limits.md#session-lifecycle-limitations)」を参照してください。

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

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

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

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

## ステップ 8 : シェルセッションのホームディレクトリを削除する
<a name="delete-shell-session"></a>

このステップでは、シェルセッションを削除する方法について説明します。

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

**警告**  
ホームディレクトリを削除することは、ホームディレクトリに保存されているすべてのデータが完全に削除されるという不可逆的なアクションです。ただし、次のような場合には、このオプションを考慮してもよいでしょう。  
ファイルが正しく変更されていないため、 AWS CloudShell コンピューティング環境にアクセスできません。ホームディレクトリを削除すると AWS CloudShell 、デフォルト設定に戻ります。
からすべてのデータを AWS CloudShell すぐに削除します。 AWS リージョン AWS CloudShell で の使用を停止すると、リージョンで AWS CloudShell 再度起動しない限り、永続ストレージは[保持期間の終了時に自動的に削除されます](limits.md#persistent-storage-limitations)。
ファイルを長期的に保存する必要がある場合は、Amazon S3 などのサービスを検討してください。

1. シェルセッションを削除するには、**[アクション]**、**[削除]** の順に選択します。

    AWS CloudShell ホームディレクトリを削除すると、 AWS CloudShell 環境に現在保存されているすべてのデータが削除されます。
**注記**  
このアクションは元に戻すことができません。

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

   AWS CloudShell は、現在の AWS リージョンでアクティブになっているすべてのセッションを停止します。新しい環境を作成するか、CloudShell の VPC 環境をセットアップできます。

1. 新しい環境を作成するには、**[タブを開く]** を選択します。

1. CloudShell の VPC 環境を作成するには、**[VPC 環境を作成]** を選択します。

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

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

## ステップ 9 : ファイルのコードを編集し、コマンドラインを使用して実行する
<a name="edit-run"></a>

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

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

   `vim add_prog.py`

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

1. 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)
   ```
**注記**  
テキストをエディタに貼り付けて、[安全な貼り付け機能を](customizing-cshell.md#safe-paste-enable)有効にすると、警告が表示されます。コピーされたマルチテキストには、悪意のあるスクリプトが含まれている可能性があります。安全な貼り付け機能を使用すると、貼り付け前にテキスト全体が検証できます。テキストが安全であることが満足したら、**Paste (貼り付ける)**を選択します。

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

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

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

   `python3 add_prog.py 4 5 6`

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

## ステップ 10: AWS CLI を使用して Amazon S3 バケットのオブジェクトとしてファイルを追加する
<a name="s3-put"></a>

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

**注記**  
このチュートリアルでは、 AWS CLI で AWS CloudShell を使用して他の AWS サービスとやり取りする方法を示します。この方法を使用すれば、追加のリソースをダウンロードもしくはインストールする必要はありません。さらに、ユーザーはシェル内で既に認証されているので、呼び出しを行う前に認証情報を設定する必要はありません。

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"
   }
   ```
**注記**  
[バケット名の命名規則](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html#bucketnamingrules)に従わない場合、以下のようなエラーが表示されます: CreateBucket オペレーションの呼び出し時にエラー (InvalidBucketName) が発生しました。指定されたバケットは有効ではありません。

1. ファイルをアップロードし、作成したばかりのバケットにオブジェクトとしてファイルを追加するには、**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 にアップロードされたオブジェクトの整合性を確認できます](https://repost.aws/knowledge-center/data-integrity-s3)。

## 関連トピック
<a name="related-topics-started"></a>
+ [CloudShell で CLI から AWS サービスを管理する](working-with-aws-cli.md)
+ [ローカルマシンと CloudShell の間で複数のファイルをコピーする](multiple-files-upload-download.md)
+ [AWS CloudShell 概念](working-with-aws-cloudshell.md)
+ [AWS CloudShell エクスペリエンスのカスタマイズAmazon VPC AWS CloudShell での の使用](customizing-cshell.md)