SAAノート


storage

S3

  • 冗長化

    • デフォルトでAZ冗長構成となっている。

    • さらに冗長構成を高めるためには、クロスリージョンレプリケーションを使用する。

      • 使用するためにはバージョニングが有効である必要がある。

    • クロスリージョンレプリケーション設定後は、アクションに応じて非同期にレプリケーションされる。

    • その際、今までのオブジェクトは手動で(CLIなどで、マネコンは不可)レプリケーションが必要。

    • また、双方向レプリケーションするためには、お互いに設定が必要。

  • 高速化

    • prefix

      • 処理並列化の工夫として日付やタイプ別のprefixを付与し、prefix毎に並列化することが可能。

    • Transfer Acceleration

      • グローバルなサービスで長距離にわたって高速転送をする場合は、Transfer Accelerationを使用する。

  • オンプレとの連携

    • ストレージゲートウェイを使用する。

    • 標準的なプロトコル(NFS, SMB, iSCSI)を使用可能。

    • 2つのタイプがある。

    • 保管型ボリューム

      • プライマリをローカル、AWSに非同期にバックアップ可能。

      • データは、EBSスナップショットとしてS3にバックアップされる。

    • キャッシュ型ボリューム

      • プライマリをS3として使用し、アクセスするデータをローカルに保持する。

  • エンドユーザーへの一時アクセス許可

    • 事前署名付きURLを使用可能。

  • ストレージクラス

    • Standard

      • 標準

    • Standard IA

      • 低頻度アクセス用

    • One-zone IA

      • 重要でなく、低頻度アクセス用

      • なぜかログファイルなら重要でないという解釈になる模擬問題もあって?となっているが...

    • RRS

      • より耐障害性が低く、Standardよりも高いため、非推奨方式

    • Glacier (Flexible Retrieval)

      • 長期保存用。

      • 最低保持期間が90日のため、それ以下で不要になる場合は他のクラスが選択肢となる。

      • 迅速読み取りも可能だが、数分のアクセス時間は必要。

      • 通常は、3~5時間で読み取り

      • 大容量取り出しは5~12時間で読み取り。

    • Glacier Instant Retrieval

      • より低頻度アクセスだが、取り出しはミリ秒単位(S3と同等)に必要なデータ向け。

      • 医用画像やニュースメディアなど。

    • Glacier Deep Archite

      • ~12時間で読み取り。

  • ストレージクラス分析

    • アクセスパターンを分析し、適切なデータを適切なクラスに移行するタイミングを判断できます。

  • 整合性

    • 2020年12月より、強い整合性モデルに変更されている。

  • MFA認証

    • 誤って削除するのを防ぐ目的で、削除時にMFA認証を設定することができる。

  • S3 Access Analyzer

    • AWSアカウントの外部からアクセスできるリソースに対してアクセス情報を分析する。

  • 暗号化

    • 暗号化を有効にすることで、アクセスログなども自動で暗号化される。

    • バケット作成時ではなくとも、後から設定することが可能。

    • Storage GatewayやGlacierは、デフォルト設定で暗号化が有効となる。

  • Vault lock (Glacier)

    • ロックにより変更禁止とすることにより、コンプライアンス管理を実施することが可能。

  • S3 Select

    • オブジェクトのフィルタなども可能。

    • これにより必要なサブセットのみのオブジェクトを取得するなどが可能となる。

    • より複雑な分析の選択肢としては、AthenaやRedShift Spectrumなどがある。

  • データの保護

    • オブジェクトのロックが可能。

  • 静的ウェブサイト

    • URLは、bucketname.s3-website-ap-northeast-1.amazonaws.comとなる。

  • バージョニング

    • バージョニング可能なのはS3のみ。(EBSやEFSはバージョニングできない)

  • ライフサイクル管理

    • S3は一定期間後のクラス変更や削除など様々なライフサイクルポリシーを設定可能。

      • EBSはライフサイクル設定できない(DLM定期スナップショットのみ)

      • EFSはIAに移動させる管理しか対応できない。

    • Glacierも一番最初の保存先選択した場合は、一定期間後に削除するポリシーなどを設定はできない。

