2013/07/18

EC2インスタンス生成

無料アカウントで可能な範囲でAWSの各種サービスを検証中です。

ここではEC2のインスタンスをAWS Management Consoleを利用して構成する方法について説明します。

まず、Managment ConsoleにログインしてEC2 Dashboadを開き画面中央にある「Launch Instance」ボタンをクリックします。


インスタンスの構成に利用するウィザードの選択画面が表示されます。
選択可能なウィザードは以下の通りです。
  • Classic Wizard
    • 基本となるウィザード
  • Quick Launch Wizard
    • デフォルトのコンフィグレーションを利用し可能な限り素早くインスタンスを立ち上げる。
  • AWS Marketplace
    • オンライン・ストアであるAWS Marketplace上で公開されているAMIを購入して、AWS上で動作させる。
「Classic Wizard」以外はAMIにある種制約を導入し素早く目的にあったインスタンスを構成するためのものなので検証目的で基本的に自分で構成をしたいので「Classic Wizard」を選択します。


ベースとなるAMIを選択します。
最近追加(?)されたRedHatのAMIを利用します。
(なお、無料で利用可能なAMIはスターがついているもののみです。)


インスタンスのタイプを選択します。
無料枠では「T1 Micro」のみ選択可能です。
「Launch Instances」の「Launch into」では利用するサブネットを選択します。
VPCを利用しているとVPCのサブネットを利用するか選択できるみたいです。


インスタンスの詳細な設定を行います。
各項目の内容を下記の通りです。
  • Kernel ID:要確認!
  • RAM Disk ID:
  • Monitoring:サーバ監視オプションであるCloudWatchを利用する際はチェックを付けます。
  • User Data:要確認!
  • Termination Protection:終了を抑止するオプションです。
  • Shutdown Behavior:[重要]OSを停止した際のインスタンスの振る舞いを設定します。
    • Stop:インスタンスを停止する。ただし、再起動可能です。
    • Terminate:インスタンス停止後に削除されます。
  • IAM Role:要確認!
  • Tenancy:要確認!
  • Number of Network Interfaces:ネットワークインタフェースの数を指定します。



ディスクを構成します。
ここでは「Root」「EBS」「Instance Store」の各Volumeの構成を行えますが、とりあえずデフォルトのままで。



作成するインスタンスに対してタグを設定します。タグはインスタンスを識別するための文字通りタグです。1つのインスタンスに対して10個まで設定できるようです。複数のインスタンスに対して同じタグをつけることでグルーピングすることもできるようです。

どう使っていいかまだよくわかっていないのでとりあえず適当に。


※上記タグの件、デフォルトで表示されている「Name」というタグですが、必須として設定した方がよさそうです。設定しておかないとEC2 DashboardのINSTANCESでリスト表示される該当インスタンスのNameがemptyになってしまうようです。




SSHでインスタンスにアクセスするのに利用する秘密鍵を作成します。
タブで「Create a new Key Pair」を選択して、名前を適当に設定して
「Create & Download your Key Pair」をクリックし鍵をダウンロードします。
(なお、作成されるインスタンスへの公開鍵の設定は自動で行われるようです。)

画面キャプチャ取り忘れた(> <)

セキュリティの設定です。
とりあえずSSHがつながればいいのでデフォルトのままで。


最後です。
構成を確認して完了です。


エラーが出ていないか確認し、クローズします。


2013/07/15

JenkinsをApache経由でアクセス可能にする

Jenkinsを単独サービスでインストール後にApache経由でアクセス可能に設定を変更する手順について説明します。
インストール時に単独サービスとして起動する設定にすると、URLのプレフィックスの設定を変更する手段が管理コンソール上でみつからなかったので、設定ファイルを直接変更する必要があるようです。
ちょっといまいちですね。

前提条件

環境とかインストールの条件は以下の通りです。
  • OS:CentOS release 6.3 (Final)
  • Jenkins:1.522
  • インストール形式:RPM
条件が異なると設定ファイルの方法などことなる可能性があるのでご注意ください。

手順

手順の流れは以下の通りです。

  • Jenkinsの設定ファイルにURLのプレフィックスを設定
  • Jenkinsの再起動
  • Apacheの設定変更

Jenkinsの設定ファイルにURLのプレフィックスを設定

ここではURLを「http://Jenkinsサーバアドレス:8080/」形式から「http://Jenkinsサーバアドレス:8080/jenkins」形式に変更するという前提で説明します。
Jenkinsの設定ファイル/etc/sysconfig/jenkinsにURLのプレフィックスの設定を追加します。ファイルの最下段に以下の設定とおり設定を行います。

## Type:        string
## Default:     ""
## ServiceRestart: jenkins
#
# Pass arbitrary arguments to Jenkins.
# Full option list: java -jar jenkins.war --help
#
JENKINS_ARGS=""
## Type:        string
## Default:     ""
## ServiceRestart: jenkins
#
# Pass arbitrary arguments to Jenkins.
# Full option list: java -jar jenkins.war --help
#
JENKINS_ARGS="--prefix=/jenkins"

Jenkinsの再起動

Jenkinsの管理画面にある設定の再読み込みを行っても上記で変更したURLのプレフィックスは起動パラメータなので反映されないので再起動を行います。

