【初心者用】AWS基礎⑦

前回はクラウドプラクティショナーの出題範囲のうちのAWSの主要サービスの識別までを学習してきました。

今回はAWSの主要サービスの識別のところについて、さらに学習していきたいと思います。

1. AWSの主要サービスの識別

EC2、EBS、AMI、ELB、Lambda、Auto Scaling、S3、EFS・Storage Gateway・Snowball、VPC、Route53に加えて、さらに学習しておくべき、AWSのサービスについて学習していきます。


https://qiita.com/moritalous/items/168fc7cce9ba2116a2cf

10. まとめ


ヒューマンミスが起こりにくくする工夫や、使用状況の確認をしてくれて最適なものを示してくれるなど、思った以上にサービスが充実している印象を受けました。

AWSを使用する人が多い理由は、そういう点でも評価されているんだなと思いました。

2. CloudFront

CloudFrontとは、エッジロケーションからコンテンツを配信するためのCDNサービスです。

S3yaEC2から配信するよりも速く、効率的に配信することができます。


※エッジロケーション:リージョンとは別に、世界中に150カ所以上のエッジロケーションがあります。
 リージョンがないところにあり、主に人工密度が高いところに配置されています。

※CDN:Content Delivery Networkの略で、世界中のCDNネットワークからユーザーがアクセスした場所から最も近い拠点からコンテンツを配信するため高速でかつ安全にコンテンツが配信される仕組みです。

※レイテンシーとは、データ転送などを要求してからその結果が転送されるまでの反応期間のことをいいます。

2-1. CloudFront メリット

①安全性

AWS利用者が使用しているドメインの証明書を使用することができ、ユーザーからHTTPSのアクセスを受けることでデータを保護しています。

②低レイテンシー

世界中のエッジロケーションをもつため、あらゆる場所からのアクセスに柔軟に対応します。

エッジサーバ-には、キャッシュを持たせることもできます。


エッジロケーションで利用できるサービス

・Amazon CloudFront

・Amazon Route53

・AWS Shield

3. RDS

RDSとは、Amazon Relational Database Serviceの略で、AWSが提供しているデータベースサービスになります。


◆使用できるデータベースエンジン(6種類)

 ・Amazon Aurora

 ・MySQL

 ・PostgreSQL

 ・MariaDB

 ・Oracle

 ・Microsoft SQL Server


オンプレミスで使用されているデータベースエンジンをそのまま使うことができます。

3-1. RDSの構築

オンプレミスの時の構築は、データセンターとの契約、ネットワーク環境の整備、サーバーの選定、OSインストールなど、多くの工数がかかっていました。

RDSを使用することで、前述の作業の必要がなくなります。

3-2. RDSの機能


◆マルチAZ構成

RDS構築時にマルチAZを有効化すると、自動的に異なるAZに2台のRDSが構築されます。

99.95%のSLAがあるので、高い可用性が期待できます。

※SLAとは、Service Level Agreementの略でサービスの品質に対する合意(合意書)のことです。


◆自動バックアップ

デフォルトで7日間のバックアップを自動でしてくれます。


◆メンテナンス

サーバーのOSは利用者の管理対象外になります。

OSのパッチ適用やバージョンアップ作業についてはメンテナンスウィンドウが設定した時間に実施されます。


◆暗号化

データの保存時と転送時に暗号化することができるので、安全に利用・管理できます。

3-3. DMSについて

DMSとは、AWS Database Migration Serviceの略で、データベース移行サービスです。

DMSを使用するとオンプレミスからAWS、AWSからAWSのデータベース移行が可能です。

移行期間中も利用可能である点がメリットです。


4. DynamoDB

DynamoDBとは、AWSが提供する高いパフォーマンスを持った完全マネージド型NoSQLデータベースです。

完全マネージド型という言葉で表現しているのも、お客様が管理する負担がさらに少なくなります。

例:データベースサーバーのOSや、データベースエンジン、テーブルの破損なども、気にしなくてよくなります。

DynamoDBを使用する際は、テーブルの作成から始めます。

データベースサーバーのインスタンス作成は不要で、最低限のテーブル名とプライマリーキーを決めれば使い始めることができます。


また、使用時にリージョンを選択肢します。

テーブル作成後、アイテムと呼ばれるデータを保存すると、自動的に複数のアベイラビリティゾーンの施設で同期されます。

最初からマルチAZの環境となっているということです。

NoSQLは、テーブル構造を固定することなく様々な形式のデータを格納することが可能です。


大規模なアクセス量で、単純な自由度の高いデータモデルを扱うときは、DynamoDBを選択しましょう。

中規模程度のアクセス量で整合性や複雑なクエリを必要とする場合は、RDSを選択しましょう。

4-1. Amazon NoSQLデータベースのタイプ

・キーバリュー型

・ドキュメント型

・グラフ指向

・カラム型

4-2. SQLデータベースとNoSQLデータベースの違いについて

SQLデータベースがリレーショナルであるのに対し、NoSQLデータベースはノンリレーショナルであるということが最大の違いになります。

リレーショナルデータベースとは「RDB」とも呼ばれており、SQL(Structured Query Language)を使ってデータの保存や検索、データベースの作成や削除を行い、表(テーブル)の形式で管理することが特徴です。


ノンリレーショナルは、SQLのような厳格な構造を必要としません。

