勉強日記

チラ裏

AWS Solution Architect Associate 試験対策 ch1_1

book.impress.co.jp


AWSサービス全体の概要

1-1 AWS Well-Architectedフレームワーク

  • AWSが数多くのユーザーにさまざまなクラウドサービスを提供してきて蓄積したベストプラクティス集
  • 定期的にチェックしよう
  • 5つの柱
    • 運用上の優秀性
    • セキュリティ
    • 信頼性
    • パフォーマンス効率
    • コスト最適化

1-2 AWSインフラストラクチャの概要

インフラ概要

@startuml

class Region
class AvailabilityZone
class DataCenter
class EdgeLocation

Region o-- AvailabilityZone
AvailabilityZone o-- DataCenter

@enduml

関連

  • リージョン
    • 世界に20余
    • 一覧
    • アジアパシフィック (東京) ap-northeast-1とか
  • AZ: Availability Zone
    • 20のリージョンに対し60
    • 複数のデータセンターの集合体
    • AZ間は冗長化された高速なネットワークで接続
      • AZをまたいだ構成にすることで、可用性が高まる
  • エッジロケーション
    • CloudFront, Route53等の提供
    • AZを上回る数の拠点
    • 地理的に近い拠点にアクセスすると低レイテンシーで効率よく通信できる

AWSサービスの範囲

グローバルサービス リージョンサービス AZサービス
特徴 リージョン非依存 特定のリージョン内で利用 特定のAZ内で利用
IAM
CloudFront
Route53
VPC
DynamoDB
Lambda
VPCのサブネット
EC2
RDS

1-3 アクセス制御サービス

IAM: Identity and Access Management 概要

  • ルートユーザー
    • 最初に利用するときに作るアカウント
    • クレカ情報とか登録してるやつ
    • 全管理権限をもつ
  • IAMユーザー、IAMグループ
    • ルートユーザを直接使うのは危険
      • 誤操作等
  • IAMポリシー
    • IAMユーザー、IAMグループに付与する権限
    • JSONで記述
@startuml
class IAMUser
class IAMGroup
class IAMPolicy

IAMUser -- IAMGroup
IAMUser -- IAMPolicy
IAMGroup -- IAMPolicy
@enduml

関連

  • AWS CLI, AWS SDK使用時に設定する認証情報はIAMユーザーごとに発行する
    • アクセスキーID
    • シークレットアクセスキー
  • アクセスキーID, シークレットアクセスキーを利用した認証は現在非推奨
    • IAM Role使え

1-4 ネットワークサービス

  • VPCはリージョンサービス

VPC: Virtual Private Cloud 構成

  • サブネット
    • VPC内のセグ
    • 1VPCにつき1つ以上
    • VPCのサブネットはAZサービス
      • AZをまたいだサブネットは作れない
  • IGW: Internet Gateway
  • ルートテーブル
    • サブネット単位で設定
    • パブリックサブネット
      • 0.0.0.0/0にIGW指定している
    • プライベートサブネット
      • 0.0.0.0/0にIGW指定してない
  • NATゲートウェイ
    • プライベートサブネットからインターネットアクセスするために使用するやつ
      • ルートテーブルの0.0.0.0/0にNATゲートウェイを登録する
      • プライベートサブネット -> NATゲートウェイ -> パブリックサブネット -> IGW -> インターネット
    • 透過的に冗長化されている
  • NATインスタンス
    • NATゲートウェイを使わない場合、プライベートサブネットからインターネットアクセスするのに使用
    • 冗長化の仕組みを作らないとSPOFになる
  • VGW, VPG: Virtual Private Gateway
    • オンプレ環境との接続に使用するゲートウェイ
      • Direct Connect
      • インターネットVPN
  • VPCフローログ
    • VPC内のENI: Elastic Network Interface で通信するトラフィックをキャプチャ
    • CloudWatch Logsに情報転送
    • 設定単位は複数
      • VPC
      • サブネット
      • ENI個別
  • Elastic IP
  • VPCピアリング接続
    • VPCピア機能とは
    • 通常、VPCは独立したプライベートネットワーク空間なので、VPC同士は直接通信を行えない
    • VPCピア機能を使用するとできる
      • 同じネットワークに存在しているかのように
      • ネットワークアドレスが一致または重複したら不可
    • できること
      • 自分のAWSアカウントのVPC
      • 他のAWSアカウントのVPCとの間
      • 複数リージョンまたぎ(リージョン間VPCピアリング)
    • VPCの既存のインフラで作成している
    • 通信の単一障害点や帯域幅ボトルネックは存在しない
  • VPCエンドポイント
  • セキュリティグループ/ネットワークACL
セキュリティグループ ネットワークACL
適用範囲 インスタンス サブネット
デフォルト動作 inbound: 全拒否 inbound: 全許可
outbound: 全許可 outbound: 全許可
ルールの評価 すべて 番号順
ステート ステートフル
(inboundが許可されたら戻りも許可)
ステートレス

