AWS Solution Architect Professional勉強メモ　その1

# はじめに
2年半ぶりにAWS Solution Architect Professionalを更新したので、勉強メモを残しておきます。　長いので２分割。

https://qiita.com/Regryp/items/3fbec3af33f25350a3bf


# メモ
## Step FunctionsとSimple Work Flowの使い分け
プロセスにおいて介入する外部信号が必要な場合、または結果を親に返す子プロセスを起動する場合は、Amazon Simple Workflow Service (Amazon SWF) を使用する。SWF では、宣言型の JSON にステートマシンを記述するのではなく、ディサイダープログラムを書いて決定ステップからアクティビティステップを分離する。Amazon SWF では、連携ロジックを完全に制御することが可能だが、アプリケーションの開発はより複雑になる。

https://aws.amazon.com/jp/step-functions/faqs/

## Server Migration Service(SMS)とApplication Migration Service （MGN）の関係
AWS へのリフトアンドシフト移行に推奨される主要な移行サービス。特定の AWS リージョンで AWS MGN が利用できない場合、2023 年 3 月 31 日まで AWS Server Migration Service (AWS SMS) API を利用可能。

https://aws.amazon.com/jp/server-migration-service/

## Snowball Edgeのストレージ容量
現在はSnowballというストレージはなくSnowballEdgeを使用する
Snowball Edge Storage Optimizedは80TB
Snowball Edge Compute Optimizedは42TB

https://docs.aws.amazon.com/ja_jp/snowball/latest/developer-guide/device-differences.html

## ElastiCache MemchachedとRedisの使い分け
シンプルな構成、マルチスレッドではMemchached、可用性や暗号化、永続性などを意識する場合はRedis

https://aws.amazon.com/jp/elasticache/redis-vs-memcached/

## CloudFrontでのZIP圧縮
CloudFrontではエッジでのZIP圧縮が可能。

https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html

## ECS Capacity Provider
ECSにおけるタスク実行のインフラをより柔軟に設定する新しい仕組み。
オンデマンドインスタンスやスポットインスタンスの配分などを柔軟に決定可能。

https://dev.classmethod.jp/articles/regrwoth-capacity-provider/

## BYOIP
IPをAWSに持ち込む場合
ざっくりいうと自己署名 X509 証明書を作成し、RDAP レコードに追加する。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/ec2-byoip.html

## Auto Scaling グループから終了した EC2 インスタンスを削除する方法
```
aws autoscaling terminate-instance-in-auto-scaling-group --instance-id YOUR-INSTANCE-ID --no-should-decrement-desired-capacity
```

https://aws.amazon.com/jp/premiumsupport/knowledge-center/auto-scaling-remove-terminated-instance/

## クロスアカウントクロスリージョンでのCloudWatch利用
単一リージョンのCloudWatchにメトリクスやグラフなどを集約可能。

https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html

## Application Migration Service （MGN）の利用方法
対象サーバにReplication Agentをインストールする。
サーバーにエージェントをインストールできない場合は、エージェントレスレプリケーションオプションを利用する。
継続的レプリケーションを利用し、EBSに書き込み。
カットオーバーするとインスタンスを起動する。

https://aws.amazon.com/jp/application-migration-service/

## Database Migration Service (DMS)のテーブルマッピング方法
コンソール及びJSONにて変換対象のテーブル等を指定する。

https://docs.aws.amazon.com/ja_jp/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.html

## IAM一時認証情報の取り消し方法
IAMロールを選択して取り消しを実行可能。

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_roles_use_revoke-sessions.html

## Route53 DDoS対策
シャッフルシャーディングに対応している。

https://aws.amazon.com/jp/builders-library/workload-isolation-using-shuffle-sharding/

## CloudFrontのオリジンに指定するS3バケットのデフォルト暗号化
KMS方式は対応していないため、AES256方式にする必要がある。

