こんにちは田中(巧)です。
社内活動の中で多少要望も頂いたので、
今回はAWSでのWebConsoleによるEC2インスタンス立ち上げの手順を少し詳細に書こうと思います。
突然ですが、まずAWSのWebConsoleにログインすると次のような画面になります。
WebConsoleって?という人向けですが、
AWS(Amazon Web Service)で提供されるサービスは、主に2種類のConsoleで操作することが多いです。
前述画面のようなWeb上で画面から操作可能なHTMLベースのGUIツールと、
コマンドラインベースでAWSのサーバと通信するCLIツールです。
以前はサービスごとに提供されていましたが統合化されたツールも出てきています。
参考:http://aws.amazon.com/jp/cli/
今回は初〜中級者向けでWebConsoleからの設定方法です。
するとEC2のダッシュボードの画面に遷移します。
この画面ではにリージョン毎の利用状況が表示されています。
例えば、次の画像のResource部分では現在の利用数が表示されています。
これらの表示は、
例えば、「Running Instances」であれば、現在稼働しているEC2のサーバ数を示していたり、
「Volumes」であればEC2の関連サービスであるEBS の利用数です。
また、次の部分では、物理的にあるデータセンターの稼働状態を示しています。
めったにある事ではありませんが、データセンターに障害があった場合はここで判断ができます。
最後にひときわ目立つ、「Launch Instance」の目立つボタンがあります、
これを押すと新規にEC2のサーバを作成する画面に遷移します。
EC2サーバを作成するWizardでは、3つの選択肢が表示されています。
- Classic Wizard
- Quick Launch Wizard
- AWS Marcketplace
それぞれ簡単に説明すると、
Classic Wizardは1つ1つのサーバ設定をして、インスタンスを起動します。
Quick Launch Wizard はAWSで設定される「デフォルト」の設定で自動的に作成されるWizardです。
Classic Wizardに比べ、簡単ですが詳細な設定をすることができません。
AWS Marcketplace は、既にいろいろな設定をしてあるEC2のインスタンスを選択することで、
自分で設定しなくても、サービスがインストールされていたり、すぐに機能したりする選択詩です。
今回は手動で設定することが目的なので、Classic Wizardから進みます。
※Classic Wizard にチェックが入っていることを確認し「Continue」ボタンで進みます。
表示された次の画面では、上に先ほど見た名前を含むタブが表示されています。
これらはすべてAMIを選択するためのものとなります。
ここでAMIとは?という話ですが、たとえばデータセンター上でクラウドサーバが割り当てられたとして、
OSや最低限NWにつながる設定がされていないと、Web上から操作できないことになってしまいます。
そのため、EC2のインスタンスを作る場合には必ず、AMIから既にNW設定などが完了している状態を読み込みます。
※AMI=Amazon Machine Image
前述を踏まえて、それぞれ見ていきたいと思います。
- Quick Start
- My AMIs
- Community AMIs
- AWS Marcketplace
Quick Start ではAWSが標準提供しているOSが並んでいます。
My AMIs では、ログインユーザが作成した、Amazon Machine Image が表示されます。
Commnity AMIs では他者が作成し、公開しているAMIが利用できます。
AWS Marcketplace は前述のとおりです。
今回はやはり自分で設定するので「Quick Start」の中から、ごく標準的な「Amazon Linux」「64bit」を選択し、
「Select」のボタンて進みます。
表示された画面では、サーバのマシンスペックや作成する台数を入力します。
「Number of Instances」 では今回同様の仕様で作成するサーバの台数、
「Instance Type」ではサーバスペック、
「Availability Zone」 ではリージョン内のデータセンターグループの選択、
をそれぞれ選択、もしくは手入力可能です。
※今回説明の趣旨と異なるので、Request Spot Instanceについては省略します。
例えば、同じ設定のサーバをあらかじめ10台用意したい場合や、
デフォルトのサーバスペックでは、耐えない場合に等に設定値を変更します。
今回は起動だけ行うため初期値で問題はないのでデフォルトで進みます。
進んだ画面で表示されるのは、サーバ起動時のオプション設定です。
Kernel ID とRAM Disk ID はリージョン毎に異なる、固有のキーです。
この組み合わせ(ほぼ物理的な機械の組み合わせ)によって、起動が行われます。
今回はデフォルトのままで、自動的に設定される構成で進みます。
Monitering はEC2サーバの稼働状態を監視する「Cloud Watch」というサービスの設定有無を選択します。
「Shutdown Behavior」はOS無いでシャットダウン(OSの終了)が行われた場合の動作を示します。
StopとTerminate が選択可能で、Terminateにしておくと、シャットダウン後インスタンスがなくなります。
Stopの場合はインスタンスは残ったままで、Console等から起動し直すことができます。
IAM Role では、AWSのアクセス権のサービスと連動し、
AWSのどのユーザがアクセスできるか?を設定可能です。
今回は、そのまま次へ進みます。
表示された画面では、特になにも入力ができないですが、「Edit」ボタンを押すと、
EC2インスタンスが起動したときのストレージ設定ができます。
最初はRootVolume の画面です。
まず、RootVolumeとは何か?ですが、OSが入っていて起動するためのストレージのことを示しています。
つまり、今回の例ではAmazon Linux がインストールされるストレージのことです。
Volume Size はDisk のサイズです。(これ以上の説明はいらないですよね?)
Volume Type はディスクの種類、性能を示しています。
横の数字を調整することで、設定が可能です。
「Delete On Terminated」は意外と重要な項目で、EC2インスタンスをTerminateした後でも、
ディスクを残すかどうか?のチェックです。チェックが入っているときは、削除されます。
次に、EBS Volumeです。
これはユーザが論理的(実際のディスクは保管してないので)に保管しておいた、ディスクを選択したり、
新たに作成したりすることができます。
Snapshot ユーザが既に作成しているEBSイメージを選択できます。
あらかじめ準備しておくことができるため、データ等が入った状態で利用可能なことが特徴です。
Volume Size/Volume Typeは先の内容と同一になります。
Device は今回Linuxのため、OS上でのDevice認識の識別を設定します。
最後の「Delete On Terminated」は前述と同様です。
今回はデフォルトのまま特に設定せず進みます。
そして表示される画面が次の画面です。
この画面では起動時のパラメータ等が指定できます、
デフォルトではNameのみとなっていますが、このNameというのが意外と重要です。
EC2インスタンスを作成すると、起動されているInstanceの一覧等が表示されるのですが、
ここで名前を指定しないと、その一覧の中での見分けは数が多いと非常に難しくなります。
なので、【必ず】設定するようにしましょう。
また、このインスタンスを検索するためのKey等が設定可能ですが、今回は割愛します。
ここまで来ると設定も、インスタンスの設定から徐々に離れていきます。
下の画面が次の画面です。
ここではEC2インスタンスに接続するための、セキュリティキーの設定を行います。
と言っても、サーバ側の秘密キーの設定です。
今回の本題とは少し離れるのでサラっと説明します。
- Choose from your existing Key Pairs
- Create a new Key Pair
- Proceed without a Key Pair
「Choose from your existing Key Pairs」以前に作成した「Keypair」サーバの秘密キーを利用します。
「Create a new Key Pair」新たに専用の秘密キーファイルを作成します。
「Proceed without a Key Pair」秘密キーなしでアクセス可能な設定でEC2インスタンスを作成します。
※当然ですが、商用利用ではこの設定にしてはいけません。
インスタンスにアクセス可能な鍵の設定をしたら次へ進みます。
次の画面では外部からのアクセス設定を行います。
AWS上では「Security Group」の名称で設定がほぞんされ、
EC2インスタンスにアクセス可能になります。
余談ですが、ここでアクセス可能な設定を行わないと、外部から接続できないことになります。
- Choose one or more of your existing Security Groups
- Create a new Security Group
上にあげた2つの選択肢は、既に過去に設定された「Security Group」や
「Default」設定された「Security Group」を選択できます。
前の画面は、1つ1つ入力していく設定画面「Create a new Security Group」のものです。
NWに明るい方には特に説明しなくても、というところはありますが、
今回の趣旨は作成までの道のりなので説明します。
※お付き合いください。
「Group Name / Group Discription」名前と概要です。
後で識別できるように作成することで、
「Choose one or more of your existing Security Groups」で使いまわすことができるようになります。
- Create a new rule
- Port range
- Source
「Create a new rule」よく使われるプロトコル設定があらかじめ入っています。
代表例では「SSH」や「HTTP」等
「Port range」いわゆる、Port番号で、利用可能な番号を指定します。画面のe.g.にもある通り、範囲での指定も可能です。
「Source」いわゆるIPアドレスとNetMaskを設定します。
設定が完了したら「continue」ボタンで先に進みます。
すると、先ほどまで設定していた内容を、すべて一覧で確認することができます。
ボタンも、「continue」ではなく「Launch」になってますね!
確認してOKであれば「Launch」ボタンからインスタンスを作成します。
最後に数分で作成しますよ。という情報とInstance IDが表示されます。
余談ですが、保守運用をされる方の場合【必ず】この時に表示される
インスタンスID「Instance ID(s): i-caed2acf」の「i-caed2acf」の部分をメモして管理しましょう。
今回はWebConsoleから操作していますが、実際の運用では、コマンドから操作することも多く、
また、サービスごとを組み合わせる場合もこのインスタンスIDが割と便利(ないとちょっと不便)なことも多いからです。
以上までが、EC2インスタンスをWebConsoleから手動で作成する手順と設定内容の説明でした。
今回の目的上、省いた内容もそれなりにありますが、サーバを触ってみようという初~中級向けとして、
とりあえずサーバを立てることができる。という内容で書いたつもりです。
また、慣れてくると割と数分でインスタンスの起動まで操作することができます。
これを読んだ方のAWSへのハードルが少しでも下がれば良いのかなと。
今回はこの辺で失礼します。
また、何か書くと思いますので、よろしくお願いします。m(__)m