はじめに
本記事は、私がAWS Solution Architect Associate試験を受けるために学習した事をまとめています。
※一部、AWSサービスではなく一般的なIT知識についても記載しています。また、随時内容をアップデートします。
AWSサービス名について
-
Amazon ◯◯◯:独立して使うサービス
- e.g. Amazon CloudFront
-
AWS ◯◯◯:他サービスと連携して使うサービス
- e.g. AWS Elastic Beanstalk
コンテナ関連
Amazon ECS (Elastic Container Service)
- AWSが提供するフルマネージド型のコンテナオーケストレーションサービス
- EKSよりもシンプル
- オンプレミスのモノリシックアプリケーションをマイクロサービスに分割し、コンテナ化。その後、AWSのApplication Load Balancer(ALB)と組み合わせることで、スケーラブルなアプリケーションへ移行可能
Amazon EKS (Elastic Kubernetes Service)
- AWSやオンプレでKubernetesを実行できるマネージドサービス
AWS Fargate
- コンテナ向け「サーバーレス」コンピューティングエンジン
- サーバー管理やリソース割り当てをAWSが管理
- EC2より割高だが、インスタンス管理不要で運用が楽
コンピューティング
Amazon Lightsail
- クラウド上での仮想サーバー( = Vertual Private Server, VPS)のセットアップを簡単に行えるサービス
AWS Elastic Beanstalk
- アプリケーションのデプロイと管理を自動化するPaaS
- 開発者はコードをアップロードするだけで、AWSが自動でインフラを管理し、負荷分散・スケーリング・モニタリングなどを実行する
ネットワーク・通信関連
Amazon CloudFront
- CDN (Contents Delivery Network) 機能を持つデリバリーサービス
- オリジン(例: S3バケットやEC2インスタンス)から取得した静的コンテンツをエッジロケーションにキャッシュ
- 遅延を最小化して高速にコンテンツを配信
- HTTP, HTTPSのみ対応
CDNとは
Webサイトのコンテンツを地理的にユーザーに近いサーバーに保存し、配信スピードを向上させるネットワーク【セキュリティ】
- 「フィールドレベル暗号化」を使うことで、セキュリティのレイヤーが追加され、システムの処理中に特定のデータに特定のアプリケーションのみがアクセスできるように、そのデータを保護できる
- オリジンアクセスアイデンティティ(OAI)をCloudFrontに割り当てることで、ユーザーのS3への直アクセスを制限することが可能(ユーザー→CloudFront→S3)
AWS Global Accelerator
- グローバルユーザーに向けたアプリケーションのパフォーマンスと可用性を向上させるサービス
- TCP, UDPに対応
NAT Gateway
AWS Storage Gateway
・オンプレ環境からAWS環境にあるストレージジェのアクセスを提供するサービス
Site-to-Site VPN
- オンプレミス環境とAWSの間にVPNトンネルを提供するサービス
- 同様のサービスに「AWS Direct Connect」があるが、Site-to-Site VPNはインターネットを利用するのに対し、Direct Connectは専用物理回線を用いる
ネットワークアクセスコントロールリスト(ACL)
AWS Transfer for SFTP
- SFTPを使用してAmazon S3 に直接ファイルを転送できるフルマネージドサービス
- 従来の SFTP サーバーを管理する手間を省きながら、安全でスケーラブルなファイル転送を実現できる
ゲートウェイエンドポイント
- AWS の VPC 内から特定の AWS サービス(e.g. Amazon S3 や DynamoDB)にプライベート接続を提供する仕組み
- インターネットゲートウェイや NAT ゲートウェイを経由せずに、AWS ネットワーク内で通信を行うことが可能
Amazon Route 53
- 高可用性でスケーラブルな DNS(ドメインネームシステム)サービス
- ドメイン名を IP アドレスに変換し、トラフィックを適切なエンドポイントにルーティング
- 「フェイルオーバールーティングポリシー」でプライマリ、セカンダリのAZを設定することで、障害時に自動的にセカンダリのシステムに切り替えができる
ファイル共有プロトコル(SMBとNFS)
- SMB (Server Message Block)
- Windows環境のファイル共有を行う
- Active DirectoryやNTLM、Kerberosで認証
- パフォーマンスは高いが、オーバーヘッドが大きい
- 主に企業内ネットワークでのファイル共有で用いる
- NFS (Network File System)
- Linux/Unixファイル環境のファイル共有
- Kerberos、UNIX UID/GIDで認証
- 軽量でLinux/Unix環境では高速
- 主にHPCクラスタなどの分散環境でのデータ共有に用いる
セキュリティ関連
AWS Certificate Manager (ACM)
- SSL/TLS証明書の発行、管理、および自動化を行うフルマネージドサービス
- 例: ALBと併用することで、ACM発行の証明書を使用してHTTPS通信を簡単に設定可能
- ALBが暗号化・複合化を担当し、EC2インスタンスの負担を軽減
AWS Shield Standard
- L3(ネットワーク層), L4(トランスポート層)における攻撃を防御
- 基本的なDDoS攻撃から防御
- SQLインジェクションやクロスサイトスクリプティング攻撃からは防御できないので注意!
- 自動適用であるため、追加コストなし
AWS Shield Advanced
- 有償サービス
- SAWS Shield Standardの機能に加え、以下に対応
- L7(アプリケーション層)の攻撃への防御
- DDoS対策ダッシュボード(攻撃の可視化・リアルタイムモニタリング)
- AWS WAFとの統合
- 専門チームによる即時対応
Amazon Macie
- S3に含まれる機密情報を自動的に発見し、通知や保護処理を行う
AWS WAF
- L7における防御
- Webアプリケーションファイアウォール
- 一般的なWebサイトに対する攻撃から保護する
- e.g.
- SQLインジェクション
- クロスサイトスクリプティング
- e.g.
- 「地理的一致」ルールステートメントがあるため、特定の国からのアクセスを許可できる(それ以外は全てブロック)
- e.g. 日本を許可リストに入れると、その他の国からはアクセスが全てブロックさr
Amazon Detective
- AWS上のセキュリティ問題を調査して解決するためのサービス
Amazon GuardDuty
- 悪意のあるアクティビティや異常な動作をモニタリングし、AWS のアカウント、ワークロード、データを保護する脅威検出サービス
AWS Secrets Manager
- API KeyやDBのパスワードなどの機密情報(Secrets)を安全に保存し、管理するためのサービス
- 主な機能
- 機密情報を暗号化して保存し、不正アクセスから保護
- DBのパスワードなどの機密情報を定期的に更新(自動ローテーション)
- IAMポリシーを使ったアクセス管理
AWS Key Management Service (KMS)
- 「Key Management Service」という名の通り、暗号化キーを安全に作成、管理し、さまざまなAWSサービスと連携してデータを暗号化するためのサービス
- 主な機能
- 暗号化キーを安全に作成・管理
- データの暗号化・復号化
- IAMポリシーを使ったアクセス管理
AWS Secrets ManagerとKMSの違い
機能面
Secrets Manager | KMS | |
---|---|---|
保存対象 | API Keyやパスワード | 暗号化キーそのもの |
自動化 | 自動ローテーション機能を提供 | 自動ローテーションはなし |
連携サービス | 機密情報の管理に特化 | 他のAWSサービスと直接連携してデータの暗号化・復号化を行う |
利用場面
- Secrets Manager:アプリが機密情報を必要とする場合(e.g. DBアクセス時のAPI Key)
- KMS:データ暗号化(e.g. S3バケットに保存されたデータの暗号化)
IAMロールとIAMポリシーの違い
IAMロール | IAMポリシー | |
---|---|---|
概要 | AWSリソースが他のAWSリソースを操作する権限を委譲する仕組み。 | AWSリソースに対する操作権限を定義したもの。 |
アタッチ先 | AWSリソース(例: EC2、Lambda)。 | IAMユーザー、IAMグループ、IAMロール。 |
適用数 | 1つのAWSリソースに対して1つのIAMロールのみアタッチ可能。 | 1つのIAMエンティティに対して複数のIAMポリシーをアタッチ可能。 |
IAMポリシーの中身
-
"Action": "s3:ListBucket"
:バケット内のオブジェクトのリストを取得するための権限。このアクションを許可することで、特定のユーザーやサービスが指定されたS3バケット内に格納されているオブジェクトを一覧表示できる
Principalとは
- AWSリソースに対するアクションまたはオペレーションをリクエストできる人間のIDまたはワークロード
- ルートユーザ、IAMユーザ、IAMロール、Federatedユーザ(AWSアカウント外で管理、認証され、AWSのサービスやリソースに対して権限を所有する主体)などがある
AssumeRoleとは
- 信頼ポリシーとは
AWS Systems Manager Settion Manager
- SSHやRDP(Remote Desktop Protocol:Microsoftが開発したネットワーク通信プロトコル)なしでEC2やオンプレミスサーバーへ安全にアクセスできるリモート管理ツール
- 踏み台ホストを使用せず、Session Managerを経由してEC2インスタンスなどへSSH接続が可能
SSE-S3, SSE-KMS, SSE-C
SSEとは
- Server Side Encryptionの略(サーバー側の暗号化)
- 対義語はCSE (Client Side Encryption)
SSE-S3 | SSE-KMS | SSE-C | |
---|---|---|---|
特徴 | S3が管理するデフォルトの暗号化方式 | AWS Key Management Service(KMS)を使用 | ユーザーが独自のキーを提供 |
キー管理 | AWSが自動管理 | ユーザーがKMSキーを管理 | ユーザーがフル管理 |
キーローテーション | 自動 | 手動 | 自動(設定可能) |
データベース・キャッシュ関連
Amazon DynamoDB
- サーバーレス NoSQL データベースサービス
- ポイントタイムリカバリ:5分前〜35日前までの任意の時点に、秒単位でテーブルを復元(95%が1時間未満で復旧完了)
Amazon DynamoDB Accelerator (DAX)
- Amazon DynamoDB用のフルマネージド型で可用性の高いキャッシュサービス
Amazon ElastiCache for Redis
- ミリ秒未満のレイテンシーを実現する高速なインメモリデータストア
- 文字列、リストなど複雑なデータを扱える
- 永続化オプションがあり、データをディスクに保存可能
Redisとは
Redis(REmote Dictionary Server):NoSQL型のインメモリデータベース(RAMにデータを保存する)Amazon ElastiCache for Memcached
- Memcachedと互換性のあるインメモリキーバリューストアサービス
- 「キーと値」のペアのみで単純なデータ構造を扱う
- データ永続性がないため、サービス停止や再起動によってメモリ内のデータは失われる!
Memcachedとは
Memcached:オープンソースの分散型メモリーキャッシュシステムAWS OAC (Origin Access Control)
- S3 バケットの直接的なアクセスを制限し、CloudFront からのみの配信を許可する方法
Amazon RDS Proxy
- Amazon RDSのDB接続を効率的に管理するフルマネージド型のサービス
- ユースケース
ストレージサービス
ストレージの種類
- S3(オブジェクトストレージ)
- 耐久性が強み
- AWS Organizationの組織内のアカウントのユーザーのみにアクセスを制限するには、「aws:PrincipalOrgID」をS3バケットポリシーに追加するだけでと良い
- EFS(ファイルストレージ)
- 階層構造でデータ保管できることが強み
- EBS(ブロックストレージ)
- 高パフォーマンスが強み
Amazon Elastic File System (EFS)
- フルマネージドで提供されるストレージサービス
- Linuxベース
- Amazon EC2 Windowsインスタンスにはマウントできない
Amazon FSx for Windows File Server
・Windowsベースのアプリケーション向けに設計された、フルマネージド型のファイルストレージサービス
・Active Directoryと統合可能
・Windows環境のデータストレージをクラウド移行したい場合に最適
FSxとは
FSx:AWSが提供する「フルマネージド型ファイルストレージサービス」S3オブジェクトロック
・Amazon S3 オブジェクトが一定期間または無期限に削除または上書きされるのを防ぐ
リーガルホールド(法定保留)
・保持期間:永久的
リテンションモード(保持期間設定)
・保持期間:指定可能
・(制御の強さ①)
-
コンプライアンスモード
・ルートユーザーを含むすべてのユーザ:指定期間中はオブジェクトが読み取り専用になる
・モード変更や保持期間の短縮はどのユーザーで合っても行えない
・(制御の強さ②) -
ガバナンスモード
・権限を持たないユーザー:指定期間中はオブジェクトが読み取り専用になる
・権限を持つユーザー:オブジェクトの更新、削除、ガバナンスモードの解除ができる
・(制御の強さ③)
Amazon Kinesis
- 「リアルタイムで」大規模なデータストリームを処理・分析するためのマネージドサービス
- (おまけ)Kinesisの由来
- ギリシャ語の「kinesis(キネシス)」に由来し、「動き」や「運動」を意味する
Amazon Kinesis Data Streams (KDS)
- 特徴
- リアルタイムデータストリームを処理・分析するためのサービス
- データストリームにデータを取り込み、ストリーム内のデータを並列で処理できる
- 用途
- リアルタイムログ分析、センサーデータ収集、金融取引データの分析など
Amazon Data Firehose
- 特徴
- データを指定した宛先(Amazon S3、Redshift、Elasticsearchなど)にリアルタイムでストリーミングするETL(抽出、変換、ロード)サービス
- バッファリングと圧縮、変換が可能
- 用途
- ログデータやセンサーデータをAWSサービスにストリーミングし、後で分析・可視化する
- (おまけ)由来
- fire hoseは消火ホースの意味
- 消火ホースが火災用給水線(データ元)→火災現場(データの宛先)へ大量の水(大量のリアルタイムデータ)を勢いよく流すイメージ
Kinesis Data Analytics
- 特徴
- リアルタイムデータストリームに対してSQLクエリを使用して処理・分析を行うサービス
- Kinesis Data Streamsと統合して、リアルタイムにストリームデータを処理する
- 用途
- データのリアルタイム処理、アラートの生成、イベント分析
Amazon Managed Service for Apache Flink (旧 Kinesis Video Streams)
- 特徴
- 動画ストリームの取り込み、保存、処理を行うサービス
- リアルタイムでストリーミングデータを収集し、分析可能
- 用途
- IoTデバイスからのビデオデータ、監視カメラの動画分析、機械学習を使った動画解析
インスタンスストア
- EC2で利用できる基本的なブロックストレージの1つ
(もう一つはEBS) - 特徴:揮発性があり、インスタンスをStopするとデータが消えるため、一時的なデータの保管場所というイメージ
データ移行サービス
AWS DataSync
- オンプレミスのストレージとAmazon S3やAmazon EFS、Amazon FSxなどのAWSストレージサービス間で大規模なデータ転送を効率的に行うためのフルマネージドサービス
- オンプレミス→AWSへのデータの転送速度は最大で10倍速く、転送のセキュリティやデータ整合性を保ちながら、簡単に移行できる
データレイク管理
AWS Lake Formation
- AWS Lake Formation は、データレイクの構築・管理を簡素化するためのAWSサービス
- 従来、データレイクを構築するにはS3、IAM、Glue、Athenaなどのサービスを組み合わせて管理する必要があったが、Lake Formation を利用することで、データのインジェスト・カタログ化・アクセス制御を一元管理できる
分析・検索関連
Amazon Athena
- サーバーレスでS3に格納されたデータをSQLで分析可能
- ペタバイト級のデータを扱える
Amazon OpenSearch Service (旧Amazon Elasticsearch Service)
- フルマネージドな検索および分析サービス
- テキストや非構造化データの検索、可視化、分析に特化
Amazon Redshift
- AWSのクラウド型データウェアハウス(DWH)
- ペタバイト級のデータを高速かつ低コストで分析可能
- (おまけ)Redshift:赤方偏移
https://cloud.watch.impress.co.jp/docs/special/578047.html
最後になぜ”Redshift”というネーミングにしたのかをグラバニ氏に聞いてみた。Redshiftの日本語訳は”赤方偏移”、光のドップラー効果を意味している。
有名な「ハッブルの法則」にあるように、高速で離れていく光源から発せられる光のスペクトルは赤くシフトしていく(逆は青くずれる)。
「現在は、ビッグオブジェクトがオンプレミスからクラウドへとすごい速さで離れていきつつある。たくさんの分析されるべきデータがインサイドからアウトサイドへと放たれていく。その動きはまさにわれわれが描く軌道そのもの。フィジカルな環境からのターニングポイントという意味を込めてRedshiftと名付けた」――。
AWS Glue
- フルマネージド型のデータ統合サービス
- データのETLプロセス(抽出、変換、ロード)自動化や、データレイクやデータウェアハウスにデータを統合・整理し、分析や機械学習の活用に役立つ
Apache Parquet
- 効率的なデータストレージと高速クエリのために設計されたカラム指向のオープンソースのデータフォーマット
- 主な特徴
- カラム指向ストレージ → データを列単位で保存し、特定の列の読み取りが高速- 高圧縮率 → Gzip, Snappy, ZSTD などの圧縮方式をサポート
- スキーマ埋め込み → データの型情報をファイルに保存
- 分散処理向け → Spark, Hive, Presto などと統合可能
監視関連
CloudWatch Synthetics
AWS Network Firewall
- Amazon 仮想プライベートクラウド (VPC) 向けに脅威対策を容易に導入できるマネージドネットワークセキュリティサービス
- VPCのサブネットに配置し、VPCに出入りするトラフィックの検査やフィルタリングを行える
AWS CloudTrail
- AWS アカウントのガバナンス、コンプライアンス、運用監査、監査を行うためのサービス
- ヒトの動きを監視するイメージ
Amazon CloudWatch
- サービスやアプリケーションからメトリクス(例: CPU使用率、リクエスト数など)を収集・監視
- 実際の動作データをもとにシステム全体を監視(例: EC2のCPU使用率)
- CloudWatchダッシュボードは、AWSのアカウントやIAMユーザーを持たない相手にも共有可能
- CPU使用率やエラー発生率などにフォーカス
- モノの様子を監視するイメージ
AWS Config
- AWSリソースの設定変更を記録・監査・評価するマネージドサービス
- どのリソースが変更されたか?にフォーカス
アプリケーション開発
AWS Amplify
- フロントエンドおよびモバイルアプリの開発・デプロイを支援するフルマネージドサービス
- AWSの豊富なクラウド機能を簡単に利用でき、認証、ストレージ、API、プッシュ通知などの機能を提供
- (おまけ)Amplify: 増幅する
Other
AWS Managed Service Provider (MSP)
- AWSの公式パートナー制度の1つであり、企業のAWS環境の設計・運用・最適化を支援するマネージドサービスを提供する認定パートナー