データを保存しますが、行、テーブル、キーは含まれず、保存するデータの種類に応じたストレージモデルを利用します。

4-3. DynamoDBの特徴4つ

①ストレージについて

ストレージ容量を無制限に増やすことが可能です。

②サーバーレスについて

フルマネージドのため、サーバーの管理やOSのメンテナンス、祖巣とウェアの運用はAWSが管理します。

③可用性について

複数のAZでデータの保存をしてくれています。

また、自動的にマルチAZ構成になるため高い可用性を保てます。

④パフォーマンス

システムの規模にかかわらず、数ミリ秒台の応答時間をサポートしています。

DynamoDB Acceleratorを使用することで、さらにパフォーマンス向上が可能です。

ゲームやIoT分野など、大規模で自由度の高いデータを扱う場合に使用されています。


※DynamoDB Acceleratorとは、DynamoDBと互換性のあるフルマネージド型のインメモリキャッシュサービスになります。

レスポンスをミリ秒単位からマイクロ秒単位まで高速化することができるようになります。

5. Redshift、ElastiCache

Amazon Redshiftとは、AWSが提供する高速でシンプルなデータウェアハウスサービスです。

データ分析や、CRMによる顧客管理などで使用されています。


Amazon ElastiCacheとは、AWSが提供する完全マネージド型のインメモリデータストアサービスです。

データベースのクエリ結果のキャッシュに使用したり、アプリケーションのセッション管理などに使用されています。

6. CloudTrail

CloudTrailとは、AWSアカウント内のすべてのAPI呼び出しをログに記録するサービスになります。

例:サービスのAPIコール元、時間、送信元IPアドレス、呼び出したAPI、対象となるロソースなど


さまざまな操作ログを蓄積することで、不正アクセスや、予期しない動作が起きた時に、CloudTrailを使用してログを確認することで、セキュリティ監視や監査に活用できます。

CloudTrailでは、デフォルトでログの保存期間が90日になっています。

それ以上、ログを保存したい場合は設定する必要があります。

取得されたログはデフォルトでS3に保存されます。

6-1. CloudTrailのメリット3つ

・コンプライアンス面
自動的に操作ログが保存されるため、コンプライアンス監査に役立ちます。

トラブル時も原因についてすぐに特定可能になります。

・セキュリティ面
イベントログを確認しているため、セキュリティや運用上の問題を発見することができます。

・トラブルシューティング
誰がどのような操作をしたか、すぐに確認できるので調査に役立ちます。


https://maturitymodel.security.aws.dev/es/1.-quickwins/cloudtrail/

7. CloudWatch

Amazon CloudWatchとは、EC2インスタンス、DynamoDBテーブルなどのインスタンスの現在の情報をモニタリングするサービスです。

具体的には、インスタンスのCPU使用率、Diskの読み書き回数などを監視することができます。

ある一定以上の使用率になった場合にアラートを送信するといったアクションのほか、CPU使用率をグラフ化することもできます。

CloudWatchを使用する際に、知っておくべきメトリクスについて

メトリクスとは、CloudWatchで取得・監視する項目のことを言います。

EC2ではデフォルトでAWSから提供されている「標準メトリクス」「カスタムメトリクス」の2種類があります。

7-1. 「標準メトリクス」について

AWSから提供されている標準で監視可能な項目です。

デフォルトでは、EC2からCloudWatchに対して、様々な監視データを送信できます。

EC2 では、次のようなメトリクスがあらかじめ用意されています。


 ・EC2のCPU使用率

 ・インスタンスストアボリュームからの読み取り回数(指定された回数)

 ・インスタンスストアボリュームから読み取られたバイト数

 ・すべてのネットワークインターフェイスから受信されたバイト数

7-2. 「カスタムメトリクス」について

標準メトリクス以外の独自のメトリクスを定義して収集したい場合は、カスタムメトリクスを使用します。

たとえば、

 ・メモリ使用率

 ・ディスク使用率

 ・スワップ使用率 …など

7-3. CloudWatch Alarmについて

CloudWatch Alarmでは、CloudWatchで監視している項目がある一定以上の値になれば、アラームとアクションを起動することができます。

例:EC2の使用率が80%を超えた際に利用者に通知する

7-4. CloudWatch Logsについて

CloudWatch Logsは、EC2、CloudTrail、Route53などのログを分析、保存することができるサービスです。

使用中のすべてのシステムやアプリケーション、AWSのサービスのログを一元管理することができるため、一括にログの分析ができます。

ログの管理や分析業務を軽減することができます。

8. Trusted Advisor

Trusted Advisorとは、ユーザーのサービス状況を自動的にチェックして回り、ベストプラクティスに基づいて、より効率的、最適な使用方法を提案してくれるサービスです。


チェック項目5つ

①コスト最適化

②パフォーマンス

③セキュリティ

④フォールトトレランス(耐障害性)

⑤サービス制限

9. CloudFormation

CloudFormationとは、AWSの各リソースを含めた環境を自動で構築、設定変更をするサービスです。

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

CloudFormationを使用することで、同一環境を何度でも自動で構築することができます。

CloudFormationのメリット

EC2構築のコードを作成すると、EC2を一括でミスなく素早く構築することが可能です。

コードをもとにインフラ環境を構築することを、Infrastructure as Codeといいます。