AWS 認定クラウドプラクティショナーへの道(3)分野別の知識確認

amazon AWS

学習はインプットだけではなく、アウトプットのほうが身になります。今回は、分野ごとの重要ポイントをまとめていきます。

  1. 1.AWSクラウドの概念
    1. AWSクラウドコンピューティングの6つのメリット
    2. クラウドアーキテクチャの設計
  2. 2.セキュリティ
    1. AWS責任共有モデル
    2. IAM(AWS Identity and Access Management)
    3. セキュリティグループ
    4. AWS Shield
    5. AWS WAF
    6. Amazon Inspector
  3. セキュリティ以外のサービス
    1. リージョンとアベイラビリティーゾーン
    2. エッジロケーション
    3. EC2
    4. ELB(Elastic Load Balancing)
    5. Auto Scaling
    6. Lambda
    7. ECS(Amazon Elastic Container Service)
    8. Amazon Lightsail
    9. AWS Batch
  4. ストレージ
    1. EBS(Amazon Elastic Block Store)
    2. インスタンスストア
    3. S3(Amazon Simple Storage Service)
    4. EFS(Amazon Elastic File System)
    5. Storage Gateway
    6. Snowball
  5. ネットワーク
    1. VPC(Amazon Virtual Private Cloud)
      1. VPC内で利用するサービス
      2. CIDR(Classless Lnter-Domain Routing)
      3. サブネット
      4. インターネットゲートウェイ
      5. ルートテーブル
      6. セキュリティグループ
      7. ネットワークACL(アクセスコントロールリスト)
      8. 外部からEC2インスタンスにアクセスする
      9. ハイブリッド環境構成
      10. ダイレクトコネクト
    2. CloudFront
    3. Route 53
  6. データベース
    1. RDS(Amazon Relational Database Service)
      1. Amazon Aurora
      2. DMS(AWS Database Migration Service)
    2. DynamoDB
      1. RDSとDynamoDBの違いは?
    3. Amazon Redshift
    4. Amazon ElastiCache
    5. Amazon Neptune
  7. 管理サービス
    1. CloudWatch
    2. Trusted Advisor
      1. チェック項目
    3. CloudTrail
    4. AWS Config
    5. CloudFormation
    6. Elastic Beanstalk
  8. 請求と料金
    1. コストエクスプローラー / コスト配分タグ
    2. 請求アラーム
    3. マルチアカウントの運用
      1. AWS Organizations
    4. AWSのサポートプラン
      1. ベーシックプラン
      2. 開発者プラン
      3. ビジネスプラン
      4. エンタープライズプラン
    5. AWS TCO計算ツール

1.AWSクラウドの概念

AWSクラウドコンピューティングの6つのメリット

  1. 固定費が柔軟な変動費へ
  2. スケールによる大きなコストメリット
  3. キャパシティ予測が不要に
  4. 速度と俊敏性の向上
  5. データセンターの運用と保守への投資が不要に
  6. 数分で世界中にデプロイ

クラウドアーキテクチャの設計

Design for Failure = 単一障害点をなくすこと

システムのコンポーネントを疎結合(1つのシステムが他のシステムに影響を与えることがないよう)にする。

2.セキュリティ

AWS責任共有モデル

AWS側とユーザー側が責任を負う部分が明確に分かれそれぞれがセキュリティを共有して守っていくこと。

基本的にはユーザーはクラウド内のセキュリティ。AWSはクラウド本体のセキュリティが責任範囲。

IDとパスワードはユーザーが管理する必要がある。特にルートアカウントなどの権限が最強のアカウントにはMFA(多要素認証)を利用する。

ルートアカウントのAPIは作成しないようにする。(セキュリティ上危険)

マネージドでないサービス(EC2など)のセキュリティの責任は、ユーザーが操作できる部分がすべてユーザーの責任となる。

特にコンピューティングサービス(EC2など)は、OS層以上がユーザーの責任範囲。

IAM(AWS Identity and Access Management)

ユーザーのAWSリソースへのアクセス管理サービス。

