記事一覧

2008年10月25日土曜日

[TechDay] 第6回 Amazon Elastic Compute Cloud (Amazon EC2)

第5回で約束したとおり今回はEC2の再起動をしてもOracle Net Serviceが正常に起動するための設定を説明します。


Oracle Net Serviceを起動するために必要な構成ファイル:listener.ora


Oracle Net Serviceの構成ファイルに記述する環境情報にはHOST名があります。
一般的なLinux環境では動的にHOST名を変更することはないためlistener.oraファイルは一度書けばよいことですが、EC2のHOST名は再起動すると以前の名前と変わってしまいます。
そのためlistener.oraに記述するHOST名はインスタンス起動時に動的に設定してあげる必要があります。


Oracleの自動起動シェルの変更


◆Oracleの自動起動シェル
/etc/init.d/oracle-xe
※/etc/init.dはシンボリックリンク

上記の起動シェルの中でOracle Net Serviceを起動する記述がありますがその時にlistener.oraを書き換えるコマンドを追加します。

◆listener.oraを動的に変更する方法
起動シェルでlistener.oraに記述するHOST名を変更してあげましょう。

以下に設定方法を示します。

1)listener.ora.orgファイルの準備
以下のようにHOST名に「%hostname%」など動的に変更するときの識別名を記述した種ファイル(listener.ora.org)を用意します。
****listener.ora抜粋*********************************************
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
(ADDRESS = (PROTOCOL = TCP)(HOST = %hostname%)(PORT = 1521))
)
)
*****************************************************************

2)インストーラで作成されている起動シェルを修正します。
起動シェルの中でコールしている以下のファイルを修正します。

/etc/sysconfig/oracle-xe

このファイルはコメントを読めばわかりますが、システムの起動時にOracleを自動起動させるときの構成を指定するファイルです。


#This is a configuration file for automatic starting of the Oracle
#Database and listener at system startup.It is generated By running
#'/etc/init.d/oracle-xe configure'.Please use that method to modify this
#file

# ORACLE_DBENABLED:'true' means to load the Database at system boot.
ORACLE_DBENABLED=true

# LISTENER_PORT: Database listener
LISTENER_PORT=1521

# HTTP_PORT : HTTP port for Oracle Application Express
HTTP_PORT=8090

# Configuration : Check whether configure has been done or not
CONFIGURE_RUN=true

# 以降が変更部分 ********
# 種ファイルでlistener.oraファイルを上書きする
\cp $ORACLE_HOME/network/admin/listener.ora.org $ORACLE_HOME/network/admin/listener.ora
# hostnameコマンドで取得した文字列で%hostname%を置換
sed -i "s/%hostname%/`hostname`/g" $ORACLE_HOME/network/admin/listener.ora
# リスナー起動には上記まででOK
# ついでにNet Serviceに接続するためのクライアント用構成ファイル
# (TNSサービス名の定義)も修正
\cp $ORACLE_HOME/network/admin/tnsnames.ora.org $ORACLE_HOME/network/admin/tnsnames.ora
sed -i "s/%hostname%/`hostname`/g" $ORACLE_HOME/network/admin/tnsnames.ora
#************************


参考情報

◆Oracleの起動停止
/etc/rc.d/init.d/oracle-xe start
/etc/rc.d/init.d/oracle-xe stop

2008年10月23日木曜日

DELLサポートのチャットサポートは便利だった!

今朝、会社に出社するとWindowsXP君がブルースクリーンのままお亡くなりになっていました。何度かリカバリを試みましたがハード障害のようでDELLのサポートに連絡をしようと思いチャットサポートページを開いてみました。



上記ページの「サービスタグ:」フィールドに該当の番号(マシンに張ってあるシールに記述)を入力して問い合わせに必要な情報を入力するとサポートが受けられます。

まだ「パイロットのため期間限定での提供」ということですが、リクエストしてみたら担当の方が即レスでした。すばらしい。
11時くらいから約1時間ほどチャットをしながら修理の手続きを済ませました。
まだ利用する人がいないからレスが良いということもあるかもしれませんが、一般的な電話対応で音声ガイダンス+長い待ちを考えるとかなりナイスです。

しかもすべてのチャットログが終了後にメールで届きます。
こちらはこのメールを保存しておけば何かの確認の時にも便利ですね。

かなり良いサポートだと思い「BLOGなどでコメントしてもいいですか」と聞いてしまいました。そうしたらなんと「まだ始まったばかりですがぜひ宣伝してください」みたいな回答をいただきました。

