むじんブログ ”3歩進んで2歩下がる”

37歳未経験からのエンジニア転職を目指す営業部長

学習のアウトプット(サーバーとデプロイ)

【サーバーの定義】

サーバーという言葉は2種類の意味で用いる。

 

①クライアントの要望に応じたデータを送るソフトウェア・プログラム。

Ruby on Railsで作成したWEBアプリケーションなどがこれに当たる。

 

WEBサービスなどを提供するパソコン本体。

Herokuなどがこれに当たる(レンタルして、作成したアプリを展開するパソコン)

 

【サーバーの種類】

大きく分けて4つある。

 

レンタルサーバ

インターネット上に情報を公開するためのサーバーを、業者からレンタルするもの。

自分で環境を持たなくて良いので、手軽・低コストで利用できる。

 

VPS

レンタルサーバーは1台のパソコンで複数のユーザーに環境を提供するが、

VPSでは1人に1台のパソコン環境を提供する。

これにより使用方法の自由度が増す。

 

・オンプレミス

サーバーやソフトウェアの環境を自身の管理下に置く運用形態。

 

クラウド

コンピュータの利用形態を指す言葉。

ストレージのイメージが強いが、ソフトウェアやハードウェアの提供も行なっている。

 

クラウドの種類】

SaaS(Software as a Service)

クライアント側に導入せず、サービスを提供しているサーバーに直接アクセスして利用するサービスのこと。

例)Office 365・GmailDropboxサイボウズ

 

・PaaS(Platform as a Service)

作成したアプリケーションなどを公開するための環境を提供するサービスのこと。

例)Heroku

 

・IaaS(Infrastructure as a Service)

仮想化したストレージやCPU、メモリなどをユーザーに提供するサービス。

使用するごとに料金が発生する。

例)Microsoft Azure・Google Compute Engine

 

【仮想サーバー】

通常は1台のサーバーで1つのOSを運用するが、1台で複数のサーバーを稼働させることを仮想サーバーという。

メリット:処理速度の向上・保守コストの削減

デメリット:メモリが膨大になる・高度な技術が必要・設定や管理の負荷がかかる

 

【コンテナ】

他のユーザーから隔離された実行環境のことで、ホストOS上で作成される。

使用するメモリ容量が少ないので、仮想サーバーに比べて起動速度が速く、1つのハードウェアで複数起動することができる。

実現するためにはコンテナ管理ソフトウェアが必要。

 

【Docker】

コンテナ化を用いて開発・配置・実行をするためのオープンソースのコンテナ管理ソフトウェアで、圧倒的なシェアを占めている。

 

【デプロイの手段】

大きく分けて3種類ある。

 

カナリアリリース

新しいバージョンを一部のユーザーだけに提供し、問題がないかどうかを確認する手法。

問題が発生したとしても全体のユーザーへの影響が出ないメリットがある。

 

・ブルーグリーンデプロイメント

仮想サーバーを利用して、あるバージョン(ブルー)をリリースしている間に、もう1つのバージョン(グリーン)を構築し、完成したらバージョンを切り替える手法。

問題が発生した場合はブルーに切り替えを行い、容易にロールバックできる。

ただし常に2つのサーバーの管理コストがかかる。

 

・イミュータブルデプロイメント

コンテナの技術を使った手法。

新しい環境を提供し、問題がなければ古い環境を削除する方法。