前回はクラウドプラクティショナーの出題範囲のうちのテクノロジー分野のデプロイと運用からAWSの主要サービスの識別分野のところを少しだけ学習してきました。
今回はAWSの主要サービスの識別の続きから学習していきたいと思います。
【初心者用】AWS基礎⑤
1. AWSの主要サービスの識別
AWSの主要サービスは主に、以下になります。
EC2、EBS、AMI、ELB、Lambda、Auto Scaling、S3、EFS・Storage Gateway・Snowball、VPC、Route53
そのうちのEC2(仮想サーバーを構築できるサービス)、EBS(高性能なストレージサービス)については、前回で学びました。
今回は、AMIから学んでいきたいと思います。
2. AMI
また、AMIはアカウント間で共有できます。
EBSのスナップショットとEC2インスタンスの構成情報からなっています。
AMIの種類
AMIの種類は4つあります。①クイックスタートAMI
②自分のAMI
③AWS Marketplace AMI
④コミュニティ AMI
①クイックスタートAMI
AWSが用意しているAMIで、Amazon LinuxやWindows SeverなどのOSがインストール済みのAMIです。②自分のAMI
ユーザーが作成したAMIで、既存のEC2インスタンスから作成することが可能です。③AWS Marketplace AMI
他の開発者たちが、簡単に利用できるように企業が作成したAMIでWordPressやSQL ServerなどがインストールされているAMIです。通常の使用量のほかに、企業への使用料も発生するので使用する際は確認しておきましょう。
④コミュニティAMI
ユーザーが作成したAMIで一般公開されているものです。AWSが中身を審査しているわけではないので、本番環境などの使用は避けた方がいいでしょう。
2-1. AMIのメリット
EC2インスタンスのバックアップが簡単とれる
AMI使用によって、バックアップがとれ、障害発生時にはバックアップアから復帰させることができます。
EC2インスタンス作成の工数削減
あらかじめ用意されているAMIの使用により、EC2インスタンスを作成する工数あコストを削減することができます。
●AMIの使用例
・災害対策で別リージョンにAMIにコピーしておく
・長期的に使わないインスタンスのコスト削減
3. ELB
前提知識として、ロードバランサについて知っておきましょう。
ロードバランサーとは、外部からの通信(トラフィック)を複数のサーバーに分散させ、システムの停止などの障害を防ぐことができる仕組みのことです。
例えば、3台のサーバーの前にロードバランサーをおくことで、ロードバランサが処理できる3台に割り振ってくれます。
3台で処理することで、処理速度の向上、高可用性、耐障害性が強化されます。
ELBとは、Elastic Load Balancingの略で、AWSが提供するロードバランサーのサービスになります。
ELBを使用することで、同じ構成のEC2インスタンスを別々のAZに配置することができ、負荷分散が可能です。
ELBはEC2が正常に動作しているか確認できる機能があり、もし正常に動作してない場合は、対象のEC2への通信を停止させます。
3-1. ●ロードバランサーの種類
現在、ロードバランサーは4種類あります。
①CLB (Classic Load Balancer)
ALBより前からあった設定が基本的にしやすいロードバランサーです。
現在はCLBを使用せずにALB、NLBを使用することが推奨されています。
アプリケーションへの負荷やCPUの稼働状況をリアルタイムにモニタリングできます。
②ALB (Application Load Balancer)
HTTPやHTTPSプロトコルのレイヤー7を負荷分散し、おもにWebアプリケーションに利用されます。
③NLB (Network Load Balancer)
TCPやUDPのレイヤー4で動作します。
静的なIPアドレスを見るので、細かい振り分けは出来ませんが、数百万/秒のリクエストを処理することができるので、高いパフォーマンスを必要とする環境で負荷分散をします。
④GLB(Gateway Load Balancer)
フルマネージドのネットワークゲートウェイおよびロードバランサー。
ファイアウォールなどの、サードパーティの仮想アプライアンスをクラウドに展開、拡張、管理できます。
4. Lambda
AWSが提供しているサーバーレスを実現するためのサービスです。
サーバーレスとは、ソースコードがあればアプリケーションの実行が可能なことで、サーバーを準備する必要がないことからサーバーレスと呼ばれています。
サーバーレスといっても物理的なサーバーは存在していて、提供者側が負荷対策まで見てくれているので、利用者はサーバーの管理が不要になります。
他のAWSと連携が可能です。
サーバーレスではない場合は、アプリケーションを実行するには、EC2インスタンスでWebサーバーを構築し準備するという工程がありました。
サーバーレスでは、ソースコードを準備するだけでアプリケーションを実行することが可能です。
Lambdaで利用可能な言語は、Node.js、Python、Java、C#、Ruby、Go、PowerShellと、複数のプログラミング言語をサポートしています。
Pythonがよく利用されているようです。
https://it.impress.co.jp/articles/-/21998
4-1. Lambdaのメリット
サーバー管理は不要
サーバーの管理が不要なため、運用コストを削減できます。
オートスケーリング
必要な時にコードを実行し、リクエスト回数に合わせて自動的にスケールします。
オートスケールによって、リクエストが増えても安定したパフォーマンスを維持することができます。
さまざまなプログラミング言語に対応
Node.js、Python、Java、C#、Ruby、Go、PowerShellに対応しているのもそうですが、さらにRuntime APIと呼ばれる機能を提供しており、ランタイムをアップロードすることで、標準では対応していないプログラミング言語でも、利用することが可能になります。
独自でアップロードしたものに対しては、手動でセキュリティパッチのバージョンアップをするなど、注意が必要です。
5. Auto Scaling
Auto Scalingとは、AWSが提供するリソースをあらかじめ決めておいた条件にしたがって増減させることができるサービスです。
EC2、DynamoDBなどで利用することができます。
Auto Acalingは、設定したAmazon Machine Image(AMI)からEC2インスタンスを起動するため、AMIを常に最新化しておくことが重要です。
今回は、クラウドプラクティショナーで出題されるEC2のAuto Scalingについて学習していきます。
5-1. Auto Scalingのメリット
①耐障害性の向上
正常に動作していないときに、正常に動作していない対象のインスタンスを終了して、新しいインスタンスを起動させます。
②可用性
アクセスが集中する時間帯に合わせてインスタンス数を増やすことができます。
③コスト削減
アクセス数に合わせてインスタンスを増減させることができるので、無駄なリソースを使用しなくてよくなり、コスト削減に繋がります。
5-2. EC2 Auto Scalingの実装について
①Auto Scalingグループ
②起動設定
③スケーリングプラン
①Auto Scalingグループ
EC2インスタンスの集合のことで最大インスタンス数や最小インスタンス数などの設定をします。②起動設定
Auto Scaling実行時に起動するEC2インスタンスの情報を定義します、AMIやインスタンスタイプ、セキュリティグループ、キーペアなど。③スケーリングプラン
スケーリングプランでは、Auto Scalingのグループ内のインスタンスを増減させる条件を設定します。例:CPU利用率が60%を超えたら増加し、75%を超えたらさらに増加する条件など
自動実行の場合は、ポリシータイプの設定が必要です。
6. S3
Amazon S3とは、Amazon Simple Storage Serviceの略で、AWSが提供するストレージサービスのことです。
クラウド上にファイルを保存するためのサービスで、世界中の多くのユーザーに利用されています。
耐障害性、可用性、コスト面などが優れています。
S3に保存したオブジェクトは、デフォルトで同一リージョン内の3カ所のアベイラビリティーゾーン(AZ)へ自動的に複製されます。
6-1. S3ででてくるオブジェクトとバケットについて
バケット…オブジェクトを保存する場所
オブジェクト…バケットに保存するデータ
6-2. S3のメリット
耐久性、可用性
耐久性は、99.9999999%です。
容量
格納可能なデータの総量とオブジェクト数に制限がないので、容量を気にしなくて済みます。
セキュリティ
アクセス許可がない利用者はアクセス禁止にできます。
6-3. S3のアクセス制御
以下、3つの方法でアクセス許可がない利用者へのアクセスをブロックします。
①アクセスコントロールポリシー(ACL)
②バケットポリシー
③IAMポリシー
①アクセスコントロールポリシー(ACL)
AWSアカウントなどにバケット、オブジェクトへの許可をするものです。
②バケットポリシー
バケットポリシーはバケットに付与することができ、特定のIPアドレスからのアクセスを許可、拒否するなど、ACょり細かくアクセス制御することが可能です。
③IAMポリシー
EC2からS3へアクセスする場合は、EC2にS3へのアクセスを許可するIAMロールを付与する必要があります。
6-4. S3の種類とコスト
ユースケースに応じて、「ストレージクラス」と呼ばれるS3の利用形態を選択することができます。
●スタンダード
スタンダードなS3です。
デフォルトのストレージクラスで、99.999999999%の高耐久性を備えています。
●標準‐低頻度アクセス
スタンダードよりも安価です。データの読み取りに対して課金されます。
●1ゾーン低頻度アクセス
一カ所のAZのみにデータを保存するため、標準‐低頻度アクセスよりも安価です。
しかし、可用性が低くなります。
●低冗長化ストレージ
スタンダードでは三ヵ所のAZでレプリケーションされているものを二カ所にすることで、データの耐久性は落ちるものの、コストを抑えることができます。
●Glacier
長期間のデータ保存を安価にできます。
データ取り出しに時間と料金がかかります。
●Intelligent-Tiering
低頻度と高頻度の2階層のストレージ層を用意し、S3上へのアクセス頻度に応じて、コスト最適化を自動で行います。
7. まとめ
今回はテクノロジー分野のAWSの主要サービスについて学習してきました。
勉強を進めていて、特に感じたのはコストの面で、利用者がそれぞれの使用量に応じて金額変動になる点で無駄がないように思います。
利用者それぞれにあった金額設定に細かく分かれている
次回もAWSのサービスについてさらに学習を進めていきたいと思います。