EBS

  • EBSの種類

    • 汎用SSD

      • 通常用途。アプリケーションなどの環境用。

      • スループットについてはスループット最適化HDDより低い場合があるため注意が必要。

        • スループットは、gp3は1,000[MiB/sec]でgp2は250[MiB/sec]

        • IOPSはSSDの方が総じて良い。

    • Provisioned IOPS SSD

      • IOPSが16,000必要な高パフォーマンス用。

      • IOPSは容量に比例して最大64,000までプロビジョニング可能。(ただしNitro以外は最大32,000)

        • io1の場合、サイズ:IOPS = 1:50

        • io2の場合、サイズ:IOPS = 1:500

        • 参考

          • https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html#EBSVolumeTypes_piops

      • マルチアタッチも可能。

      • io2は最大スループットが1,000MB/secである

      • io2 Block Expressは最大スループットが4,000MB/secであり、最も性能が高い。

    • スループット最適化HDD

      • 500 MiB/sec程度の高スループット。

      • IOPSはSSDよりも低い。

      • ルートボリュームには設定不可。

    • コールドHDD

      • アクセス頻度の低い用途。

      • 250 MiB/sec程度のスループット。

      • ルートボリュームには設定不可。

  • EBSの冗長化

    • ミラーリング(RAID1)は最も、回復性が高い。

    • その他には、スナップショットやAMIの作成があるが、回復性は低い。

  • EBSのAZ・リージョン移動

    • 同じAZ内のインスタンスにしかアタッチできない。

    • EBS自体を移動することはできないため、スナップショットを作成し、別AZ・別リージョンで複製する必要がある。

  • マルチアタッチ

    • プロビジョンドIOPSのみマルチアタッチが可能。

  • DeleteOnTermination属性

    • インスタンス削除後もルートボリュームのEBSのデータを保持したい場合は、この属性を無効化することが必要。

  • デタッチ方法

    • 停止すればデタッチすることが可能(終了までしなくてもよい)。

  • Amazon DLM (Data Lifecycle Manager)

    • 定期スナップショットなどの設定が可能。

    • 保存先はS3だが、ユーザーが指定することができない。

  • EBSの変更

    • ボリュームサイズやボリュームタイプはデタッチすることなく変更することが可能。

    • ただしボリュームサイズを減らすことはできない。

    • https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/requesting-ebs-volume-modifications.html#elastic-volumes-limitations

  • ファイルシステムの作成

    • 新規のEBSをアタッチした場合は、ファイルシステムを作成する必要がある。

    • フォーマット後、マウントが必要。

    • マウントターゲットは不要(EFSのみ)

EFS

  • 接続方法

    • AZ毎に1つのマウントターゲットが必要

    • NFSv4を使用

  • ライフサイクル管理

    • 自動的なファイルストレージ管理

    • 30日アクセスされなかったファイルをEFS IAクラスに移行する。

    • データ削除などのライフサイクル管理設定はできない。

  • S3との比較

    • S3と異なりインターネットからの直接アクセスは不可能

    • EFSは強い整合性やファイルのロックなどが可能であり

Snowball

  • Snowball edge

    • 安全なデバイスを使用し、ペタバイト規模の大容量データを転送するサービス。

    • 物理的なハードウェアを用いた移転が可能。

  • Snowball edge Compute Optimized

    • 42TBのHDD容量

    • 機械学習、動画分析向け。

  • Snowball edge Storage Optimized

    • 100TBのHDD容量だが、利用可能な部分は80TB程度。

高機能なストレージのIOPS比較

  • EBSのプロビジョンドIOPSは、最大64,000IOPSのベースラインまで。

  • EFSは、500,000超のIOPSまで。

  • Amazon FSx for Windowsは、数百万IOPSまで対応。

  • Amazon FSx for Lustreは、スーパーコンピューター用。


streaming

  • Kinesis Data Stream

    • データ欠落がなく耐久性があり、重複無し・順序維持をした伝送が可能。

  • Kinesis Data Streamのデータ保持期間

    • 保持期間のデフォルトは24時間。設定によっては365日まで変更可能。

  • データに対する分析タスク

    • KCL(Kinesis Client Library)で実施可能。

    • Kinesisアプリケーションは、複数のインスタンスを持つことができ、KCLワーカーが各インスタンスに対応する処理ユニットです。

    • レコードプロセッサはKinesis Data Streamsのシャードからデータを処理するユニットです。

    • 1つのレコードプロセッサは1つのシャードに対応し、複数のレコードプロセッサがKCLワーカーにマッピングされます。

  • Kinesis Firehose

    • S3やRedShift、Elasticsearch Serviceにロードできる。

      • DynamoDBを配送先に指定することができないので注意

    • lambdaと統合され、データ変換処理をしながら配信することが可能。


Database

