記事の内容

AWS のアーキテクチャを設計する上で、少しマニアックだったりで理解が曖昧だった内容をポイントまとめをしたもの
AWSアーキテクチャにおけるざっくりとした弱点の発見にもご活用ください

対象者

SAP に出るサービスがざっくりどんなものか知りたい人

どのくらい自分のサービス知識が足りてるか
ざっくり把握したい人

注意

爆速ポイント書き兼結構な文章量でアップデートが激しい分野なので、
現時点との違いや誤記が気になった場合はある程度許容し、
それぞれで調査をお願いします。

あくまで理解が甘いところを発見し、自分で詳細を確認する前提の記事

以下本文

Amazon EC2関連

RI

マスターアカウントが共有をオフにすることができる
リザーブド インスタンス (RI) 共有をプライベートに設定することはできない

スポットインスタンス関連

diversified 戦略

スポットインスタンス

自動ドレイン
勝手に他のインスタンスに変えてくれるシステム
スポットインスタンスは停止の2分前に中断通知を行う

多様な割り当て戦略

料金とキャパシティの両面での最適戦略を行える
最近聞かれがち

フリートとは

EC2のグループ設定、オンデマンド2割、スポットインスタンス8割などの設定もできる

固定フリート

明確にはそんな単語はないが、たとえばオンデマンドの方を増やすと、固定フリートが多めなどといった表現ができそう

リザーブドインスタンス

買ったアベイラビリティゾーンと使うアベイラビリティゾーンは一致しておく必要がある

EC2Rescue ツール

EC2のトラブルシューティングができるツール

AWS Systems Manager

Patch Manager

マネージド インスタンスにセキュリティ関連のアップデートを適用するプロセスを自動化する
Linux ベースのインスタンスの場合は、セキュリティ以外の更新のパッチをインストールすることもできる

Automation

AWS Systems Manager Automation は、Amazon EC2 インスタンスやその他の AWS リソースの一般的なメンテナンスおよび導入タスクを簡素化する
自動化により、次のことが可能になる
1 つ以上の EC2 インスタンスの再起動や Amazon Machine Image (AMI) の作成などの一般的なタスクを実行するために使用できる、事前定義されたステップを含むいくつかの Runbook が用意されている

State Manager

State Manager は主に、Amazon EC2 およびハイブリッド インフラストラクチャを定義した状態に維持するプロセスを自動化する、安全でスケーラブルな構成管理サービスとして使用されるが、EC2 インスタンスのトラブルシューティングには役立たない
インスタンスが起動されたタイミングに特定のアクションを実行したい場合には ステートマネージャが適している
メンテナンスウインドウでもいいが、厳密に全ての稼働しているインスタンスにパッチ当てを行う場合などはこれを使うのがいい

Systems Manager はキーのローテーションができない

AWS CloudFormation には Systems Manager パラメータ ストア RotationSchedule リソースがない

ファイルシステム関連

Amazon S3

リクエスタ支払いをオンにしていると、実施者に請求がいく

Glacier

標準取得を使用すると通常3~5時間かかる

S3 Glacier volt

検索は使えない

S3 Transfer Acceleration

アップロードも高速化できる

S3署名付きURL

IAM User アカウントを持っていない人に対して一時的にファイルのダウンロード/アップロードさせたい場合などに使用する

S3 のバージョン管理

バージョン管理をオンにする前は null、それ以降は、1、2と増えていく。

S3 にクロスリージョンレプリケーションはある?

ある

NFS 共有

ネットワークファイルサーバーの略

Amazon EFS

プロビジョンドスループット

よくわからないが、レイテンシーを最大化するようなものではなく、一定の速度を保証するもの

EFS Lustre

EFS の共有ファイルシステムを強化したもの
スケールアップ型なので、パフォーマンスが上がりうる

Amazon FSx for Lustre

EFS のすごい版、共有ストレージのクリティカルポイントの効率を上げたいならこれ

EFS プロビジョンド スループット モード

プロビジョンド スループット モードを使用すると、保存されているデータの量に関係なく、ファイル システムのスループットを指定できる

認証系

enableDnsHostnamesとenableDNSsupport

