AWS学習者がまとめたAWSリソースリスト 【随時追記】

AWS

今回の記事ではクラウドサービスプラットフォームとして知られるAWS(Amazon Web Services)で使用されている各種リソースについてまとめた備忘録としての内容になります。

こちら随時キャッチアップした内容を追記していきます。また、内容に一部誤りがある場合や、必須の事項についてあれば、お手数ですが、ページ下部のコメントからご教示していただければ幸いです。

何より私自身が現在AWSを学習しておりますが、なかなかイメージしずらいリソースやそもそものリソースの役割を忘れてしまうため、今回こちらの記事を作成しております。

現在の筆者レベル感(随時更新:2024年9月現在
・LPIC LEVEL 1 取得
・CloudTechにて学習中
・AWS に関する資格取得なし


では早速、まとめていきます。(※紹介している順番について、特に意味はありません

AWS アクセスキー

AWSのアクセスキーは、AWSのサービスにプログラムからアクセスするために必要な認証情報
主な特徴と用途は以下の通り

  1. 目的:
    • AWS APIやCLIツールを使用してAWSリソースにプログラム的にアクセスするため
  2. 構成:
    • アクセスキーIDとシークレットアクセスキーのペアで構成されます
  3. アクセスキーID:
    • 公開部分で、アカウントを識別するための文字列(例:AKIAIOSFODNN7EXAMPLE)
    • AWSに対してどのアカウントからのリクエストかを示す
  4. シークレットアクセスキー:
    • 非公開部分で、パスワードのような役割を果たす
      (例:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY)
    • リクエストの認証に使用され、絶対に他人に漏らしてはいけない
  5. クレデンシャル:
    • アクセスキーIDとシークレットアクセスキーを合わせて「クレデンシャル」と呼びます
    • AWSサービスへのアクセスを認証するための情報全般を指す用語
  6. セキュリティ上の注意:
    • アクセスキーは長期的な認証情報であるため、適切に管理する必要があります
    • 可能な限り、IAMロールなどの一時的な認証情報の使用が推奨されます
  7. 使用例:
    • AWS CLIの設定
    • SDKを使用したアプリケーションの開発
    • 外部ツールからのAWS連携

アクセスキーは強力な認証手段ですが、セキュリティリスクも伴うため、適切な管理と使用が重要です。可能な限り、IAMロールや一時的な認証情報の使用を検討することが推奨されています。

アクセスキーの作成は、右上のメニューから「セキュリティ認証情報」を選択


マシンイメージ(AMI)

EC2インスタンス起動時に必要な情報を含む、事前設定済みの仮想マシンイメージ
情報とは、OS,CPU,メモリなど。またAMIを作成する前にインストールしていたソフトウェアなどもAMI作成後にインストールされた状態である。ApacheやTomcatなど,,,etc

EBS

EC2にアタッチされているブロックストレージ(ボリュームとも呼ぶ)
スナップショットを増分バックアップとして、S3に保存 / EC2と同じAZ内で使用すること

EC2にEBSをマウントする手順について
※デフォルトでは一つのEBSがアタッチ・マウントされている

1.EBSをEC2にアタッチする
※アタッチのイメージ→EC2にEBSを物理的にくっつけたような
※マウントのイメージ→EC2で使用するOSにEBSを認識させる

2.EC2でlsblkコマンドを実行
→ブロックデバイスの一覧を確認(マウントされていないもの含む)

3.アタッチしたEBSのファイルシステムを作成
 sudo mkfs -t ext4 /dev/xvdf

4.マウントポイントとなるディレクトリを作成する
 sudo mkdir /mnt/ebs

5.EBSのファイルシステムをマウントポイントにマウントする
 sudo mount /dev/xvdf /mnt/ebs

これでEC2でEBSが使用可能となる。
なおEC2再起動後も自動的にマウントするには、/etc/fstabにファイルにEBSのUUIDなどを設定しておく。詳しくは、こちら


インスタンスストア
EC2インスタンス用の一時的なブロックレベルストレージ(揮発性ストレージ:インスタンスの停止や終了時にデータが失われる)

EBSが永続的なストレージを提供するのに対し、インスタンスストアは一時的なストレージを提供します。インスタンスストアはEBSよりも高いI/O性能を提供しますが、データの永続性はありません。

IAM

IAMを使用することで、だれが(認証)、どのリソースに(認可)どのような操作を行うかを制御することができる。最小特権の原則:ユーザーには必要なものへのアクセス権のみを付与する

IAMユーザー
AWSリソースにアクセスするための個別のアカウント
グローバルなサービスであり、どの場所からでもアクセスすることができる

IAMグループ
複数のIAMユーザーをまとめて管理するためのグループです。グループに対してポリシーを設定することで、グループ内のすべてのユーザーに同じ権限を付与できます

IAMロール
ポリシーを複数アタッチして、権限をひとまとめにする一時的なアクセス許可の際に用いるアタッチできる対象:AWSリソース , ユーザー , アプリケーション , 外部のアイデンティティ
AWSのサービスにアクセス許可を委任するロールの作成

IAMポリシー
AWSリソースに対する操作の許可・拒否の権限を表したもの。JSON形式で記述する

・AWS管理ポリシー
 AWS側で予め用意されているポリシー(編集不可)

・カスタマー管理ポリシー
 ユーザーが作成し、管理するIAMポリシー


※ちなみに以下はAWS公式から抜粋


AWS Aurora

MySQLとPostgreSQLとの完全な互換性を備えたデータベース
Aurora のスループットは MySQL の 5 倍、PostgreSQL の 3

EC2からAuroraにアクセスするためには、クライアントソフトが必要
こちら

一つのセキュリティーグループでAurora Primary(更新)/Aurora Replica(参照)に適用される

分散型ストレージアーキテクチャを採用 → コンピューティングとストレージを分離している

コンピューティング(データベースインスタンス)
SQLクエリの実行
Aurora Primary(データ更新)/Aurora Replica(データ参照)として機能
Primaryがダウンしたら、Replicaが自動的にPrimaryに昇格するフェイルオーバー機能を有する

ストレージ(データの保存先)
少なくとも3つの異なるAZに同期的にデータを管理している
AZはサブネットグループとして、グループ化しておく



AWS SQS(Amazon Simple Queue Service)

フルマネージド型のメッセージキューイングサービスシステム

コンポーネント間でメッセージ(データ)を直接送信せず、キューを挟むことで疎結合を実現し、メッセージ(データ)の送受信の際に単一障害点を防ぐことができる

メッセージの送信者をプロデューサー、受信者をコンシューマーとして、非同期にてメッセージの送受信を行なう。送受信の関係は、一対一

メッセージは処理されるまでキューに保存される

KMS(Key Management Service)を使ってメッセージを暗号化することも可能

キューの種類
1.スタンダードキュー:メッセージの受信順序が保証されていない
2.FIFOキュー(先入れ先出し): メッセージの受信順序が保証される


ちょっと一息

CloudShell
AWSマネジメントコンソールから起動させることができるコンソール

AWS Well-Architectedのひとつである単一障害点について
そのリソースが止まると、システム全体が止まるような部分

サーバーレス
インフラストラクチャの部分を意識しなくてもよい。サーバーが存在しないという意味ではない
※インフラストラクチャとは、プロビジョニング・高可用性・スケールメリットなど
※プロビジョニングとは、ITインフラやリソースを準備・設定すること

スループット
一定時間の処理能力を表す



AWS SNS(Simple Notification Service)

パブリッシャーからサブスクライバーへのメッセージ配信を提供するフルマネージドのメッセージングサービス / Push型通信方式を採用 / 送受信の関係は、多対多

メッセージは一時的に保存され、配信後は削除される
メッセージは非同期通信により、パブサブ間での疎結合化を実現し、影響を少なくできる。

(流れ)
パブリッシャー → SNS(トピック) → サブスクライバー

例えば、CI/CDの通知メールを例にすると…
CodeDeployの前に、デプロイ承認の通知を受け取る場合に、CodeStar Notifications(パブリッシャー)からSNSのトピックにメッセージがプッシュされ、そのメッセージがトピックからEmail受信者(サブスクライバー)へと配信される

AWS CodeStar Notificationsは、AWS開発者ツール(CodeCommit、CodeBuild、CodeDeploy、CodePipelineなど)のイベントを監視し、通知を送信するためのサービス

トピック
メッセージの入れ物。パブリッシャーはトピックにメッセージを発行する
 
 トピックタイプ
 ・スタンダード
  メッセージの順序は保証されない/メッセージが重複して配信される場合がある
 ・FIFO(先入れ先出し)
  メッセージが発行された順序と同じ順序で配信される/メッセージの重複はなし

サブスクリプション
そのメッセージを受け取るための設定。トピックとエンドポイントを結びつける

エンドポイント
主にEmail , SMS , HTTP/HTTPS , SQS , Lambda , Kinesis Data Firehose などがある

A2A(Application to Application)
特定のAWSリソースに対して、メッセージを送信することができる。
例)AWS SNSからAWS Lambdaをメッセージを通して呼び出すことができる

A2P(Application to Person)
携帯電話番号、Eメールアドレスなどにユーザー通知を提供する

AWS CloudFront

エッジロケーションを利用し、コンテンツを低レイテンシーで届ける

オリジンサーバのコンテンツをキャッシュしたり、配信したりする
これはオリジンサーバーへの負荷軽減となる

CloudFrontに作成する証明書はリージョンがバージニア北部でしか作成できない

フィールドレベル暗号化を使用した気密データの保護についてはこちら

Elastic Beanstalk

アプリケーションを迅速にデプロイすることを可能にし、かつその管理を担うPasS(Platform as a Service)リソースである。インフラの詳細を気にせずに、アプリケーション開発に集中できる

例)アプリケーションコード(warファイルなど)をアップロードするだけで、自動的に実行環境を構築してくれる