DynamoDB

  • マルチAZ構成は不可。

  • Auto Scalingの設定はRead/Write双方ともに対応。

    • トラフィック変化に応じたスループット向上を行うことができる。

  • 登録・変更などをトリガにlambda実行などをする場合は、DynamoDB Streamを有効化する。

    • この変更情報は最大24時間保存される。

    • Streamを使わずに、LambdaとCloudWatch Eventsを連携することでも構築可能。

  • DynamoDB Accelerator(DAX)

    • 最大10倍のパフォーマンス向上が可能。

    • ただし高コストであり、恒常的な対策であるため、一時的な負荷増にはAuto Scalingを活用する。

  • 整合性モデルの変更可能

    • 結果整合性と強い整合性を設定で変更することができる。

RDS

  • 対応インスタンスタイプ

    • T,MおよびR,X,Z

  • マルチAZ構成は可能。

    • 目的は冗長化。これによりセカンダリーDBを別AZに構築し、フェイルオーバー構成が可能。

  • 暗号化は、作成時に有効化可能。

  • Auto Scalingはストレージ容量のみに対応。

  • RDS ProxyによるLambdaとの連携

    • Lambdaと連携する場合は、RDS Proxyによりconnection poolを使って接続する。

    • これにより、同時接続数の制限に達しないようにすることが可能。

    • ファイルオーバーに対する耐障害性もあり、スタンバイ側に再接続が可能。

    • https://blog.serverworks.co.jp/2022/01/20/093110

  • リードレプリカを利用したフェイルオーバーは不可。

    • Auroraではこれが可能。

    • 手動で昇格させることは可能。あくまで自動ができない。

  • リードレプリカはデータにラグが発生する可能性がある。

    • 非同期にレプリケートされる別インスタンスであるため

    • 最新のトランザクションのいくつかを表示できない可能性がある。

  • IAMデータベース認証

    • パスワード認証不要で、安全に特定リソースからRDSにアクセスすることが可能。

    • 手順

      • RDS側にログイン専用のユーザーを作成し、テーブルなどへの権限を設定。

      • IAMポリシーを作成し、Resourceに上記のユーザーID等を指定

      • ポリシーをEC2にアタッチする。

    • ご参考

      • https://blog.serverworks.co.jp/rds-iamdblogin

  • モニタリング

    • 拡張モニタリングの有効化により、インスタンスのメトリクスが確認できる。

    • これはCloudWatch Logsにデフォルトで30日間保存される。

  • RDSのベストプラクティス

    • エンジンはInnoDBを使用する(MyISAMは使用不可)

    • 自動バックアップを有効化する

    • 大きなテーブルのパーティションは16TBを超過しないようにする。

Aurora

  • 対応インスタンスタイプ

    • T,およびR,X

  • 高速な回復性

    • リードレプリカ別リージョンに構成すれば、リージョン障害時でも使用することが可能。

  • RDSとの比較

    • 一日のトランザクション数が10,000を超えるなどのケースはAuroraを選択する。

Redshift

  • ノードタイプ

    • RAおよびDC

    • RAはストレージ容量がマネージドである。

  • マルチAZ構成は不可。

  • スポットインスタンスは使用不可。

    • オンデマンドおよびリザーブドのみ使用可能。

  • クロスリージョンスナップショット

    • 障害時、クラスタの復旧に備えるために使用。

    • S3に自動的にスナップショットが保存されるようになる。

  • 拡張VPCルーティング

    • これを有効にすると、通常のVPCと同様以下の設定が可能になります。

      • セキュリティグループ, ACL, VPCエンドポイント

    • 設定による料金は発生しません。

    • 逆に設定しない場合は、その他のAWSサービスなどへのトラフィックが、インターネット経由でルーティングされます。

  • WLM (Work Load Management)

    • クエリに対して割り当てるRedshiftのリソースを指定することができる。

    • WLMによりクエリ処理をキューとして実行順序を定義可能。

ElastiCache

  • 高速データ処理が可能なNoSQL型のデータベース

AWS Database Migration Service

  • オンプレにあるデータベースを短期間で安全にAWSへ移行できるサービス。


Data Processing

EMR

  • 動的なスケーリングが可能

  • データ集約型のタスクに有用

    • ログ解析

    • データマイニング

    • 科学シミュレーション

  • クラスターとしてEC2インスタンスの集合を扱う

  • EMRFSを使用してS3内のデータに直接アクセスすることが可能。

AWS Data Pipeline

  • データの移動や変換を自動化するためのサービス。

  • DynamoDBなどに設定可能で、定期的なデータ取得タスクを設定可能。

