Japan Akihito Fujii's Weblog 日々是新 Akihito Fujii's Weblog

火曜日 9 02, 2008

English Translation: (Google) / (Yahoo!)

OpenSolarisを触る環境をつくる場合、DualBootでOpenSolaris, 自身のPCのSun xVM VirtualBox等で仮想環境をつくりOpenSolarisをinstallするなどがありますが、お金はかかるもののCloud Computingの時代(?)にはOpenSolaris on Amazon EC2という手があります。Cloud Computing 環境に興味をもっている人間としてはこれも試さないわけにはいけません。既に、Amazon EC2でOpenSolarisを動かしている方はいらっしゃいますが、自分自身で動かしてみたいですよねぇ。 自分でOpenSolarisのAmazonのImageを作り上げて、それをEC2で動作させることが王道かのかもしれませんが、私の場合はOpenSolarisわざわざinstallしたくないけど、EC2つかってちょっとSolarisでやってみる的なことを試そうかと思っています。 本blogに作業メモを残しておきます。ちなみに、ClientはMac OS 10.4.11です。
OpenSolaris on EC2のサイトにいって、SunのFormに入力。Sunのフォームに入力している途中で、AWSのAccount numberが必要なことに気づく(いきなりバカですね)。AWSの登録をして、Account numberを探す。行き当たりばったりなので、"Your Web Service Accout"の"AWS Account Activity"に12桁の番号を見つける。フォームの入力を継続して、Submit。もちろん、Amazon 側ではEC2/S3は従量課金なので、paymentのためのクレジットカードも登録しておく。
---

Thank you for registering.

Our technical team will review your requirements and get back to you shortly.

---

おいおい、Sun それはないだろう・・・なんか人力な予感を感じを悲しく思い、かつ社員だとはねられるんだろうかなどとかんがえつつ。しばしサスペンド。Amazon S3もみてみるが、S3を簡単に使うツールとかあんのかとぐぐってみたら、Elastic Driveとかいうのがあるらしい。MacのS3 browserを使えるのか。なるほど。

暫くするとメールがきて、登録のconfirmationメール。数日後、updateとして

New AMIs on OpenSolaris 2008.05 (with Build 91 packages) on Amazon EC2!

Hope your experience with OpenSolaris on Amazon EC2 has been great so far.

Continuing the release train of pre-configured AMIs on OpenSolaris on Amazon EC2, we
are pleased to announce the availability of AMP (Apache, MySQL, MySQL/PHP/Perl/Python)
and JBoss AMIs:


OpenSolaris 2008.05 (updated with Build 91 packages) + AMP  
          32-bit AMI: ami-45f1152c

OpenSolaris 2008.05 (updated with Build 91 packages) + AMP + Drupal
          32-bit AMI: ami-4ff01426
OpenSolaris 2008.05 (updated with Build 91 packages) + AMP + Joomla
          32-bit AMI: ami-2bf01442

OpenSolaris 2008.05 (updated with Build 91 packages) + AMP +
Mediawiki
          32-bit AMI: ami-2ef11547
OpenSolaris 2008.05 (updated with Build 91 packages) + Apache + MySQL + JBOSS
          32-bit AMI: ami-8fe206e6


というメール。別にApproveのprocessとかあるわけではないようですね。
さてさて、メールの中にSun提供のAmazon Machine Imageがリストされていると書いてあるので、こちらを参照。

List of all Sun-offered OpenSolaris AMIs: http://blogs.sun.com/ec2/entry/opensolaris_based_ami_catalog_on


ami-fbe10592

Ruby On Rails stack with DTrace AMI is based on ami-41e70328. This stack includes, Mongrel, Mongrel_cluser, Thin, MySQL, Postgres, sample SMF scripts, the Blastwave client, Git, Ruby clients for the databases/S3, GNU Findutils, gcc, and Sun Studio. For more information go here

