紙一重の積み重ね

アラフォーのエンジニアがなれる最高の自分を目指して、学んだことをこつこつ情報発信するブログです。

【AWS学習】育児の合間にSysopsアドミニストレータアソシエイト学習③

f:id:yokoyantech:20180612125850p:plain

はじめに

AWS 認定 SysOps アドミニストレーター – アソシエイトの学習ログです。 育児の合間にこつこつ勉強しています。

目標資格

AWS 認定システムオペレーション(SysOps)アドミニストレーター – アソシエイト

学習方法

以下のサイトの問題をひたすら解いています。

aws.koiwaclub.com

以下、理解不足だったところをまとめます。

EXAM12

SQSのデフォルト保持期間

  • 4日間
  • 最大14日間

S3マルチパートアップロード

  • 4.7GBの動画ファイル(合計128GB)
  • 帯域は50%使用 このケースならマルチパートが使える。スループット改善が見込める

デフォルトVPCのデフォルトサブネット

  • privateIPが使用できる
  • パブリックIPを使うには別途設定が必要

ELBのConnection Draining

  • 実行中のリクエストを継続したまま、異常が発生したインスタンスに割り振らないための機能

docs.aws.amazon.com

バケットの書き込みACLと同等の権限

  • S3:DeleteObject

EXAM13

cloud formationの必須パラメータ

  • Resources
    • 唯一の必須セクション

docs.aws.amazon.com

OpsWorks

  • 完全マネージド型Chefサーバー
  • Chefと完全に互換性がある

S3バケットのアクセスコントロール

  • 誰でもオブジェクトをアップロードできる
  • アップロードした人がオブジェクト権限を管理する
  • 最も簡単な方法
    • バケットでACLを使用する
      • バケット/オブジェクト作成時にデフォルトで自分にFULL_CONTROLが付与される
      • 別アカウントのバケットにFULL_CONTROLを付与するにはACLしかない

qiita.com

AWSの一括請求(コンソリデーティッドビリング)

  • 複数のアカウントの使用料が合計して請求される
  • 使用量の統合
    • リザーブドインスタンスの適用など
    • 重量制割引の対象になる可能性もある

AutoScalingグループのEC2モニタリング

  • 起動設定を作成する際に、基本モニタリング、詳細モニタリングを有効化できる
    • 基本モニタリング:300秒
    • 詳細モニタリング:60秒
  • 管理コンソール経由でのデフォルトは基本モニタリング
  • AWS CLIやAPIを使用して起動設定を作成すると詳細モニタリングがデフォルトになる

docs.aws.amazon.com

EXAM14

ユーザーがグループのメンバーシップを管理することを許可するIAMポリシー

  • arnで指定したグループのメンバを更新できる
  • iam:AddUserToGroup
  • iam:RemoveUserFromGroup
  • GetGroup
{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "iam:AddUserToGroup",
      "iam:RemoveUserFromGroup",
      "iam:GetGroup"
    ],
    "Resource": "arn:aws:iam::account-id-without-hyphens:group/MarketingGroup"
  }
}

EC2インスタンスの復旧

  • CloudWatchアラーム+SNSで実現する
  • 自動的にインスタンスを復旧させることができる

docs.aws.amazon.com

connection drainingのタイムアウト値

  • アプリケーションサーバのセッションタイムアウトは2時間とする
  • Connection Drainingの最大タイムアウト値は1~3600秒
    • デフォルトは300秒
  • アプリケーションサーバに合わせて2時間としたいが、AWS仕様上1時間が最大

docs.aws.amazon.com

ELBにゾーンを追加する方法

  • コンソールまたはCLIからELBにゾーンを追加
  • インスタンスを別のAZで起動して、インスタンスを既存のELBに追加する

docs.aws.amazon.com

EXAM15

AWSリソースにタグをつける

  • 請求用のリソースにタグをつけれる(コスト配分を確認できる)
  • タグのキーの長さは127文字(UTF8)
  • S3バケットにもタグを適用できる