enableDnsHostnames
VPC 内のインスタンスがパブリック IP を持つときに、
そのインスタンスにパブリック DNS ホスト名を自動でアタッチするかを制御する属性。

enableDNSsupport

AWS Provided DNS が、VPC 内インスタンスの名前解決をサポートするかを制御する属性です。
参考:https://walk0204.hatenablog.com/entry/tech/aws/vpc/DNS-attribute

x-amz-server-side-encryption

x-amz-server-side-encryption”:”AES256″ヘッダーを設定して利用する
“x-amz-server-side-encryption”:”aws:kms”ヘッダーを設定して利用する

SCP

SCP はサービスにリンクされたロールには影響しない
AWS がマネージドで自動で検出して作成してくれる
デフォルトでは全て許可されている

SCP のデフォルト

デフォルトではすべてのルート、OU、アカウントに FullAWSAccess という ポリシーがアタッチされている

ACM 関連

ACM からの同じ SSL 証明書を複数の AWS リージョンで使用できるのは、Application Load Balancer ではなく、CloudFront ディストリビューションにのみアタッチしている場合のみ

Amazon Cognito

数百万のfederationユーザーをフォローする
Amazon Cognito は数百万のユーザーに拡張でき、Facebook、Google、Amazon などのソーシャル アイデンティティ プロバイダや、SAML 2.0 を介したエンタープライズ アイデンティティ プロバイダによるサインインをサポートする

SAML2.0

SAML 2.0 ベースのフェデレーションではソーシャル メディア ログインが使用されず、静的コンテンツの配布には S3 バケットよりも CloudFront を使用する方が適切である

AWS Control Tower

組織内の AWS アカウントを監視するために CloudWatch および CloudTrail にログを送信できる

AWS Certificate Manager(ACM)

リージョンごとに SSL/TLS 証明書が必要

ACMにおける公開証明書とプライベート証明書の違いとは

パブリックな認証機関で証明がされているものが公開、パブリック証明書
プライベート証明書は CA を ACM で立てて、利用するもので、ブラウザ側での認証設定も必要

RAM

enable-sharing-with-aws-organizations
クロスアカウントの必要はない

Amazon Route53

DNSSEC 署名をサポートしている

Route53 エイリアスレコード

CNAME レコードは一回Aレコードを経由するので、エイリアスレコードの方が効率が良い

エイリアスレコードと C レコードの違い

エイリアスレコード:AWS 独特のもの C レコードより、検索効率が高い
C レコードは一度、A レコードを見にいかないとアドレスがわからないので、少し効率が悪い
100G のポートスピードで最大2つの接続、または100 G 未満で最大4つの接続を使用できる

SAML2.0

そういった認証システム、AWS では federation か SAML か、Cognito かといった具合で問われやすい

AWS IAM Identity Center

AWS IAM Identity Center は、Web ブラウザを介したビジネス アプリケーションへのシングル サインオンのみをサポートする
できること:複数のAWSアカウントへのシングルサインオン

AWS Direct Connect

Direct Connect + AWS Site-to-Site VPN を利用したい場合、Private VIF ではなく Public VIF を利用する必要があります。
Direct Connect の物理的な回線が connection で、それを論理的に分けたものが、VIFとなる。
conncetion ごとの課金のため、分割しても料金は大きくは変わらない
その場合は VLAN500、VLAN400といった形で分ける
ただし10個くらいならいいが、それが100個とかなると、その分 VIF を切るのはしんどいので、トランジットゲートウェイの出番になる
プライベート VIF 経由で、VPC外のリソースに触れたい場合は、インターフェース型のエンドポイント(private Link)が有効
ゲートウェイ型のエンドポイントでは、オンプレミスサーバーから透過的にサービスにアクセスできない

パブリックVIF

Direct Connect の論理区分けの一つ
VP C外のサービスにアクセスするためのもので、パブリック IP でつながるもの
S3 や DynamoDB が対象
AWS 提供のパブリック IP アドレス同士を繋げる

Direct Connect リンクアグリゲーショングループ

Direct Connect の回線を強化する
Link Aggregation Group
複数の接続を集約し、それらを 1 つのマネージド型接続として扱うことを可能にする論理インターフェイス