流行のRoRのAMIでも動かしてみようかとこのAMIに決定。 さて、事前準備は、Getting Started Guideに記述されている通り。ssh keypairをつくり, id_rsa-gsg-keypairのファイルに格納。環境変数を設定して、いざインスタンス起動。 export EC2_PRIVATE_KEY=~/.ec2/pk-LQZHRRMGTTEJYRPANZ7I7LFLKZ3MA44Q.pem export EC2_CERT=~/.ec2/cert-LQZHRRMGTTEJYRPANZ7I7LFLKZ3MA44Q.pem export EC2_HOME=~/ec2-api-tools-1.3-24159 export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Home export PATH=/opt/local/bin:/opt/local/sbin/:$EC2_HOME/bin:$PATH fujii-akihito-nokonpyuta:~ akihito$ ec2-run-instances --url https://ec2.amazonaws.com  ami-fbe10592 -k gsg-keypair
RESERVATION     r-5876a131      711192086146    default
INSTANCE        i-3af35753      ami-fbe10592                    pending gsg-keypair     0               m1.small        2008-09-01T09:00:03+0000        us-east-1a      aki-b78367de    ari-b68367df
fujii-akihito-nokonpyuta:~ akihito$

fujii-akihito-nokonpyuta:~ akihito$ ec2-describe-instances i-3af35753
RESERVATION     r-5876a131      711192086146    default
INSTANCE        i-3af35753      ami-fbe10592    ec2-75-101-237-120.compute-1.amazonaws.com      ip-10-250-11-181.ec2.internal   running gsg-keypair     0      m1.small 2008-09-01T09:00:03+0000        us-east-1a      aki-b78367de    ari-b68367df
fujii-akihito-nokonpyuta:~ akihito$

で起動OK確認。本当に数分でビックリ。ec2-terminate-instancesして、tokyo2.0出席のため中断。terminateしないと課金されてしまいますからね。

fujii-akihito-nokonpyuta:~ akihito$ ec2-describe-instances i-3af35753
RESERVATION     r-5876a131      711192086146    default
INSTANCE        i-3af35753      ami-fbe10592                    terminated     gsg-keypair      0               m1.small        2008-09-01T09:00:03+0000       aki-b78367de     ari-b68367df

さて翌日再度時間をみつけて、インスタンスを再度起動。

$ ec2-run-instances --url https://ec2.amazonaws.com  ami-fbe10592 -k gsg-keypair
RESERVATION     r-b19f49d8      711192086146    default
INSTANCE        i-6aa10503      ami-fbe10592                    pending gsg-keypair     0               m1.small        2008-09-02T07:49:01+0000        us-east-1c      aki-b78367de    ari-b68367df

$ ec2-describe-instances
RESERVATION     r-1f914776      711192086146    default
INSTANCE        i-fba60292      ami-fbe10592                    terminated     gsg-keypair      0               m1.small        2008-09-02T06:27:57+0000       aki-b78367de     ari-b68367df
RESERVATION     r-b19f49d8      711192086146    default
INSTANCE        i-6aa10503      ami-fbe10592    ec2-75-101-235-133.compute-1.amazonaws.com      domU-12-31-38-01-BD-C2.compute-1.internal       running gsg-keypair     0               m1.small        2008-09-02T07:49:01+0000        us-east-1c      aki-b78367de    ari-b68367df
$ ec2-authorize default -p 22 $ ec2-authorize default -p 80
$ ssh -i id_rsa-gsg-keypair root@ec2-75-101-235-133.compute-1.amazonaws.com
The authenticity of host 'ec2-75-101-235-133.compute-1.amazonaws.com (75.101.235.133)' can't be established.
RSA key fingerprint is -------------------------.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ec2-75-101-235-133.compute-1.amazonaws.com,75.101.235.133' (RSA) to the list of known hosts.
Last login: Thu Aug 14 10:27:33 2008 from 192.18.43.225
Sun Microsystems Inc.   SunOS 5.11      snv_91  January 2008
-bash-3.2#

おお、ログインできました。SunOS 5.11です。どんなサービスが起動されているのでしょう。

# svcs -a