AutoScalingグループに対するCloudWatchの詳細モニタリング

  • 追加料金は不要
  • 1分間隔
  • 事前に選択した7種類のメトリクス

aws.amazon.com

画像配信の効率化

  • CloudFrontのエッジロケーション
  • Route53のLatency Based Routingを使用してより遅延が少ないリージョンから配信

4KB,100000IOPSのランダムリードIO性能が必要なNoSQL用のEC2クラスタ

  • hi1.4xlarge
    • インスタンスストレージを使用するストレージの最適
    • 120000回のランダム読み出しIOPS

セキュリティグループで同一サブネット内の通信を許可する

  • デフォルトセキュリティグループなら許可されている
  • 自分で作ったセキュリティグループなら、インバウンドの設定が必要
    • 全てのプロトコルとポートを許可

SNSが対応しているエンドポイント

  • Lambda
  • SQS
  • HTTP/S
  • Email
  • SMS

ELBのProxy Protocol

  • 接続をリクエストする送信元から、接続がリクエストされる送信元に接続情報を伝達するプロトコル
  • バックエンド接続にTCPを使う場合、デフォルトでリクエストヘッダーを変更せずにインスタンスに転送する
  • Proxy Protocolを有効にすると、以下をリクエストヘッダーに付与する
    • 送信元IP
    • 送信先IP
    • ポート番号
  • 利用する前提条件
    • ELBがProxy Protocolが有効になっているプロキシサーバの背後にいないこと
      • ヘッダーが2重に追加されてしまうため

docs.aws.amazon.com

EXAM16

CloudFormation

  • テンプレートとスタックから構成される
  • テンプレート
    • アプリケーションのデプロイ・実行に必要な全てのAWSリソースを記載したJSON形式のテキストファイル
  • スタック
    • AWSリソースのコレクション
    • スタックの作成中に、ユーザーはテンプレートをアップロードして、必要に応じてパラメータを記載する

CloudWatch

  • タイムゾーンの指定は必須ではない
  • 集計データは最小1分間隔

EBS-backedインスタンスのインスタンスストアボリューム

  • インスタンスストアボリュームとは
    • ephemeral
    • 物理的にアタッチされている
  • インスタンスストアが消えるパターン
    • インスタンスが停止した
    • インスタンスが終了した
    • 基盤となるディスクドライブで障害が発生した

IPアドレスを直接記述しているレガシーアプリのフェイルオーバー

  • セカンダリENIを作成する
  • プライマリENIにセカンダリプライベートIPアドレスを割り当てて、フェイルオーバーインスタンスに削除できるようにする
  • ELBとRoute53はDNSベースなのでこのケースでは使用できない

AutoScalingの順番

  • ヘルスチェックに失敗したインスタンスは終了してから、新しいインスタンスを起動する

EXAM17

ElasticIPの料金発生タイミング

  • 実行中のインスタンスに関連付けられていない場合
  • 停止しているインスタンスに関連付けられている場合
  • アタッチされていないネットワークインターフェイスに関連付けられている場合

Elastic IP アドレスを効率的に使用するため、Elastic IP アドレスが実行中のインスタンスに関連付けられていない場合や、停止しているインスタンスやアタッチされていないネットワークインターフェイスに関連付けられている場合は、時間毎に小額の料金が請求されます。インスタンスを実行しているときは、インスタンスに関連付けられた 1 つの Elastic IP アドレスに対して料金は発生しませんが、インスタンスに関連付けられた追加の Elastic IP アドレスがある場合、その追加分に対しては料金が発生します。

docs.aws.amazon.com

AZの選択について

  • AWSの推奨は、EC2インスタンス起動時にAZを選択しないこと
    • システムの健全性に基づいて最良のAZを自動的に選択する

CloudWatchのカスタムメトリクス

  • CLI、APIを使ってアップロードできる
  • アップロードに約2分、15分後にコンソールで確認できる
  • 名前空間は必須。タイムゾーンなどはオプション。

instance Store-Backed AMIから、EBS-Backed AMIへの変換

  • linuxのみ可能
  • WindowsのEC2からはは変換できない

