분류 전체보기(27)
-
N+1問題
N+1問題とは クエリ1回にN件のデータを取得しましたが、関連テーブルよりデータを取得するためにクエリをN回追加する問題 検索結果件数ごとに参照情報を得るために件数分繰り返して検索を行う問題 DBクエリの実行コスト(回数)が大きいため、eager loadingなどの方法で解決することをお勧めします 簡単にいうと、N+1は参照情報を取得する時に必要以上のクエリを実行する問題です。 最初に必要なレコードを全て取得(1) + 各レコードに紐づいているデータを取得するために(N)回クエリを実行 従って、一つの結果のために、N+1回のクエリ実行が行われる非効率的なロジックになってしまい、パフォーマンス低下に繋がります。 例 class Employee < ApplicationRecord has_many: :forms end class Form < ApplicationRecord..
2023.02.27 -
AWS ソリューションアーキテクト試験のまとめ③
1. Amazon Kinesis Data Stream Amazon Kinesis Data Streamを利用することでストリーミングデータをリアルタイムで収集、処理、分析するアプリケーションを実装できます。 2. Amazon SNSとAmazon SES Amazon SNS ・完全マネージド型のpub/subメッセージングサービス。 コンポーネント間のメッセージ通知やアラート通知に利用する。 ・AWS上でイベント通知やメッセージング処理/プッシュ通知をするといった場合はSNSを選択する Amazon SES ・Eメールの送受信機能を提供するサービス。 アプリケーション上のEメール通知機能を実装できる。 ・Eメール機能を実装する場合はSESを選択する。 3. AmazonSMS(AWS Server migration Service) オンプレミスのVMware vSph..
2022.08.20 -
AWS ソリューションアーキテクト試験のまとめ②
1. Amazon Cognito Amazon Cognitoを利用してアプリケーションの認証機能を実装することが可能。 その際は、MFAによる多要素認証と保存データ及び転送データの暗号化が実施できます。 また、Amazon Congnitoを利用することで、Google、FacebookなどのソーシャルIDプロバイダーや、SAMLによるMicrosoft Active DirectoryなどのエンタープライズIDプロバイダーを通してサインインすることができます。 2. EBSの定期的なスナップショット設定 Amazon Data Lifecycle Manager(Amazon DLM)を使用するとEBSのバックアップであるスナップショットの作成、保存、削除を自動化するスケジュールを設定することができます。 3. S3のアクセスログ暗号化 S3バケットに対して暗号化キーによるサーバ..
2022.08.13 -
ELB
負荷分散によるスケーラビリティとヘルスチェックによる高可用性を実現 特徴 EC2インスタンスの処理を分散する際に標準的に利用するマネージド型のロードバランシングサービス インスタンス間の負荷を分散するサービス インスタンスに限らずIPアドレスをターゲットにした負荷分散も可能である ヘルスチェックにより異常なインスタンスを認識してトラフィック正常なインスタンスのみに集中させる パブリックサブネット/プライベートサブネットのどちらでも使用可能 負荷に応じてキャパシティを自動増減するスケーリングを実施するが、これはAWS側でマネージドサービスとして実施される 時間に応じたロードバランサーキャパシティーユニット(LCU)使用量で課金 ※CLBのみ転送データ単位 AutoScaling、Route 53、Cloud Formationなどと連携 構成 ELBを利用したマルチAZにインスタンスへの..
2022.08.04 -
Well-Architected Framework
6つの設計原則 レジリエントアーキテクチャの設計 Reliability 高パフォーマンスアーキテクチャの設計 Performance Efficiency セキュアなアプリケーションとアーキテクチャの設計 Security コスト最適化アーキテクチャの設計 Cost Optimization 運用上の優秀性 Operational Excellence 持続可能性 Sustainability Reliability:信頼性 障害による中断・停止と障害復旧による影響を軽減するインフラストラクチャーを構成する 設計事項 └インフラストラクチャサービスの障害復旧の自動化など軽減設計 └復旧手順のテストによる検証 └需要変化に応じた水平報方向へのスケーラビリティによる高可用性の確保 └キャパシティの推測をやめる └モニタリングと自動化を進める 基本対応領域 └基盤 └変更管理 └障害管理 ..
2022.08.01 -
AWS ソリューションアーキテクト試験のまとめ①
1. Redshiftクラスターを費用対効果の高い方法で設定する方法 Redshiftはスナップショット用に無料ストレージを提供しておりますがが、上限のストレージ容量を超過すると課金が発生します。 つまり、スナップショットの空き容量が上限に達すると課金されてしまいます そのため、自動スナップショットを保存し、保存期間日数を見直すことで、不要になった手動スナップショットを削除する必要があります。 Amazon Redshiftに置いて拡張されたAmazon Redshiftにおいて拡張された VPC ルーティングを使用すると、Amazon Redshift はクラスターとデータリポジトリ間のすべてのCOPYとUNLOADトラフィックがAmazon VPCを通るよう強制されつだけで、コストには影響を与えません。 オンデマンドインスタンスの代わりに利用できるインスタンスはリザーブドインスタン..
2022.07.26