掴めてきたでしょうか。
3回目となる今回からは、もう少し踏み込んで、個々のサービスの話をしていきます。もちろん最初に取り上げるサービスは、AWSの代表格と言っても良いAmazon EC2なのですが、最近では、その使い方にも変化が出てきています。EC2の概要を説明しながら、「 AWSを使うには、何を学ぶべきか」もお話します。
Amazon EC2とは
Amazon Elastic Compute Cloud(Amazon EC2) は、コンピューティングキャパシティを提供するサービスです。簡単に言えば、サーバに必要なもの一式をクラウドで借りられるということです。
この程度の説明では、シンプルなレンタルサーバと同じようなものだと感じるかもしれませんが、AWSの場合は、サーバ機能以外にもいろいろ借りられますし、ネットワークの設計なども自分で行えます。借りた道具を使って自分でサーバを作るようなイメージだというとわかりやすいでしょうか。
ただし、その作業自体は、簡単です。第1回 でも軽くご紹介しましたが、Linuxのコマンドをひたすら入力する必要はなく、AMI と呼ばれる仮想イメージ(OSやソフトの組み合わせ)とインスタンスタイプ (サーバースペック)などを、ポチポチとマウスで選択すれば、即時に作成されます。操作は、マネジメントコンソールと呼ばれるグラフィカルな画面で行います。
そのため、インストールの待ち時間というものは発生しません。また、リモートで操作できるので、わざわざデータセンターや顧客の社屋に出向いて、ブンブン煩いなかで作業をしなくても良いのです。
まずはマウスで選ぶだけ!
インスタンスとインスタンスの種類
EC2でサーバを立てる場合、「 インスタンスを作る」と言います。厳密には、サーバ=インスタンスではないですが、おおよそ「マシンを作る」や、「 サーバを立てる」と同義と思って良いでしょう。
インスタンスを作る場合、いくつかの設定項目があります。
図 インスタンスの作成例
自分の会社で、サーバを立てる時にも、物理マシンのスペックやOS、インストールするソフトウェアなどを選ぶように、EC2でも選びます。
たとえば、「インスタンスタイプ」 とは、マシンの用途です。CPU、メモリ、ストレージ、ネットワークキャパシティなど複数のスペックで用意されており、用途に応じて組み合わされています。そこから選ぶわけです。
選び方は、「 値段が高いけれど処理が速い」「 処理はそこそこだが、値段が安い」など、何に使うのかを考えて選ぶと良いでしょう。
インスタンスタイプを選んだら、「インスタンスサイズ」 を選びます。こちらは、マシンの性能です。たとえば、「 T2」というよく使われるインスタンスタイプがありますが、T2には、「 nano」「 micro」「 large」など7種類のサイズが用意されており、スケールに合わせて選ぶことができます。
AMIはインスタンスを作るための金型のようなもの
Amazonマシンイメージ(AMI)とは、ソフトウェア構成を記録したテンプレートです。インスタンス(仮想サーバ)を作るための金型のようなもので、マーケットプレイス(AMIが配布されている場所)から、ダウンロードすることもできますし、自分で作ることもできます。
とくに、マーケットプレイスで、各種ソフトウェアの公式が配布しているものが、大変有用で、さまざまなディストリビューションのLinuxや、Windowsサーバ、WordPress、Movable Typeなどがあります。
図 AMIはインスタンスを作るための金型のようなもの
駆け出しエンジニアがAWSを学ぶのに、Linuxの知識は必須か?
最近、駆け出しエンジニアの方を中心に、Linuxやネットワークの学習をスキップして、AWSやDockerの学習から始めるケースがあるようです。これについて、侃々諤々の議論もあるようですが、私としては「用途によるかなあ……」という意見です。
ご紹介したようにEC2は、ボタンをポチポチするだけで、簡単にサーバが立てられます。社内のサーバ職人のような人にお伺いを立てなくても、プログラマが気軽に作れるわけです。なので、実験をしたり、ちょっとした用途には、大変良いでしょう。
しかし、顧客が絡んだら話は別です。自分が理解できていないものを顧客に納品すべきではありません。 あなたが町の定食屋に入った時に、得体の知れない宇宙生物のお肉を出されても、困ってしまうでしょう。
食べることのリスクや、メリット、調理法がわかっているのならともかく、自分も、定食屋の人も、どちらもわからないようなものを、「 今日のA定食です」と出されて、「 ハイそうですか」と、食べるでしょうか。宇宙生物のお肉を食べて、何が起こるのかわからないのと同じように、サーバやネットワークを理解できていないなら、納品しないべきです。何が起こるかわかりません。
AWSの知識、Linuxの知識、用途によってしっかり学ぼう
AWSは、大変簡単・便利なものではありますが、一方で、自由度も高く、自分で設計するものです。
私の書いた「図解即戦力 Amazon Web Servicesのしくみと技術がこれ1冊でしっかりわかる教科書」でも、「 実用的でない」と感想を持つ方がいらっしゃいますが、AWSを使用する上での必要な知識は、書いてあります。本書の内容で、「 自分でインスタンスを立てられないな」と思ったのなら、それはAWSの知識不足ではなく、サーバやネットワークの経験・知識の不足 です。
サーバは、自分のプロジェクトに合ったものを、自分で考えて立てるべきもので、誰かが「これがオススメです」というものを選ぶようなものではありません。似た例を参考にできたとしても、設計するのは自分自身です。
急がば回れという言葉もありますから、具体的なイメージがわかない場合は、サーバ構築の知識を増やして、もう一度挑戦すると良いでしょう。
文中の図は『図解即戦力 Amazon Web Servicesのしくみと技術がこれ1冊でしっかりわかる教科書 』 より引用しております。おかげさまで発売後わずか2年ですが、10刷を迎える大ヒットとなりました。
この連載は、その10刷記念として企画されたものです。書籍のほうもよろしくお願いしますね!