#久しぶりのBLOG投稿です。
#AWSネタもたまっているのですが風邪ひきと業務多忙でサボってしまいました。m(_ _)m
#皆様もいろんなウィルスにご注意を。
半年前にお約束したので弊社のホームページアクセスのブラウザ・シェアを公表します。
以外とFirefoxが伸びていませんでした。。
半年前の私の予想は簡単に外れてしまいました。
IE7が着実に伸びていました。。
◆前回調査時(2008/06/30)の統計
IE:57.5%、Firefox:23%
2008/12/25時点のブラウザ・シェアです。
記事一覧
- 利用ブラウザのシェア@www.101s.co.jp
- [TechDay] 第7回 Amazon Elastic Compute Cloud (Amazon EC2) : Elastic IP
- 大統領選挙とインターネットの選挙運
- [TechDay] 第6回 Amazon Elastic Compute Cloud (Amazon EC2)
- DELLサポートのチャットサポートは便利だった!
- [TechDay] 第5回 Amazon Elastic Compute Cloud (Amazon EC2)
- [TechDay] 第4回 Amazon Elastic Compute Cloud (Amazon EC2)
- CSAJアライアンス大賞 最優秀賞受賞。おめでとうございます!
- Amazon EC2 running Windows Server or SQL Server
- OracleがAmazon Machine Image(AMI)を提供開始!
- [TechDay] Oracle - ディクショナリからPLSQL PACAKGEのパッケージ毎のテキストファイルを生成
- 新オフィスのエントランス
- [TechDay] News - Amazon Elastic Block Store for Amazon EC2
- [TechDay] 第3回 Amazon Elastic Compute Cloud (Amazon EC2)
- [TechDay] 第2回 Amazon Elastic Compute Cloud (Amazon EC2)
2008年12月25日木曜日
2008年11月8日土曜日
[TechDay] 第7回 Amazon Elastic Compute Cloud (Amazon EC2) : Elastic IP
今回はEC2で起動したインスタンスのIPアドレスを固定IPにする方法です。
EC2での固定IPのサービスは「Elastic IP」と呼ばれています。
EC2で起動するインスタンスは起動時に動的にIPアドレスが割り振られます。
固定IPを利用したい時にはElastic IPというサービスを使用します。
これはグローバルIPアドレスですが、AWSアカウントに割り当てらるれIPアドレスです。
IPアドレスはいくつでも簡単に取得できます。
EC2でインスタンスを起動した後に自分で取得したグローバルIPアドレスを割り当てることができます。
IPアドレスの取得も割り当てもコマンド1つで行うことができます。
以下にElasticIPサービスを利用するときのEC2 API toolsコマンドを示します。
(参考:EC2 API toolsのコマンドのヘルプ表示は # コマンド -? )
・新しいIPアドレスの取得
ec2-allocate-address
ec2allocaddr
・IPアドレスの割付
ec2-associate-address
ec2assocaddr -i インスタンスID IPアドレス
・IPアドレスの分離(剥奪)
ec2-disassosiate-address
ec2disaddr IPアドレス
・IPアドレスの解放(リリース)
ec2-release-address
ec2reladdr
他のアプリケーション同様に /etc/init.d の直下にEC2のElasticIP割り当て用シェルを配置します。
以下に手順を示します。
(1)新規固定IPアドレスの取得
(2)シェルの作成(例. FileName:ElasticIP)
(3)権限の変更
[root@domU-12-31-38-00-68-26 ~]# chmod 755 ElasticIP
(4)rc4.dにシンボリックリンクの作成
[root@domU-12-31-38-00-68-26 ~]# cd /etc/rc4.d
[root@domU-12-31-38-00-68-26 ~]# ln -s ../init.d/ElasticIP S79ec2ElasticIP
※rc4.dに作成されているシンボリックリンクはたくさんありますがここでの注意点は、リンク名のつけ方です。固定IPを割り振った後に起動させたいOracleなどのリンク名より前に実行されるようにする必要があります。リンク名の頭文字「S」は実行されるシェルを表していて続く数字は実行されるシェルの優先順位です。(参考:ランレベル)
※実はランレベルはてっきり3だと思いはじめは rc3.d にリンクを作ったのですがちょっとはまりました。(^^;
EC2はXen上で動いているのですがXenのデフォルトのランレベルは4らしいです。(参考)
ちなみに/etc/inittabを見ると以下のようなエントリーなのでやはりデフォルト3ですが。。
#
id:3:initdefault:
インスタンス起動後にコマンドで確認してみると 4 になっています。
[root@domU-12-31-38-00-68-26 ~]# runlevel
N 4
[root@domU-12-31-38-00-68-26 ~]#
rcにシェルをセットした場合は、起動後にちゃんと実行されているか確認しましょう。
FirefoxのアドオンソフトElasticfoxでメモが表示されている青いボタンをクリックしてInstance Console Outputの画面を表示します。
下記の画面が Instance Console Output です。
ハイライトになっている部分が上記で作成したシェルが正しく実行できたことを示しています。
いかがでしょうか?
これでEC2でも固定IPのサービスをインスタンス起動時に自動で立ち上げられることがお分かりいただけたと思います。
インスタンス起動時に固定IPを付与する説明をしてきましたが、固定IPの利用はElasticfoxから随時GUIで操作することもできます。
以下の画面はElasticfoxからあるインスタンスに固定IPを割り当ててた状態です。
固定IP付与の手順は以下のとおりです。
1)Elasticfoxの「ElasticIPs」タブをクリック
2)固定IPの取得
+表示のあるグリーンのボタンをクリック
3)取得したIPの割り当て
矢印表示のあるグリーンのボタンをクリック
起動中のインスタンスIDを選択
EC2での固定IPのサービスは「Elastic IP」と呼ばれています。
Elastic IPの使い方
EC2で起動するインスタンスは起動時に動的にIPアドレスが割り振られます。
固定IPを利用したい時にはElastic IPというサービスを使用します。
これはグローバルIPアドレスですが、AWSアカウントに割り当てらるれIPアドレスです。
IPアドレスはいくつでも簡単に取得できます。
EC2でインスタンスを起動した後に自分で取得したグローバルIPアドレスを割り当てることができます。
IPアドレスの取得も割り当てもコマンド1つで行うことができます。
以下にElasticIPサービスを利用するときのEC2 API toolsコマンドを示します。
(参考:EC2 API toolsのコマンドのヘルプ表示は # コマンド -? )
・新しいIPアドレスの取得
ec2-allocate-address
ec2allocaddr
・IPアドレスの割付
ec2-associate-address
ec2assocaddr -i インスタンスID IPアドレス
・IPアドレスの分離(剥奪)
ec2-disassosiate-address
ec2disaddr IPアドレス
・IPアドレスの解放(リリース)
ec2-release-address
ec2reladdr
インスタンス起動時にElasticIPを割り当てる
他のアプリケーション同様に /etc/init.d の直下にEC2のElasticIP割り当て用シェルを配置します。
以下に手順を示します。
(1)新規固定IPアドレスの取得
[root@domU-12-31-38-00-68-26 ~]# ec2allocaddr -K /root/.ec2/pk-プライベートキー.pem -C /root/.ec2/cert-証明書.pem ADDRESS 75.101.167.58 [root@domU-12-31-38-00-68-26 ~]# |
(以下参考:IPアドレスのリリース) [root@domU-12-31-38-00-68-26 ~]# ec2reladdr 75.101.167.58 ADDRESS 75.101.167.58 [root@domU-12-31-38-00-68-26 ~]# |
(2)シェルの作成(例. FileName:ElasticIP)
[root@domU-12-31-38-00-68-26 ~]# more /etc/init.d/ElasticIP #!/bin/bash # # Associate EC2 Elastic IP Address to a INSTANCE #source /root/.ec2env #export JAVA_HOME=/usr/local/java #export EC2_HOME=/usr/share/ec2/ec2-api-tools-1.3-24159 #export PATH=$PATH:$EC2_HOME/bin:$JAVA_HOME/bin #export EC2_PRIVATE_KEY=/root/.ec2/pk-プライベートキー.pem #export EC2_CERT=/root/.ec2/cert-証明書.pem . /root/.ec2env var1=`ec2din | grep running | gawk '{print $2}'` #echo $var1 ec2assocaddr 75.101.167.58 -i $var1 >/dev/null 2>&1 [root@domU-12-31-38-00-68-26 ~]# |
(3)権限の変更
[root@domU-12-31-38-00-68-26 ~]# chmod 755 ElasticIP
(4)rc4.dにシンボリックリンクの作成
[root@domU-12-31-38-00-68-26 ~]# cd /etc/rc4.d
[root@domU-12-31-38-00-68-26 ~]# ln -s ../init.d/ElasticIP S79ec2ElasticIP
※rc4.dに作成されているシンボリックリンクはたくさんありますがここでの注意点は、リンク名のつけ方です。固定IPを割り振った後に起動させたいOracleなどのリンク名より前に実行されるようにする必要があります。リンク名の頭文字「S」は実行されるシェルを表していて続く数字は実行されるシェルの優先順位です。(参考:ランレベル)
※実はランレベルはてっきり3だと思いはじめは rc3.d にリンクを作ったのですがちょっとはまりました。(^^;
EC2はXen上で動いているのですがXenのデフォルトのランレベルは4らしいです。(参考)
ちなみに/etc/inittabを見ると以下のようなエントリーなのでやはりデフォルト3ですが。。
#
id:3:initdefault:
インスタンス起動後にコマンドで確認してみると 4 になっています。
[root@domU-12-31-38-00-68-26 ~]# runlevel
N 4
[root@domU-12-31-38-00-68-26 ~]#
rcにシェルをセットした場合は、起動後にちゃんと実行されているか確認しましょう。
FirefoxのアドオンソフトElasticfoxでメモが表示されている青いボタンをクリックしてInstance Console Outputの画面を表示します。
下記の画面が Instance Console Output です。
ハイライトになっている部分が上記で作成したシェルが正しく実行できたことを示しています。
いかがでしょうか?
これでEC2でも固定IPのサービスをインスタンス起動時に自動で立ち上げられることがお分かりいただけたと思います。
Elasticfoxを利用した固定IPの付与
インスタンス起動時に固定IPを付与する説明をしてきましたが、固定IPの利用はElasticfoxから随時GUIで操作することもできます。
以下の画面はElasticfoxからあるインスタンスに固定IPを割り当ててた状態です。
固定IP付与の手順は以下のとおりです。
1)Elasticfoxの「ElasticIPs」タブをクリック
2)固定IPの取得
+表示のあるグリーンのボタンをクリック
3)取得したIPの割り当て
矢印表示のあるグリーンのボタンをクリック
起動中のインスタンスIDを選択
2008年11月6日木曜日
大統領選挙とインターネットの選挙運
昨日はオバマ大統領誕生の話題で持ち切りでしたね。今日の日経新聞を読んでていがいだなぁと思ったことがあります。
*** 以下、記事抜擢。***
見出:「オバマ氏、型破り戦術 奏功」
本文抜粋:「オバマ氏は既存の組織やノウハウに頼らない新しい選挙戦術を駆使した。インターネットの積極活用、小口献金による巨額の献金集め、・・・」
***********************
米国でも選挙でインターネットを活用するのは常識を覆すことだったんですね。
Twitterなどを利用したのは確かに斬新かもしれませんが。
若い人の票を集めるのに「インターネットの積極活用」は必須だと思うので上記の記事は大変意外でした。
日本ではどうかというと「インターネットの選挙運動」は禁止だったか、いろいろ規制があるようですよね。こんなところに規制を作っていることがセンスを疑いますね。。
近々に行われるであろう衆議院選挙では「インターネット選挙運動」全面解禁で各党のマニフェストを日本中の国民に浸透させてくれー!
*** 以下、記事抜擢。***
見出:「オバマ氏、型破り戦術 奏功」
本文抜粋:「オバマ氏は既存の組織やノウハウに頼らない新しい選挙戦術を駆使した。インターネットの積極活用、小口献金による巨額の献金集め、・・・」
***********************
米国でも選挙でインターネットを活用するのは常識を覆すことだったんですね。
Twitterなどを利用したのは確かに斬新かもしれませんが。
若い人の票を集めるのに「インターネットの積極活用」は必須だと思うので上記の記事は大変意外でした。
日本ではどうかというと「インターネットの選挙運動」は禁止だったか、いろいろ規制があるようですよね。こんなところに規制を作っていることがセンスを疑いますね。。
近々に行われるであろう衆議院選挙では「インターネット選挙運動」全面解禁で各党のマニフェストを日本中の国民に浸透させてくれー!
2008年10月25日土曜日
[TechDay] 第6回 Amazon Elastic Compute Cloud (Amazon EC2)
第5回で約束したとおり今回はEC2の再起動をしてもOracle Net Serviceが正常に起動するための設定を説明します。
Oracle Net Serviceの構成ファイルに記述する環境情報にはHOST名があります。
一般的なLinux環境では動的にHOST名を変更することはないためlistener.oraファイルは一度書けばよいことですが、EC2のHOST名は再起動すると以前の名前と変わってしまいます。
そのためlistener.oraに記述するHOST名はインスタンス起動時に動的に設定してあげる必要があります。
◆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を自動起動させるときの構成を指定するファイルです。
◆Oracleの起動停止
/etc/rc.d/init.d/oracle-xe start
/etc/rc.d/init.d/oracle-xe stop
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
ラベル:
amazon,
ec2,
oracle,
oracle listener,
oracle xe
2008年10月23日木曜日
DELLサポートのチャットサポートは便利だった!
今朝、会社に出社するとWindowsXP君がブルースクリーンのままお亡くなりになっていました。何度かリカバリを試みましたがハード障害のようでDELLのサポートに連絡をしようと思いチャットサポートページを開いてみました。
上記ページの「サービスタグ:」フィールドに該当の番号(マシンに張ってあるシールに記述)を入力して問い合わせに必要な情報を入力するとサポートが受けられます。
まだ「パイロットのため期間限定での提供」ということですが、リクエストしてみたら担当の方が即レスでした。すばらしい。
11時くらいから約1時間ほどチャットをしながら修理の手続きを済ませました。
まだ利用する人がいないからレスが良いということもあるかもしれませんが、一般的な電話対応で音声ガイダンス+長い待ちを考えるとかなりナイスです。
しかもすべてのチャットログが終了後にメールで届きます。
こちらはこのメールを保存しておけば何かの確認の時にも便利ですね。
かなり良いサポートだと思い「BLOGなどでコメントしてもいいですか」と聞いてしまいました。そうしたらなんと「まだ始まったばかりですがぜひ宣伝してください」みたいな回答をいただきました。
ということでの「投稿」です。
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の登録
以下のサイトから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 をクリックしてダウンロードします。
第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%
※詳しくはインストールガイド(英語)を見てください。
システム要件は以下の通りです。
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
これでとりあえず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 シークレットキー
・EC2へ作成したAMIを登録
C:\AWS>ec2-register 101oraclexe/oracle10gXE32bitUniv.manifest.xml
IMAGE ami-AMIの番号
C:\AWS>
・登録されたAMIをElasticfoxで確認します。
これでEC2のインスタンスを停止してもまたこのAMIを利用して現在の状態でインスタンスを再起動できるのですが。。実はここで問題が起きます!
普通にインストールしたままだと再起動するとリスナーが起動しません。
問題の原因は以下にあります。
・EC2のインスタンスは起動するたびにIPアドレスが変わってしまいます。
・Oracleのリスナーはhost名またはIPアドレスを構成ファイルに明記します。
次回はこの問題の解決について説明したいと思います。
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
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のプラグインを使いましょう。
Firefoxで利用できるEC2用のツールに Elasticfox というツールがあります。以下のURLからダウンロードしてインストールしましょう。
http://developer.amazonwebservices.com/connect/entry.jspa?externalID=609
以下、上記のページを表示したところです。
ここで「Download」ボタンをクリックすると以下のページが表示されるので「今すぐインストール」ボタンをクリックしてプラグインをインストールします。インストールしたらFirefoxを再起動してください。
このツールで出来ることは結構あります。
・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版をインストールして使うまでを解説します!
ではまた。
#今回の記事はやや雑ですが。。すみません。
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版をインストールして使うまでを解説します!
ではまた。
#今回の記事はやや雑ですが。。すみません。
ラベル:
amazon,
cloud computing,
ec2,
oracle
2008年10月6日月曜日
CSAJアライアンス大賞 最優秀賞受賞。おめでとうございます!
日本オラクル時代の同僚がトライポッドワークスというベンチャー企業で代表取締役社長をしています。このたび彼の会社の「GIGAPOD OFFICEHARD」事業がCSAJのアライアンス大賞 最優秀賞を受賞しました。
----- News Release ----------------------------------------
トライポッドワークス「GIGAPOD OFFICEHARD」事業が、
コンピュータソフトウェア協会(CSAJ)「第5回アライアンス大賞 最優秀賞」
に選ばれました。
-----------------------------------------------------------
ファイル転送アプライアンス製品である「GIGAPOD OFFICEHARD」は、昨年2月の発表以来、既に導入企業が100社を大きく越える製品に育っているそうです。
弊社でもお客さんとのファイルのやり取りがセキュアに行うことができて大変重宝しています。
(製品情報参考)
かつての同僚が活躍しているのを聞くのはうれしいことです。(^v^)
自分たちもがんばるぞーという気持ちになります。
佐々木さん、おめでとうございました!
----- News Release ----------------------------------------
トライポッドワークス「GIGAPOD OFFICEHARD」事業が、
コンピュータソフトウェア協会(CSAJ)「第5回アライアンス大賞 最優秀賞」
に選ばれました。
-----------------------------------------------------------
ファイル転送アプライアンス製品である「GIGAPOD OFFICEHARD」は、昨年2月の発表以来、既に導入企業が100社を大きく越える製品に育っているそうです。
弊社でもお客さんとのファイルのやり取りがセキュアに行うことができて大変重宝しています。
(製品情報参考)
かつての同僚が活躍しているのを聞くのはうれしいことです。(^v^)
自分たちもがんばるぞーという気持ちになります。
佐々木さん、おめでとうございました!
ラベル:
TripodWorks,
ファイル転送
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
ところが残念。。
立ち上げてみると。。(-.-;
この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
ラベル:
amazon,
cloud computing,
ec2,
oracle,
oracle xe
2008年9月23日火曜日
OracleがAmazon Machine Image(AMI)を提供開始!
やっぱり来ましたね。
Oracle OpenWorld San Francisco 2008で発表があったそうです。
Amazon EC2 上で Oracle databaseを正式にサポートするとのこと。
もともと昨年のOpenWorldのテクニカルセッションの1つでEC2上にOracle Databaseをセットアップするセッションがありましたが正式にサポートすることは表明していませんでした。
本日の発表で正式に表明したようですのでOracleをクラウドコンピューティグで本格的に利用できるようになりそうです。
少し前に発表があったAmazon EBSのことも考えた正式サポート表明でしょうか。
USのOTNサイトには技術情報が掲載されていますね。
http://www.oracle.com/technology/tech/cloud/index.html
AMI(Amazon Machine Image)もすでにアップされていますね。
ライセンス形態はこちら。
EC2なので仮想コアベースですが普通にプロセッサーライセンスの考え方ですね。
AmazonがOracleのライセンスも含めて従量課金のプログラムを出してくれればいいのになぁとか思います。
日本語の記事は以下を参照
http://www.atmarkit.co.jp/news/200809/23/oracle_cloud.html
上記ページの関連リンク(米オラクルの発表資料)はWebLogicの記事で間違えかな。。
Oracle OpenWorld San Francisco 2008で発表があったそうです。
Amazon EC2 上で Oracle databaseを正式にサポートするとのこと。
もともと昨年のOpenWorldのテクニカルセッションの1つでEC2上にOracle Databaseをセットアップするセッションがありましたが正式にサポートすることは表明していませんでした。
本日の発表で正式に表明したようですのでOracleをクラウドコンピューティグで本格的に利用できるようになりそうです。
少し前に発表があったAmazon EBSのことも考えた正式サポート表明でしょうか。
USのOTNサイトには技術情報が掲載されていますね。
http://www.oracle.com/technology/tech/cloud/index.html
AMI(Amazon Machine Image)もすでにアップされていますね。
ライセンス形態はこちら。
EC2なので仮想コアベースですが普通にプロセッサーライセンスの考え方ですね。
AmazonがOracleのライセンスも含めて従量課金のプログラムを出してくれればいいのになぁとか思います。
日本語の記事は以下を参照
http://www.atmarkit.co.jp/news/200809/23/oracle_cloud.html
上記ページの関連リンク(米オラクルの発表資料)はWebLogicの記事で間違えかな。。
ラベル:
cloud computing,
ec2,
oracle
2008年9月12日金曜日
[TechDay] Oracle - ディクショナリからPLSQL PACAKGEのパッケージ毎のテキストファイルを生成
夏休みなどもありやや仕事もかさみBLOGをかなりサボってしまいました。m(_ _)m
久しぶりのBLOGはタイトルの通りOracleネタです。
Oracleに格納されているPL/SQLのコードを確認する際に皆さんはどうしていますか?1本づつプログラムを確認するだけなら Oracle SQL Developer などのIDEを使いますよね。
ところが大量にプログラムがあってテキストファイル化されていないときはどうしますか?
テキストファイルに対してgrepかけたりしたいですよね。
そんなときに便利なパッケージユーティリティを紹介します。
dbms_metadata.get_ddl です。
ディクショナリからDDLをリバースするパッケージですがこれはTABLEやINDEXはもちろんPACKAGE や PACKAGE BODY の DDL の生成も可能です。
以下に簡単に手順を紹介します。
1)SQL*Plus で dbms_metadata.get_ddl を実行して DDL を SPOOL します。
2)SPOOL したファイルに生成された DDL から PACKAGE 毎のSQLファイルを作成します。
※上記の2)はJavaプログラムで行いました。
以下のSQLをSQL*Plusより実行して全パッケージのソースをテキストファイルにスプールします。対象は複数のパッケージでパッケージソースのサイズも大きいのでSQL*Plusの設定を予め変更します。dbms_metadata.get_ddl のオプションをデフォルトのまま行うとSQLのTerminatorが出力されないので SQLTERMINATOR オプションは true に設定します。
--*************************************
set head off
set pagesize 0
set long 10000000
set linesize 1000
set trims on
BEGIN
-- dbms_metadata.get_ddlユーティリティのオプション設定
-- terminator(/)を付加する
DBMS_METADATA.SET_TRANSFORM_PARAM(
TRANSFORM_HANDLE => DBMS_METADATA.SESSION_TRANSFORM
, NAME => 'SQLTERMINATOR'
, VALUE => TRUE);
END;
/
spool all_package_source.txt
select dbms_metadata.get_ddl(object_type, object_name) from all_objects
where owner = 'USER1'
and object_type in ('PACKAGE','PACKAGE_BODY');
spool off
--*************************************
上記の例では、USER1 の PACKAGE と PACKAGE BODY すべての DDL を生成しています。コマンドを実行すると SPOOL コマンドで作成したファイル all_package_source.txt がカレントフォルダに出来上がります。
生成されたSPOOLファイルには検索で該当したパッケージのDDL(PACKAGE、PACKAGE BODYの順)が多数含まれています。適当なプログラミング言語を使ってSPOOLファイルからPACKAGEごとにSQLファイルを生成するプログラムを作ってみましょう。
以下はJavaで作ったプログラムです。
SPOOL ファイルを引数にプログラムを実行すると シーケンス番号.sql というファイル名のSQLファイルが PACKAGE 数分作成されます。
C:\work>java mksqlfile all_package_source.txt
※PACKAGE名.sqlというファイル名になるプログラムも java.util.regex を使うと簡単に作成できるので必要なかたはご連絡ください。サンプルとして差し上げます!
BLOG全体につながりのないネタになりましたが。。一部の人にとっては便利かな。。
/***********************
Sample Java program
***********************/
import java.io.*;
//import java.util.regex.*;
public class mksqlfile {
public static void main(String[] args) throws IOException {
File inputFile = new File(args[0]);
FileReader in = new FileReader(inputFile);
BufferedReader b = new BufferedReader(in);
String s;
int i=1;
int j=0;
File outputFile = new File(i + ".sql");
FileWriter out = new FileWriter(outputFile);
String s1="/";
while ((s = b.readLine()) != null) {
if (s1.equals(s)) {
j++;
}
if (j > 1) {
out.write(s+"\n");
out.close();
outputFile = new File(i + ".sql");
out = new FileWriter(outputFile);
j=0;
} else {
out.write(s+"\n");
}
i++;
}
in.close();
out.close();
System.out.println("finish");
}
}
久しぶりのBLOGはタイトルの通りOracleネタです。
Oracleに格納されているPL/SQLのコードを確認する際に皆さんはどうしていますか?1本づつプログラムを確認するだけなら Oracle SQL Developer などのIDEを使いますよね。
ところが大量にプログラムがあってテキストファイル化されていないときはどうしますか?
テキストファイルに対してgrepかけたりしたいですよね。
そんなときに便利なパッケージユーティリティを紹介します。
dbms_metadata.get_ddl です。
ディクショナリからDDLをリバースするパッケージですがこれはTABLEやINDEXはもちろんPACKAGE や PACKAGE BODY の DDL の生成も可能です。
以下に簡単に手順を紹介します。
1)SQL*Plus で dbms_metadata.get_ddl を実行して DDL を SPOOL します。
2)SPOOL したファイルに生成された DDL から PACKAGE 毎のSQLファイルを作成します。
※上記の2)はJavaプログラムで行いました。
SQL*Plus で dbms_metadata.get_ddl を実行して DDL を SPOOL
以下のSQLをSQL*Plusより実行して全パッケージのソースをテキストファイルにスプールします。対象は複数のパッケージでパッケージソースのサイズも大きいのでSQL*Plusの設定を予め変更します。dbms_metadata.get_ddl のオプションをデフォルトのまま行うとSQLのTerminatorが出力されないので SQLTERMINATOR オプションは true に設定します。
--*************************************
set head off
set pagesize 0
set long 10000000
set linesize 1000
set trims on
BEGIN
-- dbms_metadata.get_ddlユーティリティのオプション設定
-- terminator(/)を付加する
DBMS_METADATA.SET_TRANSFORM_PARAM(
TRANSFORM_HANDLE => DBMS_METADATA.SESSION_TRANSFORM
, NAME => 'SQLTERMINATOR'
, VALUE => TRUE);
END;
/
spool all_package_source.txt
select dbms_metadata.get_ddl(object_type, object_name) from all_objects
where owner = 'USER1'
and object_type in ('PACKAGE','PACKAGE_BODY');
spool off
--*************************************
上記の例では、USER1 の PACKAGE と PACKAGE BODY すべての DDL を生成しています。コマンドを実行すると SPOOL コマンドで作成したファイル all_package_source.txt がカレントフォルダに出来上がります。
SPOOL したファイルに生成された DDL から PACKAGE 毎のSQLファイルを作成
生成されたSPOOLファイルには検索で該当したパッケージのDDL(PACKAGE、PACKAGE BODYの順)が多数含まれています。適当なプログラミング言語を使ってSPOOLファイルからPACKAGEごとにSQLファイルを生成するプログラムを作ってみましょう。
以下はJavaで作ったプログラムです。
SPOOL ファイルを引数にプログラムを実行すると シーケンス番号.sql というファイル名のSQLファイルが PACKAGE 数分作成されます。
C:\work>java mksqlfile all_package_source.txt
※PACKAGE名.sqlというファイル名になるプログラムも java.util.regex を使うと簡単に作成できるので必要なかたはご連絡ください。サンプルとして差し上げます!
BLOG全体につながりのないネタになりましたが。。一部の人にとっては便利かな。。
/***********************
Sample Java program
***********************/
import java.io.*;
//import java.util.regex.*;
public class mksqlfile {
public static void main(String[] args) throws IOException {
File inputFile = new File(args[0]);
FileReader in = new FileReader(inputFile);
BufferedReader b = new BufferedReader(in);
String s;
int i=1;
int j=0;
File outputFile = new File(i + ".sql");
FileWriter out = new FileWriter(outputFile);
String s1="/";
while ((s = b.readLine()) != null) {
if (s1.equals(s)) {
j++;
}
if (j > 1) {
out.write(s+"\n");
out.close();
outputFile = new File(i + ".sql");
out = new FileWriter(outputFile);
j=0;
} else {
out.write(s+"\n");
}
i++;
}
in.close();
out.close();
System.out.println("finish");
}
}
ラベル:
java,
oracle,
programing
2008年8月22日金曜日
[TechDay] News - Amazon Elastic Block Store for Amazon EC2
amazonのWebサービスで基幹システムを構築できる環境がきますね。
以下は昨日届いたAWSユーザ向けの新サービス案内メールです。
新サービスを簡単に一言で言うとEC2で使えるSAN(Storage Are Network)ということです。
1つのディスクボリュームを1GBから1TBの大きさで作成することができるそうです。
EC2はインスタンスを停止してしまうとEC2上で動いていたインスタンス全体(データも含む)が消滅することは以前のBLOGで説明しましたが、それが理由でEC2ではあまりRDBMSを動かすようなアプリケーションは向かないとされてきました。
今回の新サービス Elastic Block Store (EBS) が登場したことで上記の懸念が解消されますね。
なかなか面白くなってきました。
クラウドコンピューティングが本格的に展開される日も近いと思います!
チャレンジしたいお客さんからプロトタイプの依頼が来たらがんばるのになぁ。。
まあ依頼がなくても興味があるのでやってしまいますが。。
評価結果はまたこのBLOGでお知らせしたいと思います。
以下関連ニュースサイトです。
http://www.itworld.com/storage/54421/amazon-adds-persistent-storage-compute-cloud
関連BLOG
http://blog.rightscale.com/2008/08/20/why-amazon-ebs-matters/
以下は昨日届いたAWSユーザ向けの新サービス案内メールです。
新サービスを簡単に一言で言うとEC2で使えるSAN(Storage Are Network)ということです。
1つのディスクボリュームを1GBから1TBの大きさで作成することができるそうです。
EC2はインスタンスを停止してしまうとEC2上で動いていたインスタンス全体(データも含む)が消滅することは以前のBLOGで説明しましたが、それが理由でEC2ではあまりRDBMSを動かすようなアプリケーションは向かないとされてきました。
今回の新サービス Elastic Block Store (EBS) が登場したことで上記の懸念が解消されますね。
なかなか面白くなってきました。
クラウドコンピューティングが本格的に展開される日も近いと思います!
チャレンジしたいお客さんからプロトタイプの依頼が来たらがんばるのになぁ。。
まあ依頼がなくても興味があるのでやってしまいますが。。
評価結果はまたこのBLOGでお知らせしたいと思います。
以下関連ニュースサイトです。
http://www.itworld.com/storage/54421/amazon-adds-persistent-storage-compute-cloud
関連BLOG
http://blog.rightscale.com/2008/08/20/why-amazon-ebs-matters/
ラベル:
amazon,
cloud computing,
ec2
2008年8月19日火曜日
[TechDay] 第3回 Amazon Elastic Compute Cloud (Amazon EC2)
前々回、前回とEC2のGetting Startedについて説明してきました。今回はこのテーマの最終回になります。
最終回は 自分のインスタンス・イメージの作成とバックアップ です。
EC2のインスタンスは停止してしまうとすべての内容が消えてしまうということを前回説明しました。今回はいろいろカスタマイズしたAMIが再利用できるようにする方法について説明します。
自分用のAMIを作成するにはAmazonのストレージサービスであるAmazon Simple Storage Service(Amazon S3)を利用します。S3については以前書いたBLOGを参照してください。
Amazonがデフォルトで用意しているAMIをカスタマイズして自分用のAMIを作成するためのステップは以下の通りです。
1)デフォルトのAMIから好みの物を選択してAMIを起動します。
2)カスタマイズします。
3)自分のキー・ペアを現在稼動しているインスタンスへコピーします。
4)稼働中のインスタンスに自分のキー・ペアをバンドルしてイメージコピーを作成します。
5)作成したイメージコピー(自分用のAMIファイル)をS3にアップロードします。
6)S3へアップロードしたAMIファイルをec2に登録
こうすることで5)の時点のインスタンスイメージがS3へバックアップされた状態になります。
4)と5)の処理を定期的に実施することでシステム全体のバックアップがされていることになります。
これはなかなか便利ですね。
本番環境のバックアップとしてだけではなく、本番環境のバックアップをすぐに他のインスタンスとして起動することも出来るのでリアルなテスト環境としても活用できそうです。
それでは以降でそれぞれのステップについて実行した例を交えながら説明します。
2)までは第2回までの内容を参照してください。以下の説明は第2回目の最後の状態になっているとそのままスムーズに実行できると思います。
第2回で生成したキー・ペアを現在起動中のインスタンスにセキュア・コピーを使ってコピーします。Windows用のセキュア・コピーはPuTTYの pscp を使用して行います。
C:\pscp -i PuTTY用秘密鍵ファイル(*.ppk) EC2用秘密鍵ファイル(*.pem) EC2用認証ファイル(*.pem) ユーザ名@ドメイン名:コピー先フォルダ名(フルパス)
以下の図は /mnt に正しくコピーされたかSSHでログインして確認した画面です。
インスタンス環境にキー・ペアがコピーされましたのでこのキーをバンドルしたAMI(インスタンス・イメージ)を作成します。PuTTY(SSH)でインスタンスに接続してコマンド ec2-bundle-vol を使って作成します。
# ec2-bundle-vol -d AMIの保存先パス -k EC2用秘密鍵ファイル(フルパス/*.pem) -c EC2用認証ファイル(フルパス/*.pem) -u EC2のユーザID(AWSのアカウントNO(数値)) -r [i386|x86_64] -p 自分のAMI用プレフィックス
以下実行例です。AMI作成は10分ぐらいかかりました。
/mnt 配下に出来上がったファイルを確認します。
指定したプレフィックスがついた約10MBのファイルがたくさんできているのがわかります。
/mnt 配下に作成したイメージファイルをS3へアップロードします。
あらかじめS3へイメージファイル格納用のフォルダを作成しておきましょう。
S3へのアップロードは、以下のコマンドで行います。
# ec2-upload-bundle -b S3格納用フォルダ(バケット)名 -m manifestファイルのパス -a AWSのAccess Key ID -s AWSのSecret Access Key
S3へのアップロードはほんの1分ぐらいで終わりました。
ステップ5までで自分用AMIファイルが出来上がりバックアップもとることができました。
作成したAMIファイルを使用して自由にインスタンス起動するには、作成したAMIをEC2へ登録する必要があります。登録はec2-api-toolsのec2-registerコマンド使ってクライアントから行います。
C:\mydoc\Prototype\AWS>ec2-register 101tn-bucket/myami-200808.manifest.xml
コマンドを実行するとAMI IDが割り振られます。以降はこのAMI IDを使用してインスタンスを起動することができます。
以下は現在のインスタンスを停止して登録したAMI IDでインスタンス起動した例です。
※テスト用で起動したインスタンスは必ず停止しましょう! 安いとはいえ課金されていますので。
最終回は 自分のインスタンス・イメージの作成とバックアップ です。
EC2のインスタンスは停止してしまうとすべての内容が消えてしまうということを前回説明しました。今回はいろいろカスタマイズしたAMIが再利用できるようにする方法について説明します。
自分用のAMIを作成するにはAmazonのストレージサービスであるAmazon Simple Storage Service(Amazon S3)を利用します。S3については以前書いたBLOGを参照してください。
自分用AMI作成手順
Amazonがデフォルトで用意しているAMIをカスタマイズして自分用のAMIを作成するためのステップは以下の通りです。
1)デフォルトのAMIから好みの物を選択してAMIを起動します。
2)カスタマイズします。
3)自分のキー・ペアを現在稼動しているインスタンスへコピーします。
4)稼働中のインスタンスに自分のキー・ペアをバンドルしてイメージコピーを作成します。
5)作成したイメージコピー(自分用のAMIファイル)をS3にアップロードします。
6)S3へアップロードしたAMIファイルをec2に登録
こうすることで5)の時点のインスタンスイメージがS3へバックアップされた状態になります。
4)と5)の処理を定期的に実施することでシステム全体のバックアップがされていることになります。
これはなかなか便利ですね。
本番環境のバックアップとしてだけではなく、本番環境のバックアップをすぐに他のインスタンスとして起動することも出来るのでリアルなテスト環境としても活用できそうです。
それでは以降でそれぞれのステップについて実行した例を交えながら説明します。
2)までは第2回までの内容を参照してください。以下の説明は第2回目の最後の状態になっているとそのままスムーズに実行できると思います。
ステップ3 キー・ペアのコピー
第2回で生成したキー・ペアを現在起動中のインスタンスにセキュア・コピーを使ってコピーします。Windows用のセキュア・コピーはPuTTYの pscp を使用して行います。
C:\pscp -i PuTTY用秘密鍵ファイル(*.ppk) EC2用秘密鍵ファイル(*.pem) EC2用認証ファイル(*.pem) ユーザ名@ドメイン名:コピー先フォルダ名(フルパス)
以下の図は /mnt に正しくコピーされたかSSHでログインして確認した画面です。
ステップ4 キー・ペアをバンドルしたイメージコピー作成
インスタンス環境にキー・ペアがコピーされましたのでこのキーをバンドルしたAMI(インスタンス・イメージ)を作成します。PuTTY(SSH)でインスタンスに接続してコマンド ec2-bundle-vol を使って作成します。
# ec2-bundle-vol -d AMIの保存先パス -k EC2用秘密鍵ファイル(フルパス/*.pem) -c EC2用認証ファイル(フルパス/*.pem) -u EC2のユーザID(AWSのアカウントNO(数値)) -r [i386|x86_64] -p 自分のAMI用プレフィックス
以下実行例です。AMI作成は10分ぐらいかかりました。
/mnt 配下に出来上がったファイルを確認します。
指定したプレフィックスがついた約10MBのファイルがたくさんできているのがわかります。
ステップ5 イメージコピー(自分用のAMI)をS3へアップロード
/mnt 配下に作成したイメージファイルをS3へアップロードします。
あらかじめS3へイメージファイル格納用のフォルダを作成しておきましょう。
S3へのアップロードは、以下のコマンドで行います。
# ec2-upload-bundle -b S3格納用フォルダ(バケット)名 -m manifestファイルのパス -a AWSのAccess Key ID -s AWSのSecret Access Key
S3へのアップロードはほんの1分ぐらいで終わりました。
ステップ6 S3へアップロードしたAMIファイルをec2に登録
ステップ5までで自分用AMIファイルが出来上がりバックアップもとることができました。
作成したAMIファイルを使用して自由にインスタンス起動するには、作成したAMIをEC2へ登録する必要があります。登録はec2-api-toolsのec2-registerコマンド使ってクライアントから行います。
C:\mydoc\Prototype\AWS>ec2-register 101tn-bucket/myami-200808.manifest.xml
コマンドを実行するとAMI IDが割り振られます。以降はこのAMI IDを使用してインスタンスを起動することができます。
以下は現在のインスタンスを停止して登録したAMI IDでインスタンス起動した例です。
※テスト用で起動したインスタンスは必ず停止しましょう! 安いとはいえ課金されていますので。
ラベル:
amazon,
cloud computing,
ec2,
s3
2008年8月12日火曜日
[TechDay] 第2回 Amazon Elastic Compute Cloud (Amazon EC2)
前回に引き続き今回もAmazon EC2について書きます。
第2回の内容は、インスタンスの起動と停止 です。
第1回の説明の中でダウンロードしたAWS用コマンドラインツール(ec2-api-tools)をクライアントから利用してEC2を操作するのですが、実はこのツールのほかにもクライアントに必要なものがあります。
■JRE(version5以降)
■SSHクライアント
です。
まずは、簡単に自分の環境のJREを確認しましょう。
Java環境がない方は、以下のサイトからダウンロードしましょう。
http://www.java.com/ja/download/manual.jsp
Windows確認例.
C:\AWS>"%JAVA_HOME%\bin"\java -version
java version "1.5.0_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_02-b09)
Java HotSpot(TM) Client VM (build 1.5.0_02-b09, mixed mode, sharing)
私の環境ではかろうじて1.5以上になっていましたのでそのまま試しました。
次にSSHのクライアントの設定です。
おそらくTera Term Proが一番ポピュラーだと思いますが、Getting StartedのAppendixで紹介されているPutty(パティ)を利用しました。
1)ダウンロード
ダウンロードページの以下のところからWindows用のインストーラを取得します。
A Windows installer for everything except PuTTYtel
Installer: putty-0.60-installer.exe (or by FTP) (RSA sig) (DSA sig)
インストールは、putty-0.60-installer.exe を起動してウィザードで進めるだけです。
メニューの日本語化をしたい場合は、以下のサイトからputtyjp.exeとputtyjp.lngを入手してPuTTYのインストールフォルダにコピーします。
http://hp.vector.co.jp/authors/VA024651/PuTTYkj.html
またEC2インスタンスにクライアントからファイルをコピーする場合には、SCP(SecureCopyProtocol)を使います。Windowsの標準コマンドにはありませんのでこのサイトにあるPSCPを取得します。
PSCP: pscp.exe (or by FTP) (RSA sig) (DSA sig)
※ここにあるscpツールは、コマンドラインツールなのでGUIが良い人は、WinSCPを入手してください。
AMI(Amazon Machine Image)の利用認証はRSA認証で行います。キー・ペアの生成手順は以下の通りです。
1)ec2-api-toolsのec2-add-keypairを使ってキーを生成します。
キーの名前は、起動するAMIを識別しやすい名前をつけることが推奨されています。
(例.my-test-keypair)
C:\> ec2-add-keypair my-test-keypair
2)ツールで生成したキーを以下のように任意のファイル名で保存(コピペ)します。
id_rsa-キー名(例.id_rsa-my-test-keypair)
コピーする部分は、以下の行を含めたそれぞれの行間の文字列すべてです。
-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----
3)WindowsでPuttyをSSHのクライアントにする場合は、2)で作成したファイルからPutty用の秘密鍵ファイルを生成しなければいけません。
先ほどインストールしたPuTTYのメニューからPuTTYgenを起動します。
PuTTYgenのメニューから[Conversions]->[Import key]を選択して2)で生成したファイルを読み込みます。出来たファイルを拡張子ppk( id_rsa-my-test-keypair.ppk )で保存します。PuTTYでSSH接続するときにこのファイルを使用します。
[Import key]でファイルを読み込むと以下の画面が表示されるので[OK]ボタンをクリックしてメッセージどおりに[Save private key]ボタンでPuTTY用の秘密鍵ファイルを保存します。
以下のようにコマンドプロンプトから ec2-api-tools の ec2-describe-images を使って現在利用可能なAMIを確認します。
このコマンドでは自分で作ったAMIとAmazonが一般公開用に作成したAMIがリストされます。それぞれのAMIの識別はリストの2番目のカラムで行います。AMIの起動や停止はこのAMI ID(例.ami-2c5fba45)を指定して行います。
上記リストを見ると利用できるマシン・イメージがたくさんあるのでどれを利用したらよいのか迷いますね。とりあえずApacheとMySQLがインストールされていると思われる 25b6534c (AMI ID)を使ってインスタンスを起動します。
インスタンスの起動は、 ec2-api-tools の ec2-run-instances コマンドを使用します。
起動したインスタンスの状態を確認するコマンドは ec2-describe-instances コマンド使用します。以下の実行例では、起動後、すぐに ec2-describe-instances コマンドを実行したためステータスが pending になっているのが分かります。再度、確認してみるとステータスが running に変わってDNS名(ec2-67-202-60-210.compute-1.amazonaws.com)が付与されているのがわかります。
■起動:ec2-run-instances AMIID -k 生成したキー・ペア
C:\mydoc\Prototype\AWS>ec2-run-instances ami-25b6534c -k my-test-keypair
■状態確認:ec2-describe-instances インスタンス名
C:\mydoc\Prototype\AWS>ec2-describe-instances i-f5ff269c
※インスタンス名は起動時にレスポンスされます。
これでEC2のインスタンスが起動しましたが、そのままではサービスが有効になっていません。
ec2-api-tools の ec2-authorize コマンド使って http と ssh のポートをアクセス可能にします。
EC2のセキュリティの考え方は、セキュリティ・グループというものを利用してアクセス制御を定義しています。グループは100種類まで定義することが出来るようです。
何も定義していない場合は、default グループ というグループが定義されている状態になっています。このグループの初期状態は、何も許可されていない状態です。
以下の例は、ec2-authorize コマンド使って default グループに http と ssh のアクセス許可を定義しています。アクセス許可はインスタンスに依存するものではなくグループごとに定義するものですので以降インスタンスを再作成しても default グループのアクセス権限はそのまま生きることになります。
C:\>ec2-authorize default -p 22
GROUP default
PERMISSION default ALLOWS tcp 22 22 FROM CIDR 0.0.0.0/0
C:\>ec2-authorize default -p 80
GROUP default
PERMISSION default ALLOWS tcp 80 80 FROM CIDR 0.0.0.0/0
以下の実行例では default グループに付与されたパーミッションの確認をしています。
EC2のセキュリティの詳細は Amazon Elastic Compute Cloud Developer Guide の Instance Addressing and Network Security を参照してください。IPアドレスでアクセス制限する例なども確認することができます。
ちなみにポートスキャン・ソフトを使って起動中のインスタンスを調べてみても起動しているサービスが ssh と http だけであることが分かります。以下の画面は、windows用のポートスキャン・ソフト nmap(Zenmap) を利用して確認した例です。
HTTPの確認は、ブラウザでURLへアクセスしてみましょう。
またSSHの確認はPuTTYでインスタンスへログインしてみましょう。
■HTTPの確認
ブラウザに該当のURL(DNS名)を入力するとApacheのデフォルト画面が表示されます。
http://ec2-67-202-60-210.compute-1.amazonaws.com/
■SSHでインスタンスにログイン
1)PuTTY([スタート]->[プログラム]->[PuTTY]->[PuTTY])起動
2)認証用のキーファイル(id_rsa-my-test-keypair.ppk)の指定
3)ホスト名にDNS名を指定して「開く」ボタンをクリック
ログインプロンプトが表示されたらrootと入力してエンター。
EC2にログインできましたのでpsコマンドでどんなプロセスが起動されているか確認してみます。
apache(httpd)、mysql(mysqld)、仮想コンソール(mingetty)、メール(sendmail)などが動いていることが分かります。
■apacheのデフォルト・ページを変更してみましょう。
1)PuTTYの付属コマンドpsftpを起動します。
引数はroot@dns_name
2)apacheのDocumentRoot "/var/www/html"へ作成したindex.htmlをアップします。
アップ後にURLにアクセスするとページが更新されていることが確認できます。
■mySQLをさわってみよう。
1)ユーザmysqlへスイッチして作成済みのデータベースを確認
2)日本語入力のためLANG環境変数の設定
3)mysqlのコマンドラインユーティリティを起動
4)既存のtestデータベースに表作成、INSERT、SELECTの実行
※PuTTYの文字コード設定は以下のように行います。(以下の例ではEUCへ設定)
以上 第2回目はEC2を起動して実際のサービスのカスタマイズするところまで紹介しました。
ところがEC2のインスタンスは停止してしまうとすべての内容が消えてしまいます。連続稼働中は良いのですがせっかくいろいろカスタマイズした設定やデータが消えてしまっては困りますね。
そこで必要になるのがS3(AWSのディスクサービス)です。
S3へカスタマイズしたイメージ全体(AMI)をバックアップすることで実際のシステムを運用するという方式になります。
次回第3回では、自分用のインスタンス・イメージの作成とバックアップについて説明したいと思います。
(続く)
第2回の内容は、インスタンスの起動と停止 です。
第1回の説明の中でダウンロードしたAWS用コマンドラインツール(ec2-api-tools)をクライアントから利用してEC2を操作するのですが、実はこのツールのほかにもクライアントに必要なものがあります。
■JRE(version5以降)
■SSHクライアント
です。
まずは、簡単に自分の環境のJREを確認しましょう。
Java環境がない方は、以下のサイトからダウンロードしましょう。
http://www.java.com/ja/download/manual.jsp
Windows確認例.
C:\AWS>"%JAVA_HOME%\bin"\java -version
java version "1.5.0_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_02-b09)
Java HotSpot(TM) Client VM (build 1.5.0_02-b09, mixed mode, sharing)
私の環境ではかろうじて1.5以上になっていましたのでそのまま試しました。
次にSSHのクライアントの設定です。
おそらくTera Term Proが一番ポピュラーだと思いますが、Getting StartedのAppendixで紹介されているPutty(パティ)を利用しました。
Putty(パティ)のセットアップ
1)ダウンロード
ダウンロードページの以下のところからWindows用のインストーラを取得します。
A Windows installer for everything except PuTTYtel
Installer: putty-0.60-installer.exe (or by FTP) (RSA sig) (DSA sig)
インストールは、putty-0.60-installer.exe を起動してウィザードで進めるだけです。
メニューの日本語化をしたい場合は、以下のサイトからputtyjp.exeとputtyjp.lngを入手してPuTTYのインストールフォルダにコピーします。
http://hp.vector.co.jp/authors/VA024651/PuTTYkj.html
またEC2インスタンスにクライアントからファイルをコピーする場合には、SCP(SecureCopyProtocol)を使います。Windowsの標準コマンドにはありませんのでこのサイトにあるPSCPを取得します。
PSCP: pscp.exe (or by FTP) (RSA sig) (DSA sig)
※ここにあるscpツールは、コマンドラインツールなのでGUIが良い人は、WinSCPを入手してください。
公開鍵と秘密鍵のキー・ペアの生成
AMI(Amazon Machine Image)の利用認証はRSA認証で行います。キー・ペアの生成手順は以下の通りです。
1)ec2-api-toolsのec2-add-keypairを使ってキーを生成します。
キーの名前は、起動するAMIを識別しやすい名前をつけることが推奨されています。
(例.my-test-keypair)
C:\> ec2-add-keypair my-test-keypair
2)ツールで生成したキーを以下のように任意のファイル名で保存(コピペ)します。
id_rsa-キー名(例.id_rsa-my-test-keypair)
コピーする部分は、以下の行を含めたそれぞれの行間の文字列すべてです。
-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----
3)WindowsでPuttyをSSHのクライアントにする場合は、2)で作成したファイルからPutty用の秘密鍵ファイルを生成しなければいけません。
先ほどインストールしたPuTTYのメニューからPuTTYgenを起動します。
PuTTYgenのメニューから[Conversions]->[Import key]を選択して2)で生成したファイルを読み込みます。出来たファイルを拡張子ppk( id_rsa-my-test-keypair.ppk )で保存します。PuTTYでSSH接続するときにこのファイルを使用します。
[Import key]でファイルを読み込むと以下の画面が表示されるので[OK]ボタンをクリックしてメッセージどおりに[Save private key]ボタンでPuTTY用の秘密鍵ファイルを保存します。
利用可能なAMIの確認
以下のようにコマンドプロンプトから ec2-api-tools の ec2-describe-images を使って現在利用可能なAMIを確認します。
このコマンドでは自分で作ったAMIとAmazonが一般公開用に作成したAMIがリストされます。それぞれのAMIの識別はリストの2番目のカラムで行います。AMIの起動や停止はこのAMI ID(例.ami-2c5fba45)を指定して行います。
上記リストを見ると利用できるマシン・イメージがたくさんあるのでどれを利用したらよいのか迷いますね。とりあえずApacheとMySQLがインストールされていると思われる 25b6534c (AMI ID)を使ってインスタンスを起動します。
AMIの起動
インスタンスの起動は、 ec2-api-tools の ec2-run-instances コマンドを使用します。
起動したインスタンスの状態を確認するコマンドは ec2-describe-instances コマンド使用します。以下の実行例では、起動後、すぐに ec2-describe-instances コマンドを実行したためステータスが pending になっているのが分かります。再度、確認してみるとステータスが running に変わってDNS名(ec2-67-202-60-210.compute-1.amazonaws.com)が付与されているのがわかります。
■起動:ec2-run-instances AMIID -k 生成したキー・ペア
C:\mydoc\Prototype\AWS>ec2-run-instances ami-25b6534c -k my-test-keypair
■状態確認:ec2-describe-instances インスタンス名
C:\mydoc\Prototype\AWS>ec2-describe-instances i-f5ff269c
※インスタンス名は起動時にレスポンスされます。
これでEC2のインスタンスが起動しましたが、そのままではサービスが有効になっていません。
ec2-api-tools の ec2-authorize コマンド使って http と ssh のポートをアクセス可能にします。
sshとhttpポートをアクセス可能にする
EC2のセキュリティの考え方は、セキュリティ・グループというものを利用してアクセス制御を定義しています。グループは100種類まで定義することが出来るようです。
何も定義していない場合は、default グループ というグループが定義されている状態になっています。このグループの初期状態は、何も許可されていない状態です。
以下の例は、ec2-authorize コマンド使って default グループに http と ssh のアクセス許可を定義しています。アクセス許可はインスタンスに依存するものではなくグループごとに定義するものですので以降インスタンスを再作成しても default グループのアクセス権限はそのまま生きることになります。
C:\>ec2-authorize default -p 22
GROUP default
PERMISSION default ALLOWS tcp 22 22 FROM CIDR 0.0.0.0/0
C:\>ec2-authorize default -p 80
GROUP default
PERMISSION default ALLOWS tcp 80 80 FROM CIDR 0.0.0.0/0
以下の実行例では default グループに付与されたパーミッションの確認をしています。
EC2のセキュリティの詳細は Amazon Elastic Compute Cloud Developer Guide の Instance Addressing and Network Security を参照してください。IPアドレスでアクセス制限する例なども確認することができます。
ちなみにポートスキャン・ソフトを使って起動中のインスタンスを調べてみても起動しているサービスが ssh と http だけであることが分かります。以下の画面は、windows用のポートスキャン・ソフト nmap(Zenmap) を利用して確認した例です。
sshとhttpへのアクセス
HTTPの確認は、ブラウザでURLへアクセスしてみましょう。
またSSHの確認はPuTTYでインスタンスへログインしてみましょう。
■HTTPの確認
ブラウザに該当のURL(DNS名)を入力するとApacheのデフォルト画面が表示されます。
http://ec2-67-202-60-210.compute-1.amazonaws.com/
■SSHでインスタンスにログイン
1)PuTTY([スタート]->[プログラム]->[PuTTY]->[PuTTY])起動
2)認証用のキーファイル(id_rsa-my-test-keypair.ppk)の指定
3)ホスト名にDNS名を指定して「開く」ボタンをクリック
ログインプロンプトが表示されたらrootと入力してエンター。
EC2にログインできましたのでpsコマンドでどんなプロセスが起動されているか確認してみます。
apache(httpd)、mysql(mysqld)、仮想コンソール(mingetty)、メール(sendmail)などが動いていることが分かります。
ちょっとだけカスタマイズ
■apacheのデフォルト・ページを変更してみましょう。
1)PuTTYの付属コマンドpsftpを起動します。
引数はroot@dns_name
2)apacheのDocumentRoot "/var/www/html"へ作成したindex.htmlをアップします。
アップ後にURLにアクセスするとページが更新されていることが確認できます。
■mySQLをさわってみよう。
1)ユーザmysqlへスイッチして作成済みのデータベースを確認
2)日本語入力のためLANG環境変数の設定
3)mysqlのコマンドラインユーティリティを起動
4)既存のtestデータベースに表作成、INSERT、SELECTの実行
※PuTTYの文字コード設定は以下のように行います。(以下の例ではEUCへ設定)
以上 第2回目はEC2を起動して実際のサービスのカスタマイズするところまで紹介しました。
ところがEC2のインスタンスは停止してしまうとすべての内容が消えてしまいます。連続稼働中は良いのですがせっかくいろいろカスタマイズした設定やデータが消えてしまっては困りますね。
そこで必要になるのがS3(AWSのディスクサービス)です。
S3へカスタマイズしたイメージ全体(AMI)をバックアップすることで実際のシステムを運用するという方式になります。
次回第3回では、自分用のインスタンス・イメージの作成とバックアップについて説明したいと思います。
(続く)
登録:
投稿 (Atom)