🔍

AWS SAA学習記録

2022/07/30に公開

AWS全体像

AWS Well-Architectedフレームワークとは

AWS Well-Architectedフレームワークとは、サービスの活用のペストプラクティス集のこと

AWS Well-Architectedフレームワークを構成するもの

  • 運用上の優秀性
    • 運用面で考慮すべきことを記載してある
      • システムびモニタリングや変更管理
      • 継続的な運用プロセス
      • 手順の改善
      • 通常・障害時の運用業務
  • セキュリティ
    • AWS上のシステムとデータをどのように保護するかを記載してある
      • データの機密性と生合成の担保
      • 権限管理
      • セキュリティイベントの監視
      • 制御に関することなど
  • 信頼性
    • AWSにおける障害防止、障害時の復旧について記載してある
      • 障害時における動的なコンピューティングリソースの獲得
      • 可用性の高いアーキテクチャに関すること

      可用性とは、継続稼働ができることをを指す

  • パフォーマンス効率
    • AWSにおけるコンピューティングリソースの効率的な使用について記載してある
      • 性能要件
      • 需要の変化に応じた適切なリソースタイプの選定
      • パフォーマンスのモニタリング
  • コスト最適化
    • AWSにおける不要なコストの回避や最適化について記載してある
      • 適切なコストの把握
      • 最適なリソースタイプの選定
      • 需要に応じたシステムのスケーリング

AWSインフラストラクチャの概要

  • リージョンとは
    • 場所・地域・範囲のこと
  • アベイラビリティーゾーン(AZ)とは
    • リージョン内にある複数のデータセンターの集合体を指す

    余談.
    高可用性実現するには、マルチAZ構成が推奨されている.
    災害対策などでは、マルチリージョンで構成する.

  • エッジロケーションとは
    • Amazon CloudFrontのコンテンツやAmazon Route53のDNSサービスなどを提供するデータセンターのこと

AWSサービスの範囲

  • グローバルサービス
    • リージョンに依存しないサービスのこと(以下が該当する)
      • AWS Identity and Access Management(IAM)
      • CloudFront
      • Route 53
  • リージョンサービス
    • 特定のリージョン内でのみ利用できるサービスのこと(以下が該当する)
      • Amazon Virtual Private Cloud(VPC)
      • Amazon DynamoDB
      • AWS Lambda
  • アベイラビリティーゾーンサービス
    • 特定のAZ内で利用できるサービスのこと(以下が該当する)
      • Amazon Elastic Compute Cloud(EC2)
      • Amazon Relational Database Service(RDS)

AWSサービス範囲の全体像

service_icons
引用: いくらは神の食べ物様

IAMサービスの概要

  • AWSを利用するユーザーに対してAWSへのアクセスを安全に制御するための仕組みのこと
    • AWSアカウントに登録した直後はルートユーザーである
      • ルートユーザーは全ての権限を持っているので、一般的に操作は行わない
    • IAMユーザー・IAMグループの作成
      • 操作範囲を絞ってユーザー登録することで誤操作により危険を防ぐ
    • IAMポリシーによる権限付与
      • IAMユーザー・IAMグループ作成直後は権限付与されていない
      • IAMポリシーで適切に権限を付与することで各システムへのアクセス制御を行う

IAMサービスを通じたAWS操作

  • Webのマネジメントコンソールからログインして、操作する
  • AWS CLIでコマンド操作する(以下が必要)
    • アクセスキーID
    • シークレットアクセスキー
  • AWS SDKでプログラムからAPIとして呼び出す

