2014/06/13

RDS(PostgreSQL)でJSTを使う たった1つの冴えたやり方

このエントリーをはてなブックマークに追加

@j3tm0t0 さんのRDS(MySQL)でJSTを使う たった1つの冴えたやり方という記事があったので、「PostgreSQLも!」ということで、RDS for PostgreSQLでJSTを使う方法をブログにまとめようと思います。
このように書くと、RDS使うから特別なことが必要のように見えますが、普段PostgreSQLを使っている場合と同じ設定でOKです。
ただし、RDSを使用する場合、直接postgresql.conf(パラメータ設定ファイル)を編集できないので、DB Parameter Groupsを使用します。

1. RDS for PostgreSQLのデフォルト設定

Amazon RDS for PostgreSQLのシステム標準設定タイムゾーンはUTCです。
デフォルト設定のままPostgreSQLを立ち上げると下記のように表示されます。
$ date
2014年 6月13日 金曜日 13時32分42秒 JST
$ psql -h postgres.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -U postgres -c "SELECT CURRENT_TIMESTAMP"
Password for user postgres: 
              now              
-------------------------------
 2014-06-13 04:32:50.531748+00
(1 row)


2. JSTを使うには

2-1. DB Parameter Groupsによる設定

RDSでは、DB Parameter Groupsを使用することで、パラメータの設定が可能です。



PostgreSQL用のDB Parameter Groupsを作成し、設定項目中のTimezoneを「UTC」から、「Asia/Tokyo」と変更することで、JSTを使用できます。

2-2. RDS起動時にDB Parameter Groupsを割当

DB Parameter Groupsを作成したら、あとは起動時にそれを選ぶだけです。
(Rebootが必要ですが、起動中のRDSでもDB Parameter Groupsの変更が可能です。)



この設定を行ったRDSで試すと、下記のようにJSTで現在時刻が取得できますよー。
$ date
2014年 6月13日 金曜日 13時55分19秒 JST
$ psql -h postgres.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -U postgres -c "SELECT CURRENT_TIMESTAMP"
Password for user postgres: 
              now              
-------------------------------
 2014-06-13 13:55:25.306856+09
(1 row)

以上!

このエントリーをはてなブックマークに追加

2014/02/23

Zabbix2.2のインストール with PostgreSQL

このエントリーをはてなブックマークに追加

お久しぶりです。私は元気です。
タイトルの通り、バックエンドのDBをPostgreSQLにして、Zabbix2.2をインストールしてみました。

Zabbixのバックエンドには色んなDBが使えるはずなのに、MySQLの情報ばかりです。
挙げ句の果てに、Zabbix本家のマニュアルにもMySQLを使った場合しか書いていません。
https://www.zabbix.com/documentation/2.2/manual/installation/install_from_packages
というわけで、PostgreSQLを使った場合のインストール方法をまとめてみようかと(zabbixサーバのみ)。

0. 準備

今回はRHEL6.4、PostgreSQL9.3.3を使います。
OSの準備、設定は省略して、PostgreSQLのインストールと設定から始めます。
まず、PostgreSQLのソースコードをダウンロードし、インストールを行います。
$ wget http://ftp.postgresql.org/pub/source/v9.3.3/postgresql-9.3.3.tar.gz
$ sudo yum groupinstall 'Development tools'
$ sudo yum install -y readline-devel zlib-devel bison flex
$ tar xvfz postgresql-9.3.3.tar.gz
$ cd postgresql-9.3.3
$  ./configure --prefix=/usr/local/pgsql-933
$ make
$ sudo make install

yumでインストールしているのはコンパイルに必要なパッケージです。

1. リポジトリ設定パッケージのインストール

Zabbix用のリポジトリ設定パッケージをインストールします。
$ sudo rpm -ivh http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm


2. Zabbixパッケージのインストール

yumで一発です。
$ sudo yum install zabbix-server-pgsql zabbix-web-pgsql


2. Zabbixデータベースの作成

データベースクラスタを作成し、zabbix管理用のユーザ、データベースを作成します。
$ export PATH=/usr/local/pgsql-933/bin:$PATH:$HOME/bin # PATHの設定
$ mkdir -p /pgdata/data
$ initdb -D /pgdata/data/ -E utf8 --no-locale
$ pg_ctl -D /pgdata/data/ start
$ createuser -U postgres zabbix
$ createdb -U postgres -O zabbix zabbix
続いて、スキーマとデータをインポートします。
$ psql -U zabbix zabbix < /usr/share/doc/zabbix-server-pgsql-2.2.2/create/schema.sql
$ psql -U zabbix zabbix < /usr/share/doc/zabbix-server-pgsql-2.2.2/create/images.sql 
$ psql -U zabbix zabbix < /usr/share/doc/zabbix-server-pgsql-2.2.2/create/data.sql


