
AWSを初めから丁寧に Vol.2
AWSのサービスを利用する前に
AWSを理解する上では様々なスキルや知識が必要ですが、まずはやってみることが大事だと思います。
前回は基本的なクラウドやAWSの概要について勉強して行きました。
1. 設計
まずAWSを構築する前に設計という一番重要なことをする必要があります。
AWSやシステム開発をする上で、どのようなサービスを作り、どのように設計するのかが、今後の構築に影響します。
今回は下記のような構成で作成して行きます。
こういったAWS設計図というものをまずは作成し、全体像を具体化していきます。

※ AWS内の各サービスにはAWSシンプルアイコンというダイアグラムが用意されています。
設計図作成の際はこちらを利用するのが良いです。
まず図1の解説をします。
AWSを学ぶ上でまずこのような構成で構築するのが勉強になると思います。
この中で以下を解説していきながら構築していきます。
VPCネットワーク
サブネット
インターネットゲートウェイ
ルートテーブル
セキュリティグループ
DBサブネットグループ
RDSインスタンス
EC2インスタンス
2. 構築
<VPCネットワークの作成>
まずは、VPCネットワークを構築します。
図1の通り、カスタムVPC内に環境を作っていくことになります。
※ VPCとは、Virtual Private Cloudの略で仮想上ネットワーク及びマシンのこと。
仮想上で構築するため、実際のオンプレミスサーバーでのネットワークやマシン構築に比べて即座に作成することができます。

下記VPC作成画面にてVPCを作成してください。

<サブネットの作成>
次に先ほど作成したVPCに3つのサブネットを作成していきます。
サブネットとは、大きなネットワーク(VPC)を複数の小さなネットワークに分割して管理する際の管理単位となるネットワークのことです。
下記の添付画像を参照しながら作成してみましょう。



<インターネットゲートウェイの作成>
VPC及びサブネットの作成が完了したら、次はインターネットゲートウェイの作成をしていきましょう。
VPC内で稼働するサービス(EC2インスタンス VM)がインターネットを通じて外部と通信する際に利用するものです。
こちらも下記添付画像を参考に作成してみましょう。

作成したインターネットゲートウェイにVPCをアタッチします。


<ルートテーブルの作成>
ネットワークの経路を設定するコンポーネントです。
サブネット内の通信がどの宛先のネットワークに対して、どのコンポーネント(IGWとかEC2とか)に転送されて欲しいかを設定します。

作成したルートテーブルにインターネットゲートウェイへのルーティングを設定します。




<セキュリティグループの作成>
セキュリティグループはAWSにおいてファイアウォールの役割を果たします。
セキュリティグループはホワイトリスト方式のため、「何を許可するのか」のみを指定できます。
※ ホワイトリスト方式とは、あらかじめ「安全な対象」をリストへ定義し、対象外となるアプリケーションやプログラムの実行をさせないことでサイバー攻撃を防ぐ手法のことを言います。ホワイトリスト形式の場合、前述したようにリストに含まれないアプリケーション等は実行されない点が最大の特徴です。


下記の通り、2つのセキュリティグループを作成します。



<DBサブネットグループ>
ここまでVPC環境内でサービスを稼働するための準備をおこなってきました。
ここからDB及びEC2サーバーを作成していきたいと思います。
AWSサービスでRDSサービスを操作していきます。
RDSの「サブネットグループ」でDBサブネットグループの設定を行っていきます。

DBサブネットグループを作成していきます。



<RDSインスタンス>
ここまでくると残りはDBサーバーの構築とアプリケーションサーバーの構築のみになります。
まずは、DBサーバー(RDS)から作成していきましょう。
下記からデータベースの作成をしていきます。

次に、データベースの設定を1つずつ行っていきます。


データベースはMySQLを選択します。

詳細の設定を順番に行っていきます。


作成ボタンをクリックすると作成が完了します。(インスタンスが立ち上がるまで10分ほどかかります。)
<EC2インスタンス>
最後にEC2の作成をしてアプリケーションサーバーを作っていきましょう。
ここからはAWSサービスのEC2サービスを操作していきます。
下記の通り、EC2インスタンスの起動をおこなっていってください。




上記の設定後、作成するボタンを押下するとEC2サーバーの構築が完了します。
ここまでサイト構築のために最低限のインフラを作成しました。

これでEC2内でアプリケーションの構築を行えばサービスを公開することができます。
第3回ではAWSのセキュリティについて記載していきます。