# /etc/init.d/jenkins restart
設定が反映されているか確認します。
# ps -ef | grep jenkins
jenkins  25090     1 99 05:41 ?        00:00:32 /usr/bin/java ~略~ --handlerCountMaxIdle=20 --prefix=/jenkins
ブラウザから「http://Jenkinsサーバアドレス:8080/jenkins」形式でアクセスし正常に動作することを確認して下さい。

Apacheの設定変更

Apacheに以下のリバースプロキシの設定を行い再起動します。
<ifmodule mod_proxy.c>
ProxyPass /jenkins http://127.0.0.1:8080/jenkins
ProxyPassReverse /jenkins http://127.0.0.1:8080/jenkins
ProxyRequests Off


<proxy "http://127.0.0.1:8080/jenkins/*">
    Order deny,allow
    Allow from all
</proxy>
</ifmodule>

ブラウザから「http://Jenkinsサーバアドレス/jenkins」形式でアクセスし正常に動作することを確認して問題なければ設定完了です。

2013/07/14

MavenのProxy設定

Proxy環境下でMavenを利用する場合、Proxyの設定が必要になります。ここではProxyの設定方法を紹介します。
Proxyの設定は2種類あります。
1つ目はシステム全体に対して設定する場合です。サーバなどはこちらの設定方法を取るべきでしょう。2つ目はユーザ個々に設定する場合です。こちらは開発者ごとにMavenを利用する開発環境で利用する方法になります。

システム全体に対して設定する場合

Mavenをインストールしたディレクトリ(M2_HOME環境変数に設定したディレクトリのことです。以下では${M2_HOME}と記載します。)の配下のconfディレクトリ直下にあるsettings.xmlに以下の内容でProxyの設定を追加します。


  ...
  
   
      true
      http
      プロキシサーバのアドレス
      プロキシサーバのポート番号
      ユーザID
      パスワード
      192.168.0.*|*.xxxx.com
    
  
  ...


ユーザ個別に設定する場合

ユーザ個別に設定する場合は、ユーザのホームディレクトリ(HOME環境変数がさしているディレクトリのことです。以下では${HOME}と記載します。)の配下にsettings.xmlファイルを作成し以下の内容を記載します。


  
   
      true
      http
      プロキシサーバのアドレス
      プロキシサーバのポート番号
      ユーザID
      パスワード
      192.168.0.*|*.xxxx.com
    
  

内容的には、システム全体に追加設定するときと全く同じ内容になります。システム全体に対する設定はsettings.xmlが既存のため、追加する形になりますが、ユーザ個別に設定する場合は既知の設定はないため、プロキシ関連の設定のみをファイルに記載する形になります。

2013/07/13

Jenkins インストール

Jenkins をLinuxにインストール手順について説明します。

環境

対象となる環境は以下の通りです。
  • CentOS release 6.4 (Final)

Jenkins バージョン

今回インストールするバージョンは以下の通りです。

  • 1.522

インストール手順

JenkinsはRPM形式で提供されているので今回はRPM版をインストールする手順について記載します。
まず最新のRPMをダウンロードします。
# wget http://pkg.jenkins-ci.org/redhat/jenkins-1.522-1.1.noarch.rpm
続いてrpmコマンドを使ってインストールを行います。
# rpm -ivh jenkins-1.522-1.1.noarch.rpm
サービスを起動して動作確認を行います。
# /etc/init.d/jenkins start
Starting Jenkins                                           [  OK  ]
ブラウザからアクセス以下の画面が表示されていることを確認します。なお、デフォルトではポート8080でサービスが起動しています。


Ruby インストール

Ruby をLinuxにソースコードからインストール手順について説明します。

環境

対象となる環境は以下の通りです。

  • CentOS release 6.4 (Final)

Ruby バージョン

インストールするRubyのバージョンは1.9.3系です。

インストール手順

大体の流れは次の通りです。
  1. ビルドに必要なツールの導入
  2. 依存するライブラリの導入
  3. Rubyのビルド

ビルドに必要なツール

ビルドに必要なツールはEPEL(エンタープライズ Linux 用の拡張パッケージ)で提供されているDevelopment Toolsパッケージを導入してさくっと終わらせてしまいます。
以下のURLからepel-release-6-8.noarch.rpmをダウンロードします。

  • http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
# wget http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -ivh epel-release-6-8.noarch.rpm
警告: epel-release-6-8.noarch.rpm: ヘッダ V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
準備中...                ########################################### [100%]
   1:epel-release           ########################################### [100%]
EPELからDevelopment Toolsパッケージを導入します。
yum groupinstall "Development Tools"

依存するライブラリの導入

依存するライブラリは利用するgemなんかでも変わってくると思うので必要なものを導入するという感じになります。
私はいつも以下のようなものをあらかじめ導入してます。
  • openssl
  • openssl-devel
  • readline
  • readline-devel
  • zlib
  • zlib-devel
  • curl
  • curl-devel
  • libyaml
  • libyaml-devel
  • ImageMagick
  • ImageMagick-devel

Rubyのビルド

以下のURLからRubyのソースコードをダウンロードし、ビルド、インストールを行います。
ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p448.tar.gz
# cd /usr/local/src
# wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p448.tar.gz
# tar zxvf ./ruby-1.9.3-p448.tar.gz
# cd ./ruby-1.9.3-p448
# ./configure | tee configure.log
# make | tee make.log
# make install | tee install.log