TxKxZxWx's blog

AWS SAA取得に向けて学習

AWS SAA取得に向けて 68日目 「おさらい 」

理解できていない機能をおさらい。

 

 

 

 

「Redshift」

Amazon Redshiftは「データウェアハウスサービス」。

データウェアハウスとは、データ分析を目的として様々なデータを蓄積しているデータの保管庫を指す言葉。

データのバックアップではなく分析するためにデータを保管することが主な目的であるため、過去から現在までの変化を観察する必要があることから、データの削除を行わずに大量のデータを蓄積していくのがデータウェアハウスの特徴。

 

~Amazon Redshiftでできること~

蓄積したデータは分析する必要がある。

そしてAWSAmazon EMRやAmazon Athenaのようなデータ分析サービスを提供している。

Amazon RedshiftはAWSの他のサービスと連携しやすいようになっており、効率的なデータ分析が可能。

また、Amazon Redshiftには一般的なメンテナンスタスクを自動化できるので、エンジニアの負担を減らすこともできる。

 

 

 

「CloudFront」

Amazon CloudFront は、AWS が提供する高速コンテンツ配信ネットワーク(CDN)サービス

世界中の主要都市のほとんどにエッジサーバーが設置されており、ユーザからのリクエストは最寄りのエッジサーバーが使用されることにより、コンテンツファイルの高速な配信を可能とする

また、一度オリジンサーバーから取得したコンテンツファイルをエッジサーバーにキャッシュすることでオリジンサーバーの負担を減らすことができる。

 

~Amazon CloudFront を構成する主な要素~

  • オリジンサーバー
    コンテンツのオリジナルファイルが配置されているサーバー。
    オリジンサーバーには、Amazon EC2Amazon S3 など(AWSオリジン)の他に、オンプレミスサーバーを指定することが可能。
    初回アクセス時やキャッシュ失効時には、このオリジンサーバーからコンテンツを取得する。

  • エッジサーバー
    世界中に設置されているエッジロケーション(ネットワーク拠点)を構成するサーバー。
    ユーザーからリクエストがあった際に、そのユーザーから最も近いエッジサーバーが自動的に選ばれてコンテンツの配信を行う。


静的コンテンツの場合は、オリジンサーバーにファイルの最終バージョンを格納する。
これらは Amazon S3 バケットにすることができる。

動的コンテンツの場合は、Amazon EC2 もしくはその他のウェブサーバーをオリジンサーバーとして使用することができ、Amazon CloudFront を通じて配信されるコンテンツを格納または生成する。

 

~Amazon CloudFrontの特徴~

  • 高パフォーマンス
    世界中の主要都市のほとんどに設置されているエッジロケーションを介してコンテンツ配信を行うことで、利用者に最高のパフォーマンスを提供する。

  • 可用性の向上
    エッジロケーションを通してコンテンツ配信を行うことにより、オリジンサーバーのワークロードを減らし、アプリケーションの可用性を高めることができる。
    また、オリジンサーバーを複数設定することで、フェイルオーバー機能を使用することもできる。

  • 信頼できるセキュリティ
    高度な SSL 機能が自動的に有効でとなっており、コンテンツに対するアクセス制限を設けたり、AWS の各種機能(例えば、AWS Shield や AWS Web Application Firewall (WAF)など)と連携することで、DDoS 攻撃などの攻撃に対応することができる。

  • コストの削減
    Amazon CloudFront は、前払い料金や長期契約を必要としない従量課金制で、使用した分のみの支払いとなる。
    なお、Amazon S3Amazon EC2 など(AWSオリジン)を使用している場合、それらのサービスと Amazon CloudFront 間のデータ転送に料金は発生しない。

 

 

 

「Auto Scaling」

AWS Auto Scalingとは、Webアプリケーションをモニタリングし障害や不具合が起こることなく安定して運用できるように、サーバーへのアクセス数やCPUの使用量に応じて、AWSEC2インスタンスの数を自動的に増減させてくれるもの。

また、AWS Auto Scalingを使用する際に、Auto ScalingグループというEC2インスタンスのグループを作成するため、グループ毎にEC2インスタンスの最小値と最大値を設定することができる。

それにより、この範囲内で自動的にインスタンスを増減させ、EC2インスタンスを起動または終了することができます。

例えば、AWS Auto Scalingの1つのグループのEC2インスタンスの最大値が「5」、最小値が「1」、希望容量が「3」で設定されている場合、このAuto Scalingグループのサイズは最小値よりも小さくなることや、最大値より大きくなることもない。

 