ということでの「投稿」です。

DELLで困ったらぜひ使ってみてはいかがでしょうか。

以下、チャットの画面です。

2008年10月19日日曜日

[TechDay] 第5回 Amazon Elastic Compute Cloud (Amazon EC2)

第5回の内容

Oracleがアマゾンに提供しているOracle 10g XE はシングルバイトのモジュールで日本語が使用できないのでアマゾンのLinuxのAMIにOracle 10g XE のUniversal版をインストールする説明をします。
OracleのサイトからOracle 10g XEのインストールを入手してAMIにコピーしてからは普通のLinuxにインストールする手順と同様です。簡単に以下のステップを説明します。

・OracleのサイトからOracle Database 10g Express EditionのRPMを取得
・Oracle Database 10g Express EditionのRPMをAmazon EC2インスタンスにコピー
・Oracle Database 10g Express Editionのインストール
・アクセスポートの解放
・AMIの作成
・AMIの登録

OracleのサイトからOracle Database 10g Express Editionを取得


以下のサイトからrpmをダウンロードします。
http://www.oracle.com/technology/software/products/database/xe/htdocs/102xelinsoft.html
ダウンロードするにはOracleのサイトへユーザ登録が必要でログイン後にライセンス条項への同意が必要なため一度ローカルのPCにダウンロードしてscp(SecureCopy)でアップロードしました。



上記画面上のAccept License Agreementのラジオボタンをクリックしてライセンス条項に同意して、Oracle Database 10g Express Edition (Universal)の oracle-xe-univ-10.2.0.1-1.0.i386.rpm (262,909,363 bytes) (cksum 2403796334) *RPM package をクリックしてダウンロードします。

Oracle Database 10g Express EditionのRPMをAmazon EC2インスタンスにコピー


第2回で紹介したSSHクライアントのPuTTYに付属のscpコマンド:pscpを使ってEC2インスタンスにRPMをコピーします。250MBぐらいのファイルのアプロードに約2時かぐらいかかりました。
ちなみに弊社はのインターネット回線はフレッツ光です。

以下、実行例)
C:\AWS>pscp -i id_rsa-my-test-keypair.ppk oracle-xe-univ-10.2.0.1-1.0.i386.rpm root@ec2-67-202-25-135.compute-1.amazonaws.com:/tmp
oracle-xe-univ-10.2.0.1-1 | 256747 kB | 35.2 kB/s | ETA: 00:00:00 | 100%

Oracle Database 10g Express Editionのインストール


※詳しくはインストールガイド(英語)を見てください。

システム要件は以下の通りです。
OS
Red Hat Enterprise Linux RHEL3 and RHEL4
Suse SLES-9
Fedora Core 4
Red Flag DC Server 5.0/MIRACLE LINUX V4.0/Haansoft Linux 2006 Server (Asianux 2.0 Inside)
Debian 3.1

必要なパッケージ:
glibc - 2.3.2
libaio - 0.3.96

Unix・Linux系のOracleはKernelパラメーターを設定しなければいけませんがXEのインストーラはチェックして値が小さい場合は勝手に変更してくれるようです。

・システム要件の確認
libaio と glibc がインストールされているか確認します。



libaio はデフォルトでは入っていないのでインストールします。





・RPMを使ったOracle XEのサイレントインストールを行います。

コマンドラインから以下のように実行してインストールしてOKですがここではサイレントインストールの手順を説明します。

# rpm -ivh /downloads/oracle-xe-univ-10.2.0.1-1.0.i386.rpm

◆サイレントインストール手順
1)RPMファイルを配置するディレクトリの作成
※わかりやすくするためにインストールガイドと全く同じようなディレクトリ構成にしました。

2)アップロードしたRPMのmv
3)サイレントインストール用のパラメータファイル(responsefile)の作成
4)サイレントインストール用のシェル作成
5)サイレントインストール用シェルの実行

# mkdir /downloads        (1)
# mv /tmp/oracle* /downloads   (2)
# ls /downloads
oracle-xe-univ-10.2.0.1-1.0.i386.rpm
#
# ls -al
合計 257020
drwxr-xr-x 2 root root 4096 2008-10-01 06:29 .
drwxr-xr-x 23 root root 4096 2008-10-01 06:24 ..
-rw-r--r-- 1 root root 262909363 2008-10-01 05:23 oracle-xe-univ-10.2.0.1-1.0.i386.rpm
-rw-r--r-- 1 root root 35 2008-10-01 06:21 responsefile
-rwxr--r-- 1 root root 196 2008-10-01 06:29 xesilentinstall.sh
#