Amazon Athena

  • S3内のデータを直接・簡単に分析可能な、インタラクティブなクエリサービス。

  • SageMakerの機械学習モデルを呼び出し、推論なども実行可能。


Network

インターネット接続要件

  • パブリックサブネットの場合、IGWがサブネットのルートテーブル設定されている。

  • プライベートサブネットの場合、NATGWがサブネットのルートテーブル設定されている。

  • NATGWがパブリックサブネットに設置されている。

  • セキュリティグループの設定でインターネットアクセス許可がされている。(IGWもしくはNATGWに対して)

  • ACL設定でインターネットが拒否されていない。

  • パブリックIPアドレスが付与されている。(自動割り当てが有効化されている。)

VPC

  • VPC間接続にはVPC Peeringを使用する。

    • これは別のAWSアカウント間でも接続可能

  • VPC Peeringで複雑になる場合は、Transit Gatewayを利用する。

    • これによりハブ・アンド・スポークス構成を使用できる。

  • 設定可能なCIDR範囲は/16 ~ /28である。

  • サイト間VPN

    • オンプレと接続する場合、それぞれに以下が必要。

      • カスタマーゲートウェイ(オンプレ側の接続点)

      • 仮想プライベートゲートウェイ(AWS VPC側の接続点)

    • VPNへの接続は、Client VPN Endpointから行う。

  • VPC内のインスタンスにDNS名を取得するためには、DNSホスト名有効化オプションが必要。

  • VPC Peeringはエッジ間ルーティング負荷

    • VPC-A, VPC-BがPeeringしている。

    • VPC-AがDirect Connectでオンプレと接続されていても、VPC-Bはオンプレと双方向に通信できない。

  • VPCエンドポイント

    • インターネットを介さずにAWSリソースにアクセスできる。

    • S3とDynamoDBのみ、ゲートウェイ型

    • それ以外のリソースはプライベートリンク型

ACL

  • アウトバンド・インバウンドの設定

    • Egress:trueでアウト、Egress:falseでインとなる。

  • ポート設定

    • HTTPは80、FTPは20、SSHは22などとなる。

  • 特定のIPアドレスの攻撃からサブネットを保護するFirewallとしても使用可能。

  • ルールは番号の若い順(小さい)に適用される。

Route53

  • ルーティングの種類

    • シンプルルーティング

      • ランダムなルーティングでもこれを使用する。

    • 加重ルーティング

      • 複数エンドポイント毎の重みによりDNSクエリに応答。Blue/Greenデプロイメントに使用。

    • フェイルオーバールーティング

      • ヘルスチェックの結果に基づき、プライマリ・セカンダリを切り替える。高可用性が目的。

    • 複数値回答ルーティング

      • ランダムに選ばれた最大8つの別々のレコードを使用して複数の値を返答する。

      • ヘルスチェックを実施したり、ELBのようにDNSを使用した負荷分散が可能

    • レイテンシールーティング

      • レイテンシが小さいリージョンへルーティングする。

    • 位置情報ルーティング

      • ユーザーのIPアドレスにより位置情報を特定し、地域毎に異なるレコードを返す。

    • 地理的近接性ルーティング

      • ユーザーとリソース双方の場所に基づいて近接性ルールを作成してルーティングする。

      • AWSリソースを使用している場合はリソースのリージョン、それ以外の場合はリソースの緯度と経度に基づく。

      • 特殊なルーティングであり、トラフィックフローを利用して設定が必要。

  • フェイルオーバールーティングを使用する場合、アクティブ・パッシブ構成となる。

    • アクティブ・アクティブにしたい場合はその他のルーティングで、ファイルオーバーを実現する。

CloudFront

  • コンテンツを高速配信するためのCDNサービス。

  • 画像等の取得リクエストに対して応答性を挙げるために使用。

  • キャッシュ保持期間はTTL(Time To Live)で設定

    • TTLのデフォルトは1日。0秒~1年で指定可能。

  • コンテンツ圧縮を有効化することで、高速化やデータ削減(コスト削減)が可能。

    • ただし、Viewer(ブラウザ等)でAccept-Encoding: gzipが有効である必要がある。

  • 地理的ブロッキングで、特定地域のユーザーのアクセスを回避可能。

  • S3へのアクセス制限(IP制限等)するをすることが可能。

    • CloudFrontのOAIを使い、特定のdistributionのみをS3のBucket Policyで許可

      • OAIは特別なユーザーであり、そのユーザーに限定してBucket Policyを設定

    • CloudFrontにWAF ACLを設定し、特定のIPアドレスのみを許可

  • CloudFrontそのもので、Referer制限はできない。WAFを利用する必要がある。

  • アクセスユーザーの制御

    • 署名付きURLと署名付きCookieを利用することが可能。

  • キャッシュを効かせるためには、Cache-Controlmax-age directiveを適切に大きく設定する。

  • ディストリビューション

    • フェイルオーバー設定が可能。

    • オリジングループとしてプライマリ、セカンダリを作成

    • プライマリオリジンが使用できない場合、セカンダリに切り替わる。

      • プライマリでHTTPレスポンスが特定のコードを返す場合なども設定可能。