対応言語:Java、.NET、PHP、Node.js、Python、Ruby、Goなど主要な言語・フレームワークをサポート

CloudFormation

JSONまたはYAML形式で記述されたテンプレートでAWSの様々なリソースを構築できる。
Infrastructure as Code (IaC)の一つ

開発者は開発環境と本番環境を簡単に複製し、一貫性を保ちつつ、繰り返し維持することが可能

AWS Outposts

オンプレミス上でAPIを使用して、様々なAWSツールを使用できる

AWS Direct Connect(DX)

オンプレミスのデータセンターやオフィスからAWSリソースにインターネット経由せず、専用線でプライベートな接続を提供するサービス

具体的にはオンプレミスとAWSの接続を中継するDirect Connectロケーション(物理的なデータセンター)を利用する

特徴
1.プライベートな通信経路(専用線接続)なため、低レイテンシーを実現
2.大容量のデータ転送が可能
3.インターネットを介さないため、高いセキュリティを保持
4.帯域幅が広い、通信速度が速い
5.暗号化はされていない


ネットワークACL

サブネットレベルでアクセス制御可能なステートレスファイアウォール

(特徴)
1. サブネットごとに適用
2. デフォルトは全通信を許可
3. 明示的に通信許可/拒否ルールを設定(特定のIPからのアクセスを拒否)
4. セキュリティグループよりも先に評価される

※EC2インスタンスのファイアウォールはセキュリティーグループ
 デフォルトでは全てのトラフィックをDenyしており、ステートフル

ちょっと一息

NIC(ネットワークインターフェースカード)
コンピュータをネットワークに接続するための回路基板

ENI(Elastic Network Interface)
EC2インスタンスに割り当てられているIPアドレスの実体

プロビジョニング
ITインフラやリソースを準備・設定すること

責任共有モデル
クラウドのセキュリティをお客側とAWS側で責任を分けておくこと

Well-Architected フレームワーク(6つ)
・パフォーマンス効果
・セキュリティ
・信頼性
・持続可能性
・コスト最適化
・運用上の優秀性(オペレーショナル・エクセレンス)



S3

データをバケットと呼ばれるコンテナにオブジェクトとして保存する

一つのオブジェクトサイズは最大5TB / 一回の操作でアップデートできるデータサイズは5GB / ストレージ容量は無制限

オブジェクトとはデータ、メタデータ(データの種類・使用方法)、キー(一意の識別子)で構成されている

全てのオブジェクトにURLが発行されている

8つのストレージクラスを選択することができる


S3に管理されたオブジェクトがコスト効率よく保存されるように管理するにはライフサイクルを作成すること。ストレージのライフサイクル管理について

S3のホスティングサービス
S3では静的ファイルをホストすることできるため、S3をウェブサーバーのように利用できる

これによりサービス停止中やメンテナンス中であることをユーザーに知らせるSorryページなどで利用できる

またVueJSやReactなどのSPAフレームワークで作成されたアプリケーションは静的ファイルとしてビルドされ、そのままS3のホスティングサービスで使用することができる

※ホスティングサービスを使用するためには、すべてのユーザーに読み取り許可ポリシーを付与する必要がある。詳細はこちら

また動画、写真、音楽のアップロードとダウンロードをホスティングする、メディアホスティングの機能も有する

バージョニング:バケット内にある単一のオブジェクトの複数のバージョンを保持できるようになる。誤って更新・削除に対しても、簡単に復旧することができる(デフォルトでは無効)

Amazon S3 Transfer Acceleration

クライアントとS3バケット間の長距離ファイル転送を高速、安全、簡単に行うことができる
S3バケットへのデータアップロードを高速化 / エッジロケーションを使用することで実現している

EFS

リージョンレベルで使用可能なLinuxベースのファイルシステムを提供する
複数のインスタンス(EC2)から同時にアクセスできる(読み取り・書き込み)

自動的にスケールアップ・ダウンするため、容量管理は不要
バックアップとレプリケーションを自動的に行う

マウントターゲット(AZに作成)経由でEC2からEFSにアクセスできる

オンプレミス上で使用するにはAWS Direct ConnectもしくはAWS VPNを使用する

ネットワークファイルシステム(NFSv4)のプロトコルを使用

EFSに接続するEC2インスタンスはNFSクライアントをインストールする
NFSインストールコマンド:sudo yum install -y amazon-efs-utils

EFSマウントターゲットを作成する際には、セキュリティグループをアタッチする
セキュリティグループはNFSクライアントとしてファイルシステムにアクセスできるEC2インスタンスを指定する

EFSのセキュリティグループにはインバウンドのルールが必要(タイプ:NFS)

EC2インスタンスにEFSをマウントする
sudo mount -t efs -o tls efs-id:/ data
 -t efs :ファイルシステムのタイプをEFSとして指定する
 -o tls :マウントオプションとしてTLSを指定。データ転送時の暗号化が有効となる
 efs-id :マウントするEFSファイルシステムのID。これは一意の値となる