Amazon Virtual Private Cloud(VPC)

  • Amazon Virtual Private Cloud(VPC)

    • AWS上で独立したプライベートネットワーク空間を作成できるサービスのこと

      • VPC作成の際の注意点
        • IPv4のVPCは、プライベートIPアドレスの範囲内で、16ビット以上28ビット以内のCIDRを指定する必要がある

          CIDRとは、Classless Inter-Domain Routing:IPアドレスのクラス分類を考慮せず、IPアドレスを割り当てる仕組み(ネットワークアドレスの「/16」などが該当する)

        • 後述するVPC間の接続やオンプレミスとの接続を行う場合、IPアドレスの範囲が重複しないようにする必要がある

        • IPv6のVPCは、56ビットで固定されている

  • サブネット

    • VPC内に構成するネットワークセグメントのこと(ネットワークの分類的な意味合い)
      • パブリックサブネット
        • インターネットとの通信が可能なサブネットのこと
      • プライベートサブネット
        • インターネットと接続する必要がないサーバを配置する

        インターネット接続の可/不可で分けて決めると、セキュリティ上も良い

  • インターネットゲートウェイ

    • VPC内のリソースからインターネットへアクセスするためのゲートウェイのこと
      (インターネットゲートウェイをVPCにアタッチすることで、VPC内のリソースからアクセスすることができる)
  • ルートテーブル

    • サブネット内のEC2インスタンスに対する静的ルーティングを定義するもの
      (設定はサブネット単位で行う)
      • インターネットゲートウェイを指定したサブネットがパブリックサブネット
      • インターネットゲートウェイを指定していないサブネットがプライベートサブネット
  • NATゲートウェイ

    • NATゲートウェイには、プライベートサブネットからインターネットへ接続するNAT機能というものがある

    NATゲートウェイの使い方は「インターネットからはアクセスされたくないけどインターネットへのアクセスは実施したい」というケースが主に想定される

アクセス制御

  • セキュリティグループ
    • EC2インスタンスに適用するファイアウォール機能のこと
      • EC2インスタンスから出る通信を制御するアウトバインド
      • EC2インスタンスへの通信を制御するインバウンド
    • 特徴
      • デフォルト設定は、アウトバウンドすべて許可、インバウンド全て拒否
      • ステートフルな制御が可能

      ファイアウォール(Firewall)とは、企業などの社内ネットワークにインターネットを通して外部から侵入してくる不正アクセスや、社内ネットワークから外部への許可されていない通信から守るための“防火壁”のこと

  • ネットワークACL
    • サブネット単位で設定するファイアウォール機能のこと

VPCと外部接続

  • AWS Direst Connect(DX)
    • オンプレミス環境とAWSの間の専用線で接続するサービスのこと

    オンプレミスとは、システムの稼働やインフラの構築に必要となるサーバーやネットワーク機器、あるいはソフトウェアなどを自社で保有し運用するシステムの利用形態のこと

  • Site to Site VPN
    • オンプレミス環境とAWSの間の専用線で接続するサービスのこと
      • AWS Direst Connectより品質は低下するが、低コストであり、短期間で挿入できるメリットがある
  • VPCピアリング
    • 異なるVPC間をプライベート接続するサービスのこと
  • AWS Transit Gateway
    • VPC内にハブの機能を持ったゲートウェイを配置するサービスのこと
  • VPCエンドポイント
    • AWSのプライベートネットワークからAWSサービスへアクセス可能
    • ゲートウェイ型
      • ルートテーブルに指定されたターゲットに追加すること
    • インターフェイス型
      • APIコールに対して、インターネットを経由せずにプライベートに接続する

VPC内で利用できるネットワークサービス