オンプレIP移行

  • ROA(Route Origin Autorization)を利用し、特定のIPアドレスを移行することができる。

IPフローティング

  • Route53やELBを用いてインスタンスの障害に備えることが可能だが、IPフローティングでも実現できる。

  • DNS情報の伝搬には少し時間が必要であるため、継続性が重要でダウンタイムを最小にするためには、この方式を選択する。

  • ヘルスチェックにはスクリプトを作成する。


Dev and Ops

Beanstalk

  • 自動的にデプロイ・スケーリングを行うサービス。

    • キャパシティのプロビジョニング

    • 負荷分散

    • Auto Scaling

    • ヘルスチェック

    • パッチ配布

  • ユースケースとしては以下

    • Webアプリケーション

    • ワーカー環境

      • ただしBatch処理などは対象外。

    • Amazon ECSなどのDockerにホストされたアプリケーションも対象。

  • 運用や監視にも使用することができる。

OpsWorks

  • ChefやPuppetが使用可能。

  • 複雑なインフラストラクチャ管理や設定を行うサービス。

  • スタックベースやレイヤーなどの構築の用途の場合はCloudFormationではなくこちらを使用する。

CloudFormation

  • 必須要素はResources。

  • その他の要素

    • AWSTemplateFormatVersion: バージョンを記述

    • Description: コメントを記述。必ずAWSTemplateFormatVersionの後に記載する必要がある。

    • Metadata: テンプレートに関する追加情報

    • Parameters: 実行時に(スタックの作成・更新時に)テンプレートに渡す値。ResourcesおよびOutputsを参照可能。

    • Rules: Parameterを検証するルール

    • Mappings: 条件パラメータの指定に使用できるMap(辞書)

    • Conditions: 条件指定に使用。本番か開発かなど。

    • Transform: SAMを使用したり、別のテンプレートを利用するために使用。

    • Outputs: 構築後に出力させる値や、Exportフィールドにより他のテンプレートから参照させることなどが可能。

  • 変更セット

    • スタックの更新をしたり、その影響度を確認することができるスタック

  • ドリフト

    • テンプレートによる展開後に変更した場合に、差分をチェックする機能

  • Export/Import

    • スタック間のリソース参照機能

  • スタックセット

    • 救数のAWSアカウントやリージョンにリソースを展開できる。

    • クロスアカウントやクロスリージョンのシナリオを解決可能。

CloudWatch

  • CloudWatch Logs

    • EC2, CloudTrail, Route53などのログファイルを監視することが可能

    • エラー率が閾値を超えた場合に、管理者に通知を送るなどが可能。

    • アプリケーションのログは取れないため、X-rayのエージェントが必要。

  • CloudWatch Events

    • システムイベントを監視し、ルールに一致したイベントを一つ以上の関数やストリームに振り分けられる。

    • cron式やrate式により、特定の時間にトリガしたり、スケジュールが可能。

  • CloudWatch エージェント

    • EC2インスタンスやオンプレミスサーバーから、メトリクスやログを収集する機能。

Amazon API Gateway

  • Lambdaなどの前に設置し、公開されたAPIとして利用できる。

  • REST APIおよびWebSocket APIを作成可能

  • 一時的な高負荷対応には、スロットリング制限設定とキャッシュを有効化を実施する。

  • APIコールとデータ量に応じた費用のみが発生する。

AWS X-Ray

  • リクエストやレスポンスの追跡・監視が行える。

AWS SAM

  • サーバレスアプリケーション構築のデプロイツール。

  • CloudFormationと連携し、SAMがSAM構文をCloudFormation構文に変換する。

AWS AppSync

  • DynamoDB、Lambda、HTTP APIなどのデータを組み合わせて、リアルタイムアプリケーションのGraphQLインターフェースを提供するサービス。


アクセス管理