data :ローカルマシン上(この場合、EC2)のマウントポイント(ディレクトリ)を指す



AWS RedShift

ビックデータの分析に使用できるフルマネージドのデータウェアハウジングシステム
多くのリソースからデータを収集し、データ全体の関係性や傾向を理解するのに役立つ機能を提供する

集計・分析したデータはBIツールとして使用される、QuickSightを通して確認することができる

AWS DMS

既存のデータをセキュアにかつ簡単にAWS RDSへと移行できる
オンプレミス(ソースDB)からRDS(ターゲットDB)への移行も可能

ソースDBはデータを移行中も通常通り、運用可能である(ダウンタイムを最小限
ソースDBとターゲットDBの種類(MySQLとOracleなど)が異なっていてもよい

移行手順
1.SCT(AWS Shema Conversion Tool)を利用して、スキーマ構造、データ型、データベースコードを変換する
2.DMSで移行する

ユースケース
1.本番環境のデータを開発環境へ移行
2.複数のDBをひとつのDBに統合する
3.継続的レプリケーション



ElastiCache

フルマネージドのインメモリ型キャッシュシステムを提供する

ふつうデータはハードディスクに保存され、データのI/Oが行われますが、インメモリ型ではデータをメモリに一時保存するので、ハードディスクと比較して、データのI/Oが高速に行うことができる

主にRDSやDynamoDBの前面に設置して使用され、データベースへのクエリの回数を減らし(負荷を下げる)、コストダウンとなる

需要に応じて、スケールアップ/ダウンできるスケーラビリティも備えている
インメモリデータストアとしてRedisとMemcashedを採用している

AWS Organizations

複数のアカウントを組織単位(OU)にグループ化
複数ユーザーへの一括請求でコストダウンとなる

SCP:AWS Organizations内のアカウントや組織単位(OU)に対して、AWSサービスやアクションの使用を許可または制限するためのポリシー

AWS Artifact

AWSが提供するコンプライアンス関連のドキュメント管理サービス(無料)
監査アーチファクト(インシデントが発生した際に残される痕跡)を検索できる

AWS WAF

保護されているWebアプリケーションリソースに転送されるHTTP(S)リクエストを監視できるWebアプリケーションファイアウォールです

以下の攻撃から保護
・SQLインジェクション
・クロスサイトスクリプティング
・OSコマンドインジェクション
・DDoS攻撃

WAFを適用できるサービス
・CloudFront
・Application Load Balancer(ALB)
・API Gateway

AWS WAF WebACLsについては、こちら

AWS Shield

DDoS攻撃対応

AWS Shield Standard
無料で使用でき、一般的な悪意のあるネットワークトラフィックを検出し、保護する
保護対象:Amazon CloudFront 、 Amazon Route 53

AWS Shield Advanced
有料で使用でき、詳細な悪意のあるネットワークトラフィックを検出し、保護する
保護対象:EC2、ELB、CloudFront、Global Accelerator、Route 53


AWS Inspector

OSやソフトウェアの脆弱性管理に関するセキュリティ対策のソリューション

ネットワーク接続性やパッケージの脆弱性を継続的にスキャンして、結果を確認できる
対象リソース:EC2, Lambda, ECRコンテナなど
※オンプレミスやほかのクラウドサービスは対象外

一部機能には、SSM Agentをインストールする必要がある
これは、EC2インスタンス上のソフトウェアパッケージとその詳細情報を収集する役割を果たす

AWS GuardDuty

AWSインフラストラクチャやリソースのネットワークトラフィックやログデータを分析し
潜在的な脅威や異常なアクティビティを監視・検出・通知する

検出するデータソース
VPC Flow log , Route53 Logs , AWS CloudTrail , S3データイベント

AWS KMS

データの暗号化に使用する暗号鍵を安全に管理するサービス

KMSで扱う鍵

1 . カスタマーマネージドキー(CMK)
 ユーザーが作成し、完全に制御できる鍵
 用途:特定のアプリケーションやデータに対する暗号化

2 . AWSマネージドキー
 AWSが作成し、管理する鍵 / ユーザー側での管理は不要 / 無料で使用
 用途:特定のAWSのサービス(S3、RDSなど)のデフォルトの暗号化
  例:S3バケットのデフォルト暗号化に使用される鍵

3 . カスタマーデータキー(CDK)
 CMKを使用して生成される一時的な鍵
 用途:大量のデータや大きなファイルの暗号化



ちょっと一息

メトリクス
AWSリソースのパフォーマンスや稼働状況を監視するために収集される数値データを指す
メトリクスの対象としては、CPU使用率やメモリ使用量など。CloudWatchなどで使用される

高可用性
サーバーに障害が発生しても業務を継続的に稼働できる能力が高いこと

Amazon RDSの自動バックアップについて



AWS CloudWatch

AWSリソースに対してメトリクスを収集し、そのメトリクスから取得したデータが閾値を超えた場合にアラートを出す。AWS SNSと統合されており、アラートを発報したタイミングでLambdaなどを実行することができる。

CloudWatch Metrics
メトリクスに応じたアクションの実行
→CloudWatch Alarmsを利用してLambdaやAmazon SNSなどのリソースを実行させることができる

CloudWatch Logs
ログの可視化
→各サーバーのログを一つに集約することでログの確認が容易となる

コラム

~EC2内のapacheログをCloud Watchで監視する方法

・監視対象のEC2にログイン

・コマンドを実行(sudo yum install awslogs)
 EC2インスタンス上のログをCloudWatchに送信するためのパッケージ

・ルートユーザーで/etc/awslogsディレクトリに移動して、以下のファイルを編集する
awscli.conf → ap-northeast-1
awslogs.conf → 最終行に以下を追加し、保存する

[HttpAccessLog]
file = /var/log/httpd/access_log
log_group_name = HttpAccessLog
log_stream_name = {instance_id}
datetime_format = %b %d %H:%M:%S

[HttpErrorLog]
file = /var/log/httpd/error_log
log_group_name = HttpErrorLog
log_stream_name = {instance_id}
datetime_format = %b %d %H:%M:%S

・awslogsデーモンをEC2が再起動した際に、自動的にawslogsデーモンをが立ち上がる
 sudo systemctl enable awslogsd

・awslogsデーモンのステータスを確認
 sudo systemctl status awslogsd

・awslogsデーモンの起動
 sudo systemctl start awslogsd

・EC2インスタンスからCloudWatchにログを送るためにポリシーを追加する

・ロールの作成→ポリシーを設定(CloudWatchAgentServerPolicy)

・EC2インスタンスにロールを設定 →【アクション→セキュリティ→IAMロールの変更】

・awslogsdデーモンを再起動
 sudo systemctl restart awslogsd

これでapacheのログをCloudWatchから監視できるようになる

※AWS Budgetsはコスト管理を行い、AWS CloudWatchはリソースのパフォーマンスを監視するツールである

EC2などのCPUに対して、負荷をかけるコマンド

$ top 
$ yes > /dev/null &
$ kill [processid]


AWS CloudTrail

ユーザーがAWSリソースに対して行ったAPI操作(だれが、いつ、どこで、どのように)をログに記録する監査サービス。(ログはjson形式)またログはリージョンごともしくは全リージョンに一括して取得する設定ができる。

※デフォルトでは、CloudTrail内では過去90日以内のログデータが確保される
 長期に保存したい場合は、S3に保管

AWS Trusted Advisor

AWS環境を自動監視、最適化するための推奨ベストプラクティスを提供
5つの柱をもつ(コスト最適化、セキュリティ、パフォーマンス、耐障害性、サービスの制限)

AWS Budgets

コスト管理を行い、予算を上回るコストが予想された場合、アラートを発生させる。

AWS Report

定期的にAWS Budgetsで設定した予算のパフォーマンスをモニタリングし、それをレポートとしてまとめ配信するサービス。一回の配信で0.01$かかる。

AWS Cost Explorer

AWSリソースが費やした使用料を分析することができる

AWS Config

AWSリソース構成の変更を継続的に評価・モニタリング・記録して、変更管理を簡素化する
例)リソースに対する設定・変更・削除などが実施された場合に、その操作履歴を保存しておく
保存先はS3 / SNSでユーザーへ通知可能

