2015年12月7日月曜日

Dockerも始めました2 ~Kubernetes編~

 こんにちは、北野です。今回は、前回のDockerの流れに乗り、コンテナ管理システム「Kubernetes」について調べてみました。

Kubernetesとは

 Kubernetesは、Dockerをはじめとするコンテナクラスタ管理システムです(長くてわかりづらい綴りなので「k8s」と略されることもあります)。Go言語で作成され、Apacheライセンスで配布されているオープンソースソフトウェアです(ソースコードは、https://github.com/googlecloudplatform/kubernetesにあります)。

 名前はギリシャ語の単語で、ネット上での情報を調べた限り、「クーバネィテス」もしくは「クーベルネィテス」というのが近い読み方のようです。意味は「船の操舵手」なのですが、Dockerのシンボルがクジラなので捕鯨船からの連想なのか、コンテナを運ぶ輸送船からの連想なのかは不明です。

2015年11月4日水曜日

Dockerも始めました

 こんにちは、北野です。前回はVagrantについて書きましたが、今回はもう1つの注目仮想技術である、「Docker」について調べてみました。

Dockerとは

  Docker は、Linuxのコンテナ系技術を利用してアプリケーションのビルド、デプロイ、実行を行うコンテナ管理ソフトウェアです。Docker社(旧dotCloud社)のSolomon Hykes氏によってGo言語で作成され、Apacheライセンスで配布されているオープンソースソフトウェアです(ソースコードは、https://github.com/docker/docker にあります)。

 Dockerは2014年6月のバージョン1.0のリリースを機に名称変更が行われ、前述した技術(多くの人がDockerと呼んでいるコンテナ管理技術)は、現在は「Docker Engine」が正式名称となっています。このDocker Engineに、アプリケーションの開発や配布を行うためのWebサービス「Docker Hub」、API、サードパーティによるエコシステムを含めたプラットフォーム全体の総称が「Docker」となりました。

2015年10月19日月曜日

PostgreSQL 9.5のBRINインデックス

こんにちは。

2015 年秋にリリース予定の PostgreSQL 9.5 には BRIN (Block Range INdex) と呼ばれる新しいインデックスが追加されます。名前の通り、まとまった単位のブロックに含まれている値をインデックスする仕組みを提供します。ブロックとは PostgreSQL のデータ保存単位の 1 つで、内部的に一まとまり (デフォルト 8 KB) の領域として管理されている物です。デフォルトでは 128 ブロック、つまり 1 MB分の領域に含まれているインデックス対象のカラムのデータをインデックスします。

2015年10月13日火曜日

PostgreSQL 9.5 の行セキュリティポリシー

こんにちは。

この秋リリース予定の PostgreSQL9.5 の行セキュリティポリシーを紹介します。これまではユーザーがアクセス可能な行を制限するにはビューを作成し、アクセスできるテーブルとビューを制限する方法が一般的でした。PostgreSQL 9.5 からは行セキュリティポリシーを利用してアクセス制御が可能になります。

■ ビューによる行アクセス制限の問題

ビューによって参照可能な行を制限できますが、大きな問題がありました。ビューの元となるテーブルのアクセス権限がないとビューにもアクセスできません。ビューでアクセス制限を行っても、元のテーブルにアクセスしてしまえばユーザーは全ての行にアクセスできました。トリガーやルールを駆使すれば可能でしたが行の挿入や更新、削除を簡単な方法で制限することもできませんでした。

行セキュリティポリシーによって PostgreSQL 9.5 からデータベースレベルで行の参照 / 挿入 / 更新 / 削除を簡単に制御できるようになります。

2015年7月30日木曜日

Google MapでPostgreSQLのJSONBを使うサンプル

こんにちは。渡辺 です。

今回は PHP と PostgreSQL の JSONB 型を使った Google Map のサンプルコードを紹 介します。サンプルの作成には PHP 5.6 と PostgreSQL 9.4 を利用しました。

■ Google Map のサンプル

元にする Google Map のコードは Google のサイトに掲載されている 「Remove marker」 の HTML + JavaScript のコードを利用します。このサンプルコードはサンフランシスコの Google 社にマーカーが設定されたページが表示され、クリックした場所に新しいマーカーを複数設定できます。

https://developers.google.com/maps/documentation/javascript/examples/marker-remove

スクリーンショット

2015年7月6日月曜日

cgroupsを利用したリソースコントロール入門

こんにちは、北野です。今回は、cgroups(Control Groups)について調べてみました。

ちなみに、ネット上にはcgroups、cgroupという2つの表記が混在しているようなのですが、カーネル付属のドキュメントでは「cgroups」となっていましたので、ここではその表記に準拠させていただきました。また、カーネル機能について述べているのか、設定したグループについて述べているのかも紛らわしいように思いましたので、後者は「コントロールグループ」と表記してあります。

cgroupsとは

cgroupsは、「プロセスをグループ化して、リソースの利用をコントロール」するカーネル機能で、Linux 2.6.24からマージされています。具体的には、グループ単位でリソースの割り当て、優先度、管理、モニタリングなどが設定できます。 cgroupsそのものはプロセスを「コントロールグループ」と呼ばれる単位にまとめるだけで、リソースコントロールを行うにはコントロールグループに「サブシステム」と呼ばれる抽象化されたリソース群をつなげる必要があります。

2015年7月3日金曜日

PostgreSQL 9.5のJSONBの部分更新

こんにちは。渡辺です。

PostgreSQL 9.2 から導入された JSON 型はリリースの度に機能が強化されています。PostgreSQL 9.5 では JSONB 型の機能が拡張され、部分更新が可能になる予定です。PostgreSQL 9.5 は執筆時点では開発版です。リリース時点では多少機能などに変更があるかも知れない点に留意をお願いします。

■ JSONB の部分更新

JSON 型は JSON データをテキストとして保存します。JSONB 型は JSON データをハッシュとして保存します。このため、仕組み的には JSONB 型は部分更新が可能でしたが、サポートされていませんでした。JSONB の部分更新をサポートするため、オペレータと関数が強化されます。

2015年6月29日月曜日

Vagrant始めました

 こんにちは、北野です。最近は、VagrantやDockerというキーワードを至るところで目にします。にも関わらず、「仮想化に関連した技術」というくらいのざっくりとした知識しかないうえ、両者の違いもはっきりわかっていませんでした。

 このままでは時代に取り残されるという危機感から、今回はまずVagrantについて調べてみました。

Vagrantとは

 Vagrantは、仮想環境を利用した開発環境構築ツールです。Hashicorp社のMitchel Hashimoto氏によってRuby言語で作成され、MIT Licenseで配布されているオープンソースソフトウェアです(ソースコードは、https://github.com/mitchellh/vagrant にあります)。

 Vagrantの最大の特長は、「さまざまな仮想化環境を統一されたコマンドで操作できる」点です。対応している仮想化環境は、VirtualBox、VMwareといった仮想化ソフトウェア、AWS、OpenStackといったクラウド環境、DockerやLXCなどのコンテナ環境など、多岐にわたっています。

2015年6月15日月曜日

今さら聞けないセキュリティ情報の読み方

こんにちは、北野です。今回は、これまで曖昧にしてきていた、セキュリティ情報の読み方について調べてみました。

脆弱性の識別(CVE)

 セキュリティインシデントが発生して、脆弱性情報のWebサイトをいろいろ調べていくと必ず目にするのが「CVE」という単語です。たとえば、2014年に大きな騒動になったbashの脆弱性、いわゆる「Shellshock」について伝えているトレンドマイクロ社のWebページにも冒頭に書かれています。CVEが脆弱性情報のIDということはある程度予測できますが、実際はどういうものかというところから調べていきます。

2015年5月11日月曜日

RHEL6→RHEL7で変更された主要コマンドまとめ

はじめまして、北野と申します。今回より本ブログに参加させていただくことになりました。よろしくお願いします。 デビューとなる今回は、RHEL6→RHEL7で変更された主要コマンドをまとめてみました。

サービス系コマンド

RHEL 7では、サービス起動デーモンとして、SysVinit/Upstartに代わり、systemdが導入されました。これにより、サービス系コマンドが大幅に変更されています。

2015年4月20日月曜日

stunnel で pop3s のメールサーバーから pop3 形式でメールを取得する

サイオステクノロジーの貝野です。お久しぶりです。

今日は stunnel を使用して、リモートにある pop3s 形式のメールサーバーから pop3 形式でファイルを取得する方法をご紹介します。

■ stunnel とは?

SSL に対応していないソフトウェアを SSL に対応させることができるソフトウェアです。名前の通り、SSLの「トンネル」を提供します。
今回は、POP3S に対応していないメールクライアントを、stunnel を使って POP3S サーバと通信を行う設定を紹介いたします。

2015年2月10日火曜日

ntpd 脆弱性におけるパッケージのアップデートについて

こんにちは。岩本です。

先日、ネットワーク経由で時刻を調整するためのプロトコルとして利用されている ntpd に、脆弱性が複数発見されました。

2015年1月28日水曜日

glibcの重大なセキュリティ問題「GHOST」(CVE-2015-0235)公開

SIOS "OSSよろず" ブログ出張所は、新たにオープンしました「サイオス OSSポータルサイト」に移管されます。最新の情報はこちらをご確認ください。

glibcにおいて 「__nss_hostname_digits_dots」関数に、バッファオーバーフローの脆弱性が発見されました。この脆弱性は2000年11月10日にリリースされたglibc-2.2以降のバージョンに含まれており、glibc-2.17からglibc-2.18の間に修正が行われました。2000年から現在までのシステムに影響がありますので、影響範囲が非常に広いことが想定されます。

各ディストリビューションからの対応アップデートが公開されておりますので、影響のあるシステムは早急にアップデート頂くことを推奨します。

2015年1月16日金曜日

Nginx - Web technologies of the year 2014

SIOS "OSSよろず" ブログ出張所は、新たにオープンしました「サイオス OSSポータルサイト」に移管されます。最新の情報はこちらをご確認ください。

W3TechsにてWeb technologies of the year 2014が発表され、NginxはWeb Server of the Yearで5年連続で受賞しました。Nginxはこの5年間で3.9%から22.9%に市場シェアが拡大しており、特にアクセス数の上位1万サイトでは利用率は42%と大規模なWebで多く使われています。

今回はWeb technologies of the year 2014の話題を中心に執筆したいと思います。