IAM

  • ポリシーの種類

    • AWS管理ポリシー

      • AWSがあらかじめ準備しているポリシー

    • カスタマー管理ポリシー

      • ユーザー(開発者)が自身でカスタマイズしたポリシー

    • インラインポリシー

      • 1つのエンティティに埋め込まれたポリシーでIAMユーザなどに適用するのは非推奨。

      • S3バケットポリシーやIAMロールの信頼ポリシーなど、リソース固有のポリシーが設定可能な場合に使用

      • 他には、SNSのTopicポリシーやVPCエンドポイントポリシーなどが該当

  • 本番・開発の分離

    • 開発者には開発者用アカウントを付与する。

    • インスタンス等にタグを設定し、操作許可を限定する設定も有用。

  • サポートするIdP

    • IdPはIdentify Providerのこと。

    • IdPとSP(Service Provider)の間の認証方式がSAML2.0やOpenID Connect。

    • IAMは、OpenID Connect または SAML 2.0と互換性のあるIdPをサポートしている。

    • OpenIDの場合、ウェブIDフェデレーションを利用する。

  • aliasされたログインURL

    • https://development-group.signin.aws.amazon.com/consle/

AWS Organizations

  • 複数のAWSアカウントを管理するサービス。

  • SCPでアクセス権限のコントロールを行う。ホワイトリスト形式のポリシー。

  • デフォルトでは、SCPはFullAWSAccessが設定されているため、制限するためにはこのポリシーのデタッチが必要。

  • SCPが設定がされたOU(Organization Unit)のアカウントは以下が行える。

    • ポリシー内で許可したアクションを、IAMポリシーで権限付与が実行できる。

AD関連

  • AD Connector

    • 既存のADを使って、AWS環境へのアクセスを可能にしたり、IAMによるユーザー管理する。

  • Simple AD

    • ADを作成するサービス

    • 簡易にAmazon Workspaceに認証・アクセスできる。

  • AWS Managed Microsoft AD

    • フル機能のMicrosoft Active DirectoryをAWSで使用できる。

    • SAMLなどのフェデレーションしたり、オンプレとのADの連携も可能。


Computing

EC2

  • インスタンスファミリー

    • 汎用: T,M,A

      • T: Turbo. バーストタイプ

      • M: Most scenarios. 標準的なやつ

      • A: Arm. ARMプロセッサタイプ(AWS Graviton)

      • Mac: Apple Mac Mini搭載

    • コンピューティング最適化: C

      • C: Compute. 計算パフォーマンスが高い。

    • メモリ最適化: R,X,Z

      • R: RAM. メモリ最適化

      • X: Extra large memory. 最大メモリ量が大きい

      • Z: Hz. 高クロックなコア搭載モデル。

    • 高速コンピューティング: P,G,F,Inf,etc

      • P: general Purpose. 汎用GPU搭載

      • G: Graphics. グラフィックス特化GPUタイプ

      • F: FPGA. FPGAモデル

      • Inf: Inference. 機械学習推論に最適化されたタイプ。AWSが開発した Inferentia チップが搭載。

      • Trn: Trainium. AWSが開発したML用チップ Trainium 搭載タイプ

      • DL: Deep Learning. Gaudiアクセラレータ搭載タイプ

      • VT: Video Transcoding. 最大4K解像度に対応したリアルタイムトランスコーディングが可能なタイプ(Xilinx U30 Acceralatorが搭載)

    • ストレージ最適化: I,D,H

      • I: IO Performance. NVMe SSD搭載でIO性能が高い

      • D: Dense storage. 最大48TBのHDD搭載

      • H: High disk thoughput. 高スループットタイプ。これもHDD。

    • 参考

      • https://otomosa.com/aws/post-1870/

      • https://aws.amazon.com/jp/ec2/instance-types/

  • 購入方法

    • オンデマンド

    • リザーブド

    • スポット

    • オンデマンドのキャパシティ予約 + Savings Plans

  • リザーブド・コンバーティブル

    • インスタンスファミリー・OS・テナンシー・支払いオプションを変更可能。

    • スタンダードでも、AZ・インスタンスサイズ・ネットワークタイプは変更できる。

  • 物理専有型

    • ハードウェア専有インスタンス(Dedicated Instance)

      • 専用HWのVPCで実行されるEC2インスタンス。

      • VPC構成をする際にdedicatedというのを選ぶと選択することができる。

      • 他のAWSアカウントから分離したインスタンスとなるが、同じアカウント内では共有する可能性がある。

    • Dedicated Host

      • 同じアカウント内でも共有しない設定が可能なインスタンス形式。

      • IAMグループなどで閉じたインスタンスにすることができる。

      • 用途としては、オンプレのライセンスサーバーなどをAWSに移行したい場合など。

    • ベアメタル(Bare Metal)

      • サーバーのProcessorやMemoryにアクセス可能なインスタンス。

      • 下層のハードウェアレベルまでアクセス可能。

  • ユーザーデータ

    • 起動時に実行したいコマンドを記述することができる。

  • 起動設定と起動テンプレート

    • 起動設定は、AMIが変更されると再作成が必要、バージョン管理が不可など機能が少ない。

    • 起動テンプレートはバージョン管理が可能。AMIと独立して設定ができる。

      • AMIは「起動テンプレートに含めない」という設定が可能。

    • 双方とも、Auto Scalingグループに紐づけする。

    • そのAuto ScalingグループをELBに紐づけすることが可能。

  • インスタンス間のネットワーク高速化

    • クラスタープレイスメントグループを設定する。

    • 拡張ネットワーキングをサポートするインスタンスタイプを選択

  • プレイスメントグループ

    • クラスタープレイスメントグループ

      • パフォーマンス向上が目的。単一AZ内でグループ化し、複数のVPC Peeringにまたがることも可能。

      • グループ内のインスタンスは、TCP/IPトラフィックのスループット上限が高くなり、インスタンス間通信の速度が向上する。

    • パーティションプレイスメントグループ

      • 耐障害性が目的。

      • 複数パーティションに分けられ、パーティション毎にラックがあり、パーティション同士はラックを共有しない。

    • スプレッドプレイスメントグループ

      • 更なる耐障害性が目的。

      • パーティションあたり1インスタンス構成となり、異なるラックにそれぞれのインスタンスを配置できるグループ。

  • VM Import/Export

    • オンプレ環境の仮想マシンをAWSにインポートする機能

  • store-backed / EBS-backed

    • store-backedはインスタンスストアがroot volumeのもの。

    • 停止すると、インスタンスストアのデータは自動的に削除される揮発型。

