「AWS しくみと技術がしっかりわかる教科書」の感想・備忘録

スポンサーリンク

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種類ある。

  1. バケットポリシー
    バケット事に許可するIAMユーザーを登録
  2. ユーザーポリシー
    IAMユーザー毎にアクセス可能バケットを登録
  3. 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用があり、どちらもメモリキャッシュ型キーバリューストアのデータベースである。

コメント