johnnyGameStudio’s blog

無能なゲームプログラマのぼやき ぎーくになりたい Twitter: https://twitter.com/JGS_Developer

AWS学習レポート①VPCを使ったネットワーク設計について

AWS学習レポート書いた経緯

最近全然アプトプットできていないのがとても嫌なのでレポート形式でちょっとずつ書くことにしました なにもしていなかったわけではないのです,AWSの本読んだり実際に触ってみたり、英語の勉強したり、マネジメント本を読んだりしていました。 正直個人製作のほうはほとんどできていません。新しいPCが届いたらUE4の記事書こうとは思ってます

で、AWSの勉強っていっても範囲はすごくひろくてそのすべてをうまいこと記事にする能力はないのでAWSが提供する基本的なサービスを一つずつ備忘録的に書き記していこうかなと思ったわけです 最終的にはAWSSAアソシエイトの資格を取得できるといいなって思ってます(とれるかな・・?)

AmazonVPCとは

Amazon Virtual Private Cloud (Amazon VPC) を使用すると、定義した仮想ネットワーク内で AWS リソースを起動できます。仮想ネットワークは、お客様自身のデータセンターで運用されていた従来のネットワークによく似ていますが、AWS のスケーラブルなインフラストラクチャを使用できるというメリットがあります。 ※AWSユーザガイドより引用

よくわからんですね。 要するにAWS上にプライベートネットワーク環境を構築できるサービスで AWSを用いてサービスを運用する場合、かなり多用することになる代表的なサービスの一つです

VPCを使ってネットワーク設計をする際のポイント

リージョンの選択

リージョンとはデータセンターのある場所だと考えていればいいと思います(東京とかオレゴンとか)
リージョンはAZ(アベイラビリティゾーン)と呼ばれる複数のデータセンターで構成されており、東京には現在4つのAZが用意されています
リージョンを選択する際には以下のポイントを気を付ける必要があります

  1. 法規や社内規定を満たすか
    データには保存先の国の法律が適用されるため、社内規定には触れないかどうか、保存先の国では問題ないかなど考慮する必要があります

  2. ユーザとの距離
    データセンターとユーザーの距離が物理的に離れていると、通信速度がどうしても遅くなってしまいます。
    そのため、サービスの内容によっては設置したリージョンから離れた場所にいるユーザだと満足のいくサービスの提供ができない可能性がでてきます。
    ちなみに東京リージョンとアメリバージニア北部リージョンのレイテンシーの差は200ミリ秒ほどあります。

  3. 使いたいほかのAWSのサービスが使えるかどうか
    VPCはネットワーク環境を構築するサービスなため、多くの場合ほかのAWSのサービスと連携させます
    しかし、新サービスなどは一部のリージョンでしか利用できない場合があるため、そもそも利用できるリージョンを選ぶ必要があります

  4. コストパフォーマンス
    AWSのサービスの価格はリージョンによって異なるため、価格の安いリージョンを選ぶことでコスト削減が見込めます

サブネット

サブネットとは大きなネットワーク環境をさらに小分けに分割したネットワークのことです
サブネットは基本的に独立しており、明示的に関係性を明らかにしない限り干渉しあうことありません
なぜ分割するかというと主な理由は以下の通りです

  1. 障害を広げないため
    物理的に隔離することで一つのサブネット内で障害が発生してもその影響を全体に広げない効果があります

  2. セキュリティ上の理由
    サブネットをわけることで別々の設定ができるため「特定のサブネットのみアクセスが可能にする」といったことが可能になります
    また、インターネットに接続するサーバーだけのサブネットを作り、ローカルネットワークから隔離することでセキュリティを高めたりすることができます

Internet Gateway

サブネットを作成するだけではインターネットに接続することができません
インターネットに接続するためにはInternet Gatewayへのルートを設定したカスタムルートテーブルを作成してサブネットに関連づける必要があります
なので、作成するサブネットはインターネットに接続する必要があるかなどを考える必要があります
また、インターネットに接続できるようにしたサブネットを「パブリックサブネット」、接続できないサブネットを「プライベートサブネット」と呼びます

パブリックIPアドレス/Elastic IPアドレスの割り当て

インターネットに接続するにはパブリックIPアドレスの割り当てを行う必要があります
AWSのパブリックIPアドレスプールからランダムに割り当てられ宇パブリックIPアドレスを使用してもよいのですが、この場合インスタンスが再起動するたびに変化してしまいます(それで問題ない場合もある)
もう一つの方法はElasticIPアドレスです。ElasticIPアドレスはAWSアカウントごとに割り当てられた固定IPアドレスインスタンスに紐づけて使います
独自ドメインのホスト名とIPアドレスを関連付ける場合など、インスタンスのパブリックIPアドレスを変更したくない場合はこちらを使います

Security GroupとNACLの設定

Security Groupはインスタンスレベルで動作するのに対して、NACLはサブネットレベルで動作します
用途によって使い分ける必要があります
詳細は長いので以下のリンクを参考してください

docs.aws.amazon.com

まとめ

ようやくVPCについてだけでもブログにすることができました
基本的なサービスは随時アウトプットしていきたいです 正直結構端折っているので詳しく知りたい方は本を読むなり、気になったワードを検索したほうがいいと思います

参考文献

Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版

Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版

Amazon Web Services エンタープライズ基盤設計の基本

Amazon Web Services エンタープライズ基盤設計の基本