(3)で作成したresponsefile(5行のテキストファイル)
# more responsefile
8090     <--- Oracle 10g XE のWeb管理アプリポート(デフォルト8080)
1521     <--- Oracle database listenerのポート(デフォルト1521)
ここはsysのパスワード
ここはsystemのパスワード
y      <--- OS起動時にOracleも自動起動するかの指定(yesで自動起動)

(4)で作成した起動シェル
# more xesilentinstall.sh
#!/bin/bash

rpm -ivh /downloads/oracle-xe-univ-10.2.0.1-1.0.i386.rpm > /var/log/XEslilentinstall.log

/etc/init.d/oracle-xe configure < /downloads/responsefile >> /var/log/X
Esilentinstall.log

5)サイレントインストール用シェルの実行
#./xesilentinstall.sh
#

※インストールログ(/var/log/XEsilentinstall.log)を確認しましょう。
# more /var/log/XEsilentinstall.log
準備中... ###############################################
###
This system does not meet the minimum requirements for swap space. Base
d on
the amount of physical memory available on the system, Oracle Database 1
0g
Express Edition requires 1024 MB of swap space. This system has 895 MB
of swap space. Configure more swap space on the system and retry the in
stallation.
oracle-xe-univ ############################################
######
Executing Post-install steps...
You must run '/etc/init.d/oracle-xe configure' as the root user to
configure the database.


Oracle Database 10g Express Edition Configuration
-------------------------------------------------
This will configure on-boot properties of Oracle Database 10g Express
Edition. The following questions will determine whether the database sh
ould
be starting upon system boot, the ports it will use, and the passwords t
hat
--続ける--(52%)
will be used for database accounts. Press to accept the default
s.
Ctrl-C will abort.

Specify the HTTP port that will be used for Oracle Application Express [
8080]:
Specify a port that will be used for the database listener [1521]:
Specify a password to be used for database accounts. Note that the same
password will be used for SYS and SYSTEM. Oracle recommends the use of
different passwords for each database account. This can be done after
initial configuration:
Confirm the password:

Do you want Oracle Database 10g Express Edition to be started on boot (y
/n) [y]:
Starting Oracle Net Listener...Done
Configuring Database...Done
Starting Oracle Database 10g Express Edition Instance...Done
Installation Completed Successfully.
To access the Database Home Page go to "http://127.0.0.1:8090/apex"
#

◆Oracleユーザの環境変数設定

Linuxのロケールを設定してOracleの提供するシェルを実行すると言語系の環境変数が設定されます。.bash_profileに以下の設定をします。
1)LANGの設定
2)oracle_env.sh の呼び出し

# su - oracle

-bash-3.2$ ls -al
合計 28
drwxr-xr-x 4 oracle dba 4096 2008-10-01 07:01 .
drwxr-xr-x 3 root root 4096 2008-10-01 06:29 ..
-rw------- 1 oracle dba 275 2008-10-01 06:55 .bash_history
-rw-r--r-- 1 oracle dba 189 2008-10-01 07:01 .bash_profile
-rw------- 1 oracle dba 1520 2008-10-01 07:01 .viminfo
drwxr-xr-x 3 oracle dba 4096 2008-10-01 06:29 app
drwxr-xr-x 3 oracle dba 4096 2008-10-01 06:29 oradata
-bash-3.2$ pwd
/usr/lib/oracle/xe
-bash-3.2$ vi .bash_profile
export LANG=ja_JP.UTF-8
. /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh

-bash-3.2$


アクセスポートの解放


◆Elasticfoxの画面から行う例



ElasticfoxのSecurity Groupsタブをクリックすると現在解放されているポートが表示されます。EC2のセキュリティはEC2のオーナー(ユーザ)毎に任意のグループを作成(複数可能)してそこに対してポリシーを設定します。作成したグループをインスタンス起動時に指定してセキュリティを有効にします。
デフォルトでdefaultというグループがあるので何も指定しない場合はdefaultグループに設定したセキュリティが有効になります。

上記の画面は、Your Groupsにリストされているグループを選択して右クリックしてメニューが表示されている状態です。

ここで Grant a new permission on this security group を選択してクリックすると以下の画面が表示されます。



