おめでとうございます。これであなたもAWS ソリューションアーキテクト アソシエイトに合格です。〜その他サービス編〜


##はじめに

皆様、大変お待たせ致しました！~~←待ってねえよ。~~
前回の[主要サービス編](https://qiita.com/UpAllNight/items/076ae92c21855fc3bec1)に引き続き試験勉強の際に、これ重要だな・これ知らなかったなと思ったものを纏めていたので共有します！！

##アジェンダ
1. Auto Scaling
2. EMR
3. Redshift
4. CloudFormation
5. Kinesis
6. EBS
7. EFS
8. Trusted Adviser
9. Storage Gateway
10. SQS
11. SNS
12. その他サービス

##1. Auto Scaling
>安定した予測可能なパフォーマンスを可能な限り低コストで維持するためにアプリケーションをモニタリングし、容量を自動で調整します。AWS Auto Scaling を使用すると、複数のサービスにまたがる複数のリソースのためのアプリケーションスケーリングを数分で簡単に設定できます。このサービスは、Amazon EC2 インスタンスとスポットフリート、Amazon ECS タスク、Amazon DynamoDB テーブルとインデックス、および Amazon Aurora レプリカなどのリソースのためにスケーリングプランを構築できる、シンプルで強力なユーザーインターフェイスを提供します。
[公式ページ_Auto Scaling](https://aws.amazon.com/jp/autoscaling/)

<img width=35% alt="autoscaling.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/378268/350c525d-d185-ac43-cb08-3ee70c293a76.png">

| memo      | 
|:-----------------|
|Auto Scalingの３つのコンポーネント。<br>**Auto Scaling起動設定**: どんなEC2インスタンスを起動するか<br>**Auto Scaling Group**: どこに、どんな規模のグループを。数<br>**Auto Scaling ポリシー**: いつ、何台増減させるか。|
|AMIを常に最新化しておくことが重要。ユーザーデータを利用してS3やGitからソースやスクリプトを取得することでEC2インスタンスを最新状態にすることが可能。|
|Auto Scaling Groupのクールダウンタイマー値によってスケールインを実施しない期間を延長することが可能。<br>また、CloudWatchアラームの設定でスケールインの基準値を下げることでスケールインの発生をおさせることが可能。|
|スケールインのデフォルトの動作は、EC２が一番多いAZからランダムに減らす。その次に最も古い起動設定をしたもの・次に課金が発生するのが最も短いもの。|
|**ユーザーデータ**: EC2インスタンスの初回起動時に一回だけスクリプトを実行できる機能。|

##2. EMR(Elastic Map Reduce)
>業界をリードするクラウドネイティブなビッグデータプラットフォームです。大規模環境で大量のデータを迅速かつコスト効率よく処理できます。EMR では Apache Spark、Apache Hive、Apache HBase、Apache Flink、Presto などのオープンソースのツールと、Amazon EC2 の動的なスケーラビリティおよび Amazon S3 によるスケーラブルなストレージを組み合わせた、伸縮自在な分析エンジンが提供されます。
[公式ページ_EMR](https://aws.amazon.com/jp/emr/)

![Amazon-EMR_light-bg@4x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/378268/e50d91d1-8967-3f40-8e60-5cafd1c44ea0.png)

| memo      | 
|:-----------------|
|大量のデータを迅速に容易にかつコスト効果よく処理するためのWebサービス。<br>動的にスケーラブルなAmazon EC2インスタンス全体で膨大な量のデータを処理するのを簡単、高速、そして費用対効果の高いものにするマネージドHadoopフレームワークを提供する。|
|ログファイルの収集場所としてはS3またはDynamoDBが適切。ログ解析としてはEMRを利用する。|
|Web インデックス作成、データマイニング、ログファイル分析、機械学習、財務分析、科学シミュレーション、バイオインフォマティクス研究などのアプリケーションに対して、データ集約型のタスクを実行することが可能。|

##3.Redshift
>現在世界で最も高速なデータウェアハウスで、その速度は年を追うごとに飛躍的に向上しています。そのため、同時実行数の多いワークロードにおいても まったく問題なく実行できます。Redshift では、同時実行処理が事実上無制限です。 
[公式ページ_Redshift](https://aws.amazon.com/jp/redshift/)

![Amazon-Redshift_light-bg@4x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/378268/3251563e-a3b2-f063-a84d-7d92b96852db.png)

| memo      | 
|:-----------------|
|ペタバイトクラスのデータも扱えるデータウェアハウスサービス。BIツールなどを利用した大量のデータの集計、分析に向いている。また列指向データベース(リレーショナルデータベース)であり、列集計に優れているDWHとして利用可能。|
|テーブルの行をコンピューティングノードに分配するので、データを並列処理可能。各テーブルに対して適切な分散キーを選択することにより、データの分配を最適化して、ワークロードを分散し、ノード間のデータの移動を最小限にできる。|
|自動か手動でスナップショットを取得可能。<br>自動だと8時間ごと、もしくはノードあたり5GBのデータ変更があった時取得。|
|Redshiftの拡張VPCルーティングを設定することでVPC内にデータ移動を制御することが可能。また、VPCエンドポイントを利用したS3アクセスもVPC内にデータ移動を制御可能。|
|**クラスター**: リーダーノードとその配下のコンピュータノードの集まり。クラスターの冗長性を高めるには、ノード数を増やす。|
|**クロスリージョンスナップショット**: 別リージョンにもコピー可能。|

##4.CloudFormation
>クラウド環境内のすべてのインフラストラクチャリソースを記述してプロビジョニングするための共通言語を提供します。CloudFormation では、シンプルなテキストファイルを使用して、あらゆるリージョンとアカウントでアプリケーションに必要とされるすべてのリソースを、自動化された安全な方法でモデル化し、プロビジョニングできます。
[公式ページ_CloudFormation](https://aws.amazon.com/jp/cloudformation/)

![AWS-CloudFormation_light-bg@4x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/378268/b37e5e9b-b2da-920f-e677-cdff3d880721.png)

| memo      | 
|:-----------------|
|AWS内のすべてのインフラストラクチャリソースを自動でプロビジョ二ングできるサービス。VPCから構築できる。バージョン管理OK。|
|**テンプレート**: 設定ファイル。<br>**スタック**: プロビジョニングされるAWSのリソースの集合体。|
|設定要素の中で、Properties／Outputs／Description／Metadataは必須ではなくオプショナルで設定する要素。必ずしも設定しなくても、テンプレートを作成することが可能。基本的にResourceのみが必須項目。|
|Elastic Beanstalk、OpsWorksを呼び出すことができ、Elastic Beanstalkと組み合わせて、VPCを含めたインフラ部分の作成からアプリのデプロイまで自動化可能。OpsWorksと組み合わせてアプリの設定まで可能。|
|マッピングテーブルを利用すれば、１つのテンプレートで複数のリージョンに対応できるものを作成可能。|
|CloudFormationのスタックの作成途中にエラーが発生した場合、デフォルトでは、たとえそれまでに課金が発生するリソースが起動していたとしても、そのリソースをを削除してロールバックする。|


##5.Kinesis
>ストリーミングデータをリアルタイムで収集、処理、分析することが簡単になるため、インサイトを適時に取得して新しい情報に迅速に対応できます。Amazon Kinesis は、アプリケーションの要件に最適なツールを柔軟に選択できるだけでなく、あらゆる規模のストリーミングデータをコスト効率良く処理するための主要機能を提供します。Amazon Kinesis をお使いになると、機械学習、分析、その他のアプリケーションに用いる動画、音声、アプリケーションログ、ウェブサイトのクリックストリーム、IoT テレメトリーデータをリアルタイムで取り込めます。
[公式ページ_Kinesis](https://aws.amazon.com/jp/kinesis/)

![Amazon-Kinesis_light-bg@4x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/378268/83f2b8a1-59dd-a142-b04b-0a881d1ca4d8.png)

| memo      | 
|:-----------------|
|リアルタイムに流れてくるデータの収集、処理、ストリーミング処理。|
|SQSとの主な違いは、複数のコンシューマ(メッセージを取得する側)が同時に同じメッセージを取得して処理できる。|
|Amazon Kinesisストリームを使用すると、特別なニーズに合わせてストリーミングデータを処理または分析するカスタムアプリケーションを構築可能。|
|複数のアプリケーションインスタンスを持つことができ、ワーカーは各アプリケーションインスタンスに対応する処理ユニット。|
|**Kinesis Streams**: リアルタイムでストリーミングデータを保存することが可能。EMRやlAMBDAなどで処理可能<br>**Amazon Kinesis Firehose**: 独自にアプリケーションを構築することなく、S3やRedshiftなどに簡単に配信保存が可能。<br>**Amazon Kinesis Analitics**: SQLクエリを実行してリアルタイム分析を行う。|

##6.EBS(Elastic Block Store)
>Amazon Elastic Compute Cloud (EC2) と共に使用するために設計された、スループットとトランザクションの両方が集中するどんな規模のワークロードにも対応できる、使いやすい高性能なブロックストレージサービスです。
[公式ページ_EBS](https://aws.amazon.com/jp/ebs/)

![Amazon-Elastic-Block-Store-EBS_light-bg@4x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/378268/1a6681ef-0bb2-ebcd-9169-8f23ad3a1d82.png)

| memo      | 
|:-----------------|
|スナップショットは初回はフルバックアップを行うが、以後は増分で取得する。S3に自動的に保管される。取得を実行した時点のものが保管されるため完了を待つ必要はない。保存期間や世代数は無制限。|
|EBSのスナップショットを取得する際は、データの整合性を保つためディスクIOを停止する必要あり。|
|AWS CLIから操作可能。|
|リージョンを跨いでスナップショットによる復元ができる。|
|EBSによりRAID構成を実施することが可能。2つ以上のEBSボリューム間でミラーリングすることで回復性が高いバックアップとすることも。|
|EBSボリュームは同じAZ内のEC2インスタンスのみにアタッチ可能。別AZはスナップショットしてから。|
|EBSの追加はEC2インスタンスの初回起動語でOKだが、インスタンスストアを追加できるのはEC２インスタンスの初回起動時のみ。|
|EBSはネットワークストレージ型のためネットワークがボトルネック。そのためEC2インスタンスをEBS最適化インスタンスというタイプで起動すれば、EBSのディスクIO専用の帯域が確保され、安定する。|

##7.EFS(Elastic File System)
>AWS クラウドサービスおよびオンプレミスリソースで使用するための、シンプルでスケーラブル、かつ伸縮自在な完全マネージド型の NFS ファイルシステムを提供します。
[公式ページ_EFS](https://aws.amazon.com/jp/efs/)

![Amazon-Elastic-File-System_EFS_light-bg@4x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/378268/d7f93329-89d4-de01-3fb8-4e4cfa51f9ab.png)

| memo      | 
|:-----------------|
|レイテンシーの影響を受けやすい単一スレッドのワークロードに可能な限り高いスループットを必要とする、高度に並列化されたスケールアウト型ワークロードの多様なユースケースをサポートするのに最適。|
|ユースケースは、リフトアンドシフトのエンタープライズアプリケーション、ビッグデータ分析、ウェブサービスとコンテンツ管理、アプリケーションの開発とテスト、メディアとエンターテインメントワークフロー、データベースのバックアップ、コンテナストレージなど。|
|自動でボリューム拡張可能。ECSに比べ、値段高いが複数のEC２インスタンスと接続可能。|

##8.Trusted Adviser
>AWS ベストプラクティスに従ってリソースをプロビジョニングするのに役立つ、リアルタイムガイダンスを提供しています。
[公式ページ_Trusted Adviser](https://aws.amazon.com/jp/premiumsupport/trustedadvisor/)

![AWS-Trusted-Advisor_light-bg@4x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/378268/fab69acf-34d1-4c8a-1018-477aa1f12fc2.png)

| memo      | 
|:-----------------|
|コスト最適化、セキュリティ、耐障害性、パフォーマンス、サービスの制限の5項目。|
|AWS 環境を最適化することで、コスト削減、パフォーマンスの向上、セキュリティの向上に役立つオンラインリソース。AWS ベストプラクティスに従ってリソースをプロビジョニングするのに役立つ、リアルタイムガイダンスを提供。|
|スナップショットの制限などをモニタリングして利用状況についてアドバイスを与えてくれる。|

##9.Storage Gateway
>オンプレミスから実質無制限のクラウドストレージへのアクセスを提供するハイブリッドクラウドストレージサービスです。
[公式ページ_Storage Gateway](https://aws.amazon.com/jp/storagegateway/?whats-new-cards.sort-by=item.additionalFields.postDateTime&whats-new-cards.sort-order=desc)

![AWS-Storage-Gateway_light-bg@4x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/378268/eebf8124-df17-53a0-bc63-f73e5b8e0e96.png)

| memo      | 
|:-----------------|
|オンプレミスのソフトウェアアプライアンスをクラウドベースのストレージと接続し、組織のオンプレミスの IT 環境と AWS のストレージインフラストラクチャ間でシームレスにセキュアな統合を実践するサービス。このサービスを使用して、バックアップ、アーカイブ、災害対策、クラウドデータ処理、ストレージの階層化、および移行を行うことが可能。|
|レガシーアプリケーションにローカルストレージをプライマリーとして必要とする場合は、ストレージゲートウェイの保管型ボリュームを選択。|
|キャッシュ型ボリュームを使用することで、頻繁にアクセスされるデータはローカルのストレージゲートウェイに保持しながら、Amazon S3 をプライマリデータストレージとして使用可能。|

##10.SQS(Simple Queue Service)
>完全マネージド型のメッセージキューイングサービスで、マイクロサービス、分散システム、およびサーバーレスアプリケーションの切り離しとスケーリングが可能です。
[公式ページ_SQS](https://aws.amazon.com/jp/sqs/)

![Amazon-Simple-Queue-Service-SQS_light-bg@4x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/378268/a96b8710-8dff-e71b-2367-171f239d9529.png)

| memo      | 
|:-----------------|
|非同期なアプリケーション処理のインフラストラクチャを提供する。|
|クラウドアプリケーションのコンポーネントを分離して調整することが簡単で、費用対効果が良くなる。|
|キューイングによってDynamoDBへの処理負荷を下げることが可能。|
|毎月最初の 100 万件のリクエストまでは無料で、その後の処理ごとの料金も安く、費用を抑えることが可能。|
|削除されないメッセージはデフォルトで4日間保持。保持期間は60秒から14日の間で変更可能。最長メッセージ保持期間を超えるキューに残っているメッセージを自動的に削除。|
|複数のSQSキューの処理方法を設定することで、処理すべきメッセージの優先度を変更することが可能。|
|メッセージ重複排除IDを利用することで重複メッセージを防ぐ設計が可能。|
|システムの分離に使用される。ワーカープロセスによって処理するための要求を格納して、非同期処理による確実な処理実行を可能にする。|

##11.SNS(Simple Notification Service)
>マイクロサービス、分散型システム、およびサーバーレスアプリケーションの分離を可能にする、高可用性で、耐久性に優れたセキュアな完全マネージド型 pub/sub メッセージングサービスです。
[公式ページ_SNS](https://aws.amazon.com/jp/sns/)

![Amazon-Simple-Notification-Service-SNS_light-bg@4x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/378268/e81d4a39-827d-24a2-6c9a-ec2d12e8a3dc.png)

| memo      | 
|:-----------------|
|マイクロサービス、分散型システム、およびサーバーレスアプリケーションの分離を可能にする、高可用性で、耐久性に優れたセキュアな完全マネージド型 pub/sub メッセージングサービス。|
|高スループット、プッシュベース、多対多のメッセージングのためのトピックを提供。|
|pub-sub に対応し、SNSトピックにメッセージを送信(publish)すると、トピックを購読(subscribe)しているsubscriberにメッセージが一斉配信される。<br>コンポーネント間の連携よりは、メッセージ送受信処理に向いている。|

##12.その他サービス

| サービス名      |  機能      | 
|:-----------------|:-----------------|
|Elastic Beanstalk|Webアプリケーションやサービスをサーバーにデプロイでき、また実行環境の管理も行うことができるサービス。<br>ユースケースとしてはWEBアプリケーションやワーカー環境などの構築。バージョン管理OK。|
|OpsWorks|構築手順通りにサーバー構築作業を自動化する構成管理サービス。アプリケーションの設定も。リリース後の監視の機能もある。Elastic beanstalkとOpsWorksはどちらもデプロイとプロビジョニングの両方できる。|
|CodeDeploy|アプリケーションのデプロイを自動化するサービス。|
|CloudWatch|AWSリソースと、AWSでリアルタイムに実行されるアプリケーションを監視。メトリクスを収集し、追跡可能。メモリ使用率やディスク使用率は標準メトリクスでは提供されていない。CPU使用率はされている。基本モニタリングは5分間隔で、保存期間は最大15ヶ月。|
|CloudWatch Logs|CloudTrailやVPCフローログなどさまざまなAWSのログを統合的に収集する。|
|SDK|Javaなどの主要なプログラミング言語向けに提供されるAPI群。|
|ECR(Elastic Container Registry)|完全マネージド型の Docker コンテナレジストリ。このレジストリを使うと、開発者は Docker コンテナイメージを簡単に保存、管理、デプロイ可能。|
|ECS (Elastic Container Service)| Docker コンテナアプリケーションを AWS で簡単に実行、スケール、保護することが可能。Kubernetesをサポートしている。|
|Kubernetes|コンテナ化されたアプリケーションのデプロイ、スケーリング、および管理を自動化するためのオープンソースシステム。|
|AWS import/export|物理ディスクのデータをAWS内のストレージへ転送したり、物理ディスクに書き出したりするサービス。後継で、Snowball。|
|Snowball|安全なデバイスを使用して AWS クラウドの内外に大量のデータを転送するペタバイト規模のデータ転送サービス。高いネットワークコスト、長時間かかる転送、セキュリティ面の懸念といった課題を解決し、データを物理的なハードウェアを利用して移転することが可能。|
|IAM(Identity and Access Management )|「どのサービス（リソース）に対する」「どのような操作を」「誰に」許可するか・許可しないかを定義出来る。IAMロールはユーザーではなく、サービスやアプリケーションに紐付け可能。IAMユーザー作成直後は権限は何もない。|
|Data Pipeline|指定された間隔で、AWS のさまざまなコンピューティングサービスやストレージサービスのほか、オンプレミスのデータソース間で信頼性の高いデータ処理やデータ移動を行うことを支援するウェブサービス。データベースからのデータの取り出し、変換、保存などの順次処理を行う。|
|Systems Manager|AWS でご利用のインフラストラクチャを可視化し、制御するためのサービス。AWSサーバーとオンプレミスのサーバーとを1つのインターフェイスで管理できることが特徴。EC2のパッチ、更新、設定変更・削除・停止およびデプロイなどを自動化する。|
|Artifact|世界各地にある監査機関の指定する基準／規制の遵守状況を検証したコンプライアンスレポートを生成する。AWSアカウントとの契約の確認・受諾・管理を実施する。|
|GuardDuty|AWS上で悪意のある操作や不正な動作を継続的にモニタリングする脅威検出サービス。ログ解析も可能。|
|Pricing Calculator|ニーズに応じたコスト試算が可能。|
|Consolidated Biling|複数のAWSアカウントに対する請求を１つにまとめて支払いできるサービス。マスターアカウント、メンバーアカウントがある。|
|Certificate Manager|AWS の各種サービスで使用する Secure Sockets Layer/Transport Layer Security (SSL/TLS) 証明書のプロビジョニング、管理、およびデプロイを簡単に行える。|
|AWS Config|AWSのサービスで管理されているリソースの構成変更を追跡するサービス。<br>「構成変更を管理するストリーム」と「履歴管理するヒストリー」と「構成要素を保存するスナップショット」の機能がある。|
|ElastiCache|インメモリデータストアやインメモリキャッシュとして機能。完全マネージド型の Redis および Memcached をご利用可能。Redisの方が多機能で複雑なデータ型が必要な場合・フェイルオーバーが必要な場合に選択。memcachedはシンプルなデータ型だけで充分な場合・マルチスレッドが必要な場合に選択する。|
|CloudTrail|AWSアカウントで利用された操作をログとして記録するサービス。AWS アカウントのガバナンス、コンプライアンス、運用監査、リスク監査を行うためのサービス。<br>デフォルトでCloudTrailイベントログファイルは、Amazon S3サーバーサイド暗号化（SSE）を使用して暗号化されている。<br>ログファイルをAWS Key Management Service（AWS KMS）キーで暗号化することも可能。|
|AWS KMS(Key Management Service)|鍵管理を提供するマネージドサービス。AWS上で鍵が管理される。アプリ・ユーザーは暗号化データキーを利用してデータを暗号化する。<br>ElasticTranscoderなどで使用可能。SQS、SWF、SNSは無理。キーを簡単に作成・管理し、幅広い AWS のサービスやアプリケーションで暗号化の使用を制御できるようになる。<br>EBSに対応しており、KMSによりEBSに保存されたデータを暗号化することが可能。|
|CloudHSM(Hardware Security Module)|クラウドベースのハードウェアセキュリティモジュール。AWSがHSMのアプライアンス自体を管理し、ユーザーは自身だけがそのアプライアンスに保存されている鍵を管理することが可能。ユーザー占有。セキュリティコンプライアンス要件が厳しい場合に適用する。<br>HSMはゼロ化してキーをロスとしてしまうと、コピーを有していない場合は新しいキーを取得不可能。|
|STS(Security Token Service )|AWS のサービスへのアクセスに使用できる一時的な限定権限認証情報を利用するサービス。<br>信頼されたユーザーを作成し、AWSリソースへのアクセスを制御できる一時的なセキュリティ認証情報を提供することが可能。<br>一時的な認証情報は、「アクセスキー」と「シークレットアクセスキー」、「セッショントークン」の3つから成る。SAML（Security Assertion Markup Language）2.0などのオープンスタンダードをサポート。|


###その他IT用語
| 用語      |  意味      | 
|:-----------------|:-----------------|
|パイロットライト|ディザスタリカバリの方法。停止した状態の最小限の構成を別のリージョンに用意しておき、障害発生時に立ち上げるというものであり、インフラを待機させる分のコストを必要。|
|IDフェデレーション|企業や組織などですでに導入されている認証の仕組みとAWSの認証を紐付け、シングルサインオンを実現。SAML2.0やOpenID Connectが使われる。|
|Blue/Green Deployment|異なるバージョンのアプリケーションを実行する環境をそれぞれ1つずつ、計2つ作成。それらの環境間でトラフィックを移動（ブルー⇒グリーンへ移動）させることによって、アプリケーションの新バージョンをリリースするために利用される技術。|
##終わりに
試験を受けてみて、クライアントの要件を実現させるためには、各サービスの概要を把握して、どの組み合わせがベストプラクティスかを考えるアーキテクトの視点が重要だと感じました。
その為にはinputだけでなく、outputが大事です。実際にどんどん触ってみましょう！

ご覧いただきありがとうございました！