VPC につき Direct Connect 接続をなんこ弾ける?

1こまでひける。VPG を VPC につき一個づつ、directConnect は一つで良い
1DirectConnect に複数の VPC をくっつけられるが、
1VPC に複数の Direct Connect はくっつけられない

External id

クロスアカウントロールで用いるもの
自由に設定できる
ロールの作成時に設定するもの

WebSocket のプロトコル

WSS。SSL ではあるが、HTTPS とは別物

AWS STS

Security Token Service
そのまま

VPC エンドポイントポリシー

VPCエンドポイントに付けるポリシー
バケット:Bucket-AAAA へのアクセス許可など設定できる

AWS PrivateLink

VPC ピアリングと似ているが、VPC エンドポイントを2つ作成し、プライベート接続ができるサービス

aws:SecureTransport

これをtrueにすることで、https通信をマストにする設定

SSE-**

管理が簡単順で言うと、SSE-S3 SSE-KMS。
SSE-S3 では、Amazon S3 がデータと暗号化キーを管理する必要がある
SSE-C では、暗号化キーを管理する必要がある
SSE-KMS では、AWS がデータキーを管理する必要があるが、カスタマーマスターキー (CMK) は AWS KMS で管理する

Server Name Indication

ポートの中の PC に振り分けられる仕組み
一つのグローバルアドレスで、ポートを振り分けることで実現が可能
IP アドレスの枯渇問題にも一役買っている

AWS Lake formation

AWS でデータレイクを構築・運用するためのマネージドサービス
実体は、ほぼ AWS の各種サービスをラップしたもの(Glue, IAM, S3, etc.)

LDAPサーバー

LDAP の認証サービス、SAML 認証の一環などで使用される

AWS Config

EC2 インスタンスのセキュリティ コンプライアンス

MFA Delete

S3 のバージョニング機能のオプション
オブジェクトのバージョンを削除するときに AWS アカウントの MFA デバイスに表示される6桁のコード入力が必須になる

システム管理者(SystemAdministrator)

開発・運用リソースのセットアップやメンテナンスを行うユーザー用のポリシー
名前的に強権限のように見えるが、EC2や Lambda、RDS といった、AWS の基本的なサービスの作成・メンテナンスを許可するポリシーなので、PowerUserAccess より権限は弱い

開発者パワーユーザー(PowerUserAccess)

Admin 権限に並ぶ強権限なポリシー
IAM と Organization と Account 以外の Action を全て許可する開発者向けのポリシー

VPN CloudHub

単一の仮想プライベートゲートウェイを作成し、複数のカスタマーゲートウェイを動的に AWS Site-to-Site VPN 接続を作成する流れで接続する
AWS VPN CloudHub は、VPC の有無にかかわらず使用できるシンプルなハブアンドスポークモデルで動作する

アクセス許可ポリシーと信頼ポリシーの違い

ヘルメットを被ることができるポリシーが信頼ポリシー

フォレスト信頼関係

Windows でドメインを信頼できるのだが、親同士が結ぶと、その子供も全部信頼関係が結ばれるもの
3者間ではできない

AssumeRoleWithSAMLとAssumeRoleAPIとAssumeRoleWithFederation、AssumeRoleWithWebIdentityの違いを調べる

AssumeRoleWithSAML:
SAML を用いたロール付与の形。基本別途カスタムidpを用意し使用するイメージ
AssumeRoleAPI:
ユーザーがロールを使用してアクセスができるようにする仕組み、クロスアカウントなどで権限を渡すときによく使われる
AssumeRoleWithFederation:
Google など Web アプリ認証を用いて、特定のロールの権限を付与できるようにする仕組み
AssumeRoleWithWebIdentity:

カスタムIDプロパイダー

Lambda などで構築できる
AWS Transfer Family の一機能
Secrets Manager と組み合わせて使うのが一般的

セキュリティ関連

IPsec

パブリックインターネットに出ているもの
暗号化はされている

ポートスキャン

通信可能なポートを一つ一つ確かめる
セキュリティ攻撃としても使われる

