

# チュートリアル: S3 Files の開始方法
<a name="s3-files-getting-started"></a>

このチュートリアルでは、S3 ファイルシステムを作成し、EC2 インスタンスにマウントします。次に、基本的なファイルオペレーションをテストします。S3 コンソールまたは AWS CLI を使用して、S3 Files の使用を開始できます。

## AWS コンソールを使用した S3 Files の開始方法
<a name="s3-files-getting-started-console"></a>

S3 コンソールにおける S3 Files ワークフローは、次のステップで構成されます。
+ S3 ファイルシステムを作成します。
+ EC2 インスタンスにファイルシステムをマウントし、ファイルシステムオペレーションを実行します。

### 前提条件
<a name="s3-files-getting-started-console-prereqs"></a>

作業を始める前に、以下のものがあることを確認します。
+ [AWS アカウントとコンピューティングのセットアップ](s3-files-prereq-policies.md#s3-files-prereq-account-setup) が完了しました。
+ Amazon EC2 のセットアップが完了していて、EC2 インスタンスの起動方法を理解していること。詳細については、「*Amazon EC2 ユーザーガイド*」の「[Amazon EC2 の開始方法](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html)」を参照してください。このチュートリアルでは、EC2 インスタンスのデフォルト VPC を使用します。
+ EC2 インスタンスに [ファイルシステムを AWS コンピューティングリソースにアタッチするための IAM ロール](s3-files-prereq-policies.md#s3-files-prereq-iam-compute-role) がアタッチされているため、S3 ファイルシステムおよび S3 バケットとやり取りできます。

### ステップ 1: S3 ファイルシステムを作成する
<a name="s3-files-getting-started-console-step1"></a>
+ Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。
+ ページ上部のナビゲーションバーで、EC2 インスタンスと S3 バケットが存在する AWS リージョンにいることを確認します。
+ 左のナビゲーションペインで、**[汎用バケット]** を選択します。
+ ファイルシステムを作成するバケットを選択します。
+ **[ファイルシステム]** タブを選択します。
+ **ファイルシステムを作成する** を選択します。
+ VPC を確認して確定します。このチュートリアルでは、デフォルトの VPC を使用します。
+ **[作成]** を選択します。

AWS マネジメントコンソールを使用してファイルシステムを作成すると、S3 Files はデフォルトの VPC 内の各アベイラビリティーゾーンに 1 つのマウントターゲットと、ファイルシステムの 1 つのアクセスポイントを自動的に作成します。これは数分かかることがあります。すべてのリソースが作成されると、ファイルシステムが次のステップで使用できるようになります。

### ステップ 2: ファイルシステムを EC2 インスタンスにマウントする
<a name="s3-files-getting-started-console-step2"></a>
+ ファイルシステムの **[概要]** ページで、**[EC2 にアタッチ]** の下にある **[アタッチ]** を選択します。これにより、EC2 インスタンスにファイルシステムをマウントする新しいページが開きます。
+ **[利用可能な EC2 インスタンス]** ドロップダウンから目的の EC2 インスタンスを選択します。
+ ファイルシステムをマウントする EC2 インスタンスのパスを入力します。例えば、`/mnt/s3files/`。
+ 必要なトラフィックが流れるように、EC2 インスタンスとマウントターゲットに適切な [セキュリティグループ](s3-files-prereq-policies.md#s3-files-prereq-security-groups) が設定されていることを確認します。
+ S3 ファイルシステムおよび S3 バケットとやり取りできるように、EC2 インスタンスに、必要なアクセス許可を持つ適切な IAM ロールがアタッチされていることを確認してください。詳細については、「[ファイルシステムを AWS コンピューティングリソースにアタッチするための IAM ロール](s3-files-prereq-policies.md#s3-files-prereq-iam-compute-role)」を参照してください。このチュートリアルでは、EC2 インスタンスの IAM ロールにマネージドポリシー `AmazonS3FilesClientFullAccess` を追加することで、クライアントにフルアクセスを付与することを検討できます。
+ ページに表示されるアタッチ手順に従って、CloudShell を開き、ファイルシステムをマウントし、基本的なファイルシステムオペレーションを実行します。

## AWS CLI を使用した S3 Files の開始方法
<a name="s3-files-getting-started-cli"></a>

AWS CLI における S3 Files ワークフローは、次のステップで構成されます。

1.  ファイルシステムを作成します。

1. ファイルシステムのマウントターゲットを作成します。

1. マウントターゲットを使用してファイルシステムを EC2 インスタンスにマウントできます。

1. ディレクトリの一覧表示、ファイルへのテキストの書き込み、ファイルの読み取り、ファイルのコピーなどのファイルオペレーションをテストします。次に、変更が S3 バケットに反映されていることを確認します。

### 前提条件
<a name="s3-files-getting-started-cli-prereqs"></a>

作業を始める前に、以下のものがあることを確認します。
+ AWS CLI がインストールされ、設定されている。詳細については、「[AWS CLI の最新バージョンのインストールまたは更新](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)」を参照してください。
+ [S3 Files の前提条件](s3-files-prereq-policies.md) で説明されているすべての前提条件を満たしていること。
+ Amazon EC2 のセットアップが完了していて、EC2 インスタンスの起動方法を理解していること。AWS アカウント、管理アクセス権を持つユーザー、キーペア、セキュリティグループが必要です。詳細については、「*Amazon EC2 ユーザーガイド*」の「[Amazon EC2 の開始方法](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html)」を参照してください。

### ステップ 1: S3 ファイルシステムを作成する
<a name="s3-files-getting-started-cli-step1"></a>

[EC2 インスタンスに接続します](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect.html)。`create-file-system` コマンドを実行してファイルシステムを作成します。

```
aws s3files create-file-system --region {{aws-region}} --bucket {{bucket-arn}} --role-arn {{iam-role}}
```

以下の値は目的の値に置き換えてください。
+ {{aws-region}} : バケットの AWS リージョン。例えば、`us-east-1`。
+ {{bucket-arn}} : S3 バケットの ARN。
+ {{iam-role}} : S3 Files が S3 バケットとの間で読み書きを行うために引き受ける IAM ロールの ARN。この IAM ロールに適切なアクセス許可が追加されていることを確認します。詳細については、「[ファイルシステムからバケットにアクセスするための IAM ロール](s3-files-prereq-policies.md#s3-files-prereq-iam-creation-role)」を参照してください。

ファイルシステムが正常に作成されると、S3 Files はファイルシステムの説明を JSON として返します。次のステップのために、ファイルシステム ID をメモしておきます。

### ステップ 2: マウントターゲットを作成する
<a name="s3-files-getting-started-cli-step2"></a>

マウントターゲットを使用すると、単一のアベイラビリティーゾーン内の VPC にあるファイルシステムへのネットワークアクセスが可能になります。コンピューティングリソースからファイルシステムにアクセスするには、マウントターゲットが必要です。アベイラビリティーゾーンごとに作成できるマウントターゲットは最大 1 つです。運用する各アベイラビリティーゾーンにマウントターゲットを作成することをお勧めします。

ファイルシステムのマウントターゲットを作成するには、以下の `create-mount-target` コマンドを実行します。{{subnet-id}} が EC2 インスタンスと同じ VPC にあることを確認する必要があります。マウントターゲットは、EC2 インスタンスと同じアベイラビリティーゾーンに作成する必要があります。

```
aws s3files create-mount-target --region {{aws-region}} --file-system-id {{file-system-id}} --subnet-id {{subnet-id}}
```

ここで {{file-system-id}} は、`create-file-system` コマンドのレスポンスで受け取ったファイルシステム ID です。マウントターゲットの作成には最大 5 分かかる場合があります。

### ステップ 3: ファイルシステムを EC2 インスタンスにマウントする
<a name="s3-files-getting-started-cli-step3"></a>

ファイルシステムをマウントする前に、必要なトラフィックが流れるようにコンピューティングリソースとマウントターゲットに適切な [セキュリティグループ](s3-files-prereq-policies.md#s3-files-prereq-security-groups) が設定されていることを確認してください。セキュリティグループの詳細については、「[VPC ユーザーガイド](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html)」を参照してください。

以下のコマンドを実行して、ファイルシステムをマウントします。
+ 以下のコマンドを使用して、ファイルシステムのマウントポイントとして使用するディレクトリ `/mnt/s3files` を作成します。

  ```
  sudo mkdir /mnt/s3files
  ```
+ ファイルシステムをマウントします。

  ```
  sudo mount -t s3files {{file-system-id}}:/ /mnt/s3files
  ```

ファイルシステム ID がない場合は、以下を実行して見つけることができます。

```
aws s3files get-file-system --region {{aws-region}} --file-system-id {{file-system-id}}
```

### ステップ 4: ファイルオペレーションをテストする
<a name="s3-files-getting-started-cli-step4"></a>

マウントされたファイルシステムで基本的なファイルオペレーションを次のようにテストします。
+ マウントしたディレクトリに移動します。

  ```
  cd /mnt/s3files
  ```
+ ディレクトリの内容を一覧表示して、ソースバケットまたはプレフィックスの内容がインポートされたことを確認できます。同期は通常数秒以内に行われますが、特に最初のファイルでは時間がかかる場合があります。バケットが空の場合、以下のコマンドも空の結果を返します。

  ```
  ls
  ```
+ 他のファイルオペレーションをテストすることもできます。
  +  ファイルを作成する:

    ```
    echo "Hello, S3 Files!" > test.txt
    ```
  + ファイルを読み取ります。

    ```
    cat test.txt
    ```
  + ディレクトリを作成します。

    ```
    mkdir test-directory
    ```
  + ファイルをディレクトリへコピーします。

    ```
    cp /mnt/s3files/test.txt /mnt/s3files/test-directory/
    ```

その後、S3 バケットに移動し、ディレクトリ `test-directory` がバケットに反映されていることを確認します。変更が S3 バケットに同期されるまでには、約 1 分かかる場合があることに注意してください。