td-agent, fluentd

ログの収集、集約やデータの収集、集約、プラグインを利用した集計などログやデータの収集にまつわるものならなんでも出来るツール。

サービス用のサーバー群
– ログ収集の設定がされたFluentd
ログ集約サーバー
ーログ集約用の設定がされたFluentd

公式
https://www.fluentd.org/
Syslog, apache/nginx logs, mobile/web app logs, sensor/iot

Fluentd is an open source data collector for unified logging layer.
Fluentd allows you to unify data collection and consumption for a better use and understanding of data.

Fluentd is an open source data collector, which lets you unify the data collection and consumption for a better use and understanding of data.

Unified Logging with JSON
Pluggable Architecture
Minimum Resources Required
Built-in Reliability

あと重要そうなところでいくと、list of Data Sources
application logs: java, ruby, python, php, perl, node.js, scala, .net
network protocols: syslog, http, tcp, udp, unix domain soket, snmp, scribe protocol, mqtt
iot devices: rasperryPi
others: docker, twitter, mysql slow query log, postgresql slow query log, gluster fs, kafka, kestrel, munin, dstat, windows event log, netflow, postfix, aws cloud watch, aws elb log, aws sqs

List of data outputs
log management: elasticsearch + kibana, splunk
dig data: hadoop DFS, treasure data, mongoDB
data archiving: file, aws s3
pub sub: aws kinesis, kafka, amqp, rabbitMQ
data warehouse: bigquery, mysql, postgresql, sqlserver, vertica, aws redshift
monitoring system: datadog, librato, ganglia, graphite, growthforecast, stasd, zabbix, macherel, riemann, sentry
Middleware: norikra, couchdb, couchbase, riak, hbase, opentsdb, zeromq
notification system: email, slack, hipchat, irc, twillo, aws sns

なるほど、give & takeか。

アジャイルとウォーターフォール

開発の性格や規模によって、どちらが適している、いないなどがある

ウォーターフォール
– 正確性、信頼性が求められる場合は適している
– 要件定義に時間をかける
– 出戻りがない想定

アジャイル
– スピード重視
– ドキュメントに時間をかけない
– 少人数で回す
– PDCAを回して改善していく
– 仕様変更にも柔軟に対応する

phpのリダイレクト処理

	header('Location: https://www.cyberagent.co.jp/');
	exit();

ヘッダーで飛ばします。飛ばし先はスクランブルスクウェア サイバーエージェント!
まー30階でも40階でも特に何とも思わないですが、響きがいいですね。

<head>
<script>
setTimeout("link()", 0);
function link(){
	location.href="https://mixi.co.jp/";
}
</script>
</head>

jsによるリダイレクト。location.hrefで飛ばす。

<head>
<meta http-equiv="refresh" content="1;url=https://mixi.co.jp/">
</head>

.htaccessによるリダイレクト

RewriteEngine on
RewriteRule ^test.html$ https://mixi.co.jp/ [L,R=301]

Devopsとは何か?

DevOps(デブオプス)は、ソフトウェア開発手法の一つ。開発 (Development) と運用 (Operations) を組み合わせたかばん語であり、開発担当者と運用担当者が連携して協力する(さらに両担当者の境目もあいまいにする)開発手法

来型のソフトウェア開発と、インフラストラクチャ管理プロセスを使用するよりも速いペースで製品の進歩と向上を達成し、企業がアプリケーションやサービスを高速で配信できるように、文化的な基本方針、プラクティス、ツールが組み合わされている。

アジャイルみたいなものか。

AWSメンテナンス

-フェイルオーバーとは、稼働中のシステムで問題が生じてシステムやサーバーが停止してしまった際に、自動的に待機システムに切り替える仕組み

-HA機能ともいわれ、システムの可用性を高めるための冗長化.

Requiredなイベントについて、事前に知る必要がある。

RDSの詳細設計をしていこう

なるほど、ここでサブネットとavailability zoneをchoiceするのね。

メンテナンスウィンドウの設定

なるほど♪

おおおおお、すげー

やけに時間かかるじゃねーか

ステータス バックアップ中 ってどういうことだ??
とりあえずこれ、vagrantから接続できるんだろうか。。。