この画面から解放するプロトコル、ポートやアクセス元の制限を設定します。
上記の例はTCP/IPを8090ポートで指定したIPアドレスからだけアクセスすることが出来る設定です。

◆AWS用コマンドラインツール(ec2-api-tools)から行う例

C:\AWS>ec2-authorize default -p 8090 -s 192.168.0.10/32
GROUP default
PERMISSION default ALLOWS tcp 8090 8090 FROM CIDR 192.168.0.10/32

AMIの作成


これでとりあえずOracle 10g XEのUniversal版のセットアップが終了したのでこの状態でAMIの作成をします。AMIの作成は第2回で説明していますのでそのとおりやるだけです。

・AMIにRSAキーペアのバンドル
認証ファイルとPキーをAMI環境へコピー(Secure copy)する
C:\AWS>pscp -i id_rsa-my-test-keypair.ppk pk-キー名.pem cert-キー名.pem root@ec2-67-202-25-135.compute-1.amazonaws.com:/mnt
pk-キー名 | 0 kB | 0.9 kB/s | ETA: 00:00:00 | 100%
cert-キー名 | 0 kB | 0.9 kB/s | ETA: 00:00:00 | 100%

C:\AWS>

・EC2にコピーしたRSAキーペアをバンドルしたAMI(oracle10gXE32bitUniv)を作成
※AMI名は任意。
# ec2-bundle-vol -d /mnt -k /mnt/pk-キー名.pem -c /mnt/cert-キー名.pem -u EC2のユーザID -r i386 -p oracle10gXE32bitUniv



・S3にAMIファイルの格納用フォルダを作成(101oraclexe)
※S3に作成するフォルダ名は任意。
・S3にAMIファイルをupload
# ec2-upload-bundle -b 101oraclexe -m /mnt/oracle10gXE32bitUniv.manifest.xml -a アクセスキー -s シークレットキー




AMIの登録


・EC2へ作成したAMIを登録
C:\AWS>ec2-register 101oraclexe/oracle10gXE32bitUniv.manifest.xml
IMAGE ami-AMIの番号

C:\AWS>

・登録されたAMIをElasticfoxで確認します。



これでEC2のインスタンスを停止してもまたこのAMIを利用して現在の状態でインスタンスを再起動できるのですが。。実はここで問題が起きます!
普通にインストールしたままだと再起動するとリスナーが起動しません。

問題の原因は以下にあります。
・EC2のインスタンスは起動するたびにIPアドレスが変わってしまいます。
・Oracleのリスナーはhost名またはIPアドレスを構成ファイルに明記します。

次回はこの問題の解決について説明したいと思います。

2008年10月10日金曜日

[TechDay] 第4回 Amazon Elastic Compute Cloud (Amazon EC2)

EC2については久しぶりの掲載です。
EC2上のOracle XEは文字コードが WE8MSWIN1252 でシングルバイトのデータしか扱えなかったことは以前ここでも書きました。
とはいえ実際に使えるところまでの画面スナップショットなどキャプチャしたので、どんな感じでEC2に乗っていてどんなステップでOracleが使えるようになるのかを簡単に説明したいと思います。

EC2を使うために使用するツールも以前紹介したコマンドラインツールではなくてFirefoxのプラグインを使いましょう。

Elasticfoxのインストール


Firefoxで利用できるEC2用のツールに Elasticfox というツールがあります。以下のURLからダウンロードしてインストールしましょう。
http://developer.amazonwebservices.com/connect/entry.jspa?externalID=609

以下、上記のページを表示したところです。


ここで「Download」ボタンをクリックすると以下のページが表示されるので「今すぐインストール」ボタンをクリックしてプラグインをインストールします。インストールしたらFirefoxを再起動してください。



Elasticfoxで出来ることとEC2上のOracle XEの起動


このツールで出来ることは結構あります。
・AMIのリストを表示する(キーワードで検索できます!)
・インスタンスを起動する(起動されたインスタンスは別のペインにリストされる)
・インスタンスを停止する
・インスタンスをリブートする
・コンソールを表示する
・AMIを登録する(S3上にバックアップしたAMIを登録)
・AMIを削除する
・起動中のインスタンスリストを選択してSSHで接続する(事前コンフィグが必要)
・自分のAMIの起動権限設定
・インスタンスのポートへのアクセス権限設定(セキュリティグループ(ロール)作成)
・公開鍵と秘密鍵のキー・ペアの作成
・Elastic IP(EC2インスタンスで固定IPを実現するための予約されたIPアドレス)の確保
・Elastic Block Store (EBS) ボリュームの作成
など