EC2のパッケージ脆弱性を評価したい場合は、EC2にAmazon Inspectorエージェントをインストールして情報を収集する

AWS Cloud Adoption Framework(AWS CAF)

AWSへのクラウド導入フレームワーク

クラウド導入時、それぞれどういう視点で見る必要があるのかというのが記載されています。
以下の6つになります。

  • ビジネス
    • IT戦略やビジネスリスクについて求められる
  • 人員
    • スタッフのリソース管理や組織変更管理について求められる
  • ガバナンス
    • プログラム・プロジェクト管理やライセンスについて求められる
  • プラットフォーム
    • アーキテクチャや開発について求められる
  • セキュリティ
    • インシデントへの対応やインフラのセキュリティについて求められる
  • オペレーション
    • モニタリングやレポートと分析について求められる



AWS Snow ファミリー メンバー

データをAWSの内外に物理的(ネットワークを経由せず)に転送する

AWS SageMaker

機械学習に必要なモデルの構築
トレーニング、デプロイを迅速に行うことができる

AWS CodeWhisperer

コードの記述中にコードのレコメンデーションを受け、コード内のセキュリティ問題を特定する

AWS Trascribe

音声のテキストを変換する

AWS Fraud Detector

不正の可能性があるオンラインアクティビティを特定する

AWS Lex

音声とテキストによるチャットボックスを作成する

AWS Textract

電子化したドキュメントからテキストデータを自動抽出する機械学習サービス

AWS Well-Architected フレームワーク

運用上の優位性、セキュリティ、信頼性、パフォーマンス効率、コスト最適化、持続可能性
※ベストプラクティスを提示するツール → AWS Well-Architected Tool

Nat GateWay

Public Subnetに配置されたNat GateWayを利用して、Private Subnetからインターネットへの通信(アウトバウンドトラフィック)を可能にする。その際のインターネットからPrivate Subnetへの通信は防ぐ(インバウンドトラフィック)

ちょっと一息

フェイルオーバー
稼働中DBが停止した場合、稼働中DBとデータを同期していた待機DBに自動的に切り替えること

ARN(Amazon Resource Name)
AWSリソースを一意に識別するための名前です。
例えばS3の特定のバケットにポリシーを付与する場合はそのバケットのARNを指定します。

TeraTermからEC2へのファイル送信はTeraTermの
オプション機能を使えば、簡単にできる(受信も可能)

高可用性
システムなどにおいて、サービス提供ができなくなる事態の発生頻度が少ないことを指す

ITIL(Information Technology Infrastracture Library)
ITサービスマネジメントにおけるベストプラクティス(成功事例)をまとめたドキュメント

ITSM(IT Service Management)
顧客のニーズに合致した適切なITサービスを提供するマネジメント活動全般のこと

セキュリティグループはステートレス

nslookup コマンドを使用するとIPアドレスからドメイン名を取得することができる(逆も可能)

ACL(Access Control List)
特定のIPアドレス、プロトコル、ポート番号などに基づいてトラフィックを許可または拒否します。ルーター、スイッチ、ファイアウォール、ファイルシステムなど、様々なネットワークデバイスやシステムで使用される。

ASN(Autonomous System Number)
大規模なネットワークを管理している事業者などに対して割り当てられる一意の識別子
KDDI→2516 , docomo→9605 , SoftBank→18069など

BGP(Border Gateway Protocol)
大規模なネットワークを管理しているAS同士で通信する際に使用するプロトコル

ELBのSSL Termination
ELB(Elastic Load Balancer)がクライアントとの間でSSL/TLS通信を終端し、
バックエンドのEC2インスタンスとは暗号化されていない通信を行う機能
(特徴)
・クライアントからのHTTPSリクエストをELBで受け取り、SSL/TLS通信を終端する
・ELBがSSL証明書の確認と暗号化/復号化処理を行う
・EC2インスタンス側でSSL/TLS処理を行う必要がなくなるため、インスタンスの負荷を軽減できる。
・ELBからバックエンドのEC2インスタンスへは通常HTTP(80ポート)で通信します(必要に応じて、ELBとEC2間の通信も暗号化可能)
・SSL証明書の管理がELB側で一元化されるため、複数のEC2インスタンスそれぞれに証明書を設定する手間が省けます
・AWS Certificate Manager(ACM)と統合して、無料のSSL/TLS証明書を利用できます



ELB

ネットワークトラフィックを分散させる / Connection Drainig機能が便利

ターゲットグループ
ELBからトラフィックを受け取る対象となるリソース(EC2,コンテナ,IPアドレスなど)の集合

リスナー
クライアントからELBへの接続用のプロトコルとポート番号を設定する
リスナーで受けたリクエストに対して、ターゲットグループへのルーティングが指定される

動作の流れ
クライアント → リスナー(ELB) → ターゲットグループ → 個々のターゲット(EC2など)

SSL Termination
ELBにACMで発行した証明書をアタッチすることで、ELBでSSL/TLS通信を終端させる
これにより、ELBが通信の暗号化の管理を行い、EC2などのバックエンドサーバーの負荷が軽減する
※ELBにACMで作成した証明書をアタッチするには、ELBに対応するドメイン名を登録しておく必要がある

使用料金に関してはこちら


【ELBの設定手順】
ここでELBの設定手順で個人的にわかりにくかった部分を紹介しています。

1. ターゲットグループの作成
下記の意味は、ELBから対象のリソース(EC2など)への通信方法を定義している

また、ターゲットグループの作成で対象のリソースへのヘルスチェックの設定も行える

今回のヘルスチェックのリクエストは、ELBから指定されたEC2インスタンスに対して、HTTP GETリクエストを「/」パスに送信するよう設定しています。パスは変更可能です。

下記の設定でApacheのドキュメントルート(ここでは/var/www/html/index.html)にあるファイルをヘルスチェックの対象ファイルとして設定していることになります。
※Apacheを起動させていないとヘルスチェックがUnhealthyとなる。

他のもろもろの設定を行い、ターゲットグループを作成すると以下のようになる。
作成直後は、まだELBと紐づいていないので、「未使用」状態となっている。


2.ELBのセキュリティグループを作成
インバウンドルールを外部トラフィックから許可するよう設定

※今回は証明書を発行しないという前提のため、HTTPS(ポート:443)は設定していない

3.ELBの作成(ALB)
リスナーとルーティングの設定

※ここでHTTPSプロトコルをリスナーで設定すると、ACMの設定が必要となる(今回は設定なし)

4.セキュリティグループの編集(EC2)
ELB対象リソースのセキュリティグループをELBからの通信のみ許可する設定に変更する
そのため今回はEC2のインバウンドルールを変更

