【技術書勉強メモ】Amazon Web Services 基礎からのネットワーク&サーバー構築

「AWSをゼロから勉強したい」
「ネットワーク・サーバーの知識をつけたい」

上記のようにお考えの方は本記事を少しお読みください。

僕はWEBエンジニアを目指しプログラミングを勉強して半年で、本書を読みました。

WEB系の企業はインフラにAWSや GCPと呼ばれるクラウドを利用してサービスを運用しているケースがとても多いです。
そして、WEBエンジニアとして仕事をする以上、障害に耐える設計をしたり、障害時の問題の切り分けをする際に、こうしたクラウドサービスの知見は少なからず必要になることがわかり、本書を手に取りました。

結果的に、「AWSについての知見」に加えて、「汎用的なインフラ(ネットワーク)の知見」も得られ、かなりの良書でした。
(僕は社内でオンプレミスのネットワークの運用業務を始めたのですが、オンプレの知見も培われました。)

本記事では、『Amazon Web Services 基礎からのネットワーク&サーバー構築』を下記の点から整理します。

・AWSを利用した簡易Webアプリケーション構築の流れ

・AWS用語

・インフラ用語

・AWS構築の流れ

・コマンド

それでは参りましょう!

AWSを利用した簡易Webアプリケーション構築の流れ

  • リージョンの中のアベイラビリティーゾーンからVPC領域を構築
  • VPC領域にパブリックサブネットとプライベートサブネットを構築
    • パブリックサブネット内のパブリックルートテーブルには、「VPC領域内の通信は、内部でルーティング」「それ以外の通信は、インターネットゲートウエイに転送する」という設定
  • パブリックサブネットにインスタンス作成
    • 「パブリックIPアドレス」と「プライベートIPアドレス」の2つのIPアドレスを設定
  • パブリックサブネットにWebサーバーを構築
    • Apacheをインストール
  • プライベートサブネットにDBサーバーを構築
    • MySQLをインストール
  • DBサーバーにNATをゲートウェイを構築しインターネット接続可能にしてMySQLインストール

AWS用語

  • リージョン:地域に存在するデータセンター群のこと
  • アベイラビリティゾーン:1つのリージョンが分割された領域.データセンターを論理的にグループ化したもの
  • VPC:アベイラビリティゾーンを分割して作成されるプライベートなネットワーク空間.「ルーターやハブなどを用意して、環境を整える作業」に相当する
  • EAmazon Elastic Compute Cloud(Amazon EC2もしくはEC2):1つの仮想サーバー.起動された各サーバーの個体は「インスタンス」と呼ばれる.
  • Route53: AWSにおける DNSサーバー構成サービス.独自ドメイン名を利用する際に使用する
  • AMI(AmazonMachineImage):インスタンスを起動する際に用いるイメージファイル.このイメージは、OSがインストールされて初期アカウントの設定までが済んだもの
  • AmazonElasticBlockStore(EBS) :インスタンスが用いているストレージ
  • セキュリティグループ:AWSではインスタンスに対して構成されるセキュリティグループがパケットフィルタリングの役割を担う

インフラ用語

  • インターネットゲートウェイ:VPC領域においてサブネットをインターネットに接続する作業.インターネットに自分のネットワークにインターネット回線を引き込む作業と同一
  • デフォルトゲートウェイ:転送先が何も設定されていない(未知)ときの、デフォルトの転送先
  • ホスト:コンピュータやルータなどのネットワーク機器など、IPアドレスをもつ通信機器
  • IPアドレス:ネットワーク上の「住所」ネットワーク機器を接続するのに十分な数を確保したIPアドレスの範囲を定める.前半のネットワーク部と後半のホスト部に分けられる
  • CIDR(サイダー)ブロック:IPアドレス範囲
  • サブネット:CIDRブロックをさらに分割した領域.サブネットに分割するメリットは「相互に障害の影響が出にくい」、「サーバーごとの通信制限によりセキュリティ制を高められる」
  • グローバルサブネット:インターネットから接続できるサブネット
  • プライベートサブネット:インターネットから接続できないサブネット
  • グローバルIPアドレス:インターネットに接続する際に用いるIPアドレス
  • プライベートIPアドレス:インターネットで使われないIPアドレス.社内LAN等で用いる
  • ポート:1つのIPアドレスで同時に複数のアプリケーションを通信するための番号
  • エフェメラルポート:クライアント側で使われる、一時的なランダムなポート番号
  • DNS:あるドメイン名から、それに対応するIPアドレスを引き出す「名前解決」する仕組みのこと
  • DNSサーバー(DNSリゾルバ):IPアドレスとドメイン名を変更するサーバー
  • ルーティング情報:ネットワークにデータを流すための情報
  • ルーティングテーブル(ルートテーブル):ルーティング情報の設定.「宛先IPアドレスの値が、いくつのときには、どのネットワークに流すべきか」という設定.「宛先アドレス(ディティネーション) 流すべきネットワークの入り口となるルーター(ネクストホップ、ターゲット)」
  • EGP:大きなネットワークの番号を識別するAS(Autonomous System)番号をやりとりして、「どのネットワークの先に、どのネットワークが接続されているのか」を、大まかにやりとりする
  • IGP(InteriorGatewayProtocol):EGPの内部のルーター同士で、ルートテーブルの情報をやりとりする
  • パケットフィルタリング:流れるパケットを見て、通過の可否を決める仕組み
  • ファイアーウォール:外側から内側に流れるインバウンド、内側から外側に流れるアウトバウンドの2種類がある
  • 踏み台サーバー:プライベートサブネットに置かれたサーバーにアクセスするときに、経由するインターネットから接続可能なパブリックサブネットのWEBサーバー
  • NAT:IPアドレスを変換する装置.片側にパブリックIPアドレス、片側にプライベートIPアドレス
  • NAPT(IPマスカレード):1つのパブリックIPアドレスを複数のホストと共有するNAT
  • sendmail:「メールの送信や転送」を担当しているプログラム
  • ARP(Address Resolution Protocol):MACアドレストIPアドレスを対応させるプロトコル

コマンド

  • サーバーにリモートログイン
    • sshd(TeraTermやターミナルからのSSH接続を待ち受け、リモートからのコマンド操作を可能とするプログラム)がサーバーにインストールされていることで実行可能
  • HTTPアクセルによりコンテンツ取得
  • 疎通確認
    • ICMPプロトコルを利用
  • 宛先へのネットワーク上の経路確認
  • 特定のポートへの到達性確認
  • 名前解決
  • アプリケーションダウンロード、インストール、アンインストール

まとめ

『Amazon Web Services 基礎からのネットワーク&サーバー構築』を読了し、AWSを利用して簡易的なWebアプリを作成できる知見を身に付けることができました。

これで、少しAWSやインフラ用語の理解度も高まりましたね。

今後は現在Herokuで運用しているオリジナルサービスをAWSに替えてデプロイしたいです!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です