AWSのEC2でサーバー構築
想定読者
- クラウドって便利なんでしょ?詳しいことはよく知らないけど。って人
- 手順としてなんとなくの理解はしているけど、EC2の設定時に聞かれている用語がそれぞれ何を意味しているかあまり理解できていないって人
ゴール
EC2の作成における各設定の内容についてざっくりと理解し、
sshでEC2インスタンスに接続できる状態になっている。
※PCはwindows、ツールはtera termを使用することを想定しております。
EC2 is 何
AWSのセンターが保有しているサーバーの一部を借りて、EC2というサーバーの役割を持つ仮想化領域
を構築することができ、自社でハードウェアや設備を購入、準備することなく、インターネット経由で設定できるため、低コスト且つ短時間での構築が可能になる
大変便利なサービスでございます。
オンプレとクラウド(EC2)の比較
オンプレ | クラウド | |
---|---|---|
構築に要する時間 | 機器調達から設定まで、数ヶ月の時間を要することもザラ。 | 数分で立ち上がる |
コスト | コストがかかる | 無料から利用可能 |
カスタマイズ性 | 自由度高い。1から自社で構築するため、カスタマイズ性に優れている。 | 自由度は十分に高いと言って問題ないと思いますが、一定のパターンで提供されているクラウドでは対応できないケースも考えられる |
セキュリティ | 自社ネットワークなので安全(第三者が入りにくい) | 他のユーザと同居するため、オンプレと比較するとやや不安が残る |
連携 | 社内システムとの連携・統合がしやすい | 社内システムとの連携ができないことがある(フルカスタマイズができないため) |
それぞれにメリット・デメリットがありますが、現在ではインターネット上に仮想のサーバーを置くクラウド(ここで言うところのEC2)が主流になってきている。
実際に構築してみる
AWSにログイン後の初期表示画面からEC2の構築手順までを解説。
リージョンの選択
① リージョンがデフォルトだと日本になっていないため、アジアパシフィック(東京)を選択する。(画面右上の赤枠部分から選択)
リージョンとは
サーバーやストレージはクラウド事業者のデータセンターにあり、データセンターが設置されている独立したエリアのことを「リージョン」と呼んでいます。(サーバーやストレージ、ソフトウェアなどをネットワーク経由で利用できるクラウドサービスですが、物理的なサーバーやストレージが存在しないわけではありません。)
物理的に離れたエリアを選択するとレイテンシ(通信遅延)に影響が出るので特別な理由がない限りは国内のリージョンで設定するのがベター。ちなみにどのリージョンを選択してもサービスの利用自体は可能。
② 検索窓から「EC2」と入力し、クリック。
EC2設定画面へ遷移します。
画面中央の「インスタンスの作成」ボタンをクリックし、詳細な設定を行っていきます。
AMIの選択
AMIの選択を行います。
今回は無料で使用できるLinuxのものを使用します。
AMIとは
Amazon マシンイメージ (AMI) は、ソフトウェア構成 (オペレーティングシステム、アプリケーションサーバー、アプリケー>ションなど) を記録したテンプレートです。AMI から、クラウドで仮想サーバーとして実行される AMI のコピーであるインス>タンスを起動します。以下の図に示すように、1 つの AMI の複数のインスタンスを起動することができます。
※公式より抜粋
AMIはWindowsやLinuxなど、ほとんどのOSをサポートしており、AMIを選択することでOSの自動設定が行われるため、我々はOSより上のレイヤーをカスタマイズし、利用するようなイメージとなります。
今回は無料枠で使用できるものを選択します。
タイプ名「t2.micro」の行を選択し(赤枠の箇所)次の手順へ進みます。
ちなみに、このt2.microという名称。ちゃんとした規則性に則って命名されています。
それぞれ分解していくと
- 「t」: ファミリー
- 「2」: 世代
- micro : インスタンスの容量
このような構造になっております。
今回の「t2」は汎用系とされていますが、「H1」「D2」はストレージ最適化、「R4」「x1」はメモリ最適化など、特定の用途に特化したようなマシンも提供されているため、実際に開発を行う際にはこのあたりを吟味して、適当な選択をしていく必要があります。
選択が完了したら「次の手順へ」をクリック
「確認と作成」ボタンは押さず、一つ一つ手順を確認していくので間違えないように。
インスタンスの詳細設定
この画面ではインスタンスの詳細設定を行っていきます。
【インスタンス数】
インスタンスとはサービスを利用する単位のこと指します。
仮想サーバー(EC2)一つ一つのことだと思えばOK。
今回はデフォルトの「1」のまま進めていきます。
【購入のオプション】
スポットインスタンスとは、AWSが所有している「現在使われていない予備のコンピューティング容量」を
破格の安さ(最大90%OFF)で利用できるインスタンスです。
スポットインスタンスの入札価格を事前に設定し、売りに出された金額と入札価格がマッチした場合、
インスタンスの購入が行われるという仕組みです。(価格は常に変動します。)
ただし、これはあくまでも予備として提供されているもので、
途中で削除される可能性が十分にあるため、一時的な拡張の用途で利用するなど使い方には工夫をする必要があります。
今回はスポットインスタンスの利用は行わずに進めていきます。
【ネットワーク】
Virtual Private Cloud (VPC) という、AWS アカウント専用の仮想ネットワークを選択します。
VPC は、AWS クラウドの他の仮想ネットワークから論理的に切り離されており、AWS のリソース(今回の場合 Amazon EC2 インスタンス)を VPC 内に起動できます。
つまり、VPCという仮想ネットワーク内にEC2のインスタンスを設置する、というイメージになります。
今回VPCの設定は行っておりませんが、デフォルトで用意されたものがあるのでそちらを使用していきます。
【サブネット】
異なるEC2リソースを互いに、またはインターネットから隔離するために使用できるVPCのIPアドレス範囲。サブネットはそれぞれ1つのアベイラビリティーゾーンに存在します。
EC2にアタッチされるブロックレベルのストレージサービス、EBSの設定を行っていきます。
EBSはEC2と物理的なつながりはなく、ネットワークで接続されており、永続的にデータを保存することが可能です。
EC2はセキュリティグループという通信制御の設定があるが、EBSはセキュリティグループの対象外のため、全ポートを閉じても利用可能です。(セキュリティグループの設定はこのあとに続く画面で設定を行います)
今回はデフォルトの状態で進めていきます。
キーと値の設定を行います。
ここでは、例として、インスタンス名(name)の値を「OfuneSample」として設定をしております。
それぞれ任意の内容で設定を行いましょう。
最後に、セキュリティ設定。デフォルトではSSHのみが設定されています。
「ルールの追加」をクリックするとタイプ
で選択したものに対応したプロトコル
、ポート範囲
が設定され、公開する範囲をソース
で設定します。0.0.0.0/0
は全てのユーザに対して公開することを意味します。
今回はEC2に接続できることを確認することを目的としておりますので、SSHのみで進めていきます。
デフォルトの状態のまま「確認と作成」をクリックします。
次画面でこれまでの設定内容の確認画面が表示されますので、内容に間違いがないことを確認して「起動」ボタンをクリック。
すると、↑のような警告画面が表示されます。
一番上のプルダウンから「新しいキーペアを作成」を選択後、お好みのキーペア名を入力し、「キーペアのダウンロード」ボタンをクリックします。
そうすると「キーペア名.pem」というファイルがダウンロードされます。
これを使ってインスタンスにアクセスすることになる。
ここまでできたら、「インスタンスの作成」ボタンをクリック。
ここで設定して名前を使用して、今後EC2インスタンスへアクセスすることになります。
作成したEC2インスタンスにアクセスしてみる
Tera Termというソフトを使用していきます。
※インストールされていない方は各自事前にインストールをお願い致します。
画像赤枠部分のIPv4 パブリック IPでEC2インスタンスに接続しますのでコピーをしておきましょう。
Tera Termを起動するとこのような画面が表示されるので、先ほどコピーしたIPを貼り付けてOKを選択します。
次にこのような画面が表示されるかと思いますが、「続行」を選択して次に進みましょう。
1.ユーザ名はデフォルトで付与される「ec2-user」というものがあるのでこちらを入力。
2.プレインパスワードを使うがデフォルトで選択されているので「RSA/DSA/ECDSA/ED25519鍵を使う」に変更し、
右隣の「秘密鍵」ボタンをクリックし、先ほどEC2の設定時に作成したpemファイルを選択します。
OKを押して、、、
このような画面が表示されていれば成功です。