本文へジャンプします。

ニフティクラウド探検隊 起動時スクリプトでサーバーを自動構築してみた。

こんにちは。

ニフティでインフラを守るお仕事をしている五月女です。
Photo_2
前回の投稿から間が開いてしまいましたが、この間にニフティクラウドではいくつかのアップデートがありました。

OSイメージに待望のUbuntuが登場したり、機能が増えたりと多様なアップデートが実施されました。中でも、11月21日に追加された「ロードバランサーと増設ディスクの従量課金プランの提供」が、個人的にかなりうれしい機能追加だったりします。
より気軽にAPIを使ったLBやHDDの動作検証や、柔軟なリソース管理が出来る様になって有り難い限りです。m(_ _)m

そこで今回は、より手軽に利用出来る様になったリソースを「クラウドっぽく」(*1)利用する方法として、「起動スクリプト」を利用した「サーバーの自動構築」を紹介します。

※内容は、2012年01月現在時点の情報です。
※ニフティクラウドで提供されている「CentOS 5.6 64bit Plain」を対象とした記事です

「起動スクリプト」とは

「サーバー起動時のスクリプト実行機能」(以下「起動スクリプト」)は2011/10/26のニフティクラウドアップデートで追加された機能です。

コントロールパネルやAPIから、スクリプトを送り込み、OS起動時に実行することができる機能です。
Linux の rc スクリプトに近いものになりますが、大きな違いはコントロールパネル・APIといった、サーバーの外部からスクリプトを送り込める点です。
アプリケーションのインストールから設定までをスクリプトで組んでおき、サーバー作成と同時にスクリプトを送り込むことで、セッティングがすべて完了した状態のサーバーがあがってきます。
サーバーにログインして、コマンドを打ち込む必要はありませんので、サーバー作成後の負担を大幅に軽減することができる機能になります。
サーバータイプの追加、起動時スクリプト実行、グローバルNICの取り外し機能をリリースしました。

具体的な利用方法につきましても上記記事内で紹介されておりますのでご覧ください。

同一環境の複製しようとした際、「サーバーコピー機能」が真っ先に思いつくかと思いますが、機能の使い分けポイントとしては「新規サーバー作成時の定形処理を自動化する」ですとか、「常に最新版のパッケージを利用した構成を作りたい」、また、「複製の頻度が少ないので、イメージ保存代を節約したい」といった場合等で「起動スクリプト」の利用がマッチするかと思います。

やってみよう

新規サーバー作成時の定形処理を自動化する

実際に簡単な起動スクリプトを作って見ました。

これは、新規サーバー作成後に必ず実施する様な定形処理を自動化する起動スクリプトになります。
このスクリプトを「起動スクリプト」としてコピー&ペーストする事で以下の処理を自動的に実行します。

  • hostnameをコントロールパネルの「サーバー名」に合わせて変更する
  • rootユーザのパスワードを設定する
  • rootユーザ以外の管理ユーザを作成する
  • rootユーザをsshから直接ログイン出来なくする
  • 便利なサードパーティリポジトリを追加する
    • RPMforge,EPEL,Remi
  • パッケージのインストール
    • zsh(高性能コマンドシェル)
    • screen(コマンドシェルマネージャ)
    • ntp(時刻同期ツール)
    • sysstat(システム情報取得ツール)
    • net-snmp(監視情報取得ツール)
  • zsh,screenの設定
  • ntpdの設定
  • snmpdの設定
  • 最新Kernel・パッケージの適用
WordPressのセットアップを自動構築する

よく使われているWebアプリとして、オープンソースのブログ/CMS プラットフォームである「WordPress」を例に、サーバー作成からWordPress環境構築までを自動化するスクリプトを作って見ました。

スクリプトでは下記の処理を実行しています。

  • 動作に必要なパッケージのインストール
    • Apache(Webサーバ)
    • MySQL(DBサーバ)
    • PHP5.3.x
    • postfix(メール送信サーバ)
  • Apacheの設定
  • MySQLの設定
  • PHPの設定
  • postfixの設定
  • WordPressの取得と展開
  • WordPress用DB作成と権限設定
  • WordPressの設定
  • WordPress公開

実際に行なっている処理は、簡単で単純な物ですが、これが「サーバー作成後に実行する」のと、「サーバー作成時に自動的に実行される」のとでは大きな差があると感じています。
例えば、これを手動で設定した場合、1台セットアップするのに、早い人でも30分程度はかかってしまいますし、上記手順をコピー&ペーストする場合も、サーバー作成完了後にサーバーへ一度ログインしてから実施する必要があるため、複数台の設定が必要な場合等ではとても手間です。
それが、起動スクリプトであれば、サーバー作成を実行するだけで、サーバーにログインせずに実現出来ますので、大幅に効率化されると思います。

「起動スクリプト」豆知識

再起動時にも利用出来る

Reboot_setupscript

起動スクリプトはサーバーの新規作成時だけでなく、既存サーバの再起動時にも指定する事が可能です。このため、既存サーバへの機能追加やパッチ適用といった処理もスクリプト化する事で、再起動と同時に自動実行させて実施する事が可能です。

APIから利用出来る

ニフティクラウドはコントロールパネルからの操作以外に「APIを介した操作」が可能ですが、もちろんAPIからも起動スクリプトを利用出来ます。
APIを利用する事で、より複雑な処理を含めた自動化が実現出来ます。
例えば、「利用者の動向に合わせててDBの設定を動的に作成し、作成した設定を起動スクリプトとしてDBサーバーを作成、動作確認して、サービスに投入する」なんて処理も自動化来るのでは無いでしょうか。

まとめ

「起動スクリプトを活用する事で、色々な処理が自動化、効率化出来るな」と思っていただけたらな幸いです。
今回は紹介しませんでしたが、起動スクリプトにCapistranoやChefのセットアップを入れておく事で、サーバー構築だけでなく、管理の効率化まで踏み込んだ環境構築も実現出来るでしょう。
起動スクリプトも他のニフティクラウドの機能同様、使い方次第でいろいろな可能性が考えられます。
オリジナルの起動スクリプトを作成して、より便利な開発・運用を実現ください。

*1: 表現が正しいかは謎(汗)

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

閉じる

閉じる

クラウドブログ編集部

クラウドブログ編集部

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

浜中 慶

浜中 慶

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