Category Archives: 技術ナレッジ

クラウドストレージを使ってLinuxサーバ上のデータを安価に保管する方法

This entry was posted in インフラ環境, 技術ナレッジ and tagged on by .

クラウドストレージである「Amazon S3」を使って、Linuxサーバ上のデータを安価に保管する事ができます。

以下のような用途で、便利に活用できるかと思います。

  • オンプレミス環境やVPSなどのサーバ上にあるデータのバックアップ先
  • サーバ間のデータ受け渡し用ストレージ
  • DR/BCP対策(リモートストレージへのデータバックアップ)

Continue reading

サーバーの構成状態をコードで管理できる自動化ツール「Chef」のご紹介

This entry was posted in インフラ環境, 技術ナレッジ, 製品紹介 and tagged on by .

ファンブライト山下です。

最近、サーバーの構成状態を管理できるツール「Chef」を使い始めています。

やりたかった事が一通り出来るようになりましたので、Chef の概要説明を含めたご紹介です。

Chef とは?

「DevOps」や「自動化」、「仮想化」、「クラウド」などのキーワードの中で注目されているツールで、特にIT会社で利用されるシーンが増えています。

「Chef」をうまく使うと、サーバーの「あるべき」構成状態をプログラムで管理できるようになります。

例えば、以下のような事が実現できます。

  • 新規でサーバーを構築する際に、手順書化されるような作業を自動化できる
  • 既存のサーバー構成の変更作業を自動化できる
  • 既存のサーバー管理をChefで行う事によって、構成情報を管理できる

具体的には、以下のような作業を、プログラムで定義し、実行する事ができます。

  • OSのアカウントやグループを作成する
  • ディレクトリを作成する
  • パッケージをインストールする
  • 設定ファイルを配置する
  • サービスの起動設定をする

上記載はあくまで一例です。実際には、さらに色々な事が出来ます。結構便利です。

chef-solo_201403

ちなみに、「Chef」という名称は、料理人(シェフ)を表現しています。Chef の仕組みでは、料理本の「Cookbook」や、料理レシピにあたる「Recipes」等の名称があります。親しみやすい名称ですので、頭も整理しやすくなります。

Chef の利用例

今回用意した Chef 利用環境は以下のような感じです。構築対象OSはCentOSです。

chef-summary_201403

基本的に、右側(青色)の「Chef作業端末」から作業を行います。

ただし、作業前に、左側(ピンク色)の「Chef 管理対象ノード」で、基本的なCentOSのインストールを行っておきます。あとは、「Chef作業端末」から自動認証でSSHログインできるように設定を行っておきます。

あとは、「Chef作業端末」で「レシピ」や「テンプレート」などのファイルを用意します。

この「レシピ」というのはRubyのコードです。サーバーにインストールしたいrpmパッケージを定義したり、配置したい設定ファイルを指定したり、起動させたいサーバーや停止したいサーバーを定義したりします。
たとえば以下のコードです。そんなに難しいものではないと思います。

package "nginx" do
  action :install
end

service "nginx" do
  supports :status => true, :restart => true, :reload => true
  action [ :enable, :start ]
end

template "nginx.conf" do
  path "/etc/nginx/nginx.conf"
  source "nginx.conf.erb"
  owner "root"
  group "root"
  mode 0644
  notifies :reload, 'service[nginx]'
end

このRubyコードでは、Nginx(Webサーバー)をインストールし、起動設定を行い、設定ファイルを配置して Nginxを再起動します。

このRubyコード以外に、Nagix 設定ファイルのテンプレートを用意します。例えば以下のようなファイル(nginx.conf.erb)を指定の場所に配置しておきます。

user  nginx;
worker_processes  1;
error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
  worker_connections  1024;
}

http {
  include       /etc/nginx/mime.types;
  default_type  application/octet-stream;

  server {
    listen       <%= node['nginx']['port'] %>;
    server_name  localhost;
    location / {
      root  /usr/share/nginx/html;
      index index.html index.htm;
    }
  }
}

このテンプレートファイルを元に、Chef実行時に、Nginx設定ファイルとして対象ノードに配布されます。

あとは、Chef管理対象ノードを定義したJSONファイルを用意します。以下のようなファイルです。

{
  "nginx": {
    "port" : 80
  },

  "run_list":[
    "recipe[nginx]"
  ]
}

このJSONファイルで、レシピ「nginx」を指定しています。また、ポート番号「80」を指定していますが、この値が先ほどの「Nagix設定ファイルのテンプレート」で書かれている以下の場所に埋め込まれます。

<%= node['nginx']['port'] %>

これらのファイルを用意した後に、Chef(knife solo)を実行すると、コードに従ってインフラの設定が行われるわけです。人が手順書を見ながら実施するような作業が自動的に実施できるわけです。

実行コマンドは以下になります。

$ knife solo cook (対象ノード)

また、Chefの導入メリットは自動化だけではありません。「Chefでレシピを何度実行してもレシピのとおりに実行される」=「サーバーの構成状態をレシピ通りに管理できる」という事が実現できます。

ただし、このメリットは、構成情報の管理方法を今までのやり方から変更するなどの業務プロセス改革が伴うと考えられます。既存のやり方に大きな課題認識がある場合に、メリットと感じられると思われます。

以上が、Chef を使ったサーバー構築自動化の概要となります。私自身もこれからChefを使いこなせるように取り組んでいく事になりますが、とても面白いツールです。

多くのサーバーを構築し管理するITサービスプロパイダーやアプリ開発会社などで、有効なツールだと思います。ぜひ、ご利用を検討されると良いかと思います。

Vyattaで Amazon VPC に IPsec接続

This entry was posted in インフラ環境, 技術ナレッジ and tagged on by .

ファンブライト山下です。

今年からは、こちらのブログにも、技術的な事を軽く書いていこうかと考えています。

今回はVPNの軽い記載です。

VPN接続は、昔から使われている技術です。クラウドサービスが今後さらに広まっていく事によって、さらに企業ユースで利用されるケースが増えていくものと思います。

VPN接続を行う場合、VPNに対応したハードウェアを用意する事が多いかと思いますが、最近では「Vyatta」を使っているクラウドサービスが多くあります。 Continue reading

aws

AWSのEC2インスタンス一覧をExcelファイルへ出力

This entry was posted in お仕事, 技術ナレッジ and tagged , on by .

おはようございます、ファンブライト山下です。

Amazon Web Service(AWS)の EC2インスタンス情報を Excel に出力するプログラムを作っています。

現時点では、EC2インスタンスの一覧をExcel出力する部分までが出来ています。

ec2-excel

EC2インスタンスが大量にある場合などで、使い道があるかと考えています。

EC2インスタンスの情報は、Amazon Management Console で確認できるわけですが、例えば以下のケースで用途があると思います。

  • お客様への納品物として、EC2インスタンス情報をドキュメントで納品する必要がある。
  • 月次や週次、日次などのあるタイミングで、EC2インスタンスの情報を自動的に取っておきたい。

手作業でExcelに情報を落とし込むのは大変です。非生産的な作業、かつ、単調なコピーペースト作業となります。

そういった場合に、プログラムで一気にファイル化が出来ると非常に便利です。

現在は、インスタンス一覧だけですが、近日中に各インスタンス毎の情報も取得できるようにする予定です。

本プログラムにご興味のある方は、ぜひお問い合わせください。