[JAWS-UG CLI] CloudWatch Logs:#5 ログストリームの削除

AWS CLIを利用して、CloudWatch Logsのログストリームを削除してみます。

(ロググループを削除すると、一緒に削除されますが、ログストリームを個別に削除するケースを想定した手順です。)


前提条件
========


CloudWatchLogsへの権限
----------------------

* CloudWatch Logsに対してフル権限があること。


AWS CLIのバージョン
-------------------

* 以下のバージョンで動作確認済

  * AWS CLI 1.7.24

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

```text:結果(例):
      aws-cli/1.7.24 Python/2.7.5 Darwin/13.4.0
```


0. 準備
=======


0.1. リージョンの指定
---------------------

削除するログストリームの存在するリージョンを指定します。

(カレントユーザが利用するカレントリージョンも切り変わります。)

```bash:コマンド(東京リージョンの場合):
export AWS_DEFAULT_REGION='ap-northeast-1'
```


0.2. 変数の確認
---------------

プロファイルとリージョンが想定のものになっていることを確認します。

```bash:変数の確認:
aws configure list
```

```text:結果(例):
            Name                    Value             Type    Location
            ----                    -----             ----    --------
         profile cloudwatchFull-prjZ-mbp13             env    AWS_DEFAULT_PROFILE
      access_key     ****************LOAQ shared-credentials-file
      secret_key     ****************I1O1 shared-credentials-file
          region           ap-northeast-1              env    AWS_DEFAULT_REGION
```


0.3. ロググループの指定
-----------------------

削除するログストリームが存在するロググループを指定します。

```bash:コマンド:
LOG_GROUP_NAME='<ロググループ名>'
```


0.4. ロググループの内容確認
---------------------------

削除するログストリームが存在するロググループの内容を確認します。

```bash:コマンド:
aws logs describe-log-groups \
        --log-group-name-prefix ${LOG_GROUP_NAME}
```

```json:結果(例):
      {
        "logGroups": [
          {
              "storedBytes": 0,
              "metricFilterCount": 0,
              "creationTime": 1430092395471,
              "logGroupName": "test/sample",
              "retentionInDays": 3653,
              "arn": "arn:aws:logs:ap-northeast-1:XXXXXXXXXXXX:log-group:test/sample:*"
          }
        ]
      }
```


1. 事前作業
===========


1.1. ログストリーム名の指定
---------------------------

削除するログストリームを指定します。

```bash:コマンド:
LOG_STREAM_NAME='<ログストリーム名>'
```


2.2. ログストリームの確認
-------------------------

削除するログストリームの内容を確認します。

```bash:コマンド:
aws logs describe-log-streams \
        --log-group-name ${LOG_GROUP_NAME} \
        --log-stream-name-prefix ${LOG_STREAM_NAME}
```

```json:結果(例):
      {
        "logStreams": [
          {
              "firstEventTimestamp": 1430095603000,
              "lastEventTimestamp": 1430095603000,
              "creationTime": 1430093344032,
              "uploadSequenceToken": "49545657805836269406286217727077775152260327876857954450",
              "logStreamName": "test-stream",
              "lastIngestionTime": 1430095690715,
              "arn": "arn:aws:logs:ap-northeast-1:XXXXXXXXXXXX:log-group:test/sample:log-stream:test-stream",
              "storedBytes": 0
          }
        ]
      }
```


2. ログストリームの削除
=======================

ログストリームを削除します。

```bash:変数の確認:
cat << ETX

        LOG_GROUP_NAME:  ${LOG_GROUP_NAME}
        LOG_STREAM_NAME: ${LOG_STREAM_NAME}

ETX
```

```bash:コマンド:
aws logs delete-log-stream \
        --log-group-name ${LOG_GROUP_NAME} \
        --log-stream-name ${LOG_STREAM_NAME}
```

```text:結果(例):
      (戻り値なし)
```


3. 事後作業
===========


3.1. ログストリームの不存在確認
-------------------------------

削除したログストリームが存在しないことを確認します。

```bash:コマンド:
aws logs describe-log-streams \
        --log-group-name ${LOG_GROUP_NAME} \
        --log-stream-name-prefix ${LOG_STREAM_NAME}
```

```json:結果(例):
      {
          "logStreams": []
      }
```


3.2. ロググループ内のログストリーム一覧確認
-------------------------------------------

同じロググループ内のログストリームの一覧を確認します。

```bash:コマンド:
aws logs describe-log-streams \
        --log-group-name ${LOG_GROUP_NAME}
```

```json:結果(例):
      {
          "logStreams": []
      }
```


完了
====

ログストリームを削除したら、次はロググループを削除してみます。
http://qiita.com/tcsh/items/1a63629d5b28a9f50b6e