VPC内で利用できるネットワークサービス

  • ELB: Elastic Load Balancing
    • ロードバランサーの種類
      • CLB: Classic Load Balancer
        • L4(TCP/SSL)またはL7(HTTP/HTTPS)
        • 標準的なやつ
      • ALB: Application Load Banalcer
        • L7(HTTP/HTTPS)
          • リクエストのクエリを判断
          • ルーティングにしたがって振り分け
            • コンテンツベースで特定のサーバーに振り分け可能
      • NLB: Network Load Balancer
        • L4(TCP/SSL)
        • 低レイテンシ・高スループット
        • 送信元のアドレスを保持
          • レスポンスはクライアントに直接返る
    • 特徴
      • 高可用性
      • 自動スケーリング
        • 負荷に応じて自動スケーリング
        • ELB自体冗長性確保
        • エンドポイント
          • ELBに割り当てられたDNS
          • VPCサブネットのIPアドレスが自動的に割り振られるが、これが変動するため名前解決用
      • セキュリティ機能
        • SSL復号機能
        • セキュリティグループをアタッチ可能
      • ヘルスチェックとモニタリング
        • バックエンドインスタンスが正常に動作しているかチェック
        • スティッキーセッション
        • Connection Draining
          • サーバをELBから登録解除するさい、処理が完了するまで遅延させる
          • 処理の中断を避けるために使用する
        • メトリクス
        • S3へのログ保管
          • 通信のログ
      • 外部ELBと内部ELB
        • Internet-facing(外部ELB)
          • ELB自体がパプリックサブネットに配置される
          • ので、バックエンドインスタンスをパブリックサブネットに置く必要なし
          • 名前解決するとパブリックIP返る
        • Internal(内部ELB)
          • プライベートサブネットで使用
          • 名前解決するとプライベートIP返る
      • クロスゾーン負荷分散
        • 無効(デフォルト): AZごとに均一振り分け
        • 有効: AZをまたいで均一振り分け
  • Auto Scaling

その他のネットワークサービス

  • Route 53
    • 高可用性DNSサービス
      • パブリックホストゾーン
        • 外部向け
      • プライベートホストゾーン
        • 内部向け
    • Zone Apexレコードを指定するには...
      • CNAMEは使用できない
      • ALIASレコード使え
    • ルーティングポリシー設定可能
      • WRR: Weighted Round Robin とか
      • LBR: Latency Based Routing とか
  • Direct Connect
Direct Connect インターネットVPN
回線 専用線 インターネット
品質 高速・安定 比較すると低品質
コスト
導入期間
  • VGW: Virtual Private Gateway (仮想プライベートゲートウェイ)
    • VPG
    • Direct ConnectやインターネットVPNで接続する場合、予め用意しておく
    • VPCにアタッチして使用する
  • CloudFront
    • CDNサービス
    • グローバルサービス
    • 地理的に最も近いエッジロケーションからコンテンツ配信
    • オリジン: コンテンツ提供元
      • ELB
      • EC2
      • S3
      • オンプレミスのサーバー
      • など
    • 機能
      • SSLによる通信の暗号化
        • ユーザーが用意した独自のSSL証明書導入可能
        • CloudFront-バックエンド間をSSL暗号化通信にすることも可能
      • 署名付きURL
        • 一定時間だけアクセス可能なURL
      • カスタムエラーページ
      • 地域制限(地理的ブロッキング)
      • ストリーミング配信

1-5 コンピューティングサービス

EC2: Elastic Compute Cloud

  • 仮想サーバー提供サービス
  • インスタンス
    • 提供される仮想サーバー
  • ハイパーバイザー型仮想化
    • OSに直接ハイパーバイザーが乗っかるので、
      ホストOS型仮想化のような制約を受けない
  • AMI: Amazon Machine Image
  • ライフサイクル
@startuml

hide empty description
[*] --> pending : 初回起動
pending --> running
running --> rebooting : 再起動
rebooting --> running
running --> shuttingdown : 終了
shuttingdown --> terminated 
running --> stopping : 停止
stopping --> stopped
stopped --> pending : 起動
stopped --> terminated 
terminated --> [*]

@enduml

状態遷移

Lambda

  • サーバーレス
  • メモリ容量と処理時間で課金
  • 実行時間制限あり
  • イベント駆動型のアプリケーションを実行可能
    • S3にコンテンツがアップロードされたらEC2インスタンスへ連携する、とか
  • ExecutionRole
    • IAM Roleをアタッチできる
  • ロギング
    • 処理結果はCloudWatch Logsに保存される

API Gateway

  • Lambdaと組み合わせてサーバーレスアプリケーションを作ったりするやつ

その他のコンピューティングサービス