リソースベースのポリシーを使用したクロスアカウント アクセスの利点

リソース自体にアタッチされるので、権限の json に Resource の記載は必要ない
リソースごとに設定する必要がないので、ECR のリポジトリがたくさんある場合などは、リソースベースにするとまとめて一個にできる

Fraud Detector

S3 の csv などを対象に、情報流失に繋がりそうな個人情報などを検知してくれる

SYN フラッド

過剰な数の SYN リクエストを送信するサーバー攻撃(TCP 通信のハンドシェイクの第一歩)

UDP リフレクション

UDP にて、送信元を偽装した送信を行い、大量の返信パケットで対象のIPに攻撃をあたえること

Security Token Service

STSのこと

マスカレード攻撃

いわゆるなりすまし攻撃
マスカレード攻撃は、盗まれたパスワードとログオンを使用して、プログラムのギャップを特定するか、認証プロセスの回避方法を見つけることによって実行できる

X.509証明書

TLSなどで使用される証明書
公開鍵証明書の標準フォーマット

パブリック証明書

パブリック証明書はパブリック認証局から発行されるが、このパブリック認証局は監査法人から厳しい審査をパスしている
そのためブラウザからデフォルトで信頼される
一方プライベート証明書は審査を受けていないプライベート認証局から発行される
プライベート証明書はその有効期限や属性などを自由に設定できるが、その証明書をブラウザが信頼するために設定する必要あり
どうやら組織内などのプライベートネットワークなどで使いたい時に使われるようだ

AWS CloudTrail

グローバルサービスオプション
以下がグローバルサービス
AWS Identity and Access Management (IAM)、AWS STS、Amazon CloudFront、Route 53

CloudFrontの地域制限機能

[国] で、許可またはブロックする国を選択すると実現できる

IAM プロファイル

ロールを EC2 に紐づけるために必要
プロファイルがロールと紐付き、EC2とプロファイルが紐づくことで達成できる

SSL 証明書を IAMに入れられる?

入れられる
昔 ACM がないときはそうしていた(CLI じゃないと入れづらい)

AWS Network Firewall

ステートレスなパケットフィルタリングもステートフルなパケットフィルタリングも可能
トランジットゲートウェイと紐付けることで、アウトバウンドの共通したネットワーク制御も可能

トランジットゲートウェイの使用イメージ

別アカウントなら RAM を使用してリソースの共有をする
アタッチメントを作成する(VPC と TGW を紐付ける)
ルートテーブルに経路を追加し、トランジットゲートウェイに向けるようにする

AWS Control Tower

「ガードレール」「ランディングゾーン」「ダッシュボード」の概念からなる
セキュリティ統制の徹底、ログの一元管理、インシデント発生時の証跡を目的としたサービス
ベストプラクティス的なログ集約アカウント、監査アカウントを自動構築してくれる

ネットワーク ACL

ネットワーク ACL はステートレス、入り口で許可したからといって出口で自動通過する訳ではない

DevOps 関連

AWS App Runner

ある程度隠蔽されたコンテナホスティングサービス
App Runner は最も簡単な構成であればソースコードリポジトリさえ設定すればデプロイが可能

AWS Elastic Beanstalk

AWS の用意した環境で実施できる
ソースコードのアップも可能
ドッカーコンテナをそのままというわけではない

AWS OpsWorks

EC2インスタンスやオンプレの環境でのサーバ設定やデプロイ、管理を自動化できる
CloudFormation はほぼすべてのリソースを作成可能
OpsWorks はアプリケーション周りのリソース作成に限られる

Amazon CloudSearch

CloudSearch も Elasticsearch も Lucene ベース
ウェブページ、ドキュメントファイルなどの大規模なデータからの検索を可能とするフルマネージド型サービス

AWS OpsWork

レイヤーとは

レイヤーは、アプリケーションへのサービス提供やデータベースサーバーのホストのような特定の目的を果たす一連の EC2インスタンス

レシピとは

Chef レシピを実行して、アプリケーションの設定、アプリケーションのデプロイ、スクリプトの実行などを行う

例:PHPのウェブサーバー例

package "vim-enhanced" do
action :install
end