STATE          STIME    FMRI
legacy_run      0:54:05 lrc:/etc/rc2_d/S20sysetup
legacy_run      0:54:05 lrc:/etc/rc2_d/S47pppd
legacy_run      0:54:05 lrc:/etc/rc2_d/S72autoinstall
legacy_run      0:54:05 lrc:/etc/rc2_d/S73cachefs_daemon
legacy_run      0:54:06 lrc:/etc/rc2_d/S81dodatadm_udaplt
legacy_run      0:54:06 lrc:/etc/rc2_d/S89PRESERVE
legacy_run      0:54:06 lrc:/etc/rc2_d/S98deallocate
disabled        0:53:28 svc:/network/iscsi_initiator:default
disabled        0:53:28 svc:/system/device/mpxio-upgrade:default
disabled        0:53:28 svc:/network/physical:nwam
disabled        0:53:28 svc:/network/ipfilter:default
disabled        0:53:29 svc:/network/ipsec/manual-key:default
disabled        0:53:29 svc:/network/ipsec/ike:default
disabled        0:53:29 svc:/system/nws_scm:default
disabled        0:53:29 svc:/system/nws_sv:default
disabled        0:53:29 svc:/system/nws_ii:default
disabled        0:53:29 svc:/system/nws_rdc:default
disabled        0:53:30 svc:/network/nis/client:default
disabled        0:53:30 svc:/network/dns/client:default
disabled        0:53:30 svc:/network/rpc/keyserv:default
disabled        0:53:30 svc:/network/rpc/nisplus:default
disabled        0:53:30 svc:/network/ldap/client:default
disabled        0:53:30 svc:/network/nfs/nlockmgr:default
disabled        0:53:30 svc:/network/nfs/status:default
disabled        0:53:30 svc:/network/nfs/cbd:default
disabled        0:53:30 svc:/system/idmap:default
disabled        0:53:30 svc:/network/nfs/mapid:default
disabled        0:53:30 svc:/network/inetd-upgrade:default
disabled        0:53:30 svc:/network/nfs/client:default
disabled        0:53:30 svc:/application/print/server:default
disabled        0:53:30 svc:/network/ntp:default
disabled        0:53:30 svc:/network/smb/client:default
disabled        0:53:31 svc:/system/auditd:default
disabled        0:53:31 svc:/system/mdmonitor:default
disabled        0:53:32 svc:/network/nfs/server:default
disabled        0:53:32 svc:/application/graphical-login/gdm:default
disabled        0:53:32 svc:/application/print/ipp-listener:default
disabled        0:53:32 svc:/application/pkg/server:default
disabled        0:53:33 svc:/network/ipmievd:default
disabled        0:53:33 svc:/network/dns/server:default
disabled        0:53:33 svc:/network/dns/multicast:default
disabled        0:53:33 svc:/network/ipv6-forwarding:default
disabled        0:53:33 svc:/network/routing/ripng:default
disabled        0:53:33 svc:/network/routing/legacy-routing:ipv4
disabled        0:53:33 svc:/network/routing/legacy-routing:ipv6
disabled        0:53:33 svc:/network/routing/rdisc:default
disabled        0:53:33 svc:/network/routing/route:default
disabled        0:53:33 svc:/network/device-discovery/printers:snmp
disabled        0:53:33 svc:/network/security/krb5kdc:default
disabled        0:53:33 svc:/network/security/kadmin:default
disabled        0:53:33 svc:/network/ipv4-forwarding:default
disabled        0:53:33 svc:/system/sar:default
disabled        0:53:34 svc:/system/iscsitgt:default
disabled        0:53:34 svc:/system/nws_rdcsyncd:default
disabled        0:53:34 svc:/system/pools:default
disabled        0:53:34 svc:/system/pools/dynamic:default
disabled        0:53:34 svc:/system/consadm:default
disabled        0:53:34 svc:/application/cups/scheduler:default
disabled        0:53:34 svc:/network/slp:default
disabled        0:53:34 svc:/system/stmf:default
disabled        0:53:34 svc:/application/database/postgresql:version_81
disabled        0:53:34 svc:/application/database/postgresql:version_82
disabled        0:53:34 svc:/application/database/postgresql:version_82_64bit
disabled        0:53:34 svc:/application/database/mysql:version_50
disabled        0:53:34 svc:/network/http:apache22
disabled        0:54:04 svc:/network/rpc/meta:default
disabled        0:54:05 svc:/application/x11/xfs:default
disabled        0:54:05 svc:/application/x11/xvnc-inetd:default
disabled        0:54:05 svc:/application/print/rfc1179:default
disabled        0:54:05 svc:/network/stlisten:default
disabled        0:54:05 svc:/network/rpc/mdcomm:default
disabled        0:54:05 svc:/network/rpc/spray:default
disabled        0:54:05 svc:/network/rpc/rusers:default
disabled        0:54:05 svc:/network/rpc/rex:default
disabled        0:54:05 svc:/network/rpc/metamh:default
disabled        0:54:06 svc:/network/rpc/rstat:default
disabled        0:54:06 svc:/network/rpc/wall:default
disabled        0:54:06 svc:/network/rpc/metamed:default
disabled        0:54:06 svc:/network/login:eklogin
disabled        0:54:06 svc:/network/login:klogin
disabled        0:54:06 svc:/network/login:rlogin
disabled        0:54:07 svc:/network/rexec:default
disabled        0:54:07 svc:/network/nfs/rquota:default
disabled        0:54:07 svc:/network/comsat:default
disabled        0:54:07 svc:/network/ftp:default
disabled        0:54:07 svc:/network/finger:default
disabled        0:54:07 svc:/network/shell:default
disabled        0:54:07 svc:/network/shell:kshell
disabled        0:54:07 svc:/network/telnet:default
disabled        0:54:07 svc:/network/stdiscover:default
disabled        0:54:07 svc:/network/talk:default
disabled        0:54:08 svc:/application/cups/in-lpd:default
online          0:53:28 svc:/system/svc/restarter:default
online          0:53:30 svc:/network/datalink-management:default
online          0:53:30 svc:/network/loopback:default
online          0:53:31 svc:/milestone/name-services:default
online          0:53:38 svc:/network/physical:default
online          0:53:38 svc:/system/identity:node
online          0:53:38 svc:/system/metainit:default
online          0:53:39 svc:/system/filesystem/root:default
online          0:53:39 svc:/system/scheduler:default
online          0:53:39 svc:/system/boot-archive:default
online          0:53:39 svc:/system/filesystem/usr:default
online          0:53:41 svc:/system/keymap:default
online          0:53:42 svc:/system/device/local:default
online          0:53:43 svc:/system/filesystem/minimal:default
online          0:53:44 svc:/system/metasync:default
online          0:53:45 svc:/system/cryptosvc:default
online          0:53:45 svc:/system/sysevent:default
online          0:53:45 svc:/system/rmtmpfiles:default
online          0:53:45 svc:/system/resource-mgmt:default
online          0:53:45 svc:/system/identity:domain
online          0:53:45 svc:/system/power:default
online          0:53:45 svc:/system/device/fc-fabric:default
online          0:53:46 svc:/milestone/devices:default
online          0:53:46 svc:/network/ipsec/ipsecalgs:default
online          0:53:46 svc:/network/ipsec/policy:default
online          0:53:46 svc:/milestone/network:default
online          0:53:46 svc:/system/picl:default
online          0:53:47 svc:/system/manifest-import:default
online          0:53:48 svc:/network/initial:default
online          0:53:48 svc:/milestone/single-user:default
online          0:53:50 svc:/system/coreadm:default
online          0:53:50 svc:/network/service:default
online          0:53:50 svc:/system/filesystem/local:default
online          0:53:54 svc:/system/sysidtool:net
online          0:53:54 svc:/application/stosreg:default
online          0:53:54 svc:/network/shares/group:zfs
online          0:53:54 svc:/system/cron:default
online          0:53:54 svc:/system/name-service-cache:default
online          0:53:55 svc:/system/boot-archive-update:default
online          0:53:55 svc:/system/dbus:default
online          0:53:55 svc:/network/shares/group:default
online          0:53:55 svc:/application/font/fc-cache:default
online          0:53:55 svc:/application/opengl/ogl-select:default
online          0:53:56 svc:/system/avahi-bridge-dsd:default
online          0:53:56 svc:/application/print/ppd-cache-update:default
online          0:53:56 svc:/ec2ify/ident:default
online          0:53:58 svc:/system/hal:default
online          0:53:58 svc:/system/filesystem/rmvolmgr:default
online          0:53:59 svc:/network/routing-setup:default
online          0:54:00 svc:/network/rpc/bind:default
online          0:54:01 svc:/system/sysidtool:system
online          0:54:01 svc:/system/filesystem/autofs:default
online          0:54:01 svc:/milestone/sysconfig:default
online          0:54:01 svc:/network/routing/ndp:default
online          0:54:01 svc:/system/dumpadm:default
online          0:54:02 svc:/system/sac:default
online          0:54:02 svc:/system/system-log:default
online          0:54:02 svc:/system/utmp:default
online          0:54:02 svc:/system/console-login:default
online          0:54:03 svc:/network/ssh:default
online          0:54:03 svc:/network/inetd:default
online          0:54:03 svc:/system/postrun:default
online          0:54:04 svc:/system/fmd:default
online          0:54:04 svc:/network/smtp:sendmail
online          0:54:07 svc:/milestone/multi-user:default
online          0:54:07 svc:/system/intrd:default
online          0:54:08 svc:/network/rpc/gss:default
online          0:54:08 svc:/network/rpc/smserver:default
online          0:54:08 svc:/network/security/ktkt_warn:default
online          0:54:08 svc:/milestone/multi-user-server:default
online          0:54:09 svc:/system/zones:default
さて/ROOTに smfファイルが転がっています。
# svccfg import rails-sample.smf
# svcadm enable rails-sample
# svcs -vx rails-sample
むむ、Onlineになりません。logをみてみるとpidのfileが存在するためにエラーになっているのかな。 -bash-3.2# cd rails-sample
-bash-3.2# ls
app       db        lib       public    README    test      vendor
config    doc       log       Rakefile  script    tmp
-bash-3.2# cd tmp
-bash-3.2# ls
cache     pids      sessions  sockets
-bash-3.2# cd pids
-bash-3.2# ls
mongrel.3000.pid  mongrel.3001.pid
-bash-3.2# rm mongrel.300*
-bash-3.2# cd
-bash-3.2# svcadm enable rails-sample
-bash-3.2# svcs rails-sample
STATE          STIME    FMRI
online          1:01:27 svc:/network/mongrel/rails-sample:default
起動されました。