Elastic Load Balancing(ELB)とは

  • Elastic Load Balancing(ELB)
    • EC2や特定のIPアドレスへのトラフィックを分散するロードバランシングサービスのこと
      (ここで登録されたEC2インスタンスを「バックエンドインスタンスという」)

    トラフィックとは、インターネットやLANなどのコンピュータなどの通信回線において、一定時間内にネットワーク上で転送されるデータ量のこと
    ロードバランサーとは負荷分散装置とも呼ばれ、外部からの通信(トラフィック)を複数のサーバーに分散する仕組みを提供する装置
    ロードバランシングとは、同種の複数の機器やシステムの間で、負荷がなるべく均等になるように処理を分散して割り当てること。 そのような負荷の振り分けを行う機器やシステムをロードバランサ(load balancer)という(もっと詳しく)

  • ELBの種類
    • Classic Load Balancer(CLB)
      • 標準的なロードバランシングを提供する
      • CLBに対するTCPリクエストをバックエンドインスタンスに振り分け、指定されたポートトラフィックを転送する
    • Application Load Balancer(ALB)
      • リクエストレベル(レイヤー7)で動作し、リクエストの内容に応じて、あらかじめ設定したターゲットへルーティングして処理を振り分ける
      • HTTPやHTTPSトラフィックを特定のサーバーへ振り分けることができる
    • Network Load Balancer(NLB)
      • レイヤー4で動作し、低レイテンシーで高いスループットを実現する場合に利用する

      スループットとは、機器や通信路などの性能を表す特性の一つで、単位時間あたりに処理できる量のこと

  • ELBの特徴
    • 高可用性
      • トラフィックを複数のAZへ分散することができるため
    • 自動スケーリング
      • トラフィックの負荷に応じて自動でスケーリングする機能を備えており、ELB自体にも冗長性が確保されている
      • ELBへの接続は「エンドポイント」と呼ばれている
    • セキュリティ機能
      • SSL復号の機能を備えている
    • ヘルスチェックモニタリング
      • バックエンドインスタンスが正常に動作しているか、ヘルスチェックを行う
    • クロスゾーン負荷分散
      • 複数のAZに登録されているすべてのインスタンスに対してリクエストを均一に分散する
    • 外部ELBと内部ELB
      • 外部ELB(インターネット公開向け)のInternet-facingか、内部ELBとして利用するInternalのいずれかで動作する