ENI

  • EC2インスタンスにアタッチするネットワークインターフェース。

  • アタッチとして以下の種類がある。

    • コールドアタッチ

      • インスタンス起動時にアタッチする。

    • ウォームアタッチ

      • 停止中のインスタンスにアタッチする。

    • ホットアタッチ

      • runnning中のインスタンスにアタッチする。

ELB

  • ELBのみでは、Auto Scalingは実施できないので注意する。

  • スケールイン・アウトの繰り返し抑制

    • クールダウンタイマーの値を見直す。

    • デフォルト値は300秒である。

    • CloudWatchと連携して、スケールが設定されるがその際のアラーム閾値を見直す。

  • スティッキーセッション

    • セッション中に同じユーザから来たリクエストを同一インスタンスで処理することが可能。

  • クロスゾーン負荷分散

    • 複数のAZにまたがる分散を行うことができる。

  • Connection Draining

    • 接続をオープンとしたまま、登録解除・異常なインスタンスへの送信を停止できる機能。

    • 登録解除の待ち時間として、タイムタイムアウトを設定できる(1~3600秒、デフォルト300秒)。

    • タイムアウトを過ぎると強制的に停止する。

Lambda

  • 制限

    • 一時ボリューム量(/tmp): 512MB

      • 2022/03/24のアップデートで、デフォルト512MB、最大10GBまでを設定可能となった(料金は必要)。

    • 同時実行数: 1000

    • 関数とレイヤーストレージ: 75GB

    • デフォルトタイムアウト: 3秒(最大実行時間は900秒(15分))

  • Lambda Layer

    • Lambdaファンクション間で共通の処理をLambda Layerとして定義して参照できる。

    • 最大5つまでLaymbda Layerとすることが可能。

Amazon ECS

  • 権限付与

    • ECSにより起動するインスタンスへの権限は、ECSタスクにIAMロールを付与することにより行う。

    • 今まではEC2のIAMロールを使用する必要があった。

  • 起動モード

    • EC2

      • EC2インスタンスを起動する。

    • Fargate

      • ECS・EKSで利用できる専用のコンピューティングエンジン

      • インスタンスの管理が不要(CPUやメモリなどを定義する)

      • 秒単位で数万個のコンテナ起動が可能

  • トラフィック制御

    • ELBと連携して実施することができる。

Amazon EKS

  • kubernetesを使用する際に使うサービス

  • ECSと違う点は、kubernetesを活用した開発や管理をある程度自動化することができる部分である。

