技術っぽいことを書いてみるブログ

PythonとかVue.jsとか技術的なことについて書いていきます。

ソリューションアーキテクトアソシエイト(SAA)の試験対策まとめメモです。

この記事の内容

AWS認定ソリューションアーキテクトアソシエイト(SAA)の試験対策のまとめです。

背景

私自身がSAAの試験勉強をするにあたり、各サービスの抑えるべきポイントをまとめました。
せっかくですので、誰か一人のためにでもなればと思いますので、まとめ資料を公開しておきます。

何かしらのお役に立ったならば、コメントいただけると幸甚です。。。

AWS認定ソリューションアーキテクトアソシエイト(SAA)の試験対策のまとめ

S3のオブジェクトロック

  • リテンションモード
    • 一定期間の保護を目的とする
    • ガバナンスモード
      • 特別なアクセス許可を持たない限りはオブジェクトのバージョンの上書きや削除・ロック設定の変更ができない
      • 設定の変更には、s3:BypassGovernanceRetentioという権限が必要
    • コンプライアンスモード
      • AWSアカウントのrootユーザも含めて、誰も対象のオブジェクトの上書き・削除ができない
      • 保護期間が明けるまでまつしかない
  • リーガルホールド
    • 保護期間を設定しない
    • リーガルホールドの解除は、s3:PutObjectLegalHold権限を持つユーザがリーガルホールドを解除できる

S3 Transfer Acceleration

  • 長距離や高レイテンシーのネットワークに渡るAmazon S3へのデータ転送を高速化するサービスです。
  • グローバルにデータをアップロードする際に適しています。

 S3の機能

  • ストレージクラス分析
    • ストレージアクセスパターンを分析し、適切なデータを適切なストレージクラスに移行すべきタイミングを判断できます。
    • ストレージクラス分析がフィルタリングされたデータセットのアクセスパターンを一定期間監視することで、最適なライフサイクルポリシーを設定することができます。
  • S3 Access Analyzer
    • AWS アカウントの外部からアクセスできるリソースを特定する総合的な解析結果を生成します
  • サーバーアクセスログ

EC2

Kinesis関連

  • Amazon Kinesis Data Streams
    • 大量のデータをリアルタイムでキャプチャして処理するためのサービスです。
    • ストリーミングデータを受け取って消費者がそのデータを解析することができます。
  • Amazon Kinesis Data Firehose
    • ストリーミングデータをAWSのストレージ サービスに簡単にロードするサービスです。
    • Kinesis Data Firehoseは、データをリアルタイムで収集、変換し、S3などのデータストレージに自動的にロードします。
  • ポイント
    • Amazon Kinesis Data Streamsは1秒以下のデータロードが達成できる性能があり、 ストリーミングデータをリアルタイムに処理したり、表示させたい場合に利用します。
    • 一方でKinesis Data Firehoseはデータロードまで60秒必要となるため、 ミリ秒単位の処理には利用できませんが、データを変換してストレージなどに配信する用途には向いています。

DynamoDB

  • DynamoDBテーブルに対してAuto Scalingを設定することで、
    DynamoDBテーブルへの処理負荷に応じて、
    テーブルとグローバルセカンダリインデックス(GSI)のパフォーマンス向上を自動化できます。
    DynamoDB Auto Scalingはテーブルとインデックスを監視して、
    アプリケーショントラフィックの変化に応じて自動的にスループットを調整する機能です。
    これにより、一時的な負荷増加に対して、DynamoDBテーブル処理パフォーマンスの管理が容易になり、
    アプリケーションの可用性を最大化しつつ、DynamoDBのコストを削減することができます。
  • オンデマンドモード
    • 利用するキャパシティが予測できないときに選択するモード
    • トラフィック量の予測が困難な場合にリクエストの実績数に応じて課金
    • オンデマンドでREAD/WRITE処理に自動スケーリングを実施
  • プロビジョニングモード
    • 利用するキャパシティが事前予測できるときに選択するモード
    • 事前に予測した書き込みキャパシティユニット(WCU)と読み込みキャパシティユニット(RCU)を設定する

DynamoDB Streams

  • DynamoDB の テーブルで行われたデータの変更内容をストリームにキャプチャする機能です。
  • この情報は、他のアプリケーションがデータ変更を消費できる形で利用可能です。
  • DynamoDBテーブルへのデータ登録や更新などのイベントをトリガーとして、 Lambda関数などを実行することができます。

