未経験からのフルスタックエンジニア

スキルをつけよう!未経験からフリーランスエンジニアへの成長記録

AWS 学習履歴(2)~IAM・EC2・ストレージ・Snapshot・VPC~

AWS学習履歴の趣旨

AWSでデプロイをしたことはあるものの、AWSの理解に足りない部分があるのが悔しいと思い、UdemyのAWS講座で勉強を開始しました。

以下の記事の続きです。

atora1992.hatenablog.com

学習内容を全て残すことは量が莫大になるので無理ですが、『重要かな?と思った部分を記録として残そう!』というのが趣旨です。

更新頻度は不定期ですが、地道に続けていこうかと思います。

応援よろしくお願いします。

IAM補足

IAMには、どのような権限を持たせるかの設定ができます。

  • IAMポリシー:ユーザー・グループに対しての設定
  • IAMロール:リソース(EC2など)に対しての設定

EC2補足

Elastic IP

動的に変わらないIPアドレス(設定しない場合、EC2インスタンスを再起動するごとにIPアドレスが変更されます(新しくIPアドレスが割り当てられる)

EC2インスタンスのサイドバーからElastic IPを作成したのち、インスタンスと関連づけることで、EC2にElastic IPを付与できます。

bashシェルスクリプト)によるLinux設定の初期設定

EC2インスタンス作成時に、手順3の下に「高度な詳細」があります。
そこで、Linuxコマンドを記述しておくことで、EC2作成時に自動的にコマンドが実行されます。

ストレージ

ストレージ 説明
インスタンスストア EC2と不可分の物理ストレージ。EC2の一時的なデータ保存に使われる。(無料) ※EC2の停止・終了でクリアされます
EBS(Elastic Block Store) EC2とは独立管理されるストレージ。EC2とはネットワークで接続。EC2を終了しても永続的にデータが保持される。Snapshot(後ほど説明します)を取ることができ、EBSを簡単に丸ごとコピーできます。(有料)

EBS

  • EC2から他のAZ(Availablity Zone:各リージョン内の、複数の独立したロケーション。各AZは低レイテンシーのリンクで接続されています。)のEBSには接続不可
  • 1つのEBSに複数のEC2を紐づけることはできない
  • EC2に複数のEBSを紐づけることは可能
  • 他のEC2への付け替え可能
  • Snapshotでバックアップを取れる

Snapshot

ストレージのバックアップを簡単に取れます。SnapshotはS3に保存されます。(似たものとしてAMIがありますが、こちらはOSの設定に使うものです。)

  • 静止点(インスタンス停止時)での設定が推奨されています(データの整合性を保つため)
  • 2世代目以降は増分データを保存します(増分バックアップ)(1世代目を削除しても復元可能です)
  • 復元は他のAZのEBSにも可能です

簡単な手順の概略(あるEBSのコピーを取れます)

  1. EC2インスタンス停止
  2. EC2インスタンスのサイドバーから「ボリューム」を選択
  3. バックアップを取りたいボリュームを指定してSnapshotの作成
  4. 作成したSnapshotを選択して、ボリュームを作成
  5. もともと紐づいている(アタッチされている)ボリュームのデバイス情報を元に、新たに作成したボリュームをEC2にアタッチする

VPC(Virtual Private Cloud)

VPCAWSクラウド内でユーザーが定義した仮想ネットワークを構築できるサービスです。
複数のAZにまたぐことが可能で、AZ内に複数のVPCを設定することも可能です。
さらに、このVPCはサブネットでさらに中身を分割することが可能です。(VPCはサブネットとのセットが必須)。このサブネット内にEC2インスタンスを設置することになります。

VPCを外部リソースと接続するには以下で説明するパブリックサブネットAWSネットワークを使うか、エンドポイントを使用します。

VPCの設定の大まかな流れは以下の4ステップです。

  1. CIDR形式でIPアドレスレンジを選択
  2. AZのサブネットを選択
  3. インターネット経路を選択
  4. VPCトラフィック許可の設定

CIDR形式

IPアドレスの設定形式の一つです。
同じネットワークとして扱うIPアドレスの個数を調整できます。

IPアドレスは、0~255の数字の4つの組み合わせから構成されています。実際は、各桁は8つのバイナリ値(0か1)の集合です。

CIDR形式では、IPアドレスに続いてどの範囲を固定するかを指定できます。例えば以下の太文字部分で、IPアドレスの個数を調整しています。

10.5.0.xxx/16