vagrantからはつながらないようです。
[vagrant@localhost aws]$ mysql -u root -p -h rds-mysql-server.hoge.ap-northeast-1.rds.amazonaws.com
Enter password:
ERROR 2003 (HY000): Can’t connect to MySQL server on ‘rds-mysql-server.c7fqvxerfcrm.ap-northeast-1.rds.amazonaws.com’ (110)

>EC2インスタンスのセキュリティグループには、Amazon RDS for MySQLインスタンスのセキュリティグループ[example-rds-mysql-server]に対するMySQL接続許可を追加した[example-server]セキュリティグループを割り当てます。
これか!

インバウンドルール
そのセキュリティグループに関連付けられたインスタンスにアクセスできるトラフィックを規制するルール

[ec2-user@ip-hoge ~]$ mysql -u root -p -h rds-mysql-server.hoge.ap-northeast-1.rds.amazonaws.com
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 5.7.22-log Source distribution

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql>

おおおおおおおおおおおおおおおおおおお、きたきたきたーーーーーーーーーー
セキュリティグループで若干手間取りましたがwww

RDS for MySQLインスタンスに紐づけるパラメーター

サブネットグループの次はパラメーターグループをつくります。

パラメーターグループできました。

DBインスタンス

Amazon Aurora, MySQL, MariaDB, PostgreSQL, Oracle, Microsoft SQL Serverがあります。なるほど。

ユースケース 開発/テストを選択する

DBインスタンスのクラス
db.t2.micro – 1 vCPU, 1 GiB RAM
20 GiB
概算月間コスト
21.74 USD

たけーな、なんでLinuxのEC2よりDBエンジンのコストの方が高くなるのかわからん。

RDS MySQL インスタンスを立てる

まずconsoleのログイントップ

Amazon RDS for MySQLインスタンス(MySQLバージョン5.6.27のMySQLデータベースサーバ)を作成し、Amazon EC2インスタンス(Amazon Linux)からMySQLデータベースへ接続して利用開始する

RDSサービス詳細
https://aws.amazon.com/jp/rds/
対象:Amazon Aurora, PostgreSQL, MySQL, MariaDB, ORACLE, SQL Server
MongoDBなどNo SQLはないのかな。。

まず、EC2からRDS用のセキュリティグループを作ります。

サブネットグループをつくる

abilability zoneを作る

ap-northeast-1a

この ap-northeast-1a ってよく出てくるな。

——–
Amazon EC2 は、世界各地のロケーションでホスティングされています。これらのロケーションは、リージョンとアベイラビリティーゾーンから構成されています。リージョンはそれぞれ、地理的に離れた領域です。1 つのリージョンに複数のそれぞれ独立したロケーションがあり、このロケーションを「アベイラビリティーゾーン」といいます。Amazon EC2 では、お客様がインスタンスなどのリソースとデータを複数のロケーションに配置できます。複数のリージョンにまたがってリソースのレプリケーションを行うには、お客様がそのように指定する必要があります。

リージョンでロケーションが異なるのね。

なるほど、東京と大阪か。
ap-northeast-1
アジアパシフィック (東京)
ap-northeast-2
アジアパシフィック (ソウル)
ap-northeast-3
アジアパシフィック (大阪: ローカル)

サブネットが出来ました。

centosにcpanを入れる

今度こそ行けるかな?
$ sudo yum install cpan

これでいいですか? [y/N]y
パッケージをダウンロードしています:
(1/2): perl-CPAN-1.9402-144.el6.x86_64.rpm | 247 kB 00:00
(2/2): perl-Digest-SHA-5.47-144.el6.x86_64.rpm | 65 kB 00:00
——————————————————————————–
合計 128 kB/s | 312 kB 00:02

ほう。

cpanのupgrade
# perl -MCPAN -e shell
cpan[1]> o conf prerequisites_policy follow
cpan[2]> o conf commit
cpan[3]> upgrade

upgradeがやたら長いぞ。
なんだこれ、永遠と終わらんぞ。。

git hubからgit cloneします。
git clone https://github.com/PerlDancer/Dancer2.git

ここからどーするか。。

ルーティングのサンプルはいっぱいあるんだが、どこにファイルを置けばいいの?