DynamoDB Accelerator( DAX

  • DynamoDBのフロントエンドで、 読み取りヘビーなワークロードに対するレイテンシーを迅速に低減するマネージドインメモリキャッシュです。
  • ミリ秒からマイクロ秒にレイテンシーを短縮することが可能 です。

DynamoDB Auto Scaling

  • AWS Application Auto Scaling サービスを使用してApplication Auto Scalingポリシーを設定する
  • ClouwWatchのモニタリングに基づいてトラフィックパターンに応じてプロビジョンドスループット性能をユーザーに代わって動的に調整する
  • テーブルまたは、グローバルセカンダリインデックスはプロビジョニングされた読み込みおよび書き込みキャパシティを増やし、急激なトラフィック増加をスロットリングなしに処理できる

ストレージ

RDSのインスタンスタイプ

RDSのストレージタイプ

  • 汎用 SSD
    • 中規模の DB インスタンスで実行しているさまざまなワークロードに対応できるコスト効率の高いストレージとして使用できます。汎用ストレージは、開発およびテスト環境に適しています。
  • プロビジョンドIOPS
  • マグネティック

EFS

EBSボリュームタイプ

汎用SSD(gp2,gp3)

  • 仮想デスクトップ
  • レイテンシーを要求するアプリ
  • 小~中規模のデータベース
  • 16,000IOPS

プロビジョンドIOPS(io1,io2)

  • ミリ秒未満のレイテンシー
  • 持続的なIOPSパフォーマンス
  • マルチアタッチが可能
  • 64,000IOPS
  • 1000MiB/秒

プロビジョンドIOPS io2 Block Express

  • 超高性能なデータ所r異様
  • 持続的なIOPSパフォーマンス
  • マルチアタッチが可能
  • 256,000IOPS
  • 4000MiB/秒

HDD

スループット最適化HDD

コールドHDD

  • ログデータなどアクセス頻度が低いデータ
  • バックアップやアーカイブ
  • ルートボリュームには利用不可

プロビジョンドIOPSボリュームのIOPS求め方

IOPS性能:ボリュームサイズ(GiB)の最大比 = 50;1

  • 例:100GiBの場合は、IOPSは5000IOPS

Amazon Data Lifecycle Manager (Amazon DLM)

  • Amazon EBSのスナップショット取得のライフサイクルポリシーを設定できます。
  • Amazon DLMではEBSのバックアップであるスナップショットの作成、保存、削除を自動化するスケジュールを設定することができます。
  • これを利用して、EBSボリュームのデータを定期的にバックアップすることができます。

S3クロスリージョンレプリケーション

  • 以前はAmazon Kinesis Data Analyticsと呼ばれたリアルタイムデータ分析用の機能です。
  • Apache Flinkを利用してデータ処理をリアルタイムに実施することができます。
  • Amazon Managed Service for Apache Flinkを利用することで、 Amazon Simple Storage Service (Amazon S3) や Amazon OpenSearch Service などにデータ分析後に配信するアプリケーションを開発することができます。
  • これを利用して、ストリーミングデータをクエリ処理によって分割してから、直接にAmazon S3バケットに保存することができます。

AWS Data Pipeline

  • 様々なAWSデータベースやストレージ間のデータの移動と変換を自動化するサービスです。
  • AWS Data Pipeline はデータ駆動型のワークフローを定義して、 タスクの正常な完了をトリガーにして、データ変換と送信タスクを実行できます。
  • AWS Data Pipeline はDynamoDBに設定することが可能であり、定期的なデータ取得タスクを設定させることができます。

Route53 ルーティング

  • シンプルルーティングポリシー
    • ドメインで特定の機能を実行する単一のリソースがある場合に使用します。
    • たとえば、example.com ウェブサイトにコンテンツを提供する 1 つのウェブサーバーなどです。
  • フェイルオーバールーティングポリシー
    • アクティブ/パッシブフェイルオーバーを構成する場合に使用します。
  • 位置情報ルーティングポリシー
    • ユーザーの位置に基づいてトラフィックをルーティングする場合に使用します。
  • 地理的近接性ルーティングポリシー
    • リソースの場所に基づいてトラフィックをルーティングし、必要に応じてトラフィックをある場所のリソースから別の場所のリソースに移動する場合に使用します。
  • レイテンシールーティングポリシー
  • 複数値回答ルーティングポリシー
    • ランダムに選ばれた最大 8 つの正常なレコードを使用して Route 53 が DNS クエリに応答する場合に使用します。
  • 加重ルーティングポリシー
    • 指定した比率で複数のリソースにトラフィックをルーティングする場合に使用します。

Egress-Only インターネットゲートウェイ

  • IPv6アドレスを使用するEC2インスタンスがインターネットにアウトバウンド接続を行うときのゲートウェイです。
  • 受信接続をブロックすることでセキュリティを提供します。

エイリアスレコード

スケーリング

動的スケーリング

  • 簡易スケーリングポリシー
    • ターゲット追跡スケーリングポリシーの通常の設定
    • アラームせて位に基づいて1段階のスケーリングを実施
  • ステップスケーリングポリシー
    • アラーム超過のサイズに基づいてインスタンス数を動的にスケーリングする1つ以上のステップ調整値を指定して複数回の段階的なスケーリングを実施

手動スケーリング

  • 希望する容量を調整して、手動でスケーリングを実施する

スケジュールされたスケーリング

  • スケーリングを実施する日時を指定して、スケーリングを実行する

ELBルーティング

ELBの機能

  • 暗号化通信
    • SSL/TLS証明書をELBに設定することで、HTTPSまたはLTS通信を実施できる
  • Connection Draining
  • ログ取得
    • ELBのログ取得を有効かするとS3バケットにログを収集する

キャパシティ予約

  • キャパシティ予約
    • インスタンスタイプが起動可能であるという確保権のこと。
    • あらかじめキャパシティを確保しておくことで実行時のキャパシティ不足エラーを抑制する
  • オンデマンドキャパシティ予約
    • 必要な期間中のみオンデマンドの利用料でキャパシティが予約できる機能
  • ゾーンリザーブインスタンス
    • 指定してAZ内で1年間または3年間の間のキャパシティを予約する

Route53

フェールオーバー(アクティブ/パッシブ)

  • Route 53はプライマリリソースをアクティブなリソースとしてルーティングする。
  • 障害が発生した場合、Route53は、セカンダリーのリソースをルーティングする。
  • フェールオーバーポリシーを使用して設定する

フェールオーバー(アクティブ/アクティブ)

  • Route53は複数のリソースをアクティブとしてルーティングする。
  • 障害が発生した場合、Route53は正常なリソースにフェイルバックする。
  • フェールオーバー以外のルーティングポリシーを使用して設定する

EC2のキャパシティ数

  • 希望するキャパシティ
    • AutoScalingが実行されない状態でのインスタンス数を設定する。
    • この数値を変更することで、手動でスケーリングさせることも可能
  • 最小キャパシティ
  • 最大キャパシティ
    • 最大キャパシティは、スケールアウト時に起動する伊スタンスの最大数を設定する
    • 希望する容量より少ない数値は設定できない

ActiveDirecotry関連

SimpleAD

AD Connector

AWS Manged Microsoft AD

  • AWS側にMicrsoftActiveDirectoryとの互換性があるフルマネージド型のADを作成
  • AWS とオンプレミスMicrosoftADの間で信頼関係を設定し、AWS SSOと連携したシングルサインオンが可能

CloudFormation

  • スタックセット
    • 複数のAWSアカウントと複数のリージョンに対してスタックを作成できる機能
  • ドリフト
    • テンプレートによって展開したAWSリソースを展開後に変更した場合に、元テンプレートとの差分を検出するチェック機能
  • 変更セット
    • スタックの更新を行うときの概要が変更セットで、変更による影響度を確認するためのスタック
    • スタック変更は直接更新と変更セットの実行で可能

WorkLoad Management (WLM)

  • Redshiftのクエリ処理に対して割り当てるRedshiftのリソースを指定する機能です。

ENI(Elastic Network Interface)

  • ホットアタッチ:実行中のアタッチ
  • ウォームアタッチ:停止中のアタッチ
  • コールドアタッチ:インスタンスが起動中のアタッチ

最後に。。。

間違った情報があった場合は、ご容赦ください。

次は、DVAを受験します!!

AWS認定ソリューションアーキテクトアソシエイトを受験したので勉強方法などイロイロを晒しておく

はじめに

2024年02月頭ごろから勉強を開始して、
先日、AWS認定ソリューションアーキテクトアソシエイトを受験しましたので、勉強方法等を晒しておきます。

なお、プラクティショナー編は、こちらを参照ください。

経緯

担当するシステムがマイクロサービスアーキテクチャで構築しており、
システム間の連携を疎結合にするため、AWSのサービスを利用するため、
情報のインプットのため、「AWS Certified Solutions Architect - Associate」を受験するようにしました。

勉強方法

その1:『AWS認定資格試験テキスト AWS認定ソリューションアーキテクト - アソシエイト 改訂第3版』

おすすめ度:★★★☆☆

まずは情報整理のために、こちらの本を読んで勉強しました。
特に真新しい情報はなかったと思いますが、最後の問題は試験問題の感覚をつかむうえでは良かったと思います。

なお、この本だけでは合格は無理だと思います。

www.amazon.co.jp

その2:『徹底対策 AWS認定 ソリューションアーキテクト - アソシエイト(SAA-C03 対応)』前編・後編

おすすめ度:★★☆☆☆

Kindle Unlimited民であれば無料のため、また数多く問題に慣れておくために、ダウンロードしました。
が、後編の途中で挫折し、やりこみはしませんでした。
というのも、解説に誤字が目立つのと、解説自体に納得感がないものも散見されたので、挫折してしまいました。
この問題集が・・・というより、おそらく自分に合っていなかったのだと思います。

Amazon.co.jp: 徹底対策 AWS認定 ソリューションアーキテクト - アソシエイト(SAA-C03 対応)後編: 65問×5セット + 15問 計340問 詳解付き クラウド試験徹底対策シリーズ eBook : クラウドスタディーズJP: Kindleストア

その3:udemy『【SAA-C03版】AWS 認定ソリューションアーキテクト アソシエイト模擬試験問題集(6回分390問)』

おすすめ度:★★★★☆

この模擬試験問題集を一番やりこみました。
全6回分の模擬試験ができますが、それぞれ3回~4回くらい実施し、
最終的には、平均して90点以上取れるようになったうえで、本番となりました。

ちなみに、1回目はどの回も60点くらいでした。
解説も丁寧にまとめられていましたが、まれに納得感が得られないものもありました。

www.udemy.com

その4:Ping-t

おすすめ度:★★★★★

通勤時の電車の中とお昼休みは、とにかくこのサイトで問題を解きまくっていました。
最終的にすべて回答できるようになっていました。
無料でここまでのものは大変ありがたいものでした。
解説も非常に分かりやすく、納得感がないものはなかった気がします。
あえていうと、問題が基礎的なものが多く、実践向けではない気がします。

mondai.ping-t.com

勉強方法…結局どれ?

  • udemy『【SAA-C03版】AWS 認定ソリューションアーキテクト アソシエイト模擬試験問題集(6回分390問)』
  • Ping-t

が、本命かなと思います。
ただ、まったく知識がない人は、本を読んでまずはどんなものなのかの所感をつかむことが必要だと思います。

勉強期間

1か月半くらいです。

本番の試験では…

5問ほど知らないサービス・用語が含まれているものがあり、エイヤーでの回答となりました。
また、別に5問ほどは2つまで絞ったけど、その二つのどっちか悩ましいくらいのものがあり、
それ以外は「まぁ大丈夫だろう」といった感じでした。

備考

ちなみに試験のスコアは、886点で、思ったより良いスコアでした。

所感

やはり合格すると嬉しい気持ちがあふれますね。
次は、DVAを受験する予定です。
そのあとが、SAPにチャレンジします。

そして、AWSのサービスを使ってシステムを構築していきたい。
がっつりコーディングしてシステムを構築する時代じゃなく、 AWSの各種サービスを組み合わせてソリューションを提供する方がメリットが大きいと思います。

Scrum Roomの構成とデプロイ先を紹介します!

はじめに

『Scrum Room』というWebサービスを個人開発し、公開しましたので、
どのようなPaaSを使って、構成したかや背景などをまとめておきます。

なお、『Scrum Room』については、こちらにまとめていますので、
スクラム開発実践者は参考にしてみてください。

構成図

フロントエンド

  • フロントエンドは、Nextjsを用いて実装しています。
  • デプロイ先は、Vercel です。
  • NextjsとVercelは非常に相性が良いので、デプロイで詰まる部分はほとんどありませんでした。
    • そもそもNextjsの開発元がVercelっぽいので、当然のことでしょう。
  • なお、コンソール画面の動きは遅いです。たまに動いているのかな?と不安になること多々。また、画面の構成もよくわからないです。

vercel.com

バックエンド

  • バックエンドは、Nestjsを用いて実装しています。
  • デプロイ先は、Renderです。
  • バックエンドもVercelにデプロイしたかったのですが、VercelはWebServiceをフリーでは提供していないので、別のPaaSを探した結果Renderにしました。
  • ORMは、prismaを使用しています。
    • データベースはMongoDBですが、特にNoSQLということを意識せず利用することができます。
  • コンソール画面に関しては、特に違和感はなかったです。

render.com

データベース

  • データベースは、MongoDB Atlasを使用しています。
  • VercelかRenderで用意したかったのですが、DBを準備するとなると概ね有償版に切り替えないといけないので、フリーで使用できるものとしてMongoDB Atlasを採用しました。
  • なお、MongoDB Atlasも実質はAWS等に構築しているっぽいです。

www.mongodb.com

監視

  • バックエンドのRenderは、15分ほどアクセスがないとスリープ状態になるため、定期的に死活監視としてリクエストを投げる必要がありました。
  • こちらは、appmillというサービスを利用させていただいています。
  • 最大100URLまではお試しプランで利用できるようです。

所感

  • Webサービスを公開するにあたり、無駄にコストをかけたくないという思いから、すべてフリー版で構成しました。
  • 自身のスキルアップを考えると、AWS環境での稼働も視野には入れたのですが、やはりコストをかけたくないとの思いが強く、上記をチョイスしました。
  • 他にも適切なデプロイ先があるかもしれませんので、ご教授いただけると幸いです。