~メリット~

  • 耐障害性の向上
    AWS Auto ScalingはEC2インスタンスに何らかの異常が発生した場合、すぐにそのEC2インスタンスを自動的に終了する。
    また、EC2インスタンスを自動終了後、新たにEC2インスタンスを自動的に起動することができる。
    そのため、耐障害性が高い。

  • 可用性の向上
    AWS Auto Scalingは複数のアベイラビリティゾーンを設定できるため、いずれかのアベイラビリティゾーンが異常発生により使用不可になっても別のアベイラビリティゾーンでEC2インスタンスを起動することができる。
    このEC2インスタンスの分散により可用性を高めている。
    また、異常が発生したアベイラビリティゾーンが正常な状態に回復した場合、設定されている全てのアベイラビリティゾーンに渡ってEC2インスタンスが自動的に再分散される。

  • コスト効率の向上
    AWS Auto ScalingはオンデマンドでEC2インスタンスを必要な時に、必要な分だけ自動的に追加・削除することができるため、アプリケーションの使用量が少なくリソースが不要な期間はEC2インスタンスを適切な量に減らし、利用しないことにより掛かる費用を最小限に抑えることができる。
    その結果、コスト効率の向上につながる。
    一方、これとは逆に突発的にアプリケーションの使用量が増えた場合でもすぐにEC2インスタンスを増やして対応できるので柔軟性が高い。

 

 

 

AWS Storage Gateway

AWS Storage Gateway は、オンプレミスに設置することでオンプレミスからAWSのストレージサービスへのアクセスを可能とする仮想アプライアンス

このサービスを使用すると、AWS クラウドにデータを保存し、データのセキュリティを維持するために役立つ、スケーラブルで費用効率が高いストレージを利用できる。

 

AWS Storage Gateway は、ファイルベース、ボリュームベース、およびテープベースのストレージソリューションを提供する。 

Image from Gyazo

 

 

 

「EFS」 

EFSは、NFSといった標準的なプロトコルでアクセスできる分散ストレージ。

EBSとは異なり、複数のAZにある複数のEC2インスタンスから同時にアクセスできる。 

 AWSで独自にNFSサーバーを構築する場合は、EC2とEBSの組み合わせで構築する必要があり、それらの運用管理の負荷もかかる。

EFSはマネージドサービスなので、その構築や管理の負荷から解放される。

EFSは複数のAZにデータを複製して保存するため、可用性に優れ、複数のAZから同時に読み書きできる。

 

Image from Gyazo

 

~ユースケース~

複数EC2インスタンスでデータ共有する際はEFSをファーストチョイスする。

リアルタイムでアクセスする必要があり複数のEC2インスタンスにアクセスしたい場合などに使用。

 

  • 利用方針
    EBSではできない複数インスタンスからの同時アクセスが必要。
    数秒単位でのデータ追記が必要。
    フルマネージドで運用して簡易に利用していきたい。

  • 利用シーン
    アプリケーションの共有ディレクトリとして利用。
    ビッグデータなどの分散並列処理環境における共有データアクセスストレージとして利用。
    コンテンツの共有リポジトリとして利用。

 

 

 

「ECS」 

Amazon Elastic Container Serviceは、フルマネージド型のコンテナオーケストレーションサービス。

現在では、多くの企業がECSを使用して、セキュリティ、信頼性、スケーラビリティを実現するために最も機密性が高くミッションクリティカルなアプリケーションの実行を可能にしている。

 

~ユースケース~

  • ハイブリッドデプロイ
    OutpostsでECS を使用すれば、オンプレミスシステムへの特別に低いレイテンシーを必要とするコンテナ化したアプリケーションを実行でき、クラウドでコンテナを管理するように簡単にオンプレミスのコンテナを管理できる。
    AWS Outposts:AWSのインフラストラクチャ、AWSのサービス、APIおよびツールを、実質的にすべての接続サイトに拡張する完全マネージド型サービス。

  • Machine Learning
    AWS Deep Learning Containersを使って、様々な機械学習ライブラリのモデルをトレーニングし提供できる。
    ECSの深層学習推論ワークロードを加速することもできる。

  • バッチ処理
    AWS Batchを使ってECS のシーケンシャルまたは並行バッチのワークロードを実行でき、送信したバッチジョブのボリュームと特定のリソース要件に基づいて、最適な量と種類のコンピューティングリソースを動的にプロビジョニングすることで、数十万単位のバッチコンピューティングジョブを簡単かつ効率的に実行できる。

  • ウェブアプリケーション
    複数のAZにわたって可用性の高い設定で、自動的にスケールアップ/ダウンするウェブアプリケーションを構築できる。
    ECS上で実行することにより、ウェブアプリケーションAWSの高いパフォーマンス、規模、信頼性、可用性の利点を活用することができる。

 

 

 

「NFSv4 プロトコル

