今回の記事ではクラウドサービスプラットフォームとして知られるAWS(Amazon Web Services)で使用されている各種リソースについてまとめた備忘録としての内容になります。
こちら随時キャッチアップした内容を追記していきます。また、内容に一部誤りがある場合や、必須の事項についてあれば、お手数ですが、ページ下部のコメントからご教示していただければ幸いです。
何より私自身が現在AWSを学習しておりますが、なかなかイメージしずらいリソースやそもそものリソースの役割を忘れてしまうため、今回こちらの記事を作成しております。
では早速、まとめていきます。(※紹介している順番について、特に意味はありません)
マシンイメージ(AMI)
EC2インスタンス起動時に必要な情報を含む、事前設定済みの仮想マシンイメージ
情報とは、OS,CPU,メモリなど
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などを設定しておく。詳しくは、こちら
IAM
IAMを使用することで、だれが(認証)、どのリソースに(認可)どのような操作を行うかを制御することができる。最小特権の原則:ユーザーには必要なものへのアクセス権のみを付与する
IAMユーザー
AWSリソースにアクセスするための個別のアカウント
IAMグループ
複数のIAMユーザーをまとめて管理するためのグループです。グループに対してポリシーを設定することで、グループ内のすべてのユーザーに同じ権限を付与できます
IAMロールポリシーを複数アタッチして、権限をひとまとめにする一時的なアクセス許可の際に用いるアタッチできる対象: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)
パブリッシャーからサブスクライバーへのメッセージ配信を提供するマネージドサービス
メッセージは一時的に保存され、配信後は削除される
メッセージは非同期並列処理される。送受信の関係は、一対多
トピック
メッセージの入れ物。パブリッシャーはトピックにメッセージを発行する
トピックタイプ
・スタンダード
メッセージの順序は保証されない/メッセージが重複して配信される場合がある
・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
アプリケーションのデプロイと実行を簡単にするためのもの。
インフラの詳細を気にせずに、アプリケーション開発に集中できる
アプリケーションコード(warファイルなど)をアップロードするだけで、自動的に実行環境を構築してくれる
Java、.NET、PHP、Node.js、Pythonなど主要な言語・フレームワークをサポート
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
サブネットにアタッチされサブネットレベルでトラフィックを制御するファイアウォール
一つのサブネットに対して、一つのACLを付与できる。ステートレス
※EC2インスタンスのファイアウォールはセキュリティーグループ
デフォルトでは全てのトラフィックをDenyしており、ステートフル
NIC(ネットワークインターフェースカード)
コンピュータをネットワークに接続するための回路基板
ENI(Elastic Network Interface)
EC2インスタンスに割り当てられているIPアドレスの実体
プロビジョニング
ITインフラやリソースを準備・設定すること
責任共有モデル
クラウドのセキュリティをお客側とAWS側で責任を分けておくこと
Well-Architected フレームワーク(6つ)
・パフォーマンス効果
・セキュリティ
・信頼性
・持続可能性
・コスト最適化
・運用上の優秀性(オペレーショナル・エクセレンス)
S3
データをバケットと呼ばれるコンテナにオブジェクトとして保存する
一つのオブジェクトサイズは最大5TB / 一回の操作でアップデートできるデータサイズは5GB / ストレージ容量は無制限
オブジェクトとはデータ、メタデータ(データの種類・使用方法)、キー(一意の識別子)で構成されている
全てのオブジェクトにURLが発行されている
8つのストレージクラスを選択することができる
静的webサイトをホストすることができるため、S3をウェブサーバーのように利用できる
Sorryページなどの作成時に使用される
※ホスティングサービスを使用するためには、すべてのユーザーに読み取り許可ポリシーを付与する必要がある。詳細はこちら
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
ビックデータの分析に使用できるデータウェアハウジングシステム
多くのリソースからデータを収集し、データ全体の関係性や傾向を理解するのに役立つ機能を提供する
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
RDSやDynamoDBの前面に設置して使用
クラウドストラクチャ上でキャッシュサービスを提供する
例)RDSへのアクセス負荷を下げ、コストダウン
フルマネージド型
インメモリデータストアのRedisとMemcashedを採用している
AWS Organizations
複数のアカウントを組織単位(OU)にグループ化
複数ユーザーへの一括請求でコストダウンとなる
SCP:AWS Organizations内のアカウントや組織単位(OU)に対して、AWSサービスやアクションの使用を許可または制限するためのポリシー
AWS Artifact
AWSが提供するコンプライアンス関連のドキュメント管理サービス(無料)
監査アーチファクト(インシデントが発生した際に残される痕跡)を検索できる
AWS WAF
保護されているWebアプリケーションリソースに転送されるHTTP(S)リクエストを監視できるWebアプリケーションファイアウォールです
DDos攻撃に対応する
※DDoS攻撃:WEBサーバーなどに対して複数のコンピュータから大量のパケットを送り付けることで正常なサービスを妨げる行為
AWS WAF WebACLsについては、こちら
AWs Shield
DDoS攻撃対応
オプション
Standard
無料で使用でき、一般的な悪意のあるネットワークトラフィックを検出し、保護する
Advanced
有料で使用でき、詳細な悪意のあるネットワークトラフィックを検出し、保護する
AWS Inspector
OSやソフトウェアの脆弱性管理に関するセキュリティ対策のソリューション
ネットワーク接続性やパッケージの脆弱性を継続的にスキャンして、結果を確認できる
対象リソース:EC2, Lambda, ECRコンテナ
※オンプレミスやほかのクラウドサービスは対象外
一部機能には、SSM Agentをインストールする必要がある
これは、EC2インスタンス上のソフトウェアパッケージとその詳細情報を収集する役割を果たす
AWS GuardDuty
AWSインフラストラクチャやリソースのネットワークトラフィックやログデータを分析し
潜在的な脅威や異常なアクティビティを検出する
検出するデータソース
VPC Flow log , DNS Logs , AWS CloudTrail , S3データイベント
AWS 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はリソースのパフォーマンスを監視するツールである
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でユーザーへ通知可能
AWS Cloud Adoption Framework(AWS CAF)
ガイダンス
AWS Snow ファミリー メンバー
データをAWSの内外に物理的(ネットワークを経由せず)に転送する
AWS SageMaker
機械学習に必要なモデルの構築
トレーニング、デプロイを迅速に行うことができる
AWS CodeWhisperer
コードの記述中にコードのレコメンデーションを受け、コード内のセキュリティ問題を特定する
AWS Trascribe
音声のテキストを変換する
AWS Comprehend
テキストのパターンを検出する
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設定】
1.ELBのセキュリティグループの作成
2.ターゲットグループの作成(ELBの対象を選択/ヘルスチェック設定もできる)
3.ELBの作成
※リスナーを設定することで、指定されたプロトコルとポートからの接続リクエストを受信できるようになる
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サーバー証明書のプロビジョニング、管理、展開、更新を行うことができるマネージドサービス。リージョンはバージニア北部にすること
※Route53を用いてドメインの所有権を確認するために利用することが一般的(DNS検証)
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での出力設定が推奨される
Route53
AWSが提供するスケーラブルで高可用性のドメインネームシステムサービスです。
デフォルトでは4台のNSサーバーが作成されている。
アクティブ/パッシブ(フェイルオーバー)
ヘルスチェックとフェイルオーバー機能
ウェブサーバーや他のリソースの正常性を監視し、問題が発生した場合にはトラフィックを代替のリソースにリダイレクトすることができます。アプリケーションの可用性を高めることができます
指定したドメイン名のネームサーバーのリストが簡潔に表示される
【Linux】
dig ドメイン名 NS +short
dig ドメイン名 SOA +short
【Windows】
nslookup
set type=NS
ドメイン名
※静的ページの際にS3を使用する場合、バケットの名前をドメイン名と同じにする必要がある
VPCエンドポイント
VPC内のリソースがインターネット経由せずに、VPC外に配置されたAWSサービス(S3,Route53,CloudWatchなど)にプライベート接続するための機能です。
プライベートな通信なためセキュリティが向上し、低レイテンシーを実現
・インターフェース型(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接続を可能にする。インターネットを経由しないセキュアな通信を可能にする
Transit Gateway(TGW)
複数VPC同士を接続できる、ハブのようなもの。VPCとTGWを紐づけてルーティングする。
ルートテーブルにて接続先ターゲットを設定する
AWS DataSync
ネットワークを介して、オンプレミスのストレージ等からAWSへデータを高速かつセキュアに転送するサービス
AWS Global Accelerator
AWSのグローバルネットワークを使用した高速通信によって、アプリケーションの可用性とパフォーマンスを向上させるネットーワーキングサービス
WebSocket
・クライアントとサーバー間でリアルタイムの双方向通信を可能にするネットワーク通信技術
・双方向通信が可能(※HTTPはクライアントからサーバーへの一方向通信)
・一度接続を確立すると、長期間維持される(高いリアルタイム性をもつ)
・署名付きURL
一時的なファイル共有、セキュアなファイルアップロード/ダウンロード、限定公開コンテンツの配信などに広く利用されています。
ただし、URLが第三者に漏洩するリスクがあるため、適切な有効期限設定と使用管理が重要です。
※S3などで設定可能
※署名付き URL で使用される認証情報は、URL を生成した AWS ユーザー
参考はこちら
エクスポネンシャル・バックオフ(Exponential Backoff)
通信先サーバーに過度の負担をかけないようにするためのリトライ手法
クライアントが通信に失敗した際に要求間の遅延を増やしながら定期的に再試行するアプローチ
ChefとPuppet
どちらもサーバーやインフラストラクチャの構成管理を自動化するためのツール
インフラストラクチャをコードとして管理する(Infrastructure as Code)
※CloudFormationはAWS専用のIaCツール
アクセスキー
AWSのサービスやリソースにプログラム的にアクセスするための長期的な認証情報
アクセスキーIDとシークレットアクセスキーの二つで構成されている
AWS SAM
ローカルでLambda関数の作成・実行をテストできる。
IaC(Infrastracture as Code)でのサーバレス環境を構築できる
AWS Application Composer
サーバーレスアプリケーションを視覚的に設計し、SAMテンプレートを作成できる
※VSCodeでも操作可能(拡張機能をインストール)
※初期段階で構成図(設計)をすり合わせることができるため、齟齬や認識を合わせることができる
Step Function
AWSサービスをサーバーレスでワークフローとして管理することができ、アプリの構築と更新を迅速に行うことができる
AWS SES
メール送信サービス
Amazon QuickSight
クラウドベースのビジネスインテリジェンス(BI)サービス
BI ツールでは、ビッグデータや各種データソースから洞察を抽出し、分析した結果を視覚的で簡易的な形式で表示することが可能
※様々なデータソースかへとアクセスして、データを抽出・加工して表示する
DynamoDB
サーバーレスのフルマネージド NoSQL データベースで、あらゆる規模で 1 桁ミリ秒のパフォーマンスを実現
Amazon CloudHSM
暗号鍵を安全に保管・管理するために使用されるサービスです
コメント