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-Control
のmax-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
): 512MB2022/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