# svcadm enable apache22 でapacheもあがりますね。MySQLも登録済み。なんて簡単な環境なんでしょう。mongrelのport 3000もあけないとbrowserから確認できないので、Client側で

$ ec2-authorize default -p 3000
GROUP           default PERMISSION              default ALLOWS  tcp     3000    3000    FROM    CIDR   0.0.0.0/0
さて、ブラウザから http://ec2-75-101-235-133.compute-1.amazonaws.com:3000/ で画面を確認。ま、もちろん何も無いですが開発実行環境ができていることを確認。今日はここまでということで、またまた中断。
-bash-3.2# exit
$ ec2-terminate-instances  i-6aa10503
INSTANCE        i-6aa10503      running shutting-down

うーむ。おそるべしAmazon。OpenSolarisちょっとだけ触りたいなぁというひとにはもってこいです。次回はAmazon S3ためして、Rails/DTrace動かしてみようかなと思いつつも。?なんでGlassFish, JRuby on Railsでないん?まだまだ道は長そうです。

ちなみに、これ全部rootでやっちゃってます。試すと書いたものの試すというレベルではないですね。すいません。terminateしちゃえば消えちゃうので、ご了承くださいませ。
・・・既に私のblog読者層が変わっているかもしれませんが、またお試し日記の続きを書きたいと思います。(時間ねーかなぁ)
投稿されたコメント:

コメント
コメントは無効になっています。