3. Zabbixサーバプロセスの起動

設定ファイルにデータベースの情報を入力します。
$ sudo vi /etc/zabbix/zabbix_server.conf
    :
    :
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=
    :
    :


サーバプロセスを起動します。
$ sudo service zabbix-server start


4. Zabbix WebインターフェースのPHP設定

ZabbixはWebインタフェースを使用するみたいです。
Apacheの設定ファイルが、/etc/httpd/conf.d/zabbix.confにインストールされます。
ここでは、以下のように設定しました。
最低限、timezoneは設定する必要があります。
$ sudo vi /etc/httpd/conf.d/zabbix.conf
    :
    :
    php_value max_execution_time 600
    php_value memory_limit 128M
    php_value post_max_size 32M
    php_value upload_max_filesize 16M
    php_value max_input_time 600
    php_value date.timezone Asia/Tokyo
    :
    :
設定した後は、httpdを再起動する必要があります。
$ sudo service httpd restart


5. WebアクセスのためのOS設定

HTTP通信ができるように設定を行っていきます。
まず、石川さんに謝ります。
$ sudo setenforce 0
$ sudo reboot
続いて、ファイアウォールの設定を行います。
ポート80での通信を許可します。
$ sudo /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT


6. Zabbix Webインターフェースからの設定

http://[zabbixサーバのホスト名 or IPアドレス]/zabbix へブラウザでアクセスします。
下記のような画面が見えれば成功です。
「NEXT」をクリックします。

続いて下記の画面にて、全ての項目が[OK]であることを確認して「NEXT」をクリックします。

続いて、DB設定を行います。下記のように設定を行い、「Test Connection」をクリックします。
接続に成功したら、「NEXT」をクリックします。

Zabbixサーバの設定を行います。Zabbix サーバとフロントエンドが同じところで動いているので、このまま「NEXT」をクリックします。

確認画面で問題なければ、「NEXT」をクリックします。

無事インストールが終わると下記のように表示されます。

そのままZabbix 管理画面へのログインします。

下記のような画面が見えて、Zabbixサーバーの起動が「Yes」とか「はい」となっていればよいみたいです。
(言語設定はプロファイルで変更できます。)

ひとまず今日はここまで。
では。

参考資料

下記、参考にさせていただきました。ありがとうございます。
○本家マニュアル
https://www.zabbix.com/documentation/2.2/manual/installation/install_from_packages
○第 1 回 Zabbix を動かしてみよう - SRS OSS
http://www.sraoss.co.jp/technology/zabbix/introduction/01-firststep.php#3


このエントリーをはてなブックマークに追加

2014/01/06

1/10をもって、NTTデータを退職することになりました。

このエントリーをはてなブックマークに追加

本日、辞令を受け、2014年1月10日をもって、株式会社NTTデータを退職することになりました。NTTデータには、2009年4月に入社し、5年弱お世話になったことになります。
退職に当たって、簡単に自分の気持ちを整理しようかと思い、若干酒入っていますが、乱文を書きました。


NTTデータと私


NTTデータに対する思い

正直に言って、一番に出てくるのは感謝の気持ちです。
NTTデータには、新卒で入社しました。入社前は世界史の勉強をしていました。
会社入ってからやることは、すべて初めてで、Javaのjの字も、データベースのデの字も分かりませんでした。なにも分からないくせに、態度だけは一人前のように振る舞ってた気がします。僕がそんな後輩を持ったら、腹立つことも多かったかと思いますが、様々な方々に暖かくご指導していただいたので、今があるのだと思います。
こんな新人をここまで育ててもらったことに感謝しております。

一緒に働いた方々に恵まれた

退職にあたり、NTTデータでの生活を振り返っても、嫌なことがほとんど思い浮かんできません。それは、周りの人に恵まれたからだと思ってます。