以下は、キーワードに「orac」としてAMIのリストを表示した画面です。



以下の画面はコンソールログを表示している例です。



AMIのリストからAMIIDが ami-7acb2f13 (表示が oracle10g_XE_32Bit_image となっているのですぐにわかります)を選択してグリーンの電源スイッチみたいなボタンをクリックするとインスタンスが起動します。起動するまで5分程度かかっていたと思います。

起動したらSSHでログインします。
初めてログインをすると以下のような使用許諾を確認される画面が出てきますのでそれなりに回答していきます。









以下はOracle XE の管理用アプリケーション(webアプリ)のログイン画面です。
ご覧のとおり英語です。(^^;



これでは残念!なので次回は、自分でOracle10g XE Universal版をインストールして使うまでを解説します!

ではまた。
#今回の記事はやや雑ですが。。すみません。

2008年10月6日月曜日

CSAJアライアンス大賞 最優秀賞受賞。おめでとうございます!

日本オラクル時代の同僚がトライポッドワークスというベンチャー企業で代表取締役社長をしています。このたび彼の会社の「GIGAPOD OFFICEHARD」事業がCSAJのアライアンス大賞 最優秀賞を受賞しました。

----- News Release ----------------------------------------
トライポッドワークス「GIGAPOD OFFICEHARD」事業が、
コンピュータソフトウェア協会(CSAJ)「第5回アライアンス大賞 最優秀賞」
に選ばれました。
-----------------------------------------------------------

ファイル転送アプライアンス製品である「GIGAPOD OFFICEHARD」は、昨年2月の発表以来、既に導入企業が100社を大きく越える製品に育っているそうです。
弊社でもお客さんとのファイルのやり取りがセキュアに行うことができて大変重宝しています。
(製品情報参考)

かつての同僚が活躍しているのを聞くのはうれしいことです。(^v^)
自分たちもがんばるぞーという気持ちになります。

佐々木さん、おめでとうございました!

2008年10月2日木曜日

Amazon EC2 running Windows Server or SQL Server

先日、Amazon EC2 上で Oracle databaseを正式にサポートされるということはここでも書きましたが、早速、確認してみたところ Oracleのフリー版 Oracle 10g XE のAMIがあったので試してみました。

ところが残念。。
立ち上げてみると。。(-.-;
このEC2上の Oracle xe は文字コードが WE8MSWIN1252 でした。
シングルバイトのデータしか扱えん。。とほほ。
Oracleには文字コードセットの変更ができるユーティリティもあるのですが WE8MSWIN1252 から UTF-8 はサポートされていません。

断念して自分で Universal の XE をダウンロードしてインストールしてみました。
この手順は今度また掲載しますね。

さて、前置きが長くなりましたが、今日、知らせたかったことはAmazon EC2 上で Windows Server と SQL Server がサポートされるとい知らせが届いたことです。

Amazon はどんどん来ますね。
仮想化サーバーの利用も巷では盛んになってきているようですし、ITインフラの電気料金みたいな時間貸しもほんとに近くに迫ってきているように思います。

以下は、Amazonから届いたメールです。

Dear Amazon Web Services Developer,

We are excited to let you know that Amazon Elastic Compute Cloud (Amazon EC2) will offer you the ability to run Microsoft Windows Server or Microsoft SQL Server starting later this Fall. Today, you can choose from a variety of Unix-based operating systems, and soon you will be able to configure your instances to run the Windows Server operating system. In addition, you will be able to use SQL Server as another option within Amazon EC2 for running relational databases.

Amazon EC2 running Windows Server or SQL Server provides an ideal environment for deploying ASP.NET web sites, high performance computing clusters, media transcoding solutions, and many other Windows-based applications. By choosing Amazon EC2 as the deployment environment for your Windows-based applications, you will be able to take advantage of Amazons proven scalability and reliability, as well as the cost-effective, pay-as-you-go pricing model offered by Amazon Web Services.

Our goal is to support any and all of the programming models, operating systems and database servers that you need for building applications on our cloud computing platform. The ability to run a Windows environment within Amazon EC2 has been one of our most requested features, and we are excited to be able to provide this capability. We are currently operating a private beta of Amazon EC2 running Windows Server and SQL Server. Please go to http://aws.amazon.com/windows if you are interested in being notified later this Fall when the offering is released broadly.

Sincerely,

The Amazon Web Services Team