2013年11月27日水曜日

EC2インスタンスにRuby1.9.3をインストールする。

Amazon EC2のRHEL6の無料インスタンスにRuby1.9.3をyumでインストールしたかったが、初期設定のレポジトリには1.8.x1しかなかったため、パッケージをビルドしてインストールすることを試みた。

1.まずビルドに必要なパッケージをインストールする。
  対象は以下のとおり。
  zlib-devel
  openssl-devel
  readline-devel
  tk-devel
  libyaml-devel
  libffi-devel
  rpm-build

  注意
  libyaml-develをインストールしたときに、以下のようなエラーが発生するかもしれな
  い。
  Error:  Multilib version problems found. This often means that the root
       cause is something else and multilib version checking is just
       pointing out that there is a problem.

  要は複数のバージョンがあるので問題ありということ。
  元々インストールされていたのはlibyaml.i686、必要なのはlibyaml-devel.x86_64
      なので元々あったほうをアンインストールし、libyaml-devel.x86_64をインストール
  した。
      sudo yum remove libyaml.i686
      sudo yum install   libyaml-devel.x86_64
 
2.home直下にrpmbuildディレクトリを作成する。

3.rpmbuildディレクトリの下に以下5つのディレクトリを作成する。
  BUILD  RPMS  SOURCES  SPECS  SRPMS

4.SOURCESディレクトリに移動する。
  cd ~/rpmbuild/SOURCES

5.ruby1.9.3のアーカイブをダウンロードする。
  wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p448.tar.gz

6.SPECSディレクトリに移動する。
  cd ~/rpmbuild/SPECS

7.specファイルをダウンロードする。
 wget https://raw.github.com/imeyer/ruby-1.9.3-rpm/master/ruby19.spec

8.ビルドを実行する。
  rpmbuild -bb ruby19.spec

9. rpmファイルが作成されていることを確認する。
 ~/rpmbuild/RPMS/x86_64/ruby-1.9.3p448-1.el6.x86_64.rpm

10.~/rpmbuild/RPMS/x86_64ディレクトリに移動する。
   cd ~/rpmbuild/RPMS/x86_64

11.パッケージをインストールする。
  sudo rpm -ivh ruby-1.9.3p448-1.el6.x86_64.rpm

12.インストールできたか確認する。
  ruby -v

  OK。1.9.3が入った!

  ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-linux]




2013年11月20日水曜日

AWSでWindowsのFTPサーバ(パッシブモード)を構築する

仕事でWindowsサーバをFTPサーバとする必要があったため、AWS上で構築してみた。
その作業のまとめ。
前提として
 ・WindowsサーバのEC2インスタンスを作成しておくこと。
 ・そのインスタンスにFTPサービスをインストールしておくこと。
 ・RDPで接続できること。
が必要。

今回は動作確認のため同一VPC内に2つのWindowsサーバインスタンスを作成した。
FTPクライアントとFTPサービスのような位置づけ。
FTPプロトコルの利用範囲だが、
「インターネットからのFTPは許さない。指定VPC内のみ許可する」
ものとする。

1.まずマネジメントコンソールからVPCを選択する。
2.Security Groupsを選択する。

3.右ペインから用意したインスタンスが使うVPCを選択する。

4.下のペインで以下のように設定する。
 Create a new Rule  -> Custom TCP Rule
   Port range             ->  21
   Source                   -> VPCのGroup ID。 (ここではsg-4ce9e12e)
 ポイントはSourceにVPCのGroup IDを入れる事である。これでVPC内でしかFTPが
 使えないようになる。VPCの名前はDetailsタブのGroupIDに書かれている。


5.Apply Rule Changesをクリックする。これをクリックしないと設定が反映されない。

6.手順4同様に今度はFTPの制御用ポートを設定する。WindowsサーバのWindowsファイアウォールのポリシーを見てみると1024-65535が制御用ポートとして設定されているのでVPCでも同じ設定をする。
 Create a new Rule  -> Custom TCP Rule
   Port range             ->  1024-65535
   Source                   -> VPCのGroup ID


7.これでFTPサーバに接続できればOK。
   ex)ftp://サーバIPアドレス/hoge
   *hogeディレクトリはあらかじめサーバ側に作成しておくと望ましい。