[JAWS-UG CLI] Amazon Redshift 入門 (4) スナップショットの取得／削除

# このハンズオンについて
- このハンズオンでは、Redshiftのクラスターとそのクラスタに対してクエリを発行するインスタンスの作成を実施します。
- クエリの発行には、「psql」を利用します。本手順では、Amazon Linux上へのインストールと利用方法を説明します。


# 前提条件

## バージョン確認

このハンズオンは以下のバージョンで動作確認を行いました。

```bash:コマンド
aws --version
```

```text:結果
aws-cli/1.10.23 Python/2.7.10 Linux/4.4.5-15.26.amzn1.x86_64 botocore/1.4.14
```

## 必要な権限

作業にあたっては、以下の権限を有したIAMユーザもしくはIAMロールを利用してください。

- EC2に対するフルコントロール権限
- RedShiftに関するフルコントロール権限
- IAMに関するフルコントロール権限
- S3に関するフルコントロール権限
- STSに関するフルコントロール権限


# 0. 準備

## リージョンを指定

```bash:コマンド
export AWS_DEFAULT_REGION='ap-northeast-1'
```

## 資格情報を確認

```bash:コマンド
aws configure list
```

```text:結果
Name                    Value             Type    Location
----                    -----             ----    --------
profile                <not set>             None    None
access_key     ****************RDPA         iam-role
secret_key     ****************9GA8         iam-role
region           ap-northeast-1              env    AWS_DEFAULT_REGION
```

# 1. スナップショットの作成、削除

## スナップショット名の指定

```bash:コマンド
SNAPSHOT_NAME=mysnapshot
```

## パラメータの確認

```bash:コマンド
cat << ETX

   CLUSTER_NAME: ${CLUSTER_NAME}
   SNAPSHOT_NAME: ${SNAPSHOT_NAME}

ETX
```

```text:結果

   CLUSTER_NAME: mycluster
   SNAPSHOT_NAME: mysnapshot

```


## スナップショットの作成

```bash:コマンド
aws redshift create-cluster-snapshot --snapshot-identifier ${SNAPSHOT_NAME} \
  --cluster-identifier ${CLUSTER_NAME}
```

```json:結果
{
    "Snapshot": {
        "EstimatedSecondsToCompletion": -1,
        "OwnerAccount": "************",
        "CurrentBackupRateInMegaBytesPerSecond": 0.0,
        "ActualIncrementalBackupSizeInMegaBytes": -1.0,
        "NumberOfNodes": 1,
        "Status": "creating",
        "VpcId": "vpc-********",
        "ClusterVersion": "1.0",
        "Tags": [],
        "MasterUsername": "awsuser",
        "TotalBackupSizeInMegaBytes": -1.0,
        "DBName": "mydb",
        "BackupProgressInMegaBytes": 0.0,
        "ClusterCreateTime": "2016-04-28T10:47:23.091Z",
        "EncryptedWithHSM": false,
        "ClusterIdentifier": "mycluster",
        "SnapshotCreateTime": "2016-04-28T13:21:08.756Z",
        "AvailabilityZone": "ap-northeast-1a",
        "NodeType": "dc1.large",
        "Encrypted": false,
        "ElapsedTimeInSeconds": 0,
        "SnapshotType": "manual",
        "Port": 5439,
        "SnapshotIdentifier": "mysnapshot"
    }
}
```

## スナップショットの確認

（作成が完了するまで少々お待ちください。）

```bash:コマンド
aws redshift describe-cluster-snapshots --query Snapshots[?SnapshotType==\'manual\']
```

```json:結果
[
    {
        "EstimatedSecondsToCompletion": 0,
        "OwnerAccount": "************",
        "CurrentBackupRateInMegaBytesPerSecond": 53.8349,
        "ActualIncrementalBackupSizeInMegaBytes": 332.0,
        "NumberOfNodes": 1,
        "Status": "available",
        "VpcId": "vpc-********",
        "ClusterVersion": "1.0",
        "Tags": [],
        "MasterUsername": "awsuser",
        "TotalBackupSizeInMegaBytes": 339.0,
        "DBName": "mydb",
        "BackupProgressInMegaBytes": 332.0,
        "ClusterCreateTime": "2016-04-28T10:47:23.091Z",
        "RestorableNodeTypes": [
            "dc1.large"
        ],
        "EncryptedWithHSM": false,
        "ClusterIdentifier": "mycluster",
        "SnapshotCreateTime": "2016-04-28T13:21:32.303Z",
        "AvailabilityZone": "ap-northeast-1a",
        "NodeType": "dc1.large",
        "Encrypted": false,
        "ElapsedTimeInSeconds": 6,
        "SnapshotType": "manual",
        "Port": 5439,
        "SnapshotIdentifier": "mysnapshot"
    }
]
```

## スナップショットの削除

```bash:コマンド
aws redshift delete-cluster-snapshot --snapshot-identifier ${SNAPSHOT_NAME}
```

```json:結果
{
    "Snapshot": {
        "EstimatedSecondsToCompletion": 0,
        "OwnerAccount": "************",
        "CurrentBackupRateInMegaBytesPerSecond": 53.8349,
        "ActualIncrementalBackupSizeInMegaBytes": 332.0,
        "NumberOfNodes": 1,
        "Status": "deleted",
        "VpcId": "vpc-********",
        "ClusterVersion": "1.0",
        "Tags": [],
        "MasterUsername": "awsuser",
        "TotalBackupSizeInMegaBytes": 339.0,
        "DBName": "mydb",
        "BackupProgressInMegaBytes": 332.0,
        "ClusterCreateTime": "2016-04-28T10:47:23.091Z",
        "EncryptedWithHSM": false,
        "ClusterIdentifier": "mycluster",
        "SnapshotCreateTime": "2016-04-28T13:21:32.303Z",
        "AvailabilityZone": "ap-northeast-1a",
        "NodeType": "dc1.large",
        "Encrypted": false,
        "ElapsedTimeInSeconds": 6,
        "SnapshotType": "manual",
        "Port": 5439,
        "SnapshotIdentifier": "mysnapshot"
    }
}
```

## 確認

```bash:コマンド
aws redshift describe-cluster-snapshots --query Snapshots[?SnapshotType==\'manual\']
```

```json:結果
[]
```

以上