https://aws.amazon.com/jp/premiumsupport/knowledge-center/s3-website-cloudfront-error-403/

## プレイスメントグループへのインスタンスの追加方法
プレイスメントグループを一旦停止し、追加後起動する。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/placement-groups.html

## APIGatewayからLambdaを呼び出す権限
APIGatewayにLambdaを呼び出す許可を、IAMロールで許可する。

https://aws.amazon.com/jp/premiumsupport/knowledge-center/api-gateway-rest-api-lambda-integrations/

## Organizations内のタグの標準化
タグポリシーを付与し、タグ付けを標準化できる。

https://docs.aws.amazon.com/ja_jp/organizations/latest/userguide/orgs_manage_policies_tag-policies.html

## S3のバージョニングを有効化した場合のバージョンID付与の考え方
バージョニングを有効化する前に保存したオブジェクト：Null
バージョニングを有効化したあとに保存したオブジェクト：ランダムなIDが付与

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/versioning-workflows.html

## WindowsServerインプレースアップグレードと並行アップグレードの違い
インプレースアップグレードはオペレーティングシステムファイルをアップグレードし、個人の設定およびファイルは維持。並行アップグレードでは、設定、構成、データを取り込み、新しいインスタンスへ移動。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/serverupgrade.html

## インスタンスメタデータ、ユーザデータ
メタデータ：ホスト名、イベント、およびセキュリティグループなど
ユーザデータ：起動時のスクリプト

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-instance-metadata.html

## Rekognitionの利用方法
AWSCLIもしくはRekognitionAPI

https://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/get-started-exercise.html

## Lambdaプロキシ統合と非プロキシ統合の違い
プロキシ統合：レスポンス等のカスタマイズ不可
非プロキシ統合：受信データをバックエンドからの応答とレスポンスにマッピングしてカスタマイズ可能

https://qiita.com/yuuwatanabe/items/a3bd65e709f20574b6db

## CloudTrailの組織の証跡
Organizationsのマスターアカウントで組織の証跡を有効化すると全アカウントの証跡を取得できる

https://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/creating-trail-organization.html

## ポリシーにおける複数値のチェック
ForAllValuesまたはForAnyValuesで複数のキーをチェック可能。

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html

## Organizationsからのメンバー削除
請求へのアクセスのIAMユーザに許可しないと削除不可

https://docs.aws.amazon.com/ja_jp/organizations/latest/userguide/orgs_manage_accounts_remove.html

## SSE-Cによる暗号化を実施する場合
S3へのリクエストにおいて、HTTPヘッダーに以下を追加する。
x-amz-server-side-encryption-customer-algorithm
x-amz-server-side-encryption-customer-key
x-amz-server-side-encryption-customer-key-MD5 

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html

## ELBにおけるメトリクス
SpilloverCount：SurgeQueueに格納できず溢れてしまったもの
SurgeQueueLength：ELBでのキュー　（バックエンドに転送できていないもの）

https://dev.classmethod.jp/articles/elb-and-cloudwatch-metrics-in-depth/

## ELBのエラー
HTTPCode_ELB_XXX（エラーコード）

https://dev.classmethod.jp/articles/elb-and-cloudwatch-metrics-in-depth/

## Rekogniton VideoとKinesis Video Stream
Kinesis Video StreamからRekognitonVideoを呼び出すことができる。

https://dev.classmethod.jp/articles/rekognition-video-analyze-kinesis-video-stream/

## Elemental Media Convert
動画の変換が可能。
HLS、MP4、MPEGDASHなどストリーミング形式にも変換できる。

https://dev.classmethod.jp/articles/use-aws-elemental-mediaconvert-191023/

## CloudFrontのOrigin　Protocol　Policy
HTTP only：HTTPでオリジンにリクエスト
HTTPS only：HTTPSでオリジンにリクエスト
Match viewer:ビューワからのリクエスト通りにオリジンにリクエスト

https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginProtocolPolicy

## Cfnのヘルパースクリプト
cfn-init: リソースメタデータの取得と解釈、パッケージのインストール、ファイルの作成、およびサービスの開始で使用。
cfn-signal: CreationPolicy または WaitCondition でシグナルを送信するために使用し、前提となるリソースやアプリケーションの準備ができたときに、スタックの他のリソースを同期できる。
cfn-get-metadata: 特定のキーへのリソースまたはパスのメタデータを取得するために使用。
cfn-hup: メタデータへの更新を確認し、変更が検出されたときにカスタムフックを実行するために使用。

https://dev.classmethod.jp/articles/cfn-helper-scripts/

## EC2インスタンスプロファイル
EC2にIAMロールを渡すもの

https://dev.classmethod.jp/articles/do_you_know_iaminstanceprofile/

## OpsWorksスタック、レイヤー
スタック：まとめて管理するインスタンスのセット
レイヤー：ロードバランサーや一連のアプリケーションサーバーなどのスタックコンポーネントを表す

https://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/workingstacks.html

## DynamoDB FGAC
DynamoDB テーブルの所有者がテーブル内のデータに対して詳細なコントロールを行うための機能。
IAMと組み合わせ誰がテーブルのどの項目や属性にアクセスでき、どのようなアクション（読み込み/書き込み）を実行できるかを指定可能。

https://aws.amazon.com/jp/blogs/aws/fine-grained-access-control-for-amazon-dynamodb/

## OpsWorks自動ヒーリング
レイヤーレベルで自動ヒーリングが設定可能。

https://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/workinginstances-autohealing.html

## Storage Gatewayボリューム型の復元
リストアページからEBSへの復元が可能。

https://docs.aws.amazon.com/ja_jp/aws-backup/latest/devguide/restoring-storage-gateway.html

## Kinesisコネクタ
KCLでAmazon DynamoDB、Amazon Redshift、Amazon S3、Elasticsearch へのコネクタが利用可能。

https://aws.amazon.com/jp/kinesis/data-streams/resources/

## APIGatewayメトリクス
IntegrationLatency：API Gateway がバックエンドにリクエストを中継してから、バックエンドからレスポンスを受け取るまでの時間。
Latency：API Gateway がクライアントからリクエストを受け取ってから、クライアントにレスポンスを返すまでの時間。

https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/api-gateway-metrics-and-dimensions.html

## RedShiftクエリ処理遅延対策
MTUを小さくする。カーソルを利用する。

https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/queries-troubleshooting.html

## APIGatewayステージ変数。
リリースの際にステージを分けることで、リクエストを分離可能。段階的なリリースなど。

https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/queries-troubleshooting.html

## APIGateway 504エラー対応
タイムアウトしている可能性がある。タイムアウトを増やすもしくは、実行時間が減るような調整をする。

https://aws.amazon.com/jp/premiumsupport/knowledge-center/api-gateway-504-errors/

## EC2のトラブルシュート
EC2 Rescueを利用し、OSレベルの問題をトラブルシュート可能。

https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2rescue-windows-troubleshoot/

## DMSのターゲットにCSVを選択
DMSのターゲットとしてS3のCSVファイルを選択可能。

https://docs.aws.amazon.com/ja_jp/dms/latest/userguide/CHAP_Target.S3.html

## NLBのプロキシプロトコル
送信元のIPアドレスが知りたいとき使う。

https://dev.classmethod.jp/articles/nlb-meets-proxy-protocol-v2/

## ElastiCache RedisのAOF
すべての書き込みコマンドを記録する。

https://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/red-ug/RedisAOF.html

## AWS CLIのページ分割
--no-paginate
--page-size
--max-items
--starting-token

https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-usage-pagination.html

## HVM仮想タイプ
ネットワークパフォーマンスが高い

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/virtualization_types.html

## ELBのCookie名
AWS　ELBという名前のCookieが生成される

https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/sticky-sessions.html