インスタンス(Instance)とは、設計図をもとに実際に作られた「実体」のことです。クラウドの分野では起動中の仮想サーバー1台を、プログラミングの分野ではクラスから作られたオブジェクトを指します。どちらも「型から作った実物」という点で共通しています。
現実世界に例えると、インスタンスはたい焼きの型と、そこから焼き上がった一つひとつのたい焼きの関係です。型(設計図)は1つでも、そこから作られる実物はいくつでも用意でき、それぞれが独立して存在します。
インスタンス図解
分野による使い分け
| 分野 | 設計図にあたるもの | インスタンス |
|---|---|---|
| クラウド | マシンイメージ | 起動中の仮想サーバー1台 |
| プログラミング | クラス | 生成されたオブジェクト |
| データベース | — | 起動中のデータベースの実行単位 |
クラウドにおけるインスタンス
クラウドでは、あらかじめ用意されたイメージを指定して起動した仮想サーバー1台をインスタンスと呼びます。AWSのEC2インスタンスやGoogle CloudのVMインスタンスがその例です。同じイメージから何台でも同じ構成のサーバーを立ち上げられるため、増設や作り直しが手軽に行えます。
インスタンスは、CPUやメモリの量に応じてインスタンスタイプという区分から選びます。処理が重くなれば大きなタイプへ変更し、不要になれば停止・削除して費用を抑える、といった調整ができるのがクラウドの利点です。
プログラミングにおけるインスタンス
オブジェクト指向のプログラミングでは、クラスという設計図から、実際にデータを持つ実体を作ることをインスタンス化と呼びます。「社員」というクラスから「田中さん」「鈴木さん」という個別のインスタンスを作るイメージです。クラスは共通の性質を定め、インスタンスがそれぞれ固有の値を持ちます。
使い捨てにできることの利点
クラウドのインスタンスは、壊れたら直すのではなく作り直すという運用が一般的です。設定を変えたいときも、既存に手を入れるより新しく起動し直すほうが確実で、手順も残しやすくなります。この考え方があるからこそ、負荷に応じてインスタンスを自動で増減させるオートスケーリングが成り立ちます。
コンテナとの違い
インスタンスと似た使われ方をする言葉に「コンテナ」があります。インスタンスはOSを丸ごと含んだ仮想サーバー1台であるのに対し、コンテナはOSを共有し、アプリの実行環境だけを切り分けたものです。コンテナのほうが軽く起動も速い一方、インスタンスはOSごと自由に構成できる点で柔軟です。実際には、インスタンスの上でコンテナを動かす構成もよく取られます。
費用と課金の考え方
| 状態 | 費用の扱い |
|---|---|
| 起動中 | 時間単位で課金される |
| 停止中 | 本体の課金は止まるが、ディスクの料金は残る |
| 削除後 | 課金は止まるが、中のデータも消える |
停止しただけでは費用がゼロにならない点は、クラウドを使い始めたときに戸惑いやすい部分です。検証用に作ったインスタンスを消し忘れると、思わぬ請求につながります。
あわせて知っておきたい用語
- 仮想マシン:
1台の物理サーバー上に作られた、仮想的なコンピューターです。 - Amazon EC2:
AWSで仮想サーバーのインスタンスを利用するサービスです。 - オブジェクト指向:
クラスとインスタンスを軸にプログラムを組み立てる考え方です。 - オートスケーリング:
負荷に応じてインスタンスの台数を自動で増減させる仕組みです。 - IaaS:
サーバーなどの基盤をサービスとして借りる形態です。


コメント