Kindle本「AWS しくみと技術がしっかりわかる教科書」のまとめ。
点数
79点
感想
LAN、IPアドレス、DNS, などネットワークの基本的なことから書かれていて、本当の初心者向けの内容だった。 個人的には知っていることばかりで物足りない内容だったが、丁寧でわかりやすい書籍だと思う。
基本
Direct Connect
AWSのパートナーの設備に用意された相互接続ポイントを介して、AWSと専用線接続することができる。 東京都品川区にあるエクイニクスのデータセンター「Equinix TY2」に、東京リージョンの相互接続ポイントは設置されている。
AWSアカウントを分ける
複数のプロジェクトで同じAWSアカウントを使うと、費用が曖昧になり管理も複雑になる。 プロジェクトや費用の管理する単位で、AWSアカウントを分けるのが一般的。
Amazon Consoleモバイルアプリ
リソース状態を確認できるアプリ。
AWS Amplify
Webとスマホアプリ開発のためのフレームワーク。
EC2
EBSのスナップショット
EBSのスナップショットは、初回は丸ごと保存されるが2回目以降は差分のみ保存される。AMIを作成したい場合は、スナップショットから作成する。
※ EC2インスタンスからAMIを作成すると、スナップショットとAMIが作成される。
AMI=スナップショット+インスタンスを構成する管理情報
S3
子バケットを作ることはできない
バケットはフォルダではないので、バケット内に子バケットを作ることはできない。
S3バケットのアクセス制限
3種類ある。
- バケットポリシー
バケット事に許可するIAMユーザーを登録 - ユーザーポリシー
IAMユーザー毎にアクセス可能バケットを登録 - ACL
他のAWSアカウントに対して権限を設定できる
バケットが少ないときはバケットポリシー、ユーザーが少ないときはユーザーポリシー、を使うと設定が楽。
バケットポリシーとユーザーポリシー
バケットポリシーとユーザーポリシーでは、リソース、アクション、エフェクト、プリンシパルを設定することができる。
用語がわかりづらいが、誰が(プリンシパル)、何に対して(リソース)、何を(アクション)、できるorできない(エフェクト)、を決められるだけのこと。
- リソース
バケット, オブジェクト - アクション
GET, PUT, DELETE - エフェクト
Allow, Deny - プリンシパル
IAMユーザーなど
ブロックパブリックアクセス
バケットポリシーやユーザーポリシーよりも上位に位置する制限で、バケット単位で全ユーザーにアクセス許可するかを設定する機能。バケットポリシーやユーザーポリシーで誰でもアクセスできるように許可しても、ブロックパブリックアクセスが「ブロックする」になっている場合はアクセスできない。
全許可は慎重に行うべきだるため、この設定が後から追加された。
バージョニング
バケット単位で設定可能。有効にすると、間違えて変更や削除したファイルの復元が可能。
デフォルトは無効。
S3 SelectとAmazon Athena
S3にアップされたCSVおよびJSONファイルに対して、SQLのSELECT文を実行することができる機能。
S3 Selectは手軽に使うことができる。
- S3 Select
1ファイルのデータに対してSQLで集計や検索ができる。
マネジメントコンソールから簡単に実行できる。CLI、SDKにも対応している。 - Amazon Athena
S3 Selectと違って、どのような検索をするのかを事前に構成する必要がある。
複数ファイルを対象にすることができる。
実行の度に分析用のサーバが自動的に作られて実行されるので、実行したときだけ費用がかかる。
VPC
インターネットゲートウェイ
インターネットゲートウェイはVPC1つに対し1つしか設置することはできない。
本物のネットワークではサブネット間通信はルーターを介して行なわれるが、VPCの場合は直接通信することができる。
VPCには物理的なルーターがなく、ソフトウェアがルーティングを行なっている。
ルーティングはルートテーブルに従って行なわれる。
ルーターやインターネットゲートウェイには明示的なIPは振られない。
DHCP
EC2やRDSのインスタンスにはDHCPniよって、自動的にプライベートIPが割り振られる。
VPCの先頭4つと最後のアドレスは予約されているため、DHCPで使用されない。
(内部的に、ルーターやインターネットゲートウェイに割り振られている)
NAPT(IPマスカレード)とNAT
- NAPT
1つのグローバルIPと複数のプライベートIPを変換する=AWSではNATゲートウェイ - NAT
1つのグローバルIPと1つのプライベートIPを変換する=AWSではインターネットゲートウェイ
NAPTは外からのリクエストに対してはアドレスの変換を行なわない。(内から外へのリクエストに対するレスポンスは変換する)
簡単にまとめると、
インターネットゲートウェイ=外からのリクエストをアドレス変換する
NATゲートウェイ=外からのリクエストをアドレス変換しない
NATゲートウェイ
社内だけで使いたいサーバであっても、ソフトウェアアップデートのためにインターネットにつなぎたいこともある。
この場合はNATゲートウェイを使用する。
NATゲートウェイは、サブネットからインターネットに接続できるが、インターネットからサブネットには接続できないようにすることが可能。
セキュリティグループとネットワークACL
VPCのファイアウォールにはセキュリティグループとネットワークACLがある。
- セキュリティグループ
インスタンスに割り当てる。
許可するものだけを指定。
ステートフル(レスポンスは自動的に許可される)。
すべてのルールを確認して許可・拒否が決められる。 - ネットワークACL
サブネットに割り当てる。
許可・拒否のどちらかを指定。
ステートレス(レスポンスも明示的に許可する必要あり)。
ルールの番号順にルールが処理される。
VPCエンドポイント
VPC内からVPC外(S3など)へ接続するための接続点を作ることができるサービス。
S3やDynamoDBなどVPCの外にあるサービスは、せっかくAWSで作成しているのにVPCと接続するにはインターネットを経由する必要がある。
そこで、S3やDynamoDBなどの非VPCサービスとVPCを直結することができるのが、エンドポイントサービスである。
※使うのはS3とDynamoDBだけと考えて良さそう
VPCの出口としてエンドポイントを設定することでS3やDynamoDBに直接接続できる。
インターフェイスエンドポイントとゲートウェイエンドポイントの2種類がある。
インターフェイスエンドポイント:プライベートIPを持つネットワークインターフェイス、AWS PrivateLinkという仕組みを使っている
ゲートウェイエンドポイント:ルートテーブルに記載してルーティングするタイプ、S3とDynamoDBはこちらのタイプで接続できる。ゲートウェイエンドポイントの使用量は無料だが、EC2と同様のデータ転送料金がかかる。
RDS
DynamoDB
キーバリューストア型のデータベース。
キーバリューストア型は、納めるデータに書式はない。
カラム数もバラバラでよければ、データ型も指定しない。
テーブル同士の連携もない。
そのため高度な検索はできないが、その代わりリレーショナル型よりもはるかに高速。
Amazon ElastiCacheというインメモリ型データベースもある。
メモリに保存するので超高速だが、インスタンス再起動時にデータは消えてしまう。
Redis用とMemcached用があり、どちらもメモリキャッシュ型キーバリューストアのデータベースである。