SAA-03に1ヶ月で合格した。学習メモを公開
はじめに
SAA-03を1ヶ月勉強して合格しました。その際に、memoの走り書きを記載しました。
少し苦労した点が、様々なサービスがある中で類似点や相違点がぱっと分かりにくい、名称を記憶することが出来ない。という課題があって、簡単なまとめノートを作成しました。
GPTにまとめてもらった部分が大部分で、間違った情報もあるかもしれません。
ただ、比較したり記憶していく際には、あたまの中にインデックスが出来て役に立ちました。
そのまま貼り付けたものを公開します。
SAA-03勉強内容
Udemyの講座があって、問題を解いて、間違った部分を重点的に学習しました。
わからない部分や、記憶しづらい部分をmemoに載せていきました。
VPC
VPCピアリング
- VPC同士の接続
- リージョン跨いでもピアリング可
VPC エンドポイントサービス (AWS PrivateLink)
VPCエンドポイントは、オンプレミス環境とVPCを接続するためのものではありません。VPCエンドポイントは、**AWS内でのVPCと特定のAWSサービス(例:S3、DynamoDBなど)**とのプライベート接続を提供するための仕組みです。
VPCエンドポイントの概要
• VPCエンドポイントを使用すると、インターネットを経由せずに、VPC内のリソースがAWSの一部のサービスにプライベートにアクセスできるようになります。
- インターネット経由せずプライベートにアクセスするに、VPCとの通信可能なネットワークをひく
2種類ある
インターフェースエンドポイント (Interface Endpoint):
ゲートウェイエンドポイント (Gateway Endpoint):
AWS Transit Gateway
で複数のAWSアカウントのネットワーク、オンプレミスのネットワークを制御できるぽい
Amazon VPC Transit Gateway とは - Amazon VPC
複数のVPC(Virtual Private Cloud)やオンプレミスネットワークを、一元的に接続・管理するためのサービスです。従来、複数のVPC間やオンプレミスネットワークとの接続には個別にVPN接続やVPCピアリングなどが必要でしたが、Transit Gatewayを使うことで、これらのネットワークを一箇所で集約し、効率的に接続できるように
オンプレミス環境での接続
AWS Direct Connect
- 物理的な回線で繋ぐ
AWS VPN接続
- AWSのVPCをインターネット経由で暗号化されたトンネルを使用して接続する方法
AWS側:Virtual Private Gateway
オンプレミス側:Customer Gateway(カスタマーゲートウェイ)
Virtual Private Gateway はAWS側のVPNや専用接続の終端デバイス。
Customer Gateway はオンプレミス側の接続デバイス。
AWS Site-to-Site VPN
- VPN接続だが、オンプレミスのネットワーク全体とAWS VPCとの接続を実施
SQS
可視性タイムアウト
Amazon SQS可視性タイムアウト - Amazon Simple Queue Service
Amazon SQS、Amazon MQとAmazon SNSの違い
Amazon Simple Queue Service とは - Amazon Simple Queue Service
Amazon MQ
概要:
Amazon MQは、メッセージブローカーサービスで、従来型のメッセージングプロトコル(例:AMQP、MQTT、OpenWireなど)を使って、既存のメッセージブローカーアプリケーションと互換性を持つよう設計されています。Apache ActiveMQやRabbitMQのようなメッセージブローカーをAWS上でマネージドサービスとして利用できます。
SNS
Amazon とは SNS - Amazon Simple Notification Service
SNSの概要・単語
1. Publisher(パブリッシャー)
- 説明: パブリッシャーは、SNSトピックにメッセージを送信する役割を担うエンティティです。パブリッシャーは、メッセージをSNSトピックに公開(publish)し、そのメッセージがコンシューマ(後述)に伝達されます。
- 例: Lambda関数、アプリケーション、AWSサービス(CloudWatchアラームなど)などがパブリッシャーとして、SNSにメッセージを送信します。
2. Topic(トピック)
- 説明: トピックは、SNSにおけるメッセージの受け渡しの中枢となるオブジェクトです。パブリッシャーがメッセージをトピックに送信し、トピックにサブスクライブしているすべてのサブスクライバーにそのメッセージが配信されます。
- 例: 「order_updates」という名前のトピックを作成し、注文に関する更新情報を通知するメッセージをそのトピックに公開(publish)できます。
3. Subscriber(サブスクライバー)
- 説明: サブスクライバーは、SNSトピックにサブスクライブ(登録)してメッセージを受信するエンティティです。サブスクライブされたエンドポイントにメッセージが配信されます。
- 例: Lambda関数、SQSキュー、メールアドレス(Email)、HTTP/HTTPSエンドポイント、SMSなどがサブスクライバーとしてトピックにサブスクライブできます。
4. Subscription(サブスクリプション)
- 説明: サブスクリプションは、SNSトピックにサブスクライブされたサブスクライバーの登録情報です。特定のエンドポイント(例えば、メールアドレスやLambda関数)がトピックにサブスクライブされることで、サブスクリプションが作成されます。これにより、そのエンドポイントはトピックからのメッセージを受信するようになります。
- 例: 「order_updates」トピックにメールアドレスがサブスクライブされた場合、そのメールアドレスはサブスクリプションとして管理され、メッセージが配信されます。
5. Consumer(コンシューマ)
- 説明: コンシューマは、SNSからメッセージを実際に受け取るエンティティです。サブスクライバーがコンシューマの役割を果たします。例えば、Lambda関数やSQSキューなどがSNSのメッセージを受け取って処理します。
- 例: Lambda関数がSNSトピックにサブスクライブされている場合、その関数はメッセージをコンシューム(消費)する役割を果たします。
6. Message(メッセージ)
- 説明: メッセージは、パブリッシャーがSNSトピックに送信する情報です。メッセージはトピックに公開され、すべてのサブスクライバーに配信されます。メッセージはテキスト形式で、通常はJSONやプレーンテキストとして送信されます。
- 例: 「新しい注文が作成されました」といったメッセージがSNSトピックに送信されます。
7. Fanout(ファンアウト)
- 説明: SNSのトピックを使って、1つのメッセージを複数のサブスクライバーに配信することを指します。これにより、パブリッシャーは一度メッセージを公開するだけで、それを複数のエンドポイントに一斉配信できます。
- 例: 1つのトピックに対して、複数のSQSキューやLambda関数がサブスクライブされている場合、1つのメッセージが同時にすべてのサブスクライバーに送信される。
8. Push Notification(プッシュ通知)
- 説明: SNSは、モバイルデバイス(iOS、Android)に対してプッシュ通知を送るためにも利用されます。SNSを通じて、モバイル端末にメッセージを直接プッシュすることができます。
- 例: モバイルアプリに対して、SNSを使ってリアルタイム通知をプッシュする。
EC2
インスタンスタイプ
r = RAM:メモリ
g = GPU:GPU処理
d = Disk:ストレージ
m, t :汎用的
c:CPU
AutoScalingGroup
スケーリングのトリガー
CPU使用率
- 概要: 最も一般的なスケーリング対象です。CPU使用率が高くなるとインスタンスを増加させ、低くなるとインスタンスを減少させることができます。
- ユースケース: アプリケーションサーバーがCPU負荷の大きい処理を行う場合、負荷が増加するとインスタンスを追加し、負荷が減少するとインスタンスを削減します。
- 例: 平均CPU使用率が60%を超えたらスケールアウトし、30%未満になったらスケールインする。
2. ネットワークトラフィック(In/Out)
- 概要: ネットワークの入出力トラフィックをスケーリング対象にすることができます。例えば、ネットワークの受信量や送信量が一定のしきい値を超えたら、インスタンスをスケールアウトする設定が可能です。
- ユースケース: WebサーバーやAPIサーバーで、トラフィック量の増加に応じてスケールする場合に有効です。
- 例: ネットワーク受信トラフィックが5 Mbpsを超えたらスケールアウトし、1 Mbps以下になったらスケールインする。
3. メモリ使用率
- 概要: AWSのデフォルトのメトリクスには含まれていませんが、メモリ使用率をカスタムCloudWatchメトリクスとして送信することで、スケーリング対象にできます。
- ユースケース: メモリ使用量が高くなると性能が低下するようなアプリケーション(例: キャッシュサーバーやデータベース)の場合に有効です。
- 例: メモリ使用率が80%を超えたらスケールアウトし、40%未満になったらスケールインする。
4. ディスクI/O
- 概要: ディスクの入出力(I/O)アクティビティをスケーリング対象に設定できます。特にディスクI/Oの多いデータベースサーバーやストレージサーバーにおいて、ディスクI/Oの増加に伴ってスケーリングすることが有効です。
- ユースケース: データベースやログ処理を行うサーバーで、ディスクI/Oの量がサーバーの負荷に直結する場合。
- 例: ディスクの読み書きが毎秒1000 IOPSを超えたらスケールアウトする。
5. リクエスト数(ターゲット追跡ポリシー)
- 概要: **Application Load Balancer(ALB)**と連携し、ターゲットグループ内のインスタンスが処理するリクエスト数を元にスケーリングします。特定のインスタンスごとに処理されるリクエスト数を基準に、負荷に応じてインスタンスをスケールします。
- ユースケース: WebサーバーやAPIサーバーで、リクエストが増加するにつれてインスタンスを増加させるケース。
- 例: 1インスタンスあたりのリクエスト数が50を超えたらスケールアウトする。
6. スケジュールに基づくスケーリング
- 概要: 特定の日時や時間帯に基づいてスケーリングを設定します。例えば、業務時間内にトラフィックが増加することが予想される場合、その時間帯に合わせてインスタンスを増やし、夜間に減らすことができます。
- ユースケース: 業務時間中はトラフィックが多く、非業務時間中は少ないようなシステム。
- 例: 平日午前9時にスケールアウトし、午後6時にスケールインする。
7. カスタムCloudWatchメトリクス
- 概要: 標準のCPUやネットワークトラフィック以外のメトリクスをスケーリングに使用したい場合、カスタムメトリクスをCloudWatchに送信し、そのメトリクスに基づいてスケーリングを設定できます。
- ユースケース: 例えば、アプリケーション独自のパフォーマンス指標(DB接続数やアクティブユーザー数など)をスケーリングの基準にすることが可能です。
- 例: DBの接続数が1000を超えたらスケールアウトする。
8. ヘルスチェックによるスケーリング
- 概要: ヘルスチェック(特にELBのヘルスチェック)を使って、問題のあるインスタンスをスケールインすることができます。もしEC2インスタンスが正常でないと判断された場合、自動的にそのインスタンスを終了し、新しいインスタンスを起動します。
- ユースケース: インスタンスの正常性を監視し、障害が発生したインスタンスを迅速に置き換える場合。
- 例: ELBによるヘルスチェックでインスタンスが不健康と判断された場合、新しいインスタンスを起動する。
スケーリング方法
-
ターゲット追跡スケーリング:
- CPU使用率やALBのリクエスト数などのメトリクスに基づいて、ターゲットを追跡し、目標に達するように自動的にスケールイン/スケールアウトします。
-
ステップスケーリング:
- メトリクスが特定のしきい値を超えると、段階的にインスタンスを増減させます。例えば、CPU使用率が70%を超えたら2台のインスタンスを追加する、というような設定が可能です。
-
シンプルスケーリング:
- 条件に基づき1回のアクションでスケールイン/スケールアウトを実行します。たとえば、「CPU使用率が80%を超えたら1台のインスタンスを追加する」といった単純なポリシーです。
-
スケジュールスケーリング:
- 時間指定でインスタンスを増減させます。例えば「毎日午前9時に2台のインスタンスを追加する」といったスケジュールに基づいたスケーリングです。
ターゲットグループ
ELB
ロードバランシングの種類
Elastic Load Balancing の仕組み - Elastic Load Balancing
ルーティングアルゴリズム
ロードバランサー自体では、位置情報(地理的な位置)に基づいて直接ロードバランシングを行うことはできません。ただし、AWSには位置情報(地理的なルーティング)に基づいてトラフィックを振り分けるための別のサービスがあります。それがAmazon Route 53です。
NLB
トランスポート層でのロードバランサー
- AWS Global AcceleratorをNetwork Load Balancer (NLB) に設定することが可能
- TCPおよびUDPトラフィックを処理し、グローバルなユーザーからのアクセスを最も近いAWSエッジロケーションに接続することで、インターネットの混雑を回避し、低レイテンシーで安定した接続を提供
RDS
オートスケール
-
ストレージのオートスケーリング: データベースのストレージ使用量に応じて、自動的にストレージを拡張。
-
リードレプリカによるスケーリング: 読み取り負荷を分散するために、リードレプリカを使ってスケールアウトを実現。
-
Aurora Serverless: Auroraデータベースにおいて、アプリケーションの負荷に応じて自動的にコンピューティングキャパシティをスケーリング。
Aurora Serverless v2を本番導入した話 〜検討や導入時のポイント・得られた効果について〜 - ZOZO TECH BLOG
S3
ストレージタイプ
Standard
Standard-IA?:取得までやや時間掛かる・重要データ
One-????:取得までやや時間掛かる・非重要データ
S3でウェブサイトホスティング
ウェブサイトエンドポイント - Amazon Simple Storage Service
S3のパフォーマンス設計
Amazon S3 のパフォーマンスの設計パターン - Amazon Simple Storage Service
S3のファイル保護
Amazon S3 におけるデータ保護 - Amazon Simple Storage Service
S3にはスナップショットの機能はない
バージョニング機能を使えば
S3 バケットでのバージョニングの使用 - Amazon Simple Storage Service
S3バケットにあるMFA Deleteを有効化
S3のオブジェクトロック
- コンプライアンスモード:誰も削除出来ない
- ガバナンスモード:特別な権限を持ったユーザー以外削除できない
S3 Object Lock を使用したオブジェクトのロック - Amazon Simple Storage Service
Amazon S3の暗号化には以下の種類があります:
1. SSE-S3(Server-Side Encryption with S3 Managed Keys)
• S3が自動で暗号化・鍵管理(AES-256)を行います。
• ユーザーは鍵管理の手間がありません。
2. SSE-KMS(Server-Side Encryption with AWS KMS Managed Keys)
• AWS KMSを利用して暗号化し、KMSで鍵の作成や管理、アクセス制御が可能です。
• 監査機能が強化されています。
3. SSE-C(Server-Side Encryption with Customer Provided Keys)
• ユーザーが独自の暗号化キーを提供し、S3が暗号化・復号化を行います。
• ユーザーが鍵を完全に管理します。
4. クライアントサイド暗号化(Client-Side Encryption: CSE)
• クライアントがデータをS3にアップロードする前に暗号化を行い、暗号化されたデータをS3に保存します。
• ユーザーが暗号化と鍵の管理を行います。
これらの暗号化オプションを使うことで、S3に保存するデータを保護することが可能です。
クロスリージョンレプリケーション(CRR)
オプション機能
*クロスリージョンレプリケーション(CRR)**は、1つのAmazon S3バケットに格納されたオブジェクトを、異なるAWSリージョンの別のS3バケットに自動的に複製する機能です。
主に、災害復旧や、データのリージョン間での可用性向上を目的に使用されます。また、異なる地理的リージョンにデータを複製することで、リージョン障害時にもデータを保護できます。
オブジェクトのレプリケーション - Amazon Simple Storage Service
EBS
RAID0構成 RAID1構成
RAID(Redundant Array of Independent Disks)は、複数のハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)を組み合わせて、データの安全性やパフォーマンスを向上させる技術です。RAIDにはいくつかの構成があり、その中でもRAID 0とRAID 1は代表的なものです。
RAID0構成
RAID 0は、**ストライピング(Striping)**を利用することで、複数のディスクにデータを分散して格納し、パフォーマンスを向上させる構成です。
RAID1構成
RAID 1は、**ミラーリング(Mirroring)**によってデータを複製し、冗長性を高める構成です。複数のディスクに同じデータを書き込み、1つのディスクが故障してもデータを失わないようにします。
マッハ0、、、、、
EFS
AWSが提供するフルマネージド型のスケーラブルなネットワークファイルシステムです。EFSは、複数のEC2インスタンスやその他のAWSサービスから共有できるファイルストレージを提供し、アプリケーションやシステムがファイルシステムを通じてデータをやり取りすることができるようになります。
複数のEC2、ECSコンテナ同士で共有可能なファイルシステム
DynamoDB
データ保護
復旧:ポイントタイムリカバリ
※DynamoDBにスナップショットは存在しない
Amazon DynamoDB とは - Amazon DynamoDB
マルチAZレプリケーション
デフォルト設定
DynamoDBは、データを複数のAZに自動的に複製(レプリケート)します。このプロセスはユーザーが設定を行う必要はなく、デフォルトで有効です。これにより、データの可用性が高まり、1つのデータセンターやAZに障害が発生してもデータが失われることなく利用可能です。
DynamoDB Accelerator(DAX) :
- できること
- DynamoDBのキャッシュ機能 高付加アクセスの対応
Amazon DynamoDB 用キャッシュサービス - Amazon DynamoDB Accelerator (DAX) - AWS
DynamoDBデータストリーム
- できること
- DB操作ログを24時間残せる
- つまり、DB操作をトリガーすることができる
DynamoDB Streams の変更データキャプチャ - Amazon DynamoDB
LambdaとDynamoDB Streamsの連携フロー
1. DynamoDBテーブルの変更(挿入、更新、削除)が発生。
2. その変更がDynamoDBストリームに記録される。
3. ストリームに記録された変更イベントをトリガーにLambda関数が実行される。
4. Lambda関数内で、変更内容に基づいた処理が行われる。
DynamoDBトランザクション
DynamoDBトランザクションでは、複数のアイテムに対して一度に複数の操作(読み取りや書き込み)を行い、すべての操作が成功するか、全ての操作がロールバックされます。
これにより、データの整合性が保証されます。
DynamoDBのAutoScaling機能
DynamoDB Auto Scaling によるスループットキャパシティの自動管理 - Amazon DynamoDB
スケールするのは何か?
- スループットのキャパシティがスケールします。テーブルのリソース(読み書き性能)が自動で増減しますが、テーブルそのものの数やサイズが増えるわけではありません。
テーブルクラス
Standard:標準
Standard IA:低頻度アクセス時
キャパシティ
オンデマンド
概要: オンデマンドモードでは、読み取りおよび書き込みのリクエストに応じてDynamoDBが自動的にキャパシティをスケールします。リクエスト数に応じた従量課金で、事前にキャパシティを設定する必要がなく、トラフィックの変動が大きい場合に最適です。
プロビジョニング
概要: プロビジョニングモードでは、ユーザーがあらかじめ**読み取りキャパシティユニット(RCU)および書き込みキャパシティユニット(WCU)**を指定します。アプリケーションのトラフィックパターンが安定している場合に最適で、トラフィック量に合わせて事前にリソースを予約します。
有効期限
DynamoDB での Time to Live (TTL)
Time to Live (TTL) - Amazon DynamoDB
SSL / TLS
ACMで証明書発行
証明書を紐づけるのはELB・Cloudfront・APIGatewayなど
- AWSリソース(主にCloudFront、Elastic Load Balancer (ELB)、API Gateway
- 他のリソースをオリジンにHTTPS通信したい場合は、サードパーティのCA証明書が必要
データ収集・分析
S3の情報を抽出・検索できる
Athena
S3 Select
Amazon OpenSearch Service
Amazon OpenSearch Service とは - Amazon OpenSearch サービス
データ転送
AWS DataSync
- ストレージサービスとの間で、ファイルまたはオブジェクトのデータを迅速、簡単、かつ安全に転送できるようにするオンラインデータ移動および検出サービス
- ユースケース
- オンプレミスのストレージ ⇒ S3 とかでストレージデータ移行するなど
AWS DataSync の概要 - AWS DataSync
AWS Storage Gateway
AWS Storage Gatewayは、オンプレミスのアプリケーションやデータをクラウドストレージに 統合
するためのハイブリッドクラウドストレージサービスです。
主に、オンプレミスのシステムからAWSのストレージサービス(S3、EBS、Glacierなど)にデータを安全かつシームレスに保存するためのゲートウェイを提供します。
AWS Transfer Family
- AWS Transfer for SFTP
- AWS Transfer for XXXX
SFTP、FTPプロトコルを利用して、S3・Amazon Elastic File System(Amazon EFS) Network File System(NFS)へファイル連携可能なシステム
とは AWS Transfer Family - AWS Transfer Family
Amazon AppFlow
外部サービス(Saas)とAWSサービスを連携して、外部サービスからAWSサービスと双方向にデータ転送
-
ユースケース
-
データ分析基盤の構築
- SalesforceやGoogle AnalyticsなどのデータをAmazon S3やAmazon Redshiftに転送し、BIツール(QuickSightなど)を使って分析を行う。
-
データの自動同期
- SaaSアプリケーションとAWSサービス間でデータをリアルタイムまたは定期的に同期させ、常に最新のデータを保つことが可能。
-
データ変換とエンリッチメント
- 転送中にデータを変換したり、特定のフィールドをマッピングすることで、AWSサービスで使いやすい形式にデータを整える。
-
イベントベースのデータ処理
- SaaSアプリケーションで発生したイベント(例: 新規顧客データの登録)に応じて、データをAWSに転送し、他のアプリケーションやデータストレージでそのデータを利用する。
-
データ分析基盤の構築
連携における前提条件
-
SaaSアプリケーションがAppFlowと統合されていること:
- AppFlowが統合しているSaaSプロバイダー(Salesforce、Google Analytics、Zendeskなど)である必要があります。統合されているアプリケーションに関しては、AppFlowがAPI連携を内部で行ってくれます。
-
SaaSアプリケーションの認証情報:
- 外部SaaSアプリケーションとの接続には、該当アプリケーションでの認証が必要です。AppFlowはこの認証を簡単に管理できるようにしており、OAuthやAPIキーを使って自動的に接続します。
データエコシステムサービス
様々なアーキテクチャ
AWS Hands-on for Beginners AWS Analytics サービス入門ハンズオンを公開しました! | Amazon Web Services
AWSで“データのサイロ化”を防げ すべてのデータを1ヶ所に集めるデータレイクの作り方
1. データ処理・変換サービス
AWS Glue: データの**抽出、変換、ロード(ETL)**を自動化するフルマネージドサービス。
- 概要: フルマネージドのETL(Extract, Transform, Load)サービス。
- 用途: データソースからのデータを抽出し、変換し、データウェアハウスやデータレイクにロード。データカタログでメタデータも管理。
- 主なユースケース: S3やRDSからデータを収集・変換して、データレイクやRedshiftにロード。
AWS EMR: 大規模なデータセットを処理するための分散処理プラットフォーム(Hadoop、Sparkなど)。
- 概要: ビッグデータ処理用のフレームワーク(Hadoop, Sparkなど)。
- 用途: 大規模データを分散処理。HadoopやSparkを使って、データの解析やマシンラーニングの処理。
- 主なユースケース: ビッグデータの分析や大規模なデータセットに対するマシンラーニングのトレーニング。
AWS DataPipeline: データの移動と処理のスケジュール管理を行うサービス。
-
概要: データの移動・処理のスケジュール管理サービス。
-
用途: AWS内外のデータを定期的に移動・処理。スケジュールされたETLプロセスの自動化。
-
主なユースケース: データの転送や定期的な処理。例えば、S3からRDSへデータを定期的に移動。
ApacheやApache SparkはAWSのサービスそのものではありませんが、AWS(Amazon Web Services)上でこれらのソフトウェアやフレームワークを利用することができます。
-
**Apache(HTTP Serverなど)**は、AWSのEC2インスタンス上にインストールしてウェブサーバとして利用できます。たとえば、EC2にApache HTTP Serverをインストールしてウェブサイトやアプリケーションをホスティングすることが可能です。
-
Apache Sparkは、AWSの様々なサービスと統合して使うことができます。特にAWSには次のようなSparkを利用するためのサービスがあります:
• Amazon EMR (Elastic MapReduce): AWS上でSparkクラスタを簡単に構築して管理できるサービスです。Amazon EMRはApache SparkやHadoopなどのビッグデータ処理フレームワークをサポートしており、これを使って大規模データの処理や解析を行うことができます。
• Amazon Glue: サーバレスなデータ統合サービスで、Sparkエンジンが利用されているため、データ処理ジョブをSparkで実行できます。
これらのAWSサービスを利用することで、インフラ管理の負担を減らしながら、ApacheやApache Sparkを活用することが可能です。
2. データストリーミングサービス
- 色々あるぽぽい
Amazon Kinesis: リアルタイムデータのストリーミング処理や分析を行うサービス。データの収集、処理、分析をリアルタイムで実行。
- 概要: リアルタイムデータストリーミングサービス。
- 用途: 大量のリアルタイムデータ(ログ、クリックストリーム、IoTデータなど)を収集・処理。
- 主なユースケース: リアルタイムなログ解析、リアルタイムダッシュボード、リアルタイムデータの処理。
3. データストレージおよびデータウェアハウス
Amazon Redshift:
大規模なデータセットを高速にクエリ処理するためのデータウェアハウスサービス。
AWS Lake Formation
主な目的: データレイクの構築と管理を容易にするためのサービスです。さまざまなデータソースからデータを収集し、S3上にデータレイクを作成し、データのカタログ化、アクセス制御、クエリ実行などをサポートします。特にデータのセキュリティとガバナンスに重点を置いています。
主な機能
データ収集とインポート: 複数のデータソースからデータをS3に収集して、データレイクを簡単に構築できる。
データカタログ: AWS Glueのデータカタログと連携し、データのメタデータを管理。
セキュリティとアクセス制御: データへのアクセスを細かく制御し、データセキュリティを確保。
クエリと分析: S3上のデータに対して、AthenaやRedshift Spectrumなどを使ってクエリを実行。
-
データレイクの役割・メリット
AWS Lake Formationは、S3上にデータレイクを構築・管理するためのフルマネージドサービスです。データの蓄積先はS3ですが、Lake FormationはS3へのデータ保存を効率化し、管理を容易にするための追加機能を提供します。単にデータ発行元がS3にデータをPUTすることも可能ですが、Lake Formationを使うことで、セキュリティ、アクセス制御、データカタログ、クエリの管理など、S3を使ったデータ管理の機能が大幅に向上します。
-
データ収集とインポートの簡素化:
- 複数のデータソースからのデータ(オンプレミスのデータベース、RDS、DynamoDBなど)をS3に効率的に収集・インポートできます。Lake Formationは自動でデータ形式の変換やパーティショニングを行い、データレイクへのインポートを簡素化します。
-
データカタログ:
- AWS Glueデータカタログと統合されており、データのメタデータ(スキーマや構造)を管理できます。これにより、保存されているデータを簡単に検索・クエリできるようになります。データカタログがあれば、どのデータがどこにあり、どのような形式かを把握しやすくなります。
-
セキュリティとアクセス制御:
- 中央管理されたアクセス制御を提供し、IAMポリシーと連携してデータアクセス権限を細かく管理できます。これにより、誰がどのデータにアクセスできるかを詳細に制御し、データセキュリティを強化します。
- 例えば、特定のユーザーに特定のデータのみをクエリ可能にしたり、特定のテーブルや列へのアクセスを制限することが可能です。
-
データのクレンジングと準備:
- Lake Formationは、インポートされたデータに対してデータクレンジング(不要なデータの削除や不正確なデータの補正)や整形処理(データ形式の統一)を行い、データ分析に適した状態にします。
-
クエリ実行:
- S3に蓄積されたデータに対して、Amazon AthenaやAmazon Redshift Spectrumを使ってクエリを実行できます。Lake Formationを使うと、データの場所や形式を気にせず、統一的なクエリが可能です。
-
データガバナンス:
- データのガバナンスを支援し、データの監査やコンプライアンス要件を満たすための監視機能も提供します。誰がいつどのデータにアクセスしたかを監査ログで記録できるため、セキュリティ面でも安心です。
-
データカタログやメタデータ管理:
- S3に直接PUTするだけでは、データのスキーマやメタデータを一元的に管理できません。どのファイルがどんな形式で、どのデータセットに属しているかを把握するのが難しくなります。Lake Formationのデータカタログは、データ管理と検索を効率化します。
-
アクセス制御の複雑さ:
- S3にPUTするだけだと、IAMやバケットポリシーでアクセス制御を管理する必要がありますが、Lake Formationはよりきめ細かなアクセス制御を提供します。ユーザーやロールごとに異なるデータへのアクセス権限を簡単に設定でき、セキュリティリスクを軽減します。
-
データのクレンジングと整理:
- S3にデータを直接PUTしても、データがクリーンな状態とは限りません。Lake Formationは、データのクレンジングやパーティショニングなど、データを整理する機能を提供し、分析に適した状態に整えます。
-
クエリ実行の効率化:
- Lake Formationを使うことで、AthenaやRedshift Spectrumとシームレスに連携し、統一的なクエリ実行が可能です。S3に直接PUTしたデータにクエリをかける場合、データ形式や保存場所を自分で管理する必要がありますが、Lake Formationを使うことでクエリ管理が簡素化されます。
-
データ収集とインポートの簡素化:
4. データ可視化およびビジネスインテリジェンス(BI)
Amazon QuickSight: データの可視化およびダッシュボード作成を行うBIツール。
ワークフロー構築
AWS Batch
リソースのプロビジョニングも実施。つまり、スケジューリングに合わせて、EC2を起動したり、ECSを起動したり
Amazon EventBridge
Step functions
AWS Step Functionsは、AWS上で分散アプリケーションのワークフローを自動化して管理するためのサービスです。複数のタスクやサービスを順序立てて連携させ、複雑なビジネスプロセスを可視化しながら実行できるのが特徴です。ワークフローはステートマシンとして定義され、各ステップで実行されるタスクの状態を管理します。
※独自のスケジューリング機能はない。 イベントトリガーを受けてワークフローが開始
CloudFront
Lambda Edge
- cloudfrontの機能の一部で、CDNネットワーク内で実行可能
- エッジロケーションでコード処理できる
エッジロケーション
- レイテンシーの低減: ユーザーに最も近いエッジロケーションからコンテンツを提供することで、ウェブサイトやアプリケーションの応答速度が向上します。
- セキュリティの強化: エッジロケーションでのDDoS防御、WAFによるトラフィック制御、SSL/TLS暗号化など、セキュリティ機能を提供します。
- スケーラビリティ: CloudFrontのエッジロケーションはグローバルに分散しており、トラフィックが急増しても自動的にスケールし、高い可用性を確保します。
- コンテンツの最適化: エッジでLambda@Edgeを使った処理を行うことで、動的コンテンツのカスタマイズやオリジンへの負荷軽減が可能です。
- ファイルの圧縮機能:CloudFrontは、リクエスト元(クライアント)が圧縮をサポートしている場合に、gzipおよびBrotli圧縮を自動的に行います。これにより、転送されるデータ量が削減され、ユーザーはより高速にコンテンツを受信できます。
OAC
Origin Access Control (OAC) . s3などのオリジンとアクセスセキュリティ強化
OACを使うことで、オリジンサーバーに対するアクセスをCloudFrontからのリクエストに制限し、直接のアクセスを防ぐことができます。これにより、オリジンのコンテンツがCloudFront経由でのみ提供され、セキュリティが強化されます。
Amazon Simple Storage Service オリジンへのアクセスを制限する - Amazon CloudFront
言語情報の判定方法
- Accept-Languageリクエストヘッダー
キャッシュの制御種類
データ保護 - WAF
AWS WAF 保護を使用する - Amazon CloudFront
セキュリティ
WAF
WAFを接続可能なサービス
Amazon Shield Advanced
Amazon Shield Standard
WSが提供するDDoS(Distributed Denial of Service)攻撃からの高度な保護を提供するセキュリティサービスです。AWSのインフラストラクチャを利用するアプリケーションに対するDDoS攻撃を検知・防御し、攻撃からの影響を最小限に抑えることを目的としています。
CloudHSM
AWSが提供するハードウェアセキュリティモジュール(HSM: Hardware Security Module)をクラウド上で利用できるサービスです。HSMは、暗号化キーの生成、保存、管理、および暗号化処理
Route53
ルーティング種類
Lambda
インターネット公開方法
-
APIgatewayと統合
-
URL(Function URLs)
サービス横断の管理
AWS Organizations
各アカウントを統合管理
とは AWS Organizations? - AWS Organizations
S3やEC2は使用料が増加するほど料金が下がるので、アカウント統合は料金メリットがある
AWS Config
AWS マネージドルールを提供します。マネージドルールは、定義済みのカスタマイズ可能なルールであり、AWS リソースが一般的なベストプラクティスに準拠しているかどうかを評価するために AWS Config で使用します。リソースがルールに適合していない場合、AWS Config はリソースとルールに非準拠を示す noncompliant のフラグを付けます。AWS Config から Amazon SNS トピックを連携して、評価結果に基づいてメール通知などを設定することができます。
- 定義どおりに設定されているかをモニタリングできるぽい
Keywords
結果整合性モデル・強い整合性モデル
- 結果整合性モデル
- データの更新でデータベースがロックされることはないため、可用性とスケーラビリティを維持することができます。 その代わり、データ更新時に読み取りリクエストが発生した場合は、データの整合性が担保されない
- 強い整合性モデル
- 強い整合性モデルではデータの更新の際にデータベースをロックすることによって、過去のデータが読み取られないようにしてデータの一貫性(Consistency)を担保
データレイク・データウェアハウス
シャーディング
データ、テーブルの分割
データベースなどのシステムにおいて、大量のデータを扱う際に、データを複数の分割された部分(シャード)**に分けて管理する技術です。データを水平方向に分割し、異なるデータセットを異なるサーバーやデータベースに分散して保存することで、システムのスケーラビリティやパフォーマンスを向上させます。
アクティブアクティブ アクティブパッシブ
SSD・HDD
コンテナオーケストレーション
EKS
AWS Load Balancer Controller
-
EKSで利用可能な機能
-
ロードバランサーで柔軟にターゲットへ割り振る。 デプロイなどで利用
AWS Load Balancer Controller を使用してインターネットトラフィックをルーティングする - Amazon EKS
App Mesh
マイクロサービスアーキテクチャでは、サービスがそれぞれ独立しているため、サービス間通信の管理やモニタリングが複雑になります。App Meshは、このサービス間通信を標準化し、信頼性やセキュリティを向上させるために使われます。
**ECS(Elastic Container Service)とEKS(Elastic Kubernetes Service)の両方で利用できます。
リソース作成の自動化・仕組み化
ElasticBeanstalk
Cloudformationを利用して、EB環境構築できるぽい。
AWS Service Catalog
組織全体でAWSリソースの利用を標準化し、ガバナンスを強化するためのツールです。企業や組織は、事前に承認されたCloudFormationテンプレートを基に製品を定義し、エンドユーザーがセルフサービスでリソースをプロビジョニングできる環境を提供
- AWS Elastic Beanstalkは、開発者がアプリケーションを迅速にデプロイし、自動化されたインフラを活用するためのサービスです。インフラの設定を気にせず、シンプルなデプロイが求められる場合に適しています。
- AWS Service Catalogは、大企業の管理者が事前承認されたインフラを提供し、セルフサービスで利用できるようにするためのツールです。インフラの標準化、コスト管理、セキュリティを重視した運用に向いています。
オンプレミス環境
AWS Outposts
オンプレミス環境で、AWSのサービスを利用
Discussion