%w{php mysql-server httpd}.each do |p|
package p do
action :install
end
end

service "httpd" do
action [:start, :enable]
end

AWS CloudFormation

StackSet

StackSet を使うことで、Organization に簡単に反映できる

CloudFormation のリージョンパラメータ?

そんなん一般的にはない

CloudFormation:Deletionポリシー

snapshot と retain がある
snapshot はその情報を保存しインスタンスは停止する、RDS などに向いている

CloudFormation:Serviceカタログ

CloudFormation のテンプレートを流用することができるサービス
関連ユーザーに Service カタログだけ作れる権限を与えるなどもいい運用

Cloud formation のアーティファクトとは

テンプレートやその履歴情報

CloudFormation リソース タグ プロパティ

これで請求をまとめることができる

CloudFormation:update-stack API:

CloudFormation の変更差分を更新するAPI

CloudFormation:リージョン間のVPCスタック作成

Stack Setsが良い。

Stack Sets

CloudFormation のページで[StackSets]に入り、新しい StackSetsを作成できる
同様のテンプレートを複数リージョンに拡張する仕組み

CloudFront Function と Lambda@Edgeの違い

はやさ、デカさくらい

AWS CodeArtifact

AWS CodeArtifact はパッケージマネージャツール(Maven、Gradle、npm、Yarn、Twine、pip、NuGetなど)でダウンロードするパッケージを管理するサービス

OutPosts

ユーザー環境で AWS を実施できるようにしたもの

Elastic BeansTalk と OpsWork の違い

OpsWork は chef を使ったサーバー構築の仕組み、Elastic Beans Talk はパッケージ化されたコンテナ提供サービス

Amazon WorkDocs

Amazon WorkDocs は、フルマネージド型の安全なコンテンツ作成、ストレージ、およびコラボレーション サービス
Microsoft ADを活用した、ファイル共有システム、ドメインを承認する形でファイルなどを共有できる

AWS CodeDeploy

最初少しだけトラフィックを新バージョン環境に流す
次に更に新バージョン環境にトラフィックを流す、と言うことを繰り返し徐々に徐々に新バージョン環境へトラフィックを流し、最終的にすべてのトラフィックを新バージョン環境へ流す
→ 「リニア」
最初少しだけトラフィックを新バージョン環境に流す
問題なければ、問答無用ですべてのトラフィックを新バージョン環境に流す
→ 「Canary(カナリア)」

AWS Outposts

AWS Outposts は AWS インフラストラクチャ、サービス、API、ツールを顧客の施設に拡張するサービス
これにより、顧客は AWS リージョンと同じプログラミング インターフェイスを使用して、オンプレミスでアプリケーションを構築および実行可能
移行サービスではない

最小未処理ルーティングアルゴリズム

最小未処理リクエスト (LOR) アルゴリズムは新しいリクエストが到着すると、ロード バランサーは未処理のリクエストの数が最も少ないターゲットにリクエストを送信する

ラウンドロビンアルゴリズム

コンピュータ システムが持つリソースを、順番に利用する手法の1つ

Immutable

All at once は一度インスタンスが停止する
Immutable は一個デプロイして、問題なければあとをデプロイするので、少しパフォーマンスは低下するかもだが、有効な選択肢

light sail

Amazon Lightsailはコンピューティング、ストレージ、データ転送など、WebサイトやWebサービスなどに使うサーバーとして必要な機能を組み合わせ、1つにまとめたパッケージで提供されている
Amazon Lightsailには、コンピューティング環境だけでなく、ストレージ、スナップショット、ロードバランサー機能、ファイアウォール、DNS機能など、いくつもの機能が揃っている
一方、Amazon EC2 で提供しているのは、コンピューティング環境だけ

Amazon LightSail

パッケージングされたサービス公開
OS や CMS があらかじめて提供されている、ワードプレスなどもある

AI関連

Amazon Macie

MacieはS3に対してのもの、codecommit には適応できない

Amazon Lex

Amazon Lex は、音声とテキストを使用して任意のアプリケーションに会話型インターフェイスを構築するためのサービス
Amazon Lex は、音声をテキストに変換するための自動音声認識 (ASR) とテキストの意図を認識するための自然言語理解 (NLU) という高度な深層学習機能を提供し、非常に魅力的なユーザーエクスペリエンスと本物のような会話の対話を備えたアプリケーションを構築できるようにする