EC2インスタンスのApacheを起動させると、ヘルスチェックがHealthyとなり、かつELBのDNS名からアクセスするとApacheの画面が表示されます。

Lambda

イベント駆動型アーキテクチャ/同期処理と非同期処理
サーバーのプロビジョニングなし(OSのパッチ適用、自動スケールアップ)

料金ベース → 実行回数 + 実行時間
確保するメモリの量を設定
タイムアウト値→最大900秒(15分)

IAM Roleからポリシーをアタッチさせる必要がある

サーバーレス設計(参考)
https://aws.amazon.com/jp/serverless/patterns/serverless-pattern/

Amazon API GateWay

サーバーをプロビジョニング・管理することなく、APIを作成・管理できるマネージドサービス
可用性の担保、スケーリング、APIキー管理といったAPI開発で必要なことを実装可能

リソースでAPIの構造を作成し、ステージでそのAPIをデプロイする(HTTPリクエスト用のURL発行)
Rest API と WebSocketに対応/リクエストベースの料金体系

API GateWayのデプロイタイプ(配置場所)としては、エッジ、リージョン、プライベート(VPC内)
API GateWayのキャッシュ機能(キャッシュヒット)
API GAteWayのスロットリング4種

【リクエスト/レスポンス構造】
Method Request(GET,POST,DELETE,PUTなど)

Integration Request(HTTP,LAMBDA,MOCK)

Endpoint(バックエンド側の処理部分)

Integration Response

Method Response(STATUS CODE,RESPONSE BODY)

公式チュートリアル
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/services-apigateway-tutorial.html


AWS Certificate Manager(ACM)

AWSクラウド上でSSL/TLS証明書の発行や自動更新ができるマネージドサービス
リージョンはバージニア北部にすること

(特徴)
・無料で証明書が発行できる
・有効期限が過ぎた証明書を自動更新してくれる
・複数の証明書を一元管理できる
・他のAWSサービスとの統合が簡単にできる


AWS Cloud9

ブラウザからコードを記述、実行、デバックが可能/クラウドベースのIDE
料金はEC2インスタンス + EBS分の料金
※2024年7月29日より、新規作成したAWSアカウントや、これまでCloud9を利用していなかったAWSアカウントで、Cloud9コンソールにアクセスできなくなっている模様

Amazon EC2 Auto Scaling

EC2インスタンスを自動的に追加または削除することでアプリケーションの可用性維持、コスト最適化に役立つ。※起動テンプレートを用いて、スケーリングを実施する

①スケージュールに基づくスケジューリング
②需要の変化に動的に応する動的スケーリングを用いて柔軟なスケーリングを実現
①②については予測ができるか、できないかでどちらを実現させるか策定する。もしくは組み合わせて行うことにより、柔軟に対応できる
※動的スケーリングについては、スケーリングポリシー(ターゲット追跡スケーリングなど)を設定することターゲット追跡スケーリングを作成するとCloudWatchにアラームが追加される

EC2のCPU使用率を故意にあげるコマンド(テストのため):stress -c 1
その他に、異常なEC2インスタンスを置き換える

(簡単な手順)
1.起動テンプレートを作成
2.Auto Scalingグループを作成



AWS System Manager

安全かつスケーラブルにAWS環境を運用するためのコックピット
公式ドキュメント

1.グループ化→アプリケーションのリソース群をグループ化
2.可視化→アプリケーション運用上の洞察を可視化/多数のAWSリソースを一つのコンソールで
3.対応→安全性の高いAWSのベストプラクティスで対応
※AWSとオンプレミス両方をサポート

System Managerを使ってサーバ管理を行う設定
(前提)サーバを”マネージドインスタンス”にする
(※System Managerで管理されているサーバをマネージドインスタンスと呼びます)

1.(対象のサーバに)SSM Agentの導入
(SSM AgentがSystem Managerと連携することでマネージドインスタンスとなる)
→Amazon Linux , macOS , SUSE Linux , Ubuntu Server , Windows Server のオフィシャルイメージにはプリインストール済みである。

2.SSM Agentからのアウトバウンド経路を用意(Internet GateWayもしくはVPCエンドポイント)し、System Managerとの経路を確保する

3.IAMロールの付与
→AmazonSSMManagedInstanceCoreポリシーを持ったIAMロールをEC2にアタッチする
上記の内容でEC2(マネージドインスタンス)を作成する

Systems ManagerのFleet Managerからマネージドインスタンスを確認する

Sysem Manager環境のセットアップ
IAMロールの作成→マネージドインスタンスの作成

SSM Agentを最新状態に維持する必要がある
→SSM Agentのバージョンが古いとSystems Managerの最新機能が使えない
→自動更新を行う(Fleet Managerの設定から自動更新を設定可能)

インベントリデータ管理の課題
→AWSのコンピューティング環境におけるリソース(EC2など)のメタデータ(OSやインストールされているアプリケーションのバージョン)を収集し、管理する。

Inventry
・OS上のアプリケーション一覧など構成情報を記録、可視化
・最短30分ごとに定期的なデータ収集

State Manager
・定義された状態を保つためのプロセスを自動化
・状態維持を目的とした定期処理を行うためのフレームワーク

Session Manager
・サーバログイン情報(ID/PW)が不要で、IAM認証で制御
・インバウンドポートを解放せずに、サーバへのシェルアクセスが可能
・プライベートサブネットへのインスタンスにもセキュアにアクセス可能
・サーバでの操作ログはS3またはCloudWatch Logsで保存可能(対象のロールにCloudWatch等へのアクセスポリシーを設定する必要あり)

Run Command
・全サーバに対して共通のコマンドを一括で実行できる
・実行した結果はマネジメントコンソールもしくはS3バケットにて確認ができる
→48,000文字以内であればマネジメントコンソールで確認できるが、それ以上となればS3での出力設定が推奨される

パラメーターストア
設定データや機密情報を安全に保存・管理するためのサービス
パスワード、データベース接続文字列、APIキーなどを集中管理できる
IAMと統合されており、アクセス制御が可能 / KMSと連携して値を暗号化できる

利用の流れ
1. Parameter Storeにデータベース接続情報などを保存
2. アプリケーションコードからParameter Storeの値を参照
3. 接続情報を動的に取得し、データベースに接続

※マネージドノートとは、Systems Managerと連携するように設定された任意のマシンを指す

Route53

AWSが提供するスケーラブルで高可用性のドメインネームシステムサービスです。
デフォルトでは4台のNSサーバーが作成されている。

アクティブ/パッシブ(フェイルオーバー)

ヘルスチェックとフェイルオーバー機能
ウェブサーバーや他のリソースの正常性を監視し、問題が発生した場合にはトラフィックを代替のリソースにリダイレクトすることができます。アプリケーションの可用性を高めることができます

指定したドメイン名のネームサーバーのリストが簡潔に表示される
【Linux】
dig ドメイン名 NS +short
dig ドメイン名 SOA +short

【Windows】
nslookup
set type=NS
ドメイン名

※静的ページの際にS3を使用する場合、バケットの名前をドメイン名と同じにする必要がある

VPCエンドポイント

インターネットを経由せずに、VPC内のリソースとAWSサービス(S3,Route53,CloudWatchなど)間でプライベートに接続するための仕組みです。これにより、セキュリティを強化しつつ、インターネットゲートウェイやNATデバイスを使用せずに通信が可能となる。またプライベートな接続のため、低レイテンシーな通信となる。