NFSとは、LinuxなどUNIX系のOSで利用されるファイル共有システム。

NFSでは、データの実体はNFSサーバと呼ばれるファイルサーバに存在する。

NFSクライアントは、NFSサーバの公開されたディレクトリをネットワーク越しにマウントする。

この機能を使うと、複数のホストから同じファイルを共有することができる。

 

NFSv4は、NFSをインターネット上でも利用できるように改良したバージョンである。

portmapperが必要なくなり、TCPが標準になった。

2049番ポートで通信が行われるため、パケットフィルタリングなどのセキュリティを掛けることも容易になった。

また、NFSv4では、Kerberos認証もサポートされ、パフォーマンスの向上も図られている。

NFSv4では、NFSサーバ上のエクスポートしたい複数のファイルシステムを一つにまとめてエクスポートすることができる仮想ファイルシステムに対応している。

その他、ロックのメカニズムも変更になっている。

 

 

 

「Route53」

 Amazon Route 53 は、可用性と拡張性に優れたクラウドドメインネームシステム (DNS) ウェブサービス

Amazon Route 53 は、www.example.com のような名前を、コンピュータが互いに接続するための数字の IP アドレス (192.0.2.1 など) に変換するサービスで、開発者や企業がエンドユーザーをインターネットアプリケーションにルーティングする、きわめて信頼性が高く、コスト効率の良い方法となるよう設計されている。

Amazon Route 53 は IPv6 にも完全準拠しています。

 

Amazon Route 53 は、Amazon EC2 インスタンス、ELB、Amazon S3 バケットなどの AWS で実行するインフラストラクチャにユーザーリクエストを効率的に接続する。

これはユーザーを AWS 外のインフラストラクチャにルーティングするためにも使用できる。

Amazon Route 53 を使用して DNS ヘルスチェックを構成し、トラフィックを正常なエンドポイントにルーティングしたり、アプリケーションやそのエンドポイントの正常性を独立してモニタリングすることができる。

Amazon Route 53 トラフィックフローでは、さまざまなルーティングタイプ (レイテンシーベースルーティング、Geo DNS、地理的近接性、加重ラウンドロビンなど) を使用してトラフィックをグローバルに簡単に管理できる。

このすべてのルーティングタイプを DNS フェイルオーバーと組み合わせることができるため、低レイテンシーのさまざまなフォルトトレラントアーキテクチャを実現できる。

 

 

 

「CodePipeline」

CodePipelineとは、フルマネージド型の継続的デリバリーサービス。

ソフトウェアをリリースするために必要なステップのモデル化、視覚化、および自動化に使用できる継続的な配信サービス。

アプリケーションの継続的デリバリー継続的インテグレーションを可能にするためのツール。

継続的インテグレーションとは、コードに生じた変更を頻繁に更新していくことで定期的かつ自動的にプログラムの諸要素のビルド・テストを行うプログラムの開発手法の1つ。

変更の反映を頻繁に行うことで、複数人で作業を行う上で作業の衝突や競合の早期発見やエラーの早期発見といった効果が見込める。

継続的デリバリーとは継続的インテグレーションを拡張し、ビルド・テストが終了した後リリースを行う本番環境での反映までを行い、完全に自動化されたリリースプロセスを用いてプログラムを常に本番環境でリリース可能な状況とすることで、迅速なリリースを継続的に行う開発手法。

 

CodeDeployなどと組み合わせて使用する。

 

 

 

「CloudFormation」 

AWSにおけるシステム開発環境構築のサービスとしてよく用いられているのがAWS CloudFormation。

AWSリソースのテンプレートによる自動デプロイができる。

AWSクラウドを使用し、インフラをコード化して自動デプロイできるようにする。

CloudFormationを用いることでAWSでの環境構築を容易に行うことができるのでシステム運用の効率化を図ることができる。

プロビジョニングをコード化して実行することができ、テンプレートを利用することで基盤を一から作成することがなくなるので、時間や手間を掛けることなく環境構築が可能になる。

 

 

 

「AMI」

OSの情報やディレクトリ、ファイル、ブロックデバイスマッピングなどインスタンス作成に必要な情報を一通りまとめたもの(インスタンスはAMIのコピー)。

このAMIを元にインスタンスを立てる。

 

 

 

「RDS」

RDSとは AWSのリレーショナル型のデータベース。

リレーショナル型データベース(関係性データベース)とは、行と列の2つの軸で表されるデータベースのこと。

情報の統合性や管理効率化に優れており、企業情報システム等での従業員リストや顧客リストなど、データ管理に適している。

 

https://blog.hatena.ne.jp/txkxzxwx/txkxzxwx.hatenablog.com/edit?entry=26006613652670573