AWS学習履歴の趣旨
AWSでデプロイをしたことはあるものの、AWSの理解に足りない部分があるのが悔しいと思い、UdemyのAWS講座で勉強を開始しました。
以下の記事の続きです。
学習内容を全て残すことは量が莫大になるので無理ですが、『重要かな?と思った部分を記録として残そう!』というのが趣旨です。
更新頻度は不定期ですが、地道に続けていこうかと思います。
応援よろしくお願いします。
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のコピーを取れます)
- EC2インスタンス停止
- EC2インスタンスのサイドバーから「ボリューム」を選択
- バックアップを取りたいボリュームを指定してSnapshotの作成
- 作成したSnapshotを選択して、ボリュームを作成
- もともと紐づいている(アタッチされている)ボリュームのデバイス情報を元に、新たに作成したボリュームをEC2にアタッチする
VPC(Virtual Private Cloud)
VPCはAWSクラウド内でユーザーが定義した仮想ネットワークを構築できるサービスです。
複数のAZにまたぐことが可能で、AZ内に複数のVPCを設定することも可能です。
さらに、このVPCはサブネットでさらに中身を分割することが可能です。(VPCはサブネットとのセットが必須)。このサブネット内にEC2インスタンスを設置することになります。
VPCを外部リソースと接続するには以下で説明するパブリックサブネットのAWSネットワークを使うか、エンドポイントを使用します。
VPCの設定の大まかな流れは以下の4ステップです。
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で設定が可能)
もし、VPCのIPアドレスの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を接続することもできます
次の記事へ