AWSとは
AWSとは近年流行しているクラウド化で利用されているサービスです。
AWSの資格の種類
AWS認定試験は2023/8月時点で12種類に資格があります。
- AWS認定Solutions Architect(ソリューションアーキテクト)アソシエイト(SAA-C02)
システム設計 - AWS認定Developer(デベロッパー)アソシエイト(DVA-C01)
開発 - AWS認定SysOps Administrator(シスオプス アドミニストレーター)アソシエイト(SOA‐C02)
管理運用
(設計者向け) ソリューションアーキテクト | (開発者向け) デベロッパー | (運用管理者向け) Sys Ops アドミニストレーター | |
---|---|---|---|
Professional Level | AWS認定 ソリューションアーキテクト -プロフェッショナルレベル試験 | AWS認定 Dev Ops エンジニア -プロフェッショナルレベル試験 | |
Associate Level | AWS認定 ソリューションアーキテクト -アソシエイトレベル試験 | AWS認定 デベロッパー -アソシエイトレベル試験 | AWS認定 Sys Ops アドミニストレーター -アソシエイトレベル試験 |
Foundation Level | AWS認定 クラウドプラクティナー試験 |
インフラエンジニアとしてどのようなことがしたいか、明確にあるほうが、 案件をアサインしやすい 例)AWSの環境構築をしたいので、キャリアは未経験ですが、AWSの資格をアソシエイトを3つプロを一つ取得しました。
AWS認定ソリューションアーキテクト-アソシエイトレベル試験概要
セキュアなアーキテクチャの設計 | 30% |
弾力性に優れたアーキテクチャの設計 | 26% |
高パフォーマンスなアーキテクチャの設計 | 24% |
コストを最適化したアーキテクチャの設計 | 20% |
- 試験時間:130分
- 問題数:65問
- 合格ライン:720点/1000点
重要サービス
EC2 S3 VPC IAM ELB/Auto Scaling
IAM(AWS Identity and Access Management)
IAM は、AWS リソースへのアクセス権限を管理するためのサービスです。IAM より、AWS アカウントで誰が何(認証・認可)を実行できるかを定義します。
Permissions Boundary(アクセス許可境界)
IAMユーザーやIAMロールの操作可能範囲を限定、制約を設ける機能
リソースの記述はARN(Amazon Resource Name)形式
arn:aws:サービス:リージョン:アカウントID:リソース
VPC(Amazon Virtual Private Cloud)
仮想ネットワーク
↓1つのVPCはリージョン内すべてのAZにまたがる
VPCエンドポイント
インターネットとの通信が制限されているプライベートサブネット内のAWSリソースから、インターネットゲートウェイを経由せずにVPC外のAWSサービスへアクセス可能にする機能
EC2(Elastic Compute Cloud)
elastic … 拡張性
AWS上に仮想サーバを作るサービス
EC2を起動するとき元となるイメージをAMI(Amazon Machine Image)を選んで作成します。
…AMI(Amazon マシンイメージ)は、EC2インスタンスを起動するために必要なOSやミドルウェアなどのテンプレートです。
従量課金型(使った分だけ課金)
・起動中(Running)→費用発生
・停止中(Stopped)→EBSの費用のみ発生
・削除済み(Terminated)→発生しない
ELB(Elastic Load Balancing)
アプリケーションへの負荷やCPUの稼働状況をリアルタイムにモニタリングできるロードバランサーです
RDS(Amazon Relational Database Service)
データベースのマネージドサービス
Aurora AWSが独自に開発
S3(Amazon Simple Storage Service)
・オブジェクトストレージサービス … データを固有のIDを持つ「オブジェクト」として扱う→ディレクトリのような階層構造を持たない
・AWSのストレージサービスの中で1TBあたりの保存料金が最も安い
・保存容量が無制限
ストレージクラス | 保存料金の高い順 | 取出し料金 | 取出し遅延 | 保存AZ | 最短保存期間 |
---|---|---|---|---|---|
S3 Standard 標準(Standard) | 1 | なし | なし | 3以上 | なし |
S3 Intelligent-Tiering アクセス頻度が予測不能なデータを保存する際に適している | 変動 | なし | 変動 | 3以上 | なし |
S3 Standard-IA (S3 Standard-Infrequent Access) | 2 | あり | なし | 3以上 | 30日 |
S3 One Zone-IA | 3 | あり | なし | 1 | 30日 |
S3 Glacier Instant Retrieval ※アーカイブデータ向け | 4 | あり | なし | 3以上 | 90日 |
S3 Glacier Flexible Retrieval ※アーカイブデータ向け | 5 | あり | 数分~数時間 | 3以上 | 90日 |
S3 Glacier Deep Archive ※アーカイブデータ向け | 6 | あり | 数時間 | 3以上 | 180日 |
バケット
Amazon S3のオブジェクトが保存される領域
・一つのバケットにはオブジェクト数が無制限で保存可能
・バケット名はグローバルで一意、作成したバケット名は変更は不可
マルチパートアップロード
S3バケットに5GBを超えるファイルをアップロードするときに利用
※S3バケットに保存できるオブジェクトの最大サイズは5TBですが、一度にアップロードできる最大サイズは5GB
クロスリージョンレプリケーション
S3オブジェクトを自動的に異なるリージョンに保存したい場合に利用
S3 Transfer Acceleration
ユーザーからS3バケットへ最適化したネットワークルートを経由してデータを転送する機能
ライフサイクル
・移行アクション … 利用頻度に応じてストレージクラスを変更
・有効期限アクション … 指定された期限を超えたオブジェクトを削除
ライフサイクルポリシー
S3バケット内のデータに対して、ストレージクラスの変更やオブジェクトの削除を自動化する機能
著名付きURL
アクセスを許可したいオブジェクトに対して期限を指定してURLを発行
バケットポリシー
・S3で保存しているデータにバケット単位でアクセス権限を設定する機能
・サーバー側の暗号化(Server-Side Encryption:SSE)を強制できます
<サーバー側の暗号化には、以下3種類の方法があります>
- Server-Side Encryption:SSE
データをS3に保存する時にサーバーで暗号化する方法 - SSE-KMS
AWS KMS(AWS Key Management Service)に保存されているKMSキーを使用する - SSE-C
ユーザーが管理している鍵を使用する
バージョニング
オブジェクトの世代管理ができる機能
静的Webサイトホスティング
バケットに保存している静的コンテンツ(HTMLやJPGなど)をWebサイトとして公開できる機能
MFA Delete
S3のバージョニング機能で世代管理されているオブジェクトを削除する際に、MFAデバイス認証が必要となる機能
オブジェクトロック
S3バケットに保存したオブジェクトに対して更新・削除を制限する機能
・S3バケット作成時にのみ設定可能
・オブジェクトロックを有効にするとバージョニング機能も有効になります。
※主にオブジェクトが意図的に改ざん・削除されることを防止する目的で使用
- リテンションモード … 一定期間の保護
- ガバナンスモード … s3:BypassGovernance Retention という権限がないと変更できない
- コンプライアンスモード … 保護期間が明けるまで誰も上書き削除ができない
- リーガルホールド … 保護期間を設定しない
グローバルインフラストラクチャとネットワーク
リージョン
日本国内には「東京リージョン」と「大阪リージョン」の2つのリージョンが存在
アベイラビリティゾーン(AZ)
エッジロケーション
ユーザに近いネットワークで高速なコンテンツを配信
CIDRブロック
VPCで作成者はIPアドレス(CIDRブロック)をアサインできます
/16~/28の範囲
ルートテーブル
ルーティング設計
・サブネットに1つずつ設定
インターネットゲートウェイ(IGW)
VPCとインターネットを接続するためのゲートウェイ
NATゲートウェイ
ネットワークアドレス変換機能を持ちプライベートサブネットからインターネットへの通信を可能にする
NATインスタンス
・NATゲートウェイと同じくプライベートサブネットからインターネットへの通信を可能にする
・EC2インスタンスから作成
・ポート転送機能を設定可能
・IPv4専用
仮想プライベートゲートウェイ(VGW)
・VPCごとに1つだけ紐づけることが可能
VPCエンドポイント
インターネットとの通信が制限されているプライベートサブネット内のAWSリソースから、インターネットゲートウェイを経由せずにVPC外のAWSサービスへアクセス可能にする機能
VPCピアリング
2つのVPC間でプライベートな接続をするための機能
・異なるVPCアカウント間でも可能
VPCフローログ
AWS Direct Connectゲートウェイ
オンプレミスと物理専用線で接続するサービス
※インターネットを経由しないプライベートな接続を確保
・ZVPCと拠点を1対1で繋ぎます
AWS Transit Gateway
複数のVPC、Direct Connect、VPNをスター型トポロジーで接続
※ハブを介して、ネットワークを接続するクラウドルーター
→ネットワークが簡素化
AWS Site-to-Site VPN(サイト間VPN)
カスタマーゲートウェイ(オンプレミスのルーター)とVPCの仮想プライベートゲートウェイ(VGW:Virtual Private Gateway)を、インターネットVPN(VPNトンネル)で接続するサービス
コンピューティングと関連サービス
Lambda/API Gateway ECS/Fargate/EKS
EC2(Elastic Compute Cloud)
elastic … 拡張性
AWS上に仮想サーバを作るサービス
EC2を起動するとき元となるイメージをAMI(Amazon Machine Image)を選んで作成します。
…AMI(Amazon マシンイメージ)は、EC2インスタンスを起動するために必要なOSやミドルウェアなどのテンプレートです。
従量課金型(使った分だけ課金)
・起動中(Running)→費用発生
・停止中(Stopped)→EBSの費用のみ発生
・削除済み(Terminated)→発生しない
スポットインスタンス
AWSが余らせているEC2リソースを入札形式で利用
「スポットフリート」はスポットインスタンスのオプションの一つです。必要なインスタンス数を指定することで、指定した数のスポットインスタンスが起動します。スポットインスタンスが中断されて必要なインスタンス数を下回った場合、自動的にインスタンスを補充してインスタンス数を維持します。
ハードウェア専有インスタンス(Dedicated Instances)は、他のAWSアカウントとは分離された専用ハードウェアでEC2インスタンスを利用できる購入オプションです。物理的なCPUソケット、コア数、ホストIDは確認できません。
・Dedicated Hosts(専有ホスト)
他のEC2インスタンスとは分離された専用ハードウェアで利用できる購入オプションです。
物理的なCPUソケット、コア数、ホストIDを確認する必要がない場合、ハードウェア専有インスタンスの方が低価格で利用できるので誤りです。
リザーブドインスタンス(RI)
長期間の利用を約束することで、割引を受ける
ELB
スケールアウト時の負荷分散を担うサービス
・CLB(Classic Load Balancer):L4/L7
・ALB(Application Load Balancer):L7 CLBより後に登場、機能豊富
・NLB(Network Load Balancer):L4 HTTP(S)以外のプロトコル通信時での負荷分散で利用
ヘルスチェック(ELBの機能)
インスタンスが正常に動作しているかチェック
Auto Scaling
EC2の状況に応じて自動的にインスタンスの数を増減させる機能
ECS(Amazon Elastic Container Service)
Docker環境を用意
・Task:EC2インスタンス上で実行されるコンテナ
・Cluster:Taskを保有しているEC2インスタンス
・Task Definition:Cluster上で動作するTaskの定義
Lambda(ラムダ)
サーバーをプロビジョニングしなくてもプロジェクトを実行できるコンピューティングサービス
Lambda関数
実行するプログラムとその実行トリガーとなるイベントを事前に定義する関数
・割り当てるメモリ用
・タイムアウトまでの時間
・Lambdaに割り当てるIAMロール
・VPC内外
ストレージサービス
S3 EBS EFS FSx Storage Gateway Snow Family
EBS(Elastic Block Store)
ブロックストレージ
「Elastic」…用途に合わせて柔軟な使用ができる
汎用SSD(gp3) | 3,000IOPS 開発環境を構築する時に最適 1GB〜16TB |
プロビジョンドIOPS(io2) | 64,000IOPS マルチアタッチ 4GB〜16TB |
スループット最適化HDD(st1) | 500IOPS 大量のデータ 125GB〜16TB |
コールドHDD(sc1) | 250IOPS EBSの中で一番低コスト アクセス頻度の低いログデータやバックアップデータの保存 125GB〜16TB |
EFS(Elastic File System)
Amazon EFSはNFS(Network File System)プロトコルをサポートするファイルストレージサービス
▼EFSのパフォーマンスモード
汎用モード | ファイルサービスなど一般的な用途を想定したモードで、レイテンシーを優先する場合に使用するモードです。 |
最大I/Oパフォーマンスモード | ・レイテンシーが汎用モードに比べ、わずかに長くなる ・合計スループットを優先する場合に使用 |
▼EFSのスループットモード
バーストスループットモード | ・ベースラインとなるスループットが設定されている ・一時的なスループットの上昇にも耐えられるバースト機能を持っている |
プロビジョニングスループットモード | バーストモードで許容されている以上の要件がある場合に使用 |
エラスティックスループットモード | ・自動的にスケールアップダウン ・パフォーマンスもーどが汎用モード時のみ利用可 |
FSx
ファイルストレージサービス
・FSx for Windowsファイルサーバー
・FSx for Lustre
・FSx for NetApp ONTAP
・FSx for OpenZFS
FSx for Windowsファイルサーバー
Windows上にファイルシステムを提供
SMBプロトコルを使用…主にWindowsコンピュータ間において、ファイル共有やプリンタ共有に使用されるプロトコル
Storage Gateway
オンプレミスにあるデータをクラウドに連携させるための受け口
AWS Storage GatewayのS3ファイルゲートウェイは、オンプレミスからNFS(Network File System)またはSMB(Server Message Block)を使用してS3バケットへアクセスできるようにするゲートウェイタイプです。ローカル(オンプレミス)にキャッシュストレージを持つため低レイテンシでのアクセスも可能です。
データベースサービス
RDS/Aurora Redshift DynamoDB ElastiCache
▼AWSのデータサービス
タイプ | サービス |
---|---|
リレーショナル SQL | Amazon Aurora、Amazon RDS、Amazon Redshift |
NoSQL キー値 | Amazon DynanoDB |
NoSQL インメモリ | Amazon ElastiCache、Amazon MemoryDB for Redis |
NoSQL ドキュメント | Amazon DocumentDB |
NoSQL ワイドカラム | Amazon Keyspaces |
NoSQL グラフ | Amazon Neptune |
時系列 | Amazon Timestream |
台帳 | AmazonQLDB |
Amazon RDS
・マルチAZ構成
・リードレプリカ
Amazon Aurora
・DBクラスタ
・Auroraレプリカ
データベースへの負荷に応じて動的にレプリカインスタンスを増減するAuto Scaling機能を備えています。
Redshift
・データウェアハウス向け(データの「倉庫」)
・拡張性
→MPP…処理を複数のノードで分散(スケールアウト)
→シェアードナッシング…各ノードがディスクを共有しない(I/O性能の劣化を回避)
Redshift Spectrum
Redshift内にデータを取り込むことなくクエリの実行が可能
DynamoDB
・Key‐Value型
・NoSQL
・階層的なデータ構造をもったJSON形式のデータの扱いについてもサポート
DynamoDBでは自動的に3つのAZにデータが保存されます
DynamoDB Accelerator(DAX)
DynamoDBの前段にキャッシュクラスタを構成→性能向上
<Amazon DynamoDBには2つのバックアップ方法があります>
・オンデマンドバックアップ…ユーザーが任意のタイミングで作成するバックアップ
・ポイントインタイムリカバリ(PITR)…差分バックアップが定期的に自動で取得(35日前まで遡ることができます)
DynamoDB Streams
Amazon DynamoDBのDynamoDB Streams(ストリーム)とは、テーブルに対して行われた直近の24時間の変更(追加や更新、削除)をログに保存する機能です。
ElastiCache
・インメモリ型データベース
1)Memcached:再起動ですべてのデータが消える
2)Redis:Memcachedよりも多くのデータ型が利用可能、データ永続性能
マネジメント、ガバナンス
CloudWatch CloudTrail Elastic Beanstalk CloudFormation Trusted Advisor AWS Systems Manager
Amazon CloudWatch
AWSサービスやオンプレミス(自社運用)のシステムを監視するサービス
状態に応じたアクションを取らせることができます。
メトリクス…CloudWatchが監視する様々なリソースの情報は「メトリクス」と呼ばれます(インスタンスのCPU使用率やディスクの使用状況
標準メトリクス | CPU使用率、 ディスク読み取り書き込み量、 ネットワーク使用率 |
カスタムメトリクス | メモリ使用量、 ディスク空き容量・使用状況、 プロセス情報 |
AWS CloudTrail
AWSサービスに対して「いつ」「誰によって」「どのような操作が行われたのか」を記録・保存するサービスです
・管理イベント … ユーザーのログイン、EC2インスタンスの作成 など
・データイベント … S3上のオブジェクト(データ)の操作、Lambda関数の実行
・インサイトイベント … 通常と異なる操作(書き込みAPIの呼び出し)
Amazon CloudWatch Logs
Amazon CloudWatch LogsはAWSサービスやEC2インスタンスのOSやアプリケーションのログを収集し、一元管理するサービスです
例)CloudTrailにおけるAWSサービスの操作ログや、VPCフローログ
AWS CloudFormation
AWSのリソースをコード化しプロビジョニング(構築)するサービスです。
→IaC(Infrastructure as Code)
AWS Elastic Beanstalkはアプリケーションが動作する定番の環境を自動で構築するサービスです。開発者は、用意された環境にアプリケーションをアップロードするだけでデプロイ(実行環境への展開)を行うことができます
AWS Systems Manager Session Manager
・EC2インスタンスへマネジメントコンソールやAWS CLIからセキュアにログインできる機能
・プライベートサブネットにあるインスタンスへも踏み台サーバーなしで接続が可能
セキュリティ、アイデンティティ、コンプライアンス
WAF/Shield KMS/CloudHSM
AWS Shield
DDoS攻撃からの保護に特化したサービス
AWS WAF(Web Application Firewall)
脆弱性を突く攻撃(クロスサイトスクリプティングやSQLインジェクションなど)から、Webアプリケーションを保護するサービスです
→Web ACL…地理的制限
Network Load Balancer(NLB)とClassic Load Balancer(CLB)には対応していないので利用できません
AWS Network Firewall
・VPC向けのファイアウォール機能
・侵入防止システム(IPS)やドメイン名によるトラフィックのフィルタリングなど、セキュリティグループやネットワークACLよりもさらに高度な機能
・VPC上のアウトバウンド及びインバウンド両方のトラフィックを検査可能
・特定のドメイン名を含むURLへのアクセスのみを許可したり、特定の送信元からのトラフィック以外は全てブロックするなど、きめ細かな通信の制御が可能
ネットワーク、コンテンツ配信
Route 53 CloudFront Global Accelerator Direct Connect/VPN
CloudFront
AWSが提供する高速でセキュアなコンテンツ配信ネットワークサービス
・「地理的制限」というクライアントからのアクセスを国別に制限できる機能があります
フィールドレベル暗号化
フィールドレベル暗号化は、ユーザーから送信されたHTMLフォームのPOSTリクエストのうち、一部のフィールドを暗号化し、特定のアプリケーションでのみ復号可能とするCloudFrontの機能です。
アプリケーション統合
SQS SNS
SQS(Amazon Simple Queue Service)
フルマネージドのメッセージキューイングサービスであり、サービス同士の橋渡しを担います。SQSはプル型なので、受信側の都合の良いタイミングでSQSへポーリング(問い合わせ)を行って、メッセージを受け取りま
SNS(Amazon Simple Notification Service)
プッシュ型のメッセージングサービス
SNSはプッシュ型なので、サブクライバー(受信者)の状態に関わらずメッセージを配信します。
・トピックという単位で情報を管理
分析
Kinesis EMR Glue Athena
AWS kinesisには大きく分けて3つの機能があります。
- Amazon Kinesis Data Streams
- Amazon Kinesis Data Firehose
- Amazon Kinesis Data Analytics
Kinesis Data Streams
Kinesis Data Streamsはストリーミングデータを収集します。ストリーム上のデータは分析や機械学習などを行うアプリケーションがリアルタイムに読みだして処理します。
Kinesis Data Firehose
Kinesis Data FirehoseはストリーミングデータをAmazon S3やRedshiftなどへ配信するサービスです
AWS Glue
・フルマネージドのサーバーレスETLサービス
・複数のデータソース(S3やDynamoDBなど)からデータを抽出し、変換・統合したデータをターゲット(Redshiftなど)へ格納
・クローラーはデータソースからデータの抽出を行い、データカタログを作成