docs.aws.amazon.com

請求額を予想するCloud Watchアラーム

  • 世界全体の請求額が表示される
  • 15か月間保持する
  • すべてのAWSサービスの料金が含まれる
  • 請求メトリクスデータは、バージニアリージョンに保存される

docs.aws.amazon.com

EXAM18

S3バケットと暗号化キー(SSE-C)

  • S3バケットのバージョン管理と同時に使用できる
  • 同じオブジェクトの異なるバージョンに対して、異なる暗号化キーを使用できる
    • どのオブジェクトバージョンにどの暗号化キーを使ったかは自分で管理が必要

プロビジョンドIOPSのスループットがアプリで実現できない原因

  • EC2の帯域幅(10GBネットワーク接続が使えない)
  • インスタンスがEBSに最適化されていない
  • アプリのボリュームに十分なIOがない

AWS Directory ServiceによるIAM統合

  • AWS Directory Serviceによって、IAMロールをActive Directoryユーザに割り当てる
  • AD Connectorを利用して、既存のオンプレミスADのユーザやグループも割り当てが可能

よくある質問 - AWS Directory Service | AWS

EC2の課金タイミングについて

  • 秒単位で課金
  • リブートも課金対象になる

aws.amazon.com

EXAM19

CloudWatchのAPI呼び出しの追跡

  • CloudTrailで実現できる
    • API呼び出しを監視して、ログファイルをS3に保存する

IAMの制限

  • 1アカウントに付き
    • IAMユーザ:5000まで
    • IAMロール:1000まで
    • グループ数:300まで
    • サーバ証明書:20まで

CloudWatchアラーム

  • できること
    • EC2の停止
    • SNSを使用したSMS送信
    • AutoScalingグループにスケールダウン通知
  • できないこと
    • AutoScalingの起動設定(launch config)にスケールアップ通知

VPCのCIDRブロックとサブネットのCIDRブロック

  • VPCのサブネットが1つの場合、VPCのCIDRブロックと重複しても良い
    • VPC CIDR 10.0.0.0/16
    • サブネット CIDR 10.0.0.0/16
      • ただし、2つめのサブネットを追加しようとすると重複エラーとなる

S3のサーバー側の暗号化(SSE-C)

  • Amazon S3 REST APIを使用する
  • 暗号化アルゴリズムの指定
  • 256ビットの暗号化キーの指定

docs.aws.amazon.com

EXAM20

SQSのキュー削除

  • 受信していないメッセージがあってもキューの削除ができる

CloudTrailの特徴

  • グローバルで有効になっている
    • IAM
    • STSなどのグローバルサービス
  • 単一のS#にログを記録する
  • リージョンごとに有効になっている
    • 2015年から全リージョンで有効化することができるようになった

プロビジョンドIOPSの考え方

  • ミッションクリティカルな低レイテンシーまたは高スループットワークロードに適した、最高パフォーマンスの SSD ボリューム
  • 8GB~16TB
  • 1GBあたり50IOPS
    • 400GBなら、最大20,000IOPSまで

docs.aws.amazon.com

マルチAZ構成のRDSのメンテナンスイベントの順番

  1. スタンバイに対してメンテナンスを実施
  2. スタンバイをプライマリに昇格
  3. 旧プライマリでメンテナンスを実行し、その旧プライマリがスタンバイになる

AutoScalingグループの削除

  • 最小サイズとdesired capacityを0に設定する

dev.classmethod.jp

本番環境と開発環境のコストを把握する

  • コスト配分タグとコスト配分レポートを使用する

docs.aws.amazon.com

EXAM21

S3のサーバー側の暗号化

  • バケットのバージョニングが有効になっているときにお客様が用意した暗号化キーを使用したサーバ側の暗号化を利用できる

docs.aws.amazon.com

RDSのメンテナンスウインドウ

  • セキュリティパッチ適用のメンテナンスイベントでは、DBインスタンスが強制的にオフラインになる