インターフェース型(Private Link):実態はENI(セキュリティグループを設定する)
→プライベートネットワークを利用する

ゲートウェイ型:ルートテーブルに自動設定される。対象はS3,DynamoDBのみ
関連:https://docs.aws.amazon.com/ja_jp/vpc/latest/privatelink/gateway-endpoints.html


AWS PrivateLink

AWSのサービス、他のAWSアカウントのVPC内のサービス、およびサポートされているAWSマーケットプレイスパートナーサービスに対して、VPCエンドポイントを使用してセキュアでプライベートな接続を提供するAWSのサービスです。これにより、インターネットを経由せずにAWSのプライベートネットワーク内で通信が完結し、高いセキュリティと低レイテンシーを実現します

VPC Flow logs

VPCを流れるネットワークトラフィックのログ(単位:VPC,サブネット,ENI)を取得するサービス
ログの保存先は、S3もしくはCloudWatch
※S3でのログを確認する場合は、AWS Athenaを使用する

CloudWatch Logsへのフローログの発行 について
VPC Flow logsがCloudWatchに対してログを送信するなどの権限(IAMロール)を作成する必要がある/信頼ポリシーも確認する

AWS Network Firewall

ステートフルなマネージド型のネットワークファイアウォールおよび侵入防止/検出サービスで
VPCの境界でトラフィックをフィルタリングできる

Amazon EventBridge

イベント駆動型のサーバーレスサービスです。アプリケーションコンポーネント間でイベントをルーティングする「橋渡し」の役割を果たします。

イベントのフィルタリング、変換、配信を行い、また、スケジューリング機能も提供し、定期的なタスク実行が可能です。LambdaやSNSなどと連携して、システム間の自動化を行える。

※イベントとは、システムやアプリケーションで発生した状態の変化や出来事を指す。
例)EC2インスタンスが停止から起動に変わったとき/S3バケットにファイルがアップロードされたとき/アプリケーションで新規ユーザーが登録されたとき

Client VPN Endpoint

クライアントからVPCに対して、セキュアな通信を可能にする。EndpointとVPC内のサブネット内にあるENIと関連付ける。クライアント側にVPN用のソフトウェアが必要である(適切なものを選択)

Site-to-Site VPN(サイト間VPN)

オンプレミスのルーターとVPCのVGW(Virtual Private GateWay)の経路を作成し、VPN接続を可能にする。インターネットを経由しないセキュアな通信を可能にする

AWS Transit Gateway(TGW)

複数VPCとオンプレミスネットワークを中央ハブで接続する。Transit Gatewayは、拡張性の高いクラウドルーターとして機能し、新しい接続は一回だけ行われる

AWS DataSync

オンプレミスからAWSサービス(S3/EFS/FSx)へ、もしくはAWSサービス(S3/EFS/FSx)からオンプレミスへデータ転送を行えるマネージド型のデータ転送サービス

データ転送には、SSL/TLSを使用して暗号化されています

AWS Global Accelerator

AWSのグローバルネットワークを使用した高速通信によって、アプリケーションの可用性とパフォーマンスを向上させるネットーワーキングサービス

ちょっと一息

WebSocket
・クライアントとサーバー間でリアルタイムの双方向通信を可能にするネットワーク通信技術
・双方向通信が可能(※HTTPはクライアントからサーバーへの一方向通信)
・一度接続を確立すると、長期間維持される(高いリアルタイム性をもつ)

・署名付きURL
一時的なファイル共有、セキュアなファイルアップロード/ダウンロード、限定公開コンテンツの配信などに広く利用されています。
ただし、URLが第三者に漏洩するリスクがあるため、適切な有効期限設定と使用管理が重要です。
※S3などで設定可能
※署名付き URL で使用される認証情報は、URL を生成した AWS ユーザー
参考はこちら

エクスポネンシャル・バックオフ(Exponential Backoff)
通信先サーバーに過度の負担をかけないようにするためのリトライ手法
クライアントが通信に失敗した際に要求間の遅延を増やしながら定期的に再試行するアプローチ

ChefとPuppet
どちらもサーバーやインフラストラクチャの構成管理を自動化するためのツール
インフラストラクチャをコードとして管理する(Infrastructure as Code)
※CloudFormationはAWS専用のIaCツール

アクセスキー
AWSのサービスやリソースにプログラム的にアクセスするための長期的な認証情報
アクセスキーIDとシークレットアクセスキーの二つで構成されている

リバースプロキシ
クライアントとWebサーバーの間に配置され、クライアントからリクエストを受け取り、それをWebサーバーに転送する中継サーバーのようなもの。メリットとして、負荷分散、セキュリティ強化、パフォーマンス向上、高可用性などがあげられる


AWS SAM

ローカルでLambda関数の作成・実行をテストできる。
IaC(Infrastracture as Code)でのサーバレス環境を構築できる

AWS Application Composer

サーバーレスアプリケーションを視覚的に設計し、SAMテンプレートを作成できる
※VSCodeでも操作可能(拡張機能をインストール)
※初期段階で構成図(設計)をすり合わせることができるため、齟齬や認識を合わせることができる

Step Function

AWSサービスをサーバーレスでワークフローとして管理することができ、アプリの構築と更新を迅速に行うことができる

AWS SES(Simple Email Service)

Emailの送信に限定されるクラウドベースのメール送信サービス

Amazon QuickSight

クラウドベースのビジネスインテリジェンス(BI)サービス
BI ツールでは、ビッグデータや各種データソースから洞察を抽出し、分析した結果を視覚的で簡易的な形式で表示することが可能
※様々なデータソースへとアクセスして、データを抽出・加工して表示する

Amazon DynamoDB

サーバーレスのフルマネージド NoSQL データベースで、あらゆる規模で 1 桁ミリ秒のパフォーマンスを実現 / キーとバリューでデータ管理を行う

Amazon DynamoDB Accelerator(DAX)

DynamoDBの処理速度を大幅に速くすることを目的としてフルマネージドサービス
インメモリキャッシュを用いることでメモリ内にデータをキャッシュし、高速にデータが取得できる

Amazon CloudHSM

暗号鍵を安全に保管・管理するために使用されるサービスです

RDS

わずか数回のクリックでクラウド内にリレーショナルデータベースをセットアップ、運用、スケールすることができる。

特徴
  • マルチAZ配置(高可用性と耐障害性)
    1. プライマリDBインスタンスと同期レプリケーションされたスタンバイインスタンスを別のアベイラビリティーゾーンに配置します。

    2. 障害発生時に自動的にスタンバイにフェイルオーバーします。

    3. 同期レプリケーションにより、データ損失のリスクを最小限に抑えます。

  • パフォーマンスとスケーラビリティ
    1. リードレプリカを使用して読み取りパフォーマンスを向上させることができます。

    2. ストレージとコンピューティングリソースを簡単にスケールアップ/ダウンできます。


個人的に盲点だったので、DBサブネットグループについても提示しておきます。

盲点
  1. DBサブネットグループの必要性:
    RDSインスタンスを作成する際には、DBサブネットグループが必要
  2. 異なるアベイラビリティゾーン(AZ)のサブネット:
    DBサブネットグループには、少なくとも2つの異なるAZにサブネットが含まれている必要がある
  3. RDSの配置:
    DBサブネットグループ内の全てのAZにRDSインスタンスを配置する必要はありません。シングルAZ構成でRDSを作成することも可能
  4. マルチAZ配置の準備:
    複数のAZにサブネットを含めることは、将来的なマルチAZ展開への移行を容易にするための準備
  5. 柔軟性:
    この構成により、シングルAZからマルチAZへの将来的な移行が容易になります