上記の例では、/16と指定することで、左から16桁目まで(バイナリ値基準)が同じネットワークとして認識でき(10.5の部分)、右側の残った部分(0.xxxの部分)が自由に設定できる範囲(IPアドレスとして有効)となります。つまり、この例で設定できるIPアドレスの最小は"10.5.0.0"、最大は"10.5.255.255"となります。

推奨されているCIDRは上記の例で使った/16です。(VPCは/16~/25で設定が可能)

もし、VPCIPアドレスのCIDRを/16とした場合、そのサブネットとして設定可能なIPアドレスの例を挙げます。

CIDR 可能サブネット数 サブネットあたりのIPアドレス
/18 4 16379
/20 16 4091
/22 64 1019
/24 256 251

VPCのサブネット数の最大は200なので、それを念頭に置いてサブネットもCIDR形式で指定する必要があります。ただし、AWS側ですでに使用されているIPアドレスもあり、それは使用不可となります。

サブネット

CIDR範囲で分割したネットワークセグメント。
CIDRとしては/24が推奨されています。

サブネットは以下の2つに分けられます。

サブネット 説明
パブリックサブネット(Webサーバー) インターネットと接続できる
プライベートサブネット(DBサーバー) 直接インターネットと接続できない。インターネットから隔離することでセキュリティが高まる

サブネット作成で両者を分けるのではなく、そこにインターネット接続の設定をするかしないかで区別します。

パブリックサブネットでは、インターネットと接続するためにインターネットゲートウェイを設定、かつIPアドレスの自動割り当てを有効化する必要があります。

プライベートサブネットからインターネットに接続するには、パブリック側にNATゲートウェイを設置し、そこを介してインターネットと接続することになります。

インターネット経路の設定

経路の設定はルートテーブルにて行います。
ルートテーブルは、VPC(サブネット)作成時にデフォルトで作成されます。

まず、VPCがインターネット接続をできるようにするには、インターネットゲートウェイ(インターネットとの接続口)を作成してVPCにアタッチする必要があります。

その後、VPCと関連づいているルートテーブルにてインターネットゲートウェイを選択し、パブリックサブネットにしたいサブネットと関連づけを行います。こうすることで、関連づけられたサブネットはインターネットとの接続が可能(パブリックサブネット)となります。

NATゲートウェイ

NATゲートウェイを用いることで、プライベートサブネットからインターネット・AWSクラウドとの通信が可能になります。

こちらはElastic IPが必要で、有料となります。

実際には、パブリック側にNATゲートウェイを作成し、プライベートのルートテーブルでプライベートサブネットとNATゲートウェイをつなぐことになります。

VPCトラフィック許可の設定

セキュリティグループ

サブネット同士の通信制御を行えます。例えば、セキュリティグループを用いることで、パブリックからプライベートへの接続を制限したり、許可したりできます。

プライベート側のセキュリティグループにおいて、パブリックのセキュリティグループを指定することで、パブリックからプライベートへの通信が可能になります。

セキュリテイグループで設定したルールは、設定の順番関係なく全てが適用されます。

ネットワークACL

ネットワーク単位でアクセス制御(特定のIPアドレスを許可・不許可)ができます。(EC2インスタンス・サブネット作成でデフォルトで作成されます。デフォルトでは、インバウンド・アウトバウンド全て許可となります)

ルール番号をつけて設定します。(100、200、300..とつけていきます)
セキュリテイグループと違ってこの順番が大切です。ルールは上から順(番号昇順)に読まれます。ですので、はじめに全て許可してから後のルールで、あるIPアドレスのアクセスを不許可にしても、不許可になりません。先に不許可する必要があります。(あるIPアドレスのアクセスを不許可→全て許可、とすればちゃんと不許可も適用されます)

エンドポイント

グローバルIPをもつAWSサービスに対して、VPC内から直接アクセスするための出口です。

例えば、DBサーバーとして考えているプライベートサブネットとS3を接続したい時、エンドポイントをS3アクセスとして作成し(AWS側にデフォルトで設定があるので選択するだけです)、VPCを選択後、プライベートサブネットを選択するだけで、プライベートからS3へのアクセスが可能になります。

VPC間の接続

VPC Peeringというものがあり、VPC間を接続できます。
ただし、基本一対一で接続することを念頭において、VPC構成を考える必要があります。

また、他リージョンのVPCともDirect Connect Gatewayによって接続可能です。

VPCとの接続

オンプレ環境とVPCを接続することもできます

  • VPN接続
  • Direct Connect(専用線による物理的な接続)

次の記事へ

atora1992.hatenablog.com