IT・Web業界
2013.11.12

クラウドの現在と未来とキャリア(6):サーバーエンジニア(後編)

クラウドの普及によって仕事がどう変わるのか?今回は前回に引き続きサーバーエンジニアについて考えます。
「(1)設計・構築」、「(2)運用管理」、「(3)必要なスキルと知識」それぞれについて見ていきます。

(1)サーバー設計・構築
■提案フェーズ
大きく変わることとしてクライアントからRFPの中で「クラウドの活用」や「クラウド、オンプレミスの比較」を含む提案を依頼される場合など、クラウドについて提案することが多くなってきます。そのためクラウドだけでなくオンプレミスの長所・短所も踏まえたインフラ費用、構築費用、セキュリティ、機能性などについて比較し、論じる必要があります。

■要件定義フェーズ
性能要件(トランザクション量、スループット、レスポンスなど)について算出方法は変わりません。しかし、クラウドには特有の負荷分散の仕方がありますので、その点を考慮してその後の設計に進む必要があります。特にオンプレミスの場合には出来なかった方法として、オートスケール(対象サーバーを自動でスケールアウト:サーバーへの負荷が事前に指定した閾値を超えた場合に、自動で対象のインスタンスを追加し、閾値を下回った場合には自動でインスタンスを削除する負荷分散方法)がよく取り上げられます。その他にもクラウドは調達が数分で完了出来ることから積極的なスケールアップも出来ます。

■基本設計フェーズ
基本設計においては前項の性能要件を元にネットワーク構成等を作成します。ここでクラウド特有の挙動を考慮する必要があります。それが「design for failure(障害を前提とした設計)」です。一般的なクラウドサービスでは仮想マシン(VM)であるインスタンスが何の予告も無く再起動をすることがあります。再起動のケースとしてはゲストOSのアップデート、ホストOSのアップデート等があり、インスタンスをシングルで利用しているとサービスが停止してしまいます。また再起動対象となる単位はゲストマシン(VM)、ホストマシンに加えて、対象データセンター全てという場合もあります。そのためインスタンス作成時に同一のエリアを選んで作成すると複数のインスタンスが全て再起動をする可能性もあります。したがって、ネットワーク構成を作成する際にはインスタンスの作成場所(クラウドサービス内ではregion、availability zoneなどと呼ばれています)を明記する必要があります。

■調達フェーズ
各種クラウドサービスは価格表が公開されています。一部のボリュームディスカウントや料金プランを除けばシンプルであり、あまりクラウドを意識する必要はありません。

■詳細設計
ロードバランサーなどの一部の機器がサービス化している部分を除けば、オンプレミスとの差はあまりありません。ただし、先ほどの「design for failure」に基づき、再起動時に自動でサービスがオンラインになるようにスタートアップタスクを設計する必要があります。またこの際に各種スクリプトをコーディングすることが多々あるため、これまで全くコーディングをした経験が無い場合にはLinux/unix系であれば主要スクリプト言語(ruby、php、perlなど)、Windows系であればコマンドシェルバッチスクリプトもしくはWindows Script Hostについてスキル修得が必要です。今後はコーディングの出来るサーバーエンジニアがより差別化され、評価を勝ち取るようになるでしょう。

■運用設計フェーズ
クラウドを活用する場合、運用設計フェーズは品質差異が発生しやすい部分であり、サーバーエンジニアの腕の見せ所となります。前段で述べたオートスケールを始め、運用の自動化がトレンドになっています。メジャーなクラウドサービスではクラウドの操作に関わるほとんど全てがAPI化されているため、自動化が容易になっています。またChefやPuppetのようなシステム自動管理ツールもトレンドとなっています。そのため一般的なAPIで出来ることやクラウド特有のインフラテクノロジートレンドは押さえておく必要があります。一方で監視ツールの設計ではクラウド特有の再起動等を考慮した閾値を設定しなければ、無駄なアラートが発生してしまうため、このような部分でもクラウドの特性を理解しておく必要があります。

(2)サーバー運用管理
■障害対応フェーズ
オンプレミスとは違った原因による障害が発生するため、これまで培った知見をアップデートする必要があります。コミュニティ等でのナレッジをしっかりと吸収することが必要になります。

■パフォーマンスチューニング
パフォーマンスを上げるだけであれば、インスタンスの追加を続けるだけで一定の効果は出すことが可能です。一方でコストメリットがどんどん無くなるため、オンプレミス環境と同様にチューニングが必要です。インスタンス上のソフトウェア面はオンプレミス環境と差はほとんど無いため、これまでの知見を活かすことが可能です。

■キャパシティプランニング
スケールアップ、スケールアウト共に容易に実行出来るため、日々しっかりとトランザクションを始めとした稼働状況を管理すれば、難しいことはありません。

■料金管理
クラウドは基本的に従量課金形態となっていますが、長期契約をすることで固定料金形態も選択可能です。システムの利用状況に合わせて、最適な料金プランを選択し、コスト削減をする必要があります。

(3)必要なスキルと知識
■クラウド特性の理解
クラウドにはオンプレミスには無かった特性がいくつかあり、OSやミドルウェアと同様に技術修得が必要となります。

■コーディングスキル
スタートアップタスクを始めとしてコーディングする機会が多々ありますので、コーディングスキルはほぼ必須のスキルとなります。

以上のようにクラウドの登場によって、サーバーエンジニアの仕事内容は大きく変わります。サーバーエンジニアの応募要件として「AWSを利用したインフラ設計構築経験2年以上」なども出始めています。もしクラウドに触れる機会が無い場合には各種セミナーや無料キャンペーン等を活用して、積極的にクラウドに触れる機会を増やすことを強く勧めます。

IT・Web業界のその他の転職コラムIT・Web業界の転職コラム一覧

転職活動の悩みをキャリアアドバイザーに相談してみませんか?