DBインスタンスのメンテナンス(ハードウェア・OS・DBエンジンなど)実行に関してはこちら

AWS Kinesis

リアルタイムでストリーミングデータを収集、処理、分析するためのAWSのマネージドサービス
データストリームとは、連続的に生成される大量のデータのことを指す

具体的には以下のようなデータ

  1. アプリケーションログ:
    • Webサーバーのアクセスログ
    • アプリケーションのエラーログ
    • ユーザーアクティビティログ
  2. IoTセンサーデータ:
    • 温度、湿度、圧力などの環境データ
    • 機械の稼働状況データ
    • 位置情報データ
  3. ソーシャルメディアフィード:
    • ツイート
    • ソーシャルメディアの投稿やコメント
  4. 金融取引データ:
    • 株価のリアルタイム更新
    • 取引情報
  5. クリックストリームデータ:
    • Webサイトやアプリケーション上のユーザーの行動データ
  6. 動画・音声ストリーム:
    • ライブ配信の動画データ
    • 音声認識システムからの入力
  7. ネットワークトラフィックデータ:
    • ネットワーク機器からのパケット情報
    • セキュリティイベント

これらのデータは、常に生成され続け、リアルタイムでの処理や分析が求められるものです。Kinesisは、このような大量のストリーミングデータを効率的に取り込み、処理し、必要に応じて他のAWSサービスと連携して分析や保存を行うことができる

Amazon EC2 Dedicated Host 

前提

EC2インスタンスの仕組み

ユーザーがAWS Management ConsoleからEC2インスタンスを起動すると、バックエンドでは物理サーバー上で仮想マシン(EC2インスタンス)が起動します。

一つの物理サーバー上で、複数のAWSアカウントに属する複数のEC2インスタンスが同時に稼働していることがあります。これは「マルチテナント」環境と呼ばれ、AWSがリソースを効率的に利用するための仕組み

Dedicated Hostsを使用すると、ユーザーは物理サーバー全体を専有することができる

この物理サーバー上では、そのユーザー(またはそのユーザーが許可した他のAWSアカウント)のEC2インスタンスのみが稼働する

他のAWSアカウントのインスタンスがその物理サーバー上で稼働することはない

Dedicated Hostsの利点
・ライセンスコンプライアンス: 特定のソフトウェアライセンスでは、専用の物理ハードウェアが必要な場合があります。

・パフォーマンスの一貫性: 他のユーザーの影響を受けずに、一定のパフォーマンスを維持できます。

・セキュリティとコンプライアンス: 物理的な分離が必要な規制要件を満たすことができます。

・インスタンスの配置制御: 特定の物理サーバー上に特定のインスタンスを配置する制御が可能です。

AWS Cognito

APIベースで実装されるモバイルアプリやWebアプリにユーザー認証機能を提供するサービス

ユーザープール
ユーザー情報を集中管理するためにクラウド上の論理的なデータベースであるユーザーディレクトリを所有している。認証機能 / アプリへのアクセスに利用できるトークンを提供

IDプール
認可機能 / AWSにアクセスできるクレデンシャルを提供

一般的には、ユーザープールとIDプールを組み合わせて使用することが多いい



OAuth 2.0は、主に「認可」のためのフレームワーク
OpenID Connectは、OAuth 2.0の上に構築された「認証」のためのレイヤー

AWS Glue

分析用のデータを準備するサーバーレスのデータ統合サービス
ETL(データ抽出=Extract・変換=Transform・ロード=Load)ジョブの作成と実行が主な機能

GlueでETL処理を行ってデータを準備し、そのデータをRedshiftに送って分析するといった流れで使用される

AWS IoT Core

インターネットに接続されたデバイスから、クラウドアプリケーションやその他のデバイスに簡単かつ安全に通信するためのマネージド型クラウドサービス

詳しくはこちら

AWS SMS(Server Migration Service)

オンプレミスのデータセンターで稼働している仮想マシンをAWS上に移行するためのサービス

仮想マシンの移行に特化
VMware、Hyper-V、Azure上の仮想サーバーをAmazon Machine Image (AMI)としてAWSに移行できる

既存環境への影響が少ない
既存の仮想サーバーを稼働したまま移行することができる。また、初回の移行(完全レプリケーション)後は、変更された部分のみ転送できる増分レプリケーションが行われる

コスト効率
SMSサービス自体は無料で、S3ストレージとEBSスナップショットの使用料のみがかかる

移行の流れ
1. AWS SMSは移行プロセス中に、ソース環境のサーバーボリュームを一時的にS3バケットにレプリケーションする

2. このバケットは暗号化され、7日後に自動的にコンテンツが削除されるバケットポリシーが設定される

3. S3バケットは一時的なストレージとして機能し、VMDKまたはAVHDファイルを保存する

4. S3にアップロードされたVMDKまたはAVHDファイルからEBSスナップショットを作成

5. このスナップショットから最終的にAmazon Machine Image(AMI)が作成される


AWS Storage Gateway

オンプレミス環境とAWSクラウドストレージを接続するハイブリッドクラウドストレージサービス

オンプレミスアプリケーションに実質無制限のクラウドストレージへのアクセスを提供
標準的なストレージプロトコル(NFS, SMB, iSCSI等)をサポート

3種類のゲートウェイタイプを提供
・ファイルゲートウェイ: NFS/SMBでAmazon S3にアクセス
・ボリュームゲートウェイ: iSCSIでクラウドベースのブロックストレージを提供
・テープゲートウェイ: 仮想テープライブラリをAmazon S3/Glacierに保存
・Amazon FSx ファイルゲートウェイ:SMB を使用して、Amazon FSx for Windows File Server のフルマネージド型ファイル共有にアクセス

主な用途としては、クラウドへのバックアップ、オンプレミスストレージの置き換え、クラウド上のデータへの分散アクセスなどがあります。オンプレミス環境とクラウドをシームレスに統合し、ハイブリッドクラウド環境を実現するための重要なサービス

AWS Lightsail

AWSが提供するVPS(Virtual Private Server:仮想プライベートサーバー)サービス

EC2とは異なる点として、コンピューティング環境だけでなく、ストレージ、スナップショット、ロードバランサー機能、ファイアウォール、DNS機能など、いくつもの機能が一つのパッケージとして提供される

AWS Lightsailはインスタンスが停止中であっても、課金の対象となる

小規模なWebサイトの構築、テスト環境などに利用するのが一般的であり、大規模なシステム用のサーバーとしては不向きである

VPC ピアリング接続

詳しくはこちら

ちょっと一息

ファームウェア
電子機器に組み込まれたハードウェアを制御するためのソフトウェア
AWS は、クラウドインフラストラクチャを構成するハードウェアとそれに関連するファームウェアの管理を担当します。これには、EC2をホストする物理サーバーのファームウェアも含まれます(AWS側の責任モデル)

フォールトトレラント
その構成部品の一部が故障しても、正常に処理を続行するシステム


AWS Neptune

高速で信頼性に優れたフルマネージド型のグラフデータベースサービスで、高度に接続されたデータセットを使用するアプリケーションの構築と実行を容易にする

AWS Athena

S3上にアップロードされたデータ(csvファイルなど)に対して、クエリを利用してデータ分析を行うことができるフルマネージド型のサービス

