Help us understand the problem. What is going on with this article?

[JAWS-UG CLI] Amazon Kinesis Firehose 入門 (5) Kinesis Agentによるレコードの登録

More than 3 years have passed since last update.

この記事について

JAWS-UG CLI専門支部 #73 Kinesis Firehose入門で実施するハンズオン用の手順書です。

前提条件

必要な権限

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

  • Kinesis Firehoseのフルコントロール権限
  • S3のフルコントロール権限
  • STSの関するフルコントロール権限
  • IAMの関するフルコントロール権限
  • CloudWatchの関するフルコントロール権限
  • CloudWatch Logsの関するフルコントロール権限

0. 準備

0.1. リージョンを指定

オレゴンリージョンで実施します。(東京マダー?)

コマンド
export AWS_DEFAULT_REGION="us-west-2"

0.2. 資格情報を確認

コマンド
aws configure list

インスタンスプロファイルを設定したEC2インスタンスでアクセスキーを設定せずに実行した場合、以下のようになります。

結果
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key     ****************QSAA         iam-role
secret_key     ****************c1xY         iam-role
    region                us-west-2              env    AWS_DEFAULT_REGION

0.3. バージョン確認

コマンド
aws --version
結果
aws-cli/1.11.24 Python/2.7.12 Linux/4.4.30-32.54.amzn1.x86_64 botocore/1.4.81

0.4. バージョンアップ(必要に応じて)

コマンド
sudo pip install -U awscli

1. ログイン

SSHで接続

初回接続時、yesを選択

コマンド
ssh -l ec2-user -i ~/.ssh/${KEY_MATERIAL_FILE} ${PUBLIC_IP_ADDRESS}

json lintのインストール

npmのインストール

コマンド
sudo yum install npm --enablerepo=epel -y

json lintのインストール

コマンド
sudo npm install -g jsonlint

2. インストール

Kinesis Agentをインストールします。

インストール

コマンド
sudo yum install -y aws-kinesis-agent

サービスの起動

コマンド
sudo service aws-kinesis-agent start
結果
aws-kinesis-agent startup                                  [  OK  ]

3. Apache Web Serverのインストール

Webサーバを構築する(apacheを想定 → ログの形式をサポートしているもの)

インストール

コマンド
sudo yum install -y httpd

サービスの起動

コマンド
sudo service httpd start
結果
Starting httpd: httpd: apr_sockaddr_info_get() failed for ip-10-0-0-190
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                           [  OK  ]

動作確認

ブラウザから、Webサーバにアクセスできることを確認します。

コマンド
PUBLIC_IP_ADDRESS=$(curl http://169.254.169.254/latest/meta-data/public-ipv4) \
    && echo ${PUBLIC_IP_ADDRESS}
結果
**.**.**.**

4. 設定

設定ファイルの生成

設定ファイル名の指定

コマンド
AGENT_SETTING_FILE_NAME="agent.json"

デリバリーストリーム名の指定

コマンド
DELIVERY_STREAM_NAME="jawsug-cli-stream"

変数の確認

コマンド
cat << ETX

   AGENT_SETTING_FILE_NAME: ${AGENT_SETTING_FILE_NAME}
   DELIVERY_STREAM_NAME: ${DELIVERY_STREAM_NAME}

ETX
結果
   AGENT_SETTING_FILE_NAME: agent.json
   DELIVERY_STREAM_NAME: jawsug-cli-stream

設定ファイルの生成

コマンド
cat << EOF > ${AGENT_SETTING_FILE_NAME}
{
  "cloudwatch.emitMetrics": true,
  "cloudwatch.endpoint": "https://monitoring.us-west-2.amazonaws.com",
  "firehose.endpoint": "https://firehose.us-west-2.amazonaws.com",
  "flows": [
    {
      "filePattern": "/var/log/httpd/access_log",
      "deliveryStream": "${DELIVERY_STREAM_NAME}",
      "initialPosition": "START_OF_FILE"
    }
  ]
}
EOF

cat ${AGENT_SETTING_FILE_NAME}

JSONファイルの検証

コマンド
jsonlint -q ${AGENT_SETTING_FILE_NAME}

設定ファイルの配置

既存ファイルの退避

コマンド
sudo cp /etc/aws-kinesis/agent.json /etc/aws-kinesis/agent.json.org

生成したファイルの配置

コマンド
sudo cp agent.json /etc/aws-kinesis/agent.json

権限の付与

Kinesis-Agentの実行ユーザである「aws-kinesis-agent-user」に対して、
データソースの読み取りおよび実行権限が必要です。

Writing to Amazon Kinesis Firehose Using Amazon Kinesis Agent

コマンド
sudo chmod 755 /var/log/httpd/*
sudo chmod 755 /var/log/httpd

サービスの再起動

コマンド
sudo service aws-kinesis-agent restart

ログオフ

コマンド
exit

5. 動作確認

Web Serverにアクセス

てきとうにアクセスしてみてください。

そして、1分ほど待ちます。。。

S3 Bucket上のファイルを確認

コマンド
aws s3 ls --recursive ${BUCKET_NAME}

S3 Bucket上のファイルをダウンロード

コマンド
mkdir data03
cd data03
コマンド
aws s3 sync s3://${BUCKET_NAME} .
結果
download: s3://jawsug-cli-firehose-************/2016/12/19/07/jawsug-cli-stream-1-2016-12-19-07-54-56-47a385b8-4075-44ec-bf15-4f6143b03ddb to 2016/12/19/07/jawsug-cli-stream-1-2016-12-19-07-54-56-47a385b8-4075-44ec-bf15-4f6143b03ddb

S3 Bucket上のファイルを閲覧

コマンド
cat (任意のファイル名)
結果
222.150.28.224 - - [03/Dec/2016:08:05:20 +0000] "GET / HTTP/1.1" 403 3839 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
222.150.28.224 - - [03/Dec/2016:08:05:21 +0000] "GET / HTTP/1.1" 403 3839 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"

ファイルの削除

コマンド
aws s3 rm --recursive s3://${BUCKET_NAME}/
結果
(省略)
コマンド
cd ..
rm -r data03

以上

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away