NTTデータでは、色んなプロジェクトに支援に行き、厳しいプロジェクトもありました。しかし、自分の周りにいる方々は常に前向きで、そんなプロジェクトを成功に導いてくださいました。前向きで優秀な人たちと仕事すると、厳しいプロジェクトでも楽しいと感じるものなんだなと思いました。
また今の職場に異動してからも、まだまだ基盤領域の技術に明るくない自分にやさしく技術を教えていただき、しくみ勉強会などの講演の面倒を見ていただいたりして手をかけていただきました。ここでも前向きな方々が多く、OSSを通して、仕事することの価値、自分が創り出すべき付加価値というものを考えさせられました。また、優秀な後輩にも恵まれ、仕事っていうのは他人にどう思われるかというのではなく、自分がどうあるべきか、どう楽しむのかということ教わった気がします。

固いこと書いた気がしますが、辞めるにあたって「気にすること何もない」と言ってくれた統括部長や、自分が書いた30ページ以上のドキュメントをしっかり読んでレビューしてくれる課長、仕事をする上での考え方を教えてくれたトレーナー、PostgreSQLの世界に導いてくれた先輩方、ものすごい技術者の方々、辞めるときに泣くくらい慕ってくれるような後輩、そんな人に囲まれて、これ以上の幸せはあるだろうかという感じです。ここには書ききれないくらい様々な方々にお世話になりました。

そういった方々と仕事ができたこと、辞めるにあたって嫌な思いが浮かんでこないことが自分の誇りだと思っています。


NTTデータに対する不満

NTTデータでの生活の中で自分自身が辞めるようなきっかけになった嫌な出来事はありません。
上司に辞めることを伝えたときに、何か不満はないかということを聞かれましたが、正直思い浮かびませんでした。
しいてあげるとすれば、「技術者の地位が高くない」とか「努力している人とそうでない人の待遇が変わりない」とかありました。
ただ、大企業にはありがちなことであるし、だからと言って、そういった不満をあげるような技術力を自分がもっているとか、自分が仕事する上で待遇に不満だとか言うことはありませんでした。


じゃあ何で辞めるのか

不満がないのであれば、なぜやめるのかという話ですが、大きく分けると以下の2つの理由になります。

1.  次にやることが面白そうだったから

1つ目は直感的な理由です。単純に、次のジョブが面白そうだと感じたからです。
社名はまだ伏せますが、次のジョブではクラウドコンピューティングを勉強し、クラウドを使った開発の仕方などを人に教えることになります。まだ仕事として取り組んだことはない技術ですが、様々なシステムが集まるプラットフォームだと思うので、興味を持っていました。それ以上に人に教えるということに惹かれたかもしれません。NTTデータでインドの協力パートナーさんにPostgreSQLのことなどをレクチャーするなどして、ダイレクトに反応が返ってくるのに充実感を覚えてたのも転職を決意する決め手になったと思います。

新しいことをやるのは大変なことだと思いますが、NTTデータでも様々なプロジェクトで、新しいことを色々やらせていただいたので、頑張れるかなと思います。
新しいことをやるのは楽しいですし、せっかくの人生なので色んなことをやりたいなーと。ダメだったら、また違うことを始めればいいですし。

2. お世話になった方々に負けないために

NTTデータで最後に一緒になったチームにはPostgreSQLのコミッタをはじめとして、PostgreSQL、DBのスペシャリストがそろっていました。
私が分からないに直面しても、彼らに聞けば、最短距離で解決にたどり着けるということも何度も経験しました。とても恵まれた環境でしたが、反面、そういった環境に甘えてしまう自分もいるなーと何となく感じていました。もう少し厳しい環境に身を置いて、自分を鍛えなければ行けないなというのも一つあったと思います。
また、そういったスペシャリストの方々に追いつくイメージが持てなかったのもあるかもしれません。どちらかというと、色んな技術を学んで、色んなことをやったエンジニアとして、彼らに負けないような存在になりたいなと思っています。

さいごに

僕はNTTデータでも恵まれた人だったなーと思います。
不満を言わざるを得ない環境で働いている人もいると思うので。
そのような状況に無縁だったのは幸いでした。

多分、あまり面白い退職エントリではないと思います。
特に辞めることにつながる不満があったわけでも、頑張って転職活動をしたわけでもありません。
というか、辞めることになってから逆に寂しい思いを感じました。
ですが、そういう寂しい思いを感じさせてくれた方々と、より成長した姿で出会い、また一緒に仕事をしたいなというのが正直な気持ちです(きっと近い将来どこかである気がする)。
これまでお世話になった方々に感謝の気持ちを示して、お別れとしたいと思います。
お世話になりました、ありがとうございました!!

サラリーマン江川大地 NTTデータ編 完
江川先生の次回作にご期待ください。


このエントリーをはてなブックマークに追加