S3にアップロードされたデータを参照するには、Athenaでテーブルを作成する必要がある

(使用の流れ)
1. csvファイルをS3にアップロード
2. Athenaでテーブル作成(csv)の構造に合わせて
3. SQLクエリを実行してデータを分析

AWS EMR (Amazon Elastic MapReduce)

マネージド型のビッグデータ処理プラットフォーム
Apache HadoopやApache Sparkなどのオープンソースツールを簡単に利用できる
※Hadoopは、大規模データを効率的に保存・処理するためのオープンソースフレームワーク

AWS Personal Health Dashboard

AWSが利用者に影響を与える可能性のある事象が発生した場合に、アラートと対処のガイダンスを提供する

AWS CodeCommit

フルマネージド型のソース管理サービス / プライベートなGitリポジトリをAWSクラウド上でホストできる / スケーラブルでセキュア、既存のGitツールともシームレスに連携できる / 月々のアクティブユーザー数、APIリクエスト数、利用容量による課金体系

※2024年7月25日に新規利用が終了した模様

AWS CodeBuild

ソースコードをコンパイル、テスト実行し、デプロイ可能なソフトウェアパッケージを作成できるフルマネージド型のビルドサービス
ビルド用のサーバーをプロビジョニング・管理する必要がない
利用した分のお支払い

ビルドプロセスを細かく設定する方法としては、buildspec.yml(CodeBuildが認識するファイル)に記述する

CodeBuildの記事を作成しました。気になる方はこちら


AWS CodeDeploy

様々なコンピューティングリソース(EC2, Lambda, オンプレ環境など)に対してデプロイを行う
Auto Scalingする構成に対しても、連動して自動でデプロイする

AWS上のリソースを対象としたデプロイの場合、料金がかからない
オンプレミスへのデプロイの場合は、一回につきUSD 0.02かかる

デプロイの詳細な設定はappspec.ymlに記述する

※オンプレミスとEC2にデプロイメントする際にはCodeDeploy Agentのインストールが必要

CodeDeployの記事を作成しました。気になる方はこちら



AWS CodePipeline

フルマネージド型の継続的デリバリーサービス
ソースコードの変更をトリガに、ビルド、デプロイといった一連の流れを自動的に実行する / アクティブなパイプライン数で料金が決まる

CodePipelineのトリガ

  1. デフォルトの動作:
    • コードがリポジトリにプッシュされると、CodePipelineが自動的に開始されます。
  2. トリガーの種類:
    • 「プッシュ」トリガー: リポジトリへのコードプッシュで開始されます。
    • 「プルリクエスト」トリガー: プルリクエストの作成、更新、クローズ時に開始できます。
  3. フィルタリング:
    • 特定のブランチへのプッシュ
    • 特定のファイルパスの変更
    • 特定のGitタグの作成
  4. 設定の柔軟性:
    • トリガーをカスタマイズして、特定の条件下でのみパイプラインを実行することができます。
  5. 手動実行:
    • 必要に応じて、パイプラインを手動で開始することも可能です。
  6. その他のトリガー:
    • スケジュールベースの実行
    • AWS CLIやSDKを使用したプログラム的な開始



AWS Backup

AWSサービス全体のデータのバックアップを簡単に一元化、自動化できるフルマネージドバックアップサービス

Amazon Macie

Amazon MacieはS3オブジェクトに保存された機密情報を自動的に発見・分類・保護するサービス
機械学習(LM)とパターンマッチングを利用して、お客様の機密データを検出して、保護するデータセキュリティおよびデータプライバシーサービス

Amazon Detective

AWS リソースからログデータを自動的に収集し、機械学習 (ML)、統計的分析、グラフ理論を使用して、データセットを構築します。これを使用して、より効率的なセキュリティ調査を行えます

AWS IAM Access Analyzer

AWSリソースに対する不要なアクセス許可を識別し、アクセス許可のリスクを評価するサービス

参考はこちら

Amazon Personalize

データを使用してユーザーにアイテムのレコメンデーションを提供する、フルマネージド型の機械学習サービス

Amazon Polly

深層学習技術を使用して、テキストなどに書かれた文字を人間の声のような音声へと変換させる
音声を直接ダウンロードできたり、S3に保存して使用することも可能

Amazon Comprehend

機械学習を利用した自然言語処理サービスです。指定したテキストを分析し、キーフレーズの検出や感情の判定などを行うことができる



Amazon Rekognition

深層学習に基づいた画像認識および画像分析をアプリケーションに簡単に追加できるサービス

Amazon FSx

ファイルシステムに特化したフルマネージド型のファイルストレージサービス

現在は4つのファイルシステムのタイプがありますが、今回はAmazon FSx for Windows File Serverについて

FSx for Windows File Server

  1. 専用ファイルサーバー:ファイル共有に特化したマネージドサービス
  2. 管理責任:AWSが基本的な管理タスクを自動化
  3. 高性能:最大12 GB/秒のスループットと400,000 IOPSを提供
  4. 自動スケーリング:需要に応じて自動的にスケーリング
  5. 高可用性:複数のアベイラビリティーゾーンにまたがる構成が標準
  6. Active Directoryと統合しやすい


AWS IoT Device Defender

Iotデバイスのセキュリティを監視し、管理するサービス

AWS STS(Security Token Service)

AWS リソースへのアクセス権限付きの一時的なセキュリティ認証情報を作成し、信頼されたユーザーに提供することができる

IAMのアクセスキーとの違いは「有効期限」を設定して一時的な許可が可能な点と、リクエストに応じてその都度動的に作成されるため、ユーザーに紐づいて保存されない点となります

参考はこちら

Saving Plans

一定のご利用量 ($/時間) を 1 年または 3 年分ご契約いただくことで、AWS のご利用料金を低く抑えることができる柔軟性のある料金モデル

詳しくはこちら

AWS では、Compute Savings Plans と EC2 Instance Savings Plans の 2 種類の Savings Plansがある

コンピューティング
Compute Savings Plans は、コストを最大で 66% 削減する、最も柔軟性が高いプランです。Compute Savings Plans はインスタンスファミリー、サイズ、AZ、リージョン、OS、テナンシーに関係なく、EC2 インスタンス、AWS Fargate および AWS Lambda のご利用に自動的に適用される

EC2 インスタンス
EC2 Instance Savings Plans は最も料金が低く、リージョンの個々のインスタンスファミリーの使用に対するコミットメント (バージニア北部での M5 使用量など) と引き換えに最大で 72% 節約できます。これにより、AZ、サイズ、OS、テナンシーに関係なく、そのリージョンで選択したインスタンスファミリーのコストが自動的に削減されます。EC2 Instance Savings Plans では、そのリージョンのファミリー内のインスタンス間で使用量を柔軟に変更できる


AWS Compute Optimizer

機械学習を活用してAWSのコンピューティングリソースを最適化するサービス

主な機能
EC2インスタンス、Auto Scalingグループ、EBSボリューム、Lambda関数などのリソースを分析する

過去の使用状況メトリクスを機械学習で分析し、コスト削減とパフォーマンス向上のための推奨事項を生成する

過剰プロビジョニングやプロビジョニング不足のリソースを特定し、最適なインスタンスサイズやタイプを提案する


Amazon Elastic Transcoder

動画や音声ファイルを様々なデバイス(スマートフォン、タブレット、PC等)で再生可能な形式に変換(トランスコード)するサービス

コメント

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