DynamoDB+モバイルアプリケーションのベストプラクティス

  • ルートアカウントのアクセスキー、シークレットアクセスキーで接続する場合
  • IAMのIDフェデレーション機能でIAMロールを使用する
    • Google
    • Facebook
    • Amazon
      • などAWS以外の外部システムのユーザーIDでサインイン
  • 現在では、Cognitoの利用が勧められている

docs.aws.amazon.com

VPNゲートウェイへのメインルートテーブル設定

  • VPC:10.0.0.0/16
  • パブリックサブネット:10.0.0.0/24
  • VPN専用サブネット:10.0.1.0/24
  • VPNゲートウェイ:vgw-12345
  • Destination:0.0.0.0/0 and Target: vgw-12345
    • 0.0.0.0/0はデフォルトルート

SQSの特徴

  • 水平スケーリングを容易にすることができる
  • 標準キューは、メッセージの順序は可能な限り維持されるが、送信時と同じ順序でメッセージお受信すること(FIFO)は保証できない。非同期処理。

SQL ServerのマルチAZ

  • サーバーミラーリングを使用する
    • Oracle
    • MySQL
    • PostgreSQL とは異なる

EXAM22

スケジュールに基づいたAutoScalling

  • 以下から、少なくとも1つを使用してグループのサイズを指定する
    • Min
    • Max
    • Desired Capacity

S3のパフォーマンス確保

  • 1秒あたり150個を超えるPUT要求が必要なケース
  • キー名にランダムなプレフィックスを追加する
    • タイムスタンプなど連続するパターンにするのはアンチパターン

IAMロールの適用範囲

  • グローバルに適用できる
  • IAMロールはリージョンに依存しない

Storage Gatewayのボリュームゲートウェイ

  • オンプレミスのアプリからiSCSIデバイスとしてマウントできるクラウドベースのストレージボリューム
    1. キャッシュ型ボリューム
    2. 頻繁にアクセスするデータへの低レイテンシアクセスが必要な場合に使用する
    3. データをS3に保存
    4. 頻繁にアクセスするデータサブセットのコピーをローカルに保存

    5. 保管型ボリューム

    6. データセット全体への低レイテンシアクセスが必要な場合に使用する
    7. 全てのデータをローカルに保存
    8. エンドポイントスナップショットをS3に非同期バックアップする

docs.aws.amazon.com

SNS通知が受け取れるエンドポイント

  • AWS Lambda
  • SQS
  • HTTPS
  • Email
  • SMS

EXAM23

EC2にSSHできない原因

  • セキュリティグループでSSHが許可されていない
  • 秘密鍵が正しくない
  • ログインユーザが間違っている
  • インスタンスCPU負荷が高い

IAMによるアクセス制御

  • IAMを使用して特定のインスタンスのOSへのアクセス権を許可・拒否することはできない
    • セキュリティグループを使用する

AWSで使用される権限タイプ

  • ユーザベース
  • リソースベース

Route53のリソースレコード

  • エイリアスレコードは、あるDNS名を別のAmazon Route53DNS名にマッピングできる
  • CNAMEレコードは、どこにでもホストされている任意のDNSレコードを指すことができる
  • zone apexに対して、エイリアスレコードを作成できる
    • CNAMEレコードは作成できない
  • エイリアスレコードが、CloudFront、Elastic Beanstalk、ELB、S3を示す場合ににはTTLを設定できない
    • CloudFront、Beanstalk、ELB、S3のTTLを使用する
  • AliasレコードはAWS内で利用する限られたDNSに対してのみ指定可能
  • CNAMEレコードはどこに対する別名指定が可能

VPCの考え方

  • 10.0.0.0/16(VPC)
    • 10.0.0.0~10.0.255.255の範囲が許可される
    • 10.0.1.0/24(プライベートサブネット)
    • 10.0.0.0/24(パブリックサブネット)
  • データセンターのCIDR
    • 10.0.54.0/24(重複するので破棄される)
    • 10.1.0.0/24(VPCのCIDR範囲外カノで通信できる)

docs.aws.amazon.com