Amazon Transcribe

音声をテキストに変換する機能

Amazon Translate

資料を翻訳してくれるもの、多くの資料を翻訳したい場合は使ってもいいかも

Amazon Textract

スキャンしたドキュメントからテキスト、手書き文字、レイアウト要素、データを自動的に抽出する機械学習 (ML) サービス

Amazon Comprehend

録音の文字起こしを取得し、通話に音声分析機械学習を適用して、感情、キーワード、会社ポリシーの順守などを特定する

Amazon Polly

すべての問い合わせフローでテキスト読み上げを提供する

DB関連

半構造化データ

jsonなど

Amazon DynamoDB

Auto Scaling for DynamoDB という、プロビジョニングモードでもスケーリング機能がある

Fine-Grained Access Control for DynamoDB

DynamoDB Accelerator は非常に高価、しかしマイクロ秒での返信が可能

Redshift snapshot copy grant

Red shift のコピーをする仕組みのこと

Amazon RDS

シャーディング

やっぱりできるっぽい

RDSってマルチAZ可能?

可能

Amazon RDS プロキシ

Amazon RDS プロキシは、 Amazon Relational Database Service (RDS) 用のフルマネージド型の高可用性データベース プロキシであり、アプリケーションのスケーラビリティやデータベース障害に対する回復力などを高める

Amazon Neptune

Amazon Neptune はAWS(クラウド)のグラフ型データベースサービス

Amazon Keyspaces

Amazon Keyspaces (Apache Cassandra 向け) は、スケーラブルで可用性の高い、Apache Cassandra 互換のマネージドデータベースサービス

メッセージングサービス

Amazon SQS

リドライブ許可ポリシー

Amazon MQ

MQ通信などを可能にする仕組み

AWS AppSync

GraphQL というAPI 仕様を用いて「柔軟なAPI」を提供する AWS のマネジメントサービス

移行サービス

AWS DataSync

ネットワーク ファイル システム (NFS) 共有、サーバー メッセージ ブロック (SMB) 共有、自己管理型オブジェクト ストレージ、AWS Snowcone、Amazon Simple Storage Service (Amazon S3) バケット、Amazon Elastic File System (Amazon EFS) 間でデータをコピーするように設計されている
ファイル システム、および Amazon FSx for Windows ファイル サーバー ファイル システム。物理サーバーを AWS に移行するように設計されていない

AWS Database Migration Service

オンプレミス~AWS 間、オンプレミス~オンプレミス間のデータ移行を支援する仕組み

AWS Schema Conversion Tool

Database Migration Service に統合されているサービス

Application Discovery Service と Migration hub の違い

ADS は Migration Hub に統合されている
ある一定以上の規模の台数があるオンプレからAWSの移行計画を立案するときに活用できる
エージェントを入れて、パフォーマンス情報など収集できる

AWS Application Discovery Service

AWS Application Discovery Service は、移行のためのデータのみを収集する

AgentLess Discovery コネクタ

ADS を利用することでオンプレミスで稼働しているサーバーの各種情報を取得し、アセスメント・分析を行うための支援をしてくれる
numCores や OSType などを知ることができる

Application Migration Service

オンプレミスの VM を AWS クラウドに複製またはミラーリングするために使用する

Application Migration Serviceと Migration Hub の違い

オンプレなどのサーバーを AWS へ移行するためのサービスがApplication Migration Service

その他

Amazon API Gateway

Amazon API Gateway ではオプションでキャッシュ機能を使うことが出来る

Amazon ECS

ECS Anywhere
マネージド インスタンスにセキュリティ関連のアップデートを適用するプロセスを自動化する
Linux ベースのインスタンスの場合は、セキュリティ以外の更新のパッチをインストールすることもできます。

AWS Batch

AWS の Batch 構築サービス

MAM

(モバイルアプリケーション管理)

CRM アプリケーション

「Customer Relationship Management」の略で、日本語では「顧客関係管理」

以上。