Auto Scaling

  • 簡易スケーリングポリシー

    • ターゲット追跡スケーリングポリシーの通常設定

    • アラーム設定に基づき1段階のスケーリングを実施

  • ステップスケーリングポリシー

    • アラーム超過サイズに基づいて、インスタンス数を動的に調整する、複数段階のスケーリングを実施

    • これにより、段階的なウォームアップ条件を設定可能

  • 手動スケーリング

    • 希望容量を手動で調整する。

  • スケジュールされたスケーリング

    • 実施日時を指定する。

  • スケールに24時間失敗し続けると、AUto Scalingが停止する可能性がある。

  • ヘルスチェック

    • ELBとEC2どちらを利用するか設定する。

  • スケーリング時のメトリクス

    • CPU使用率を使う。メモリ使用率を使ったトリガーはデフォルトで設定できない。

AWS Server Migration Service

  • オンプレの仮想マシンをAWSに移行するツール

    • VMware vSphere

    • Microsoft Hyper-V/SCVMM

    • Azure 仮想マシン


Security

AWS STS

  • スイッチロールなどに使用

  • またモバイルアプリケーションで一時的な認証情報を使用する際にも使用可能。

  • SAML2.0をサポート

    • 異なるドメイン間でユーザー認証を行うためのXMLベースの標準規格。

    • SSOなどの要件に利用される。

HSM

  • Hardware Security Module

  • 厳しいセキュリティ要件を満たすことができ、FIPS 140-2 Level 3に準拠している。

  • HSMはゼロ化してキーをロスすると、コピーを有していない場合は、新しいキーは取得不可能となる。

AWS WAF

  • HTTPリクエストレベルでの制限・許可などを行う。

    • 特定のリクエスト以外を許可(攻撃を社団)

    • 特定のリクエストのみを許可(アクセス制限:日本国内のみ)

  • Referer制限

    • 直前に参照していたURLに基づいて制限を行う。

Amazon Inspector

  • セキュリティ評価を自動で実施するサービス

  • アプリケーションに対して、脆弱性やべくとプラクティスからの逸脱がないかなどを自動で評価できます。

AWS CloudTrail

  • アカウントのガバナンス、コンプライアンス、運用監査、リスク監査を行うサービス。

AWS Certificate Manager (ACM)

  • SSL証明書を集中管理するためのサービス。

  • ELBなどと組み合わせてよく出題される。

AWS Shield

  • DDoS攻撃を緩和するサービス。


Messages

Amazon SQS

  • 制限

    • キューの保持期間はデフォルト4日間。最大で14日(2週間)。

    • 保存できるメッセージの最大数は無制限

    • メッセージのサイズは256KB。

      • 拡張クライアントライブラリを使うと2GBまで可能。

  • キューの削除

    • キューは明示的に削除しない限り、残り続ける。

    • また可視性タイムアウトが設定されている場合は、有効期限が過ぎれば別のインスタンスでキューが処理される。

    • 失敗し続けた場合は、デッドキューに移動する設定を行うことができる。

Amazon SNS

  • push型の通知サービス

  • リソース間のイベント通知、モバイルへのプッシュ通知などが用途となる。

  • SNSからSQS, SES, Lambdaへの通知も行う用途で使用する。

Amazon SES

  • マネージドなメールサービス

  • イベントに応じてメール配信をする際は、SNS -> SESという形で構築する。

Amazon MQ

  • 業界標準のメッセージングAPIとブローカを提供するサービス。


Workflow

AWS Step Functions

  • サーバレスのオーケストレーションサービス

  • Lambda関数などのAWSリソースを組み込んだり、人手によるアクションをタスクに組み込むことができる。

  • JSON形式でステートマシンを定義する。

  • 最長1年間実行可能。

  • プロセスに親子関係がある場合は、SWFを選択する。(Step FUnctionsで対応できない)

Amazon SWF

  • 旧型のワークフローシステム。

  • 利用が水使用されていないため、ほぼ正解の選択肢にはならない(Step Functionsがない場合は選択肢になるかも)

  • プロセスに親子関係がある場合は、SWFを選択する。(Step FUnctionsで対応できない)


IoT

AWS IoT Core

  • インターネット接続されたデバイスから、クラウドやその他のデバイスに簡単かつ安全に通信するためのマネージド型サービス。

  • センサーデバイスを利用した車両管理アプリケーションを容易に構築することが可能。

  • 数十億個のデバイスと数兆件のメッセージをサポート。


ML

Amazon Macie

  • S3内の機密データを検出・分類・保護できるフルマネージド型サービス

Last updated