Auto Scalingとは

  • Auto Scaling
    • リソースの使用状況をモニタリングして、その使用状況に応じてEC2インスタンスを自動でスケールアウト・スケールインするサービスのこと
  • Auto Scalingの種類
    • EC2 Auto Scaling
      • EC2をサポートして、スケーリングポリシーに従い、スケーリングする
    • Application Auto Scaling
      • EC2以外をサポートして、EC2以外の使用状況に応じてスケーリングする
    • AWS Auto Scaling`
      • EC2, EC2以外のどちらもサポートしており、自動スケーリングと予測スケーリングの機能を持つ

Auto Scalingはあらかじめ設定したAMIからEC2インスタンスを起動するので最適化させておくのが重要になる.ユーザーデータを利用してS3Gitからソースやスクリプトを取得することでEC2インスタンスを最適な状態にすることができる

AWSの高可用アーキテクチャ

高可用性の定義

一般的な可用性の定義

  • 可用性とは、システムが正常に継続して動作し続ける能力のこと
  • 可用性の指標
    • 稼働率が用いられる
    • 稼働率を上げるためにサーバを冗長化して、万が一のことが発生してもフェイルオーバーするアーキテクチャ設定にするのが一般的である

    冗長化とは、システムやサーバを単一ではなく、複数で構成している状態のこと
    フェイルオーバーとは、稼働中のサーバで障害が発生し、正常に動作しなくなった時に、待機しているサーバーへ自動で切り替わる仕組みのこと

AWSでの可用性向上策

  • リソースを冗長化する
    • 単一障害点をなくす
      • 障害を発生するとシステム全体が使用不能になる、もしくはシステムの動作結果の正しさを保証できなくなる箇所を示す
  • 地理的に離れた場所で冗長化する
    • 2つのAZでEC2とRDSを構成する
  • システムを疎結合に構成する

各それぞれが停まったり障害が起きたりしても他に影響を与えないということ

ネットワークにおける高可用性

ネットワークサービス

  • VPC
    • サブネットは、パブリックサブネットとプライベートサブネットを明確にして構成する
    • 複数のAZでサブネットを構成する
    • 将来使用するIPアドレス数を見越してIPアドレス設計をする
  • NATゲートウェイ
    • AZ内では冗長化されるが、AZ外では冗長化できない
  • AWS Direct Connect
    • オンプレミス環境と接続ポイント間の可用性は、ユーザー自身が考慮する必要がある
    • 回線の可用性は通信キャリアの提供プランによって異なる
  • Amazon Route 53
    • AWS側で高い可用性を提供してくれる
    • Route 53でルーティングポリシーを設定する
ルーティングポリシー 説明
レイテンシーベースルーティング 最もレイテンシーが低いリソースへルーティングする
加重ルーティング 複数のリソースに対して加重度を設定し、指定した比率に応じて処理を分散するようにルーティングする
位置情報ルーティング 接続クライアントの場所に基づいて、地理的に近い場所へルーティングする
フェイルオーバールーティング ルーティング対象となるリソースのヘルスチェックを行い、利用できるリソースへルーティングする
シンプルルーティング 設定されたレコード情報に従って、ルーティングする
地理的近接性ルーティング ユーザーとリソースの地理的場所に基づいてトラフィックをルーティングする
複数値回答ルーティング 最大8つからランダムに選ばれた正常なレコードを使用し、Route53がDNSクエリに応答する

レイテンシとは、データ転送における指標のひとつで、転送要求を出してから実際にデータが送られてくるまでに生じる、通信の遅延時間のこと

可用性ネットワークの構築

  • オンプレミス環境・AWS間の接続

    • Direct Connect冗長化パターン
      • オンプレミスとサーバのやりとりをDirect Connectで行う。かつ複数の拠点で実行することで接続ポイントに関しても対応することができる
    • Direct ConnectSite to Site VPNの併用パターン
      • Direct Connect障害時のバックアップ回線としてSite to Site VPNを採用することで、ネットワークの可用性を確保できる

      Direct Connectに障害が発生して、Site to Site VPNへフェイルオーバーした場合、通信品質や帯域が異なる回線に切り替わるため、パフォーマンスに影響が出る可能性がある

      Direct Connectの2つの接続タイプ

      • 占有型 : 物理接続に対して契約するので、ユーザー側で自由に論理接続を作成することができる
      • 共有型 : 物理接続をキャリアが保有していて、論理接続単位での契約が必要である
  • VPC内リソースの可用性

    • インターネットゲートウェイはAWSで透過的に冗長化されている

    透過的とは「存在を意識することなく使える」という意味

    • NATゲートウェイはAZ内では冗長化されているが、AZ間では冗長化されていないので、AZごとにNATゲートウェイを配置するか検討する必要がある
  • Disaster Recovery(DR)サイトの構築

    • リージョンを跨ぐDRサイトを構築する場合は、それぞれのリージョンでVPCを作成することになる
    • メインサイトのデータをコピーしたり、データベースをレプリケーションしたい場合は、VPC間の接続をプライベートに行うためにVPCピアリングを利用する

DRとは、disaster recoveryの略で、災害からの復旧の意味
天災や不正侵入によってシステムが壊滅的な状態になった際の復旧・修復やそれに備えてのシステム・体制のことを指す
AWSのDR対策を確認してみた

コンピューティングにおける高可用性

  • コンピューティングサービス
    • EC2
      • オンプレミス環境と同様に、サーバーにクラスタリングソフトウェアを導入して高可用性を実現することもできる
      • AWSでは、ELBによる負荷分散、Auto Scalingによる自動スケールアウト・スケールイン、Amazon Route 53によるDNSフェイルオーバーなどマネージドサービスを組み合わせて使用することで運用の負荷を減らして、障害にも迅速に対応できるシステム設計をするのが一般的である
    • Auto Scaling
      複数のAZを使用してEC2インスタンスをスケールアウト・スケールインすることができる
      • スケールアウト(仮想マシンサーバを増やすこと)
        • スケーリングプランの設定値をトリガーに、Auto scalingグループの設定値に従ってEC2インスタンス数を増加させる
        • EC2インスタンスにAZが複数ある場合は均等を保つように起動する
      • スケールイン(仮想マシンサーバを減らすこと)
        • スケールインのデフォルト実行順序
        • ❶ EC2インスタンス数が最も多いAZ内からランダムにAZを選択
        • ❷ AZのインスタンス数が同じ場合は、最も古い起動設定を使用したEC2インスタンスがあるAZを選択
        • ❸ 最も古い起動設定を使用したEC2インスタンスが複数ある場合は、次に課金が発生するまでの時間が最も短いEC2インスタンスを選択
        • ❹ 次に課金が発生するまでの時間が最も短いEC2インスタンスが複数ある場合は、この中からランダムにEC2インスタンスを選択

        Auto scalingだけの設定だと意図通りに動かない懸念があるので、他にもクールダウンやライフサイクルフックを設定するのがいい

      • クールダウン
        • Auto Scalingが連続で実行されないように待ち時間を設定する機能のこと
          • クールダウンには2つある
            • Auto Scalingグループ全体へ適用するデフォルトのクールダウン
            • 特定のスケーリングポリシーに適用するスケーリング固有のクールダウン
      • ライフサイクルフック
        • Auto ScalingによるEC2インスタンスの起動、終了を一時的に待機させ、指定したアクションを実行することができる
    • Amazon CloudFront
      • エッジロケーションからコンテンツ配信するCDNサービスのこと

      エッジロケーションとは、CDN(コンテンツデリバリネットワーク)などで、閲覧者へのコンテンツ配信のために分散配置された拠点および設備のこと

      • CloudFront自体が高可用性・高パフォーマンス・低レイテンシーなネットワークを備えているので、可用性を考慮した設計を行わなくて良い
    • AWS Lambda
      • サーバを起動することなくコードを実行できるコンピューティングサービスのこと
        • 可用性やスケーリングは全てLambdaで管理されている
        • 実行した分だけ料金が発生する
        • 処理に時間がかかるので、時間を要するコードは実行しない
  • VPCリソースにおける高可用性コンピューティング
    • Elastic Load Balancing(ELB)
      • EC2インスタンスや特定のIPアドレスへのトラフィックを分散するロードバランシングサービスのこと
      • EC2の高可用化にも使われる
      • ELBは自動的にスケールしていて、AWS内部で冗長構成がとられている
  • グローバルサービスでの高可用性コンピューティング
    • Route 53のDNSによる名前解決
    • CloudFrontのキャッシュサーバーと効率的なコンテンツ配信の仕組み

AWSのパフォーマンス

AWSのパフォーマンスに対する考え方

AWSのパフォーマンス効率の設計原則

  • 最新技術の導入
    • クラウドベンダーに導入や複雑な作業を任せるという方法もある
  • グローバルな環境
  • サーバーレスアーキテクチャの使用
  • 比較テストの実施
  • 適切な技術の利用

ネットワークサービスでのパフォーマンス

  • ネットワークでのパフォーマンスの考え方
    • サービスが動作する場所とユーザーの場所が地理的に離れている場合、レイテンシーが発生してしまう
    • 上記の問題を解決するために最も近い場所からコンテンツを配信・コンテンツをキャッシュする仕組みが用意されている
  • Amazon CloudFront
    • CDNサービスでコンテンツを配信するネットワークのこと

    • 以下はCloudFrontの接続ポイント

      接続ポイント 説明
      エッジロケーション コンテンツをキャッシュしておくことができるキャッシュサーバー
      リージョン別エッジロケーション エッジロケーションよりも大容量のデータをキャッシュ可能なキャッシュサーバー
    • CloudFrontで配信するコンテンツの保護

      • HTTPS接続
      • 閲覧に関するアクセス制限
      • 通信中のデータを暗号化するためのフィールドレベル暗号化

      フィールドレベル暗号化とは、個人情報に関わるような機密度が高いデータのセキュリティを確保するため、CloudFrontに追加された機能

    • S3コンテンツへのアクセスを制限した配信

      • S3バケットへの直接的なアクセスに制限をかけたい時には、オリジンアクセスアイデンティティ(OAI)という機能を使う

      OAIでは、CloudFrontのみにS3へのアクセスを許可し、コンテンツを取得できるようにして、ユーザーにはCloudFrontのみアクセスを許可するという構成にする

    • CloudFrontのユースケース

      • CloudFrontが配信するのは主に静的コンテンツと動的コンテンツである
      • 静的コンテンツ
        • クライアントCloudFrontS3
      • 動的コンテンツ
        • クライアントCloudFrontELBEC2
  • Lambda@Edge
    • CloudFrontのエッジロケーション上でLambdaのプログラムを実行するサービス
      • Lambda関数はユーザーに近いロケーションで実行される
  • Amazon Route 53
    • レイテンシーが低いリージョンからリクエストを処理するレイテンシーベースルーティングという機能がある

AWSのセキュリティ設計

AWS責任共有モデルによるセキュリティ方針

Shared_Responsibility_Model_V2_JP a4acd9721218c9d7d4ab5083c349e706e8ad300d

AWSのセキュリティ責任・対策

  • ハードウェア、AWSグローバルインフラストラクチャ

    • データセンターと物理的なハードウェアリソースを保有している
    • AWSでは、物理的な場所を秘匿にして、監視カメラや侵入システムなどな厳密なコントロールを行なっている
    • 物理ハードウェアについても、ストレージの破棄など、決められた手順で破棄したりセキュリティを意識した運用になっている
  • ネットワーキング

    • DDoSなどの分散攻撃やIPなりすまし、パケット盗聴など一般的なネットワークセキュリティについてはAWSで保護している

    「DoS攻撃(Denial of Service attack/サービス拒否攻撃)」とは、ウェブサイトやサーバーに対して過剰なアクセスやデータを送付するサイバー攻撃のこと

  • コンピュート

    • 仮想インフラストラクチャで実現している
    • 仮想化を実現するホストOSは、AWSがアップデートやパッチ管理、アクセス管理やログ監視などのセキュリティ運用をしている

コンピューティング(コンピュート)とは、コンピュータによって情報やデータを、自動的あるいは効率的に、計算、処理、保存、伝達などすること

ユーザーのセキュリティ責任・対策

  • アイデンティティ管理とアクセス管理

    • 「最小権限の原則」の考え方に従う
    • IAMユーザーやIAMグループを作成し、適切なIAMポリシーを付与する
    • IAMポリシーは以下のようにJSON形式で記述する
    {
      "Version": "2012-10-18",
      "Statement": [
        {
          "Action": [
            "s3:GetObject"
          ],
          "Effect": "Allow",
          "Principal": "*",
          "Resource": "s3.amazonaws....:::test-bucket/*",*
          "Condition": {
            "IpAddress": {
              "aws:SourceId": [
                "11.22.33.44/32"
              ]
            }
          }
        }
      ]
    }
    
    • 権限の優先度 : 明示的な拒否 > 明示的な許可 > 暗示的な拒否
    • S3におけるアクセス制御(パケットポリシー)もJSON形式で記述する
    • IAMポリシーの種類
      • AWS管理ポリシー(テンプレート)
      • カスタマー管理ポリシー(自作ポリシー)
      • インラインポリシー(ポリシー設定を個別に反映できる)
    • IAMの認証方式
      • IAMユーザー名とパスワード
      • 多要素認証
      • アクセスIDとシークレットアクセスキー
      • IAMロール
    • IAMのIDフェデレーション(シングルサインオン)を実現できる
  • ネットワークセキュリティ

    • セキュリティグループ
    • ネットワークACL
    • AWS Web Application Firewall(WAF)
      • SQLインジェクション、クロスサイトスクリプティングなどから保護する機能を提供する
    • AWS Shield
      • DoSやDDoSなどの一括攻撃からの防御に使用される
  • データ保護

    • 暗号化のデータ保護
      • 通信の暗号化
      • 保管するデータ自体の暗号化
    • データ暗号化の方式と場所
      • クライアントサイドの暗号化(AWSにデータを送信・保存する前にユーザーの環境で暗号化する)
      • サーバーサイドの暗号化(AWSのサービスで暗号化機能を提供する)
    • 暗号化に必要な鍵の管理は複数の方法がある
    • AWS Secrets Managerでの認証情報の管理・保管
      • RDSなどのデータベースの認証情報を環濠化して集中管理・保管するサービス
    • S3における暗号化は複数の方式・処理・管理方法がある
  • セキュリティ監視

    • AWS CloudTrail: AWSアカウントで使用された操作をログとして記録するサービス
    • VPCフローログ: VPC内のネットワークインターフェイス間の行き来する通信の内容をキャプチャする機能
    • Amazon GuardDuty: AWS内の各種ログを監視して、悪意のある攻撃や不正操作などのセキュリティ脅威を検知するサービス
    • CloudWatch Logs: AWSのさまざまなログを統合的に収集するサービス
    • AWS Config: AWSのサービスで管理されているリソースの構成変更を追跡するサービス
    • AWS Trusted Advisor: AWSのベストプラクティスに基づいて、ユーザーのAWS利用状況をチェックし、改善すべき事項を推奨するサービス
    • Amazon Inspector: EC2インスタンスのセキュリティを高めるサービス

AWS上でのセキュリティ侵入テストを定期的に行うことも重要

AWSのコスト最適化

AWSのコスト最適化の指針

  • 必要なリソースを必要なときに必要な分だけ利用する
  • 全体的なコスト効果を測定する
  • データセンター運用への投資を不要に
  • 投資効果の要因分析
  • マネージドサービス活用による所有コストの削減

コスト最適化の4つのベストプラクティス

  • コスト効果が高いリソースの選定

    • AWSサービスの購入オプション
      • オンデマンドインスタンス(デフォルト)(使用した分だけ従量課金)
      • リザーブドインスタンス(長期利用権)
      • スケジュールされたリザーブドインスタンス(ユーザーは日次・週次・月次で特定の期間で購入することができる)
      • スポットインスタンス(AWSの余っているリソースを安く利用する、その代わり強制終了される場合がある)
    • リソースの最適なサイジング
      • インスタンスタイプの選定
        • インスタンスファミリー
        • インスタンス世代
        • インスタンスサイズ
      • ストレージの選定
        • S3のストレージクラス
        • EBSのボリュームタイプ
  • ITリソースの需要とAWSサービスの適切ば供給によるコスト最適化

    • ELBとAuto Scalingでのリソース供給
    • SQSやKinesisによるバッファリング
      • Amazon Simple Queue Service(SQS): メッセージキュー(MQ)のマネージドサービス
        • 標準キューとFIFOキュー
          • 標準キューは、キューイングされたメッセージを取り出す際の順番が保証されない
          • FIFOキューは、メッセージをキューイングした順番で処理をすることが保証される
        • ロングポーリング
          • キューがからの場合にメッセージを取得できるまでに待つ時間(1~20秒)を設定することでメッセージ取得要求の数を減らす
        • 可視性タイムアウト(Visibility Timeout)
          • あるメッセージを取得した場合に他の受信者に一定時間見せないことで、処理の重複やリクエストの数を減らす
        • スポットインスタンスとの組み合わせ
          • 仮にスポットインスタンスが強制終了されても、可視性タイムアウトを超過すると自動的に他の受信者がメッセージを取得できるようになるので、処理の再実行が可能になる
      • Amazon Kinesis: ストリーミングデータの収集・処理・リアルタイム分析などで利用する
        • Amazon Kinesis Data Streams: ストリーミングデータをほぼリアルタイムで収集でき、収集したデータはEMRAWS Lambdaなどのサービス上に構築された独自アプリケーションに連携して処理することができる
        • Amazon Kinesis Data Firehose: 独自のアプリケーションを構築することなく、ストリームデータをAmazonの各サービス(S3Redshiftなど)に簡単に配信・保存できるサービス
        • Amazon Kinesis Data Analytics: ストリーミングデータに対してSQLクエリを実行し、リアルタイム分析を行うサービス

    バッファリングとは、複数の機器やソフトウェアの間でデータをやり取りするときに、処理速度や転送速度の差を補ったり、通信の減速や中断に備えて専用の記憶領域に送受信データを一時的に保存しておくこと

  • 全体的なコストの管理

    • AWSでのコスト管理
    • Consolidated Billingでの支払い管理(複数のAWSアカウントに対する請求を統合して、まとめて支払う機能)
    • AWS Cost and Usage Reportでの詳細レポート・分析(AWSサービスごとのリソース使用状況とコストを1時間ごとや日次で収集し、CSV形式でS3に保存・格納したり、Amazon QuickSightで分析・可視化したりできる)
    • Cost Explorerでのコストの可視化と傾向分析: AWS Cost and Usage Reportのデータをグラフィカルに可視化したり検索できるサービス
    • 予算設定による利用超過の監視
    • Trusted Advisorでのコストの最適化: AWSの5つのベストプラクティスに基づいて、AWS利用状況をチェックし、改善すべき事項を推奨するサービス
  • 継続的なコスト最適化の活動

Discussion