各IAMユーザー、IAMグループには必要最低限の権限を付与する。

IAMポリシー(ルール)が相反するときは、拒否が優先

IAMユーザーには、最大2つのAPIキーが付与できるが推奨されていない

セキュリティグループ

各インスタンスごとの個別のファイアーウォール。

許可ルールの指定は可能だが、拒否ルールの指定は不可能。

インバウンドトラフィックとアウトバウンドトラフィックのルールを個別に指定可能

AWS Shield

マネージド型の対DDoS攻撃保護サービス。

Standard(無料)は自動的にかかるようになっている。

Advanced(有償)は別途お金がかかる。※これを選ぶとAWS WAFサービスが無償で無制限利用が可能となる。

AWS WAF

マネージド型のWAF。

基本利用料: 無料

どのトラフィックを許可、ブロックするかは自分でユーザー定義をしないといけない。

課金:Web ACL数、Web ACLごとに追加するルール数、受け取るWebリクエスト数

適用範囲は以下

  • Amazon API Gateway
    API運用管理のフルマネージドサービス
  • CloudFront
    CDNサービス
  • Application Load Balancer
    マネージド型ロードバランサー

Amazon Inspector

AWSのEC2上にデプロイしたアプリケーションの脆弱性診断自動サービス

セキュリティ以外のサービス

リージョンとアベイラビリティーゾーン

リージョンには、アベイラビリティーゾーンが2つ以上ある

同一リージョン内のアベイラビリティーゾーン同士は高速なプライベート光ファイバーネットワーキングで接続されている。

エッジロケーション

リージョンとは違う場所に世界150箇所以上ある。キーワードは低レイテンシー

使用されるサービスは、

  • Amazon Route 53
  • Amazon CloudFront
  • AWS Shield Standard / Advanced

EC2

オンデマンドインスタンス:使った分だけ課金
 秒単位課金(Amazon Linuxなど)、時間単位(秒単位課金以外)がある
 リージョン外へのアウトバウンドのみ転送料金が発生する

リザーブドインスタンス
 1年または3年という期間で安価にサーバーを押さえておく課金体系

スポットインスタンス
支払ってもいい金額をリクエストし、入札で落とした人が利用できる。
途中でインスタンスの金額が上がってきて通常料金を超えたらスポットインスタンスの権利を失う
処理途中で終了してもまあ問題がない場合にりようする。バッチ処理や検証テスト用途。

ELB(Elastic Load Balancing)

ALB(Application Load Balancer)
L7のロードバランサー。高性能。

NLB(Network Load Balancer)
HTTP/HTTPS以外のTCPプロトコルを利用する場合に使う。

CLB(Classic Load Balancer)
L4のロードバランサー。あまり使わない。

ELBには、ヘルスチェック機能がある。

ELBは、インターネット(外部)向け、内部向けどちらも可能。

ELBで可用性が高められる。

Auto Scaling

設定しておけば自動でEC2を増減できる。

水平スケーリングタイプ
→ インスタンス数を変更することで検証の必要もなく上限も無いため利用しやすい。

Auto Scaling ポリシー(いつスケールするか)は、以下の3タイプ

  1. ターゲットポリシー
    EC2インスタンスの平均CPU使用率などのしきい値を決めておきそこをトリガーに増減する。
  2. シンプルポリシー
    CloudWatchのアラームに基づいてスケーリングする。その後の待機の時間(クールダウン)によりインスタンスが頻繁に起動・終了されるのを防ぐ。
  3. ステップポリシー
    複数段階でのインスタンスの追加・削除ができる。必要な数に満たなければスケールするウォームアップという機能がある。

EC2のユーザーデータを使用することでコマンドを自動実行し、デプロイ処理を自動化することができる。

EC2の情報(IPアドレスやインスタンスID)は、メタデータ(特定のURLにアクセスして取得することができる情報)から取得できる。

Auto Scalingグループ(EC2インスタンスをどこで起動するかの設定)はApplication Load Balancerと同じVPCにする必要がある。

Lambda

ソースコードさえ用意すればそのプログラムを実行することができるサービス。

サーバーの構築や環境の準備をすることなく、すぐに開発を始められる。

サーバー管理不要、新しい言語の学習不要、メモリを割り当てることで他のリソースの性能も割り当て可能。

実行されている時間に対してのミリ秒単位の課金。待機時間には課金はされない。

他のAWSのサービスと以下のような連携が可能。

  1. 特定の次官になった時(CloudWatch)
  2. S3にデータがアップされた時
  3. DynamoDBに新しいアイテムが書き込まれた時
  4. Auto Scalingアクションが実行された時
  5. Webページでボタンが押された時
  6. APIが呼び出された時

ECS(Amazon Elastic Container Service)

コンテナ管理を行うマネージドサービス。

Amazon Lightsail

AWSが提供する仮想プライベートサーバー。

AWS Batch

フルマネージド型のバッチ処理実行環境サービス。

ストレージ

EBS(Amazon Elastic Block Store)

EC2インスタンスにアタッチして使用するブロックストレージボリューム。

EC2のボリュームとして使用でき、必要な時に必要な量だけ利用可能。

同じアベイラビリティーゾーン内の複数サーバー間で自動的にレプリケートされる。

汎用SSD:最大で16,000IOPSのSSDタイプ。(標準的)

プロビジョンドIOPS SSD16,000を超えるIOPSが必要な場合のボリュームタイプ。(上位タイプ)IOPSの最大値は、64,000

スループット最適化HDD:SSDほどの性能はいらない。コスト重視タイプ。(廉価版)

Cold HDD:アクセス頻度が低い場合のタイプ。(最低タイプ)

※IOPS:1秒あたりにディスク処理ができるI/Oアクセスの数のこと。

インスタンスストア

EBSに対して、インスタンスのホストローカルのストレージを使用するもの。

特徴:データを一時的に扱う。 = EC2が起動している間のみデータを保持している。

EBSのデータは永続的、インスタンスストアは一時的。

S3(Amazon Simple Storage Service)

バケットというデータの入れ物を作成し、そこにデータを保存していく仕組み。保存できるデータ容量は無制限だが、1つのファイルについては5TBまでという制限はある。(そんなデータ現実的ではないのであまり気にしなくていい。)

ユースケース

  • アプリケーションのデータ保存
  • HTML、CSS、JavaScript、画像、動画などでの静的コンテンツの配信
  • データバックアップの保存
  • ログデータ、センサーデータなどの保存
  • ビッグデータのステージング(Redshift、Athena、EMR)
  • クロスリージョンレプリケーションによるDR対策

S3の耐久性:99.999999999%(イレブンナイン)※マルチAZに保存される場合。

S3の可用性:99.99%

S3バケットは、デフォルトでプライベートである。必要に応じてアカウントやIAMユーザーにアクセス権限を設定したり、静的ファイルの配信などの場合はインターネット上に公開設定を行う。

S3に保存するデータの暗号化方法

  1. S3のキーを使用したサーバーサイド暗号化
  2. KMS(ユーザーがAWS上に作成するマスターキー)を使用したサーバーサイド暗号化
  3. ユーザー独自のキーを使用したサーバーサイド or クライアントサイド暗号化

S3の料金

  1. ストレージ料金
    保存しているオブジェクトの容量に対しての料金。
    1ヶ月を通しての平均保存量で算出。
    ストレージクラス(標準、低頻度アクセス、1ゾーン低頻度アクセス、Glacier)によっても料金が異なる。

    標準
    デフォルトのストレージクラス。アプリケーションによって頻繁に利用されるオブジェクトや、静的Webコンテンツの配信で利用される。

    低頻度アクセスストレージ(標準IA)
    ストレージ料金は、標準よりも安いがリクエスト料金が標準ストレージよりも上がる。バックアップデータで利用される。

    1ゾーン低頻度アクセスストレージ(1ゾーンIA)
    アクセスする頻度が少なく、複数のAZに冗長化しない場合。複数リージョンにバックアップデータを保存する場合に利用される。

    Amazon Glacier
    アーカイブデータを格納する。標準取り出しに3〜5時間かかるので保存年数が一定期間決められているデータなどアクセスすることは殆どないが削除はできないデータをおいておくところ。

    ライフサイクルポリシーを設定し、現状に応じて上記の4つを使い分けていく方法も可能。
  2. リクエスト料金
    データのアップロード、ダウンロードといったリクエストに応じての料金。
  3. データ転送料金
    リージョンの外へのデータ転送の場合のみ課金。インターネットへ転送した場合と他のリージョンへ転送した場合でも料金が異なる。
    インターネットからAmazon S3へのデータ転送受信(In)には課金がかからない。
    リージョン外であっても、CloudFrontへの転送料金は課金対象外。

EFS(Amazon Elastic File System)

複数のEC2インスタンスでマウントして共用利用できるファイルストレージサービス

Storage Gateway

オンプレミスアプリケーションとAWSのストレージサービスを接続して利用することができるゲートウェイサービス。

Snowball

物理デバイスを利用して、ペタバイト級の大容量データ転送を行うことができる。主にオンプレミスからAWSへのデータ転送の際に利用。

ネットワーク

VPC(Amazon Virtual Private Cloud)

AWSクラウド内にプライベートなネットワーク環境を構築することができる。
昨日は、VPC、サブネット、インターネットゲートウェイ、ルートテーブル、セキュリティグループ、ネットワークACL、NATゲートウェイ

AWSのサービスの中には、VPC内で利用するものとVPC外で利用するものがある。

VPC内で利用するサービス

  • EC2
  • EBS
  • RDS
  • ELB
  • Auto Scaling

CIDR(Classless Lnter-Domain Routing)

IPアドレスの範囲を定義する。例:10.0.0.1/16

サブネット

サブネットを作成する際にはアベイラビリティーゾーンとプライベートIPアドレスの範囲を定義する。

パブリックサブネット:インターネットゲートウェイに対してのルートを持つルートテーブルに関連付けられている。

プライベートサブネット:インターネットゲートウェイにたいしてのルートを持たないルートテーブルに関連付けられている。※プライベートサブネット内のインスタンスは外部アクセスから保護できる。

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

VPCとパブリックインターネットを接続するゲートウェイ。
1VPCにつき1つ作成可能。
インターネットゲートウェイ自体が水平スケーリングによる冗長性と可用性があるため、単一障害点(Single Point Of Failure)にはならない。

ルートテーブル

サブネットの経路をルートテーブルで設定する。
VPC作成の際にメインルートテーブルが作成される。これはサブネットに関連付けられたデフォルトのルートテーブルなので、カスタムルートテーブルを作成してサブネットに関連付ける。

セキュリティグループ

  • インスタンスに対してのトラフィックを制御する仮想ファイアーウォール
  • 許可するインバウンドのポート、送信元を設定するホワイトリスト
  • 送信元には、CIDRか他のセキュリティグループIDを指定できる

ネットワークACL(アクセスコントロールリスト)

  • サブネットに対して設定する仮想ファイアーウォール機能
  • 拒否するインバウンドのポートと送信元を設定するブラックリスト
  • デフォルトで全てのインバウンドとアウトバウンドが許可されている
  • 必要がなければ設定しない、追加のセキュリティレイヤー

外部からEC2インスタンスにアクセスする

  1. インターネットゲートウェイをVPCにアタッチする
  2. インターネットゲートウェイへの経路を持つルートテーブルをサブネットに関連付け
  3. EC2インスタンスを2のサブネット内で起動
  4. EC2インスタンスにパブリックIPアドレスを有効にする or EC2のパブリックIPアドレスを固定するためにElastic IPをアタッチ

ハイブリッド環境構成

VPCに既存のオンプレミス環境からVPNや専用線での接続ができる

ダイレクトコネクト

専用線接続のサービス

CloudFront

世界150箇所以上にあるエッジロケーションを利用するCDNサービス

  • エッジロケーションにキャッシュを持つことで低レイテンシー配信を実現
  • 世界中のエッジロケーションからユーザーは一番レイテンシーの低いエッジロケーションから配信されたコンテンツを楽しむことができる
  • 通信を保護するために SSL証明書を設定することができる。AWS Certificate Manager(ACM)の利用で費用無しで証明を取得可能。
  • AWS ShieldAWS WAFとの組み合わせも可能

Route 53

AWSのDNSサービス。

  • 複数のレコードを設定し、用途に応じて最適なルーティングが可能
  • シンプルルーティング:問い合わせに対して単一のIPアドレスを回答
  • レイテンシーベースのルーティング / Geo DNS:1つのドメインに対して複数のDNSレコードを用意し、地理的な場所を近くすることで低レイテンシーになるようにルーティングをする
  • 荷重ラウンドロビン:1ドメインに対して複数のDNSレコードを用意しておき割合を決め、決めた割合に応じて回答を返す
  • 複数値回答:複数のレコードからランダムに回答
  • フェイルオーバー:プライマリのヘルスチェックが失敗した時にセカンダリのレコードを回答する 例)プライマリの障害でアクセスができなくなったら、SorryページとしておいてあるセカンダリのS3バケットのURLを回答する
  • ルートドメイン(Zone Apex)のエイリアスレコードにより、ルートドメインにも複数のリソースを設定でき、高可用性を実現できる。(エイリアス = 別名)

データベース

RDS(Amazon Relational Database Service)

使用可能なDBエンジン

  • Amazon Aurora
  • MySQL
  • PostgreSQL
  • MariaDB
  • Oracle
  • Microsoft SQL Server

RDSを利用することでインフラ管理から開放される。

OS、データベースエンジンのメンテナンスはAWSに任せることができる。

データベースのバックアップの管理も不要

ポイントタイムリカバリー:バックアップ期間中の任意の特定時間のインスタンスを起動可能

RDSのマルチAZ配置を有効にすると、アベイラビリティーゾーンをまたいだレプリケーションが自動で行われるようになる。その他マスターに障害が発生した際のフェイルオーバーなどもやってくれる。

Amazon Aurora

AWSがクラウドに最適化して再設計したRDS。MySQLやPostgreSQL互換。

DMS(AWS Database Migration Service)

データベース間でデータを移行できるサービス

オンプレミスからAWSへの継続的なデータ移行を行い、システムのダウンタイムを最小限にできる。

DynamoDB

NoSQL型の高いパフォーマンスを持ったフルマネージド型のデータベースサービス。

DynamoDBを利用する際には、リージョンを決める。

データ容量は無制限。使用している容量課金。

RDSとDynamoDBの違いは?

DynamoDBは、非リレーショナルデータベース・NoSQL型なので、大量のデータ更新や読み込み、単純な自由度の高いデータモデルを必要とする処理向き(垂直スケーリング
RDSは、トランザクションをコミットにより確定できるため厳密な確定処理を行う際など向き(水平スケーリング

Amazon Redshift

高速でシンプルなデータウェアハウスサービスで、データ分析に使用

Amazon ElastiCache

インメモリデータストアサービス。RedisやMemcachedのマネージドサービスとして使用できる。

Amazon Neptune

フルマネージドなグラフデータベースサービス。SNS、レコメンデーションエンジン、経路案内、物流最適化などの機能に使用

管理サービス

CloudWatch

EC2インスタンス、RDSインスタンス、DynamoDBテーブルなどの状態をモニタリングするサービス。

CloudWatchは標準メトリクス(AWSが管理している範囲の情報)をユーザーの追加設定無しで収集している。
標準メトリクス・・・CPU使用率、ハードウェアやネットワークのステータス情報など(利用サービスによって取得される情報が異なる)

カスタムメトリクスを設定することで標準メトリクス以外のモニタリングも可能。
EC2のカスタムメトリクスは、CloudWatchエージェントで取得可能。

EC2のCloudWatch LogsはCloudWatchエージェントで取得可能
CloudWatch LogsによりEC2をステートレスにできる
CloudWatch Logsは文字列のフィルタリング結果をメトリクスとして扱える

アラームについて、SNS(Amazon Simple Notification Service)を利用してSNSへ通知することでそのメッセージをメールで送信したりLambdaへ渡したり(= 自動化)ができる。

CloudWatch Logsは永遠にとっておくことも可能

Trusted Advisor

ユーザーのAWSアカウント環境の上チアを自動的にチェックして、ベストプラクティスに対してどうだったかをアドバイスをレポートする

チェック項目

  • コスト最適化
    使用率の低いECインスタンス
    リザーブドインスタンスの最適化
  • パフォーマンス
    使用率の高いEC2インスタンス
    セキュリティグループルールの増大
    コンテンツ配信の最適化
  • セキュリティ
    S3バケットのアクセス許可
    セキュリティグループの開かれたポート
    パブリックなスナップショット
    ルートアカウントのMFA、IAMの使用
  • フォールトトレランス(耐障害性)
    EBSのスナップショット
    EC2、ELBの最適化
    RDSのマルチAZ
  • サービス制限
    ソフトリミット(AWSアカウントを作った時点では、いくつかのサービス制限がある)
    ※誤操作を防ぐため、不正アクセスを防ぐため

CloudTrail

AWSアカウント内の全てのAPI呼び出しを記録する。監査や調査に使用する。

AWS Config

AWSリソースの変更を記録する

CloudFormation

AWSの各リソースを含めた環境を自動作成 / 更新 / 管理する

JSON形式 or YAML形式で記述されたテンプレートから、Stackというリソースの集合体を作成

Elastic Beanstalk

Webアプリケーションの環境を簡単にAWSに構築する。CloudFormationのようにテンプレートを作成する必要はない。

請求と料金

コストエクスプローラー / コスト配分タグ

コスト分析のためにコスト分析タグを使用している各サービスにつけ、コストエクスプローラーで可視化できる。ROIの請求分析ができる。

請求アラーム

CloudWatchメトリクスの1つで、特定の金額を超えた時にアラームを起動させることができる。

マルチアカウントの運用

AWS Organizations

複数アカウントを一括管理できる。

複数アカウントの一括請求(コンソリデーティッドビリング)ができる。

AWSのサポートプラン

ベーシックプラン

  • AWSアカウントを作った時に提供されている無料のサポートプラン
  • 技術サポートは、ヘルスチェックについてのサポートのみ
  • Trusted Advisorは最低限の項目のみ

開発者プラン

  • 29USDか使用量3%の大きい方
  • 技術サポートは1ユーザーのみ(9:00〜18:00)
  • 構成要素についてのアーキテクチャサポート
  • Trusted Advisorは最低限の項目のみ

ビジネスプラン

  • 100USDか使用料に応じた計算式の大きい方
  • 技術サポートは無制限のユーザー(24時間)
  • アーキテクチャはユースケースのガイダンス
  • Trusted Advisorは全項目
  • サポートAPIの使用可
  • サードパーティソフトウェアのサポート

エンタープライズプラン

  • 15,000USDか使用料に応じた計算式の大きい方
  • 技術サポートは無制限のユーザー(24時間)
  • アプリケーションのアーキテクチャサポート
  • Trusted Advisorは全項目
  • サポートAPIの使用可
  • サードパーティソフトウェアのサポート
  • テクニカルマネージャー(TAM)
  • サポートコンシェルジュ
  • ホワイトグローブケースルーティング
    「エンタープライズ」レベルのお客様から提出されたケースは、緊急性の高い問題を迅速かつ正確に解決するために、AWS 内の関連部署が密に連携し注意深く問題対応を実施いたします。 (エンタープライズレベルのお客様のみ)
  • 管理ビジネス評価

AWS TCO計算ツール

オンプレミスで構築した場合のコスト比較をレポートしてくれるツール

タイトルとURLをコピーしました