本文へジャンプします。

この記事は、4月21日(木)福岡県Ruby・コンテンツ産業振興センターにて行われた「ユーザーが語る ニフティクラウドセミナーin福岡」での発表、および2011年5月11日(水)から13日(金)で行われた「第2回 クラウド コンピューティングEXPO春」の13日最終のセミナー「CakePHP vs Ruby on Rails開発環境構築スピード対決!~本当に15分で環境構築ができるのか?~」で利用した内容の解説になります。

上記2セミナーでは、実際にその場でニフティクラウド上にSmallのインスタンスを作成するところから初めて、Ruby on Rails3のサーバが稼働するところまでお披露目しております。つまり、完全に0からのスタートになります。では、早速その詳細について解説をしていきたいと思います。

手順と流れの説明

まず、おおまかな手順を書いておくと

1、ニフティクラウド上にSmallのインスタンスを立上げる(約5分)
2、立ち上がったらSSHで接続する
3、セットアップのためのコマンドを実行する
4,動作を確認する(2〜4で約10分)

以上、合計15分になっております。それでは、個別に見ていきます。

 

1,Smallインスタンスの立上げ

ここについての詳細は省きます。単純に、ニフティクラウドのSmallを立上げるだけです。
IPアドレスは動的でも、固定でもどちらでも構いません。
立ち上がったら、アサインされたグローバルIPをコピーしてメモ帳などに書いて置いて下さい。

ここで後の作業をスムーズにするために、メモ帳には

root@グローバルIP
http://グローバルIP:3000/books/

と書いておいてください。上はSSHでの接続時に使い、下は最後の動作確認で使います。

 

2,SSHでの接続

ここも詳細は省きます。いつも通りのSSHによる接続を行って下さい。
このとき、1でメモ帳に書いておいた「root@」を使うとちょっと便利なはず。
接続ができたら、次に進みます。

 

3,セットアップのためのコマンドを実行

さて、ここがこの作業の中での一番のポイントです。
以下のように打ちます。

curl https://raw.github.com/gist/964211/984e20c01e8fd9ae636189434568312dedfeff92/rails_on_nifcla.sh | sh

以上のコマンドをコピペで、そのままお使い下さい。

あとは、画面がドバーっと流れるのをただ見ているだけです。
最後に画面が止まったらセットアップ完了です。

 

4,動作確認

では、ブラウザを開いて1でメモ帳に書いておいた「http://」のアドレスにアクセスしてみましょう。
簡単ですが、本を登録するアプリが動いているはずです。

 

内容の詳細解説

詳しく見ていきます。

まず、インスタンス作成とSSHについては、問題ないと思います。
もし、この部分の詳細を知りたい場合は、私が書いた「契約後からサーバを立ち上げるまで」をご覧下さい。こちらでどういった流れかをご覧頂けます。

次がセットアップのコマンドです。
こちらについては、実際のスクリプトを見ながら解説をしていきます。

まず冒頭yumを使い、RubyとSqlite3のコンパイルに必要なライブラリのインストールを行っております。なお、yumを使うと最初自動的にシステムのアップデートが行われます。

次がsnmpdの設定を行っています。
これは、ニフティクラウドのサーバ管理を行う「ダッシュボード」にある、基本監視を使えるようにするための設定です。これにより、パフォーマンスチャートでCPU使用状況やネットワークの状況などを確認することができ、基本監視によるアラートを受け取ることが可能になります。
スクリプトでは以下の内容を受け取り、snmpd.confに追記しsnmpdを再起動しています。

この内容は、基本監視の設定が公開されているのでそちらを参考にしました。

次にiptablesの設定です。
このセットアップスクリプトでは一度Smallのインスタンスを立上げ、その時のiptablesの内容をダンプし、そこへ必要事項を追記したものをgistに上げて使っています。

稼働中のサーバのiptablesのダンプは、

iptables-save > iptables.bak

などと実行すると保存できます。保存された内容に

1,ポート3000の開放(Railsのテスト実行のため)
2,基本監視で要求された設定

を追記しております。なお、2についてはsnmpdのところで説明したリンク先をご覧下さい。
私はiptablesの設定反映については、上記で作成した追記後のファイルをgistにアップしておき、ファイルの内容をサーバで受け、「iptables-restore」で設定を上書きして「iptables save」で保存を行いました。
このため、ニフティクラウド側で作成されているSmallのイメージが将来変更になった場合は、設定用のファイルを修正を行う必要があります。
ちょっとこの部分は、イマイチだと思っています。

そして、Ruby1.9.2とRails,Sqlite3のインストールを行います。
これらについては、オフィシャルのサイト等で紹介されている普通のインストールコマンドをそのまま実施しているだけです。これといって解説することは、実はありません。

最後にRailsのScaffoldを実行しています。
Ruby on Railsの便利なところで、これらのコマンドによりアプリケーションの基本的なファイルの生成はコマンドの実行だけで終わってしまいます。
スクリプトの最後では、自動生成したアプリケーションのテスト用サーバを立上げています。
ブラウザでポート3000にアクセスすると稼働状況が見られ、「グローバルIP:3000/books」にアクセスすると非常に簡易ですが本のタイトルと価格を登録し一覧で見るアプリケーションを確認することができます。

 

夢の広がる、1ラインセットアップ!

ということで、詳細にスクリプトについて解説を行ってみました。
見て頂けると解る通り、非常に基本的なコマンドの組み合わせを使うだけで定型の作業を自動化することが可能になります。今回は利用していませんがRESTfulAPIを使うことで、完全に1回のコマンドだけでセットアップを完了されるなども可能になると思います。

今回ご披露したスクリプトは非常に基本的な動きのみにしておきました。
yumによるライブラリのインストールとシステムのアップデート、snmpdの設定とiptablesの設定の部分。これらを基本として、色々なオープンソースのフレームワークやアプリケーションのセットアップを自動的に行うスクリプトが書けると思います。

ニフティクラウドでは、現在のところ他の人や企業が作成したイメージを自分の企業IDの配下へコピーしてくることはできません。他のIaaSではこういったことが可能ではありますが、私個人としてはどこの誰が作ったか解らないし設定もどうなっているか解らないVMをいきなり使うことには非常に抵抗があります。セットアップの手間を省ける点では非常に効果が期待できますが、セキュアであることを保証されるものではないので、私にとってはちょっとリスキーに感じます。また、意外と他人が設定したLinuxというものは設定を把握するまで時間がかかるものだと思います。

今回のようなスクリプトで自動的に構築していく方法であれば、事前にどんなことが行われるかを確認できますので安心して使えます。そして、ファイルを修正し独自のスクリプトで構築を行うことも非常に容易です。是非、皆さんのノウハウを生かし工夫をして効率的なサーバ構築を行ってみて下さい。

ニフティクラウド 導入相談窓口
ニフティクラウド 無料セミナー

閉じる

閉じる

クラウドブログ編集部

クラウドブログ編集部

ニフティクラウド ユーザーブログ編集部のアカウントです。 編集部からのお知らせや、レギュラーライター以外のゲストによる寄稿記事を掲載していきます。

浜中 慶

浜中 慶

1980年、神奈川県生まれ。2003年ニフティ入社。 ポータルサイト開発を中心に、音楽配信サービス、CGMサービスなど様々なプロジェクトに企画/デザイン/システム担当として参加。現在は@niftyのポータルサービス向けコンテンツ管理システムの企画/開発/運用を担当。

吉田 雄哉

吉田 雄哉

株式会社co-meetingの創業メンバー。「取締役&External- facing Technologist」と名乗り新しいIT技術を広く伝える活動とWebアプリケーション開発を行う毎日。パッケージベンダーでのSaaS立上げ・製造業の情報システム部門で企画やPM・受託開発と従事してきたため、ベンダーサイドとユーザサイド の両方の視点を持ち合わせる。

石田 健亮

石田 健亮

株式会社ドリーム・アーツで小売事業者向けSaaS「Shopらん」を企画、開発。メインの仕事はプログラマーだがサーバー管理や営業もこなすユーティリティプレイヤー。最近好きな事はパフォーマンスチューニング。特に並列化プログラミングがマイブーム。キライなことはデータセンターでの作業。騒音と乾燥が弱点。ニフティクラウドでデータセンターに行く必要が無くなったことが本当の利点だ と思っている。

五月女 雄一

五月女 雄一

ニフティでは「インフラを守る簡単な様で奥が深いお仕事」をしています。 夢はインフラの気持ちが読めるエンジニアになること。

わたなべ かずひろ

わたなべ かずひろ

専門学校卒業後、ソフトウェア開発会社で電力系統制御システムの開発に従事。その後、CD-ROM等マルチメディア系PCソフトの開発を経て、1998年フリーランスに。 2000年8月に株式会社イーツーの設立に参画。携帯を含む様々なWeb系のシステム開発に携わる。現在はiPhone/Androidアプリなどの開発も手がけている。

市角

市角

ニフティクラウドのコントロールパネル設計・開発をメインに、たまにインフラの運用やお手伝いもやっていたりします。コントロールパネルや新機能の活用方法、アイデアなどを中心に書いていく予定です。

仲山 昌宏

仲山 昌宏

歌って踊れるインフラエンジニア兼、PHPもRubyもJavaも書くPerl使い。 物理サーバの運用に飽きて、フルラックに格安サーバ詰めて自宅プライベートクラウドを構築中。 今年は個人的には分散処理を攻めていきます。

猪飼 賢広

猪飼 賢広

1984年、愛知県名古屋市生まれ。大学は福島県にある某大学。2008年ニフティに入社。 開発系部署に配属後、主に各種テーマサイト開発のシステム面調整、開発進行管理役などとして参加。 現在もPC・ガラケーサイトの開発まわりを担当。インフラまわりを触る案件にも携わっており、日々修行中。 好きな芸人はなかやまきんに君とレイザーラモンRG。

久江 裕之

久江 裕之

ニフティクラウドのインフラ運用、OS提供の仕事をしています。 新しいOSやイメージが出る時にこのブログでご紹介いたします。入社5年目。一流のインフラエンジニアを目指して日々勉強中。

竹内 豪

竹内 豪

ニフティクラウド エンジニア

山口

山口

ニフティクラウドの基盤設計、新サービス/アライアンス/インフラ企画、その他雑用全般を担当しています。 クラウドに欲しい機能や、こんなふうに使ってほしいという想いが共有できれば良いですね。

芳中 隆幸

芳中 隆幸

ニフティクラウドの開発、運用を担当しています。

酒井 浩平

酒井 浩平

ニフティクラウドの中にいます。 ネットワークまわりの運用・開発や自動化などに取り組んでいます。 すべてのエンジニアを幸せにすることを目指しています。

higebu

higebu

ニフティクラウド IaaSのエンジニアです。 ネットワーク、DRサービス with VMware vCloud® Air™ Technology辺りの担当をしています。

武田

武田

ニフティクラウドの開発・運用を担当しています。 各種機能の内容についてなどで執筆させていただく予定です。

森藤 大地

森藤 大地

データに関する仕事が好きです。

宮原徹

宮原徹

日本仮想化技術株式会社 代表取締役社長兼CEO。仮想化技術に関するコンサルタントとして長年活動しており、特にベンチマークテストによる性能評価を得意としている。

荒谷翔

荒谷翔

株式会社はてなでMackerelのセールスデベロッパーとして勤務しています

東條 望

東條 望

2014年にニフティへ中途入社。 入社後から現在まで、ニフティクラウドのサービス企画・開発を担当しています。 各サービスの紹介を執筆させていただく予定です。