🐾
【AWS】コンピューティングと関連サービス
ソリューションアーキテクト試験の学習ログ ②
EC2
Elastic Compute Cloud
- 仮想サーバーを提供する IaaS 型のサービス
- オンプレミス環境と比較して、サーバーインスタンスの個数や性能を柔軟に変更できる
性能
- インスタンスタイプ
- インスタンスファミリー(用途)
- 世代
- 属性
- インスタンスサイズ(スペック)
- EBS 最適化インスタンスオプション
- ディスクである EBS との通信帯域を個別に確保するためのオプション
- 外部との通信がディスク I/O に影響されない
費用
- オンデマンドインスタンス
- インスタンスが Running 状態だった時間
- Running 状態だったインスタンスのインスタンスタイプ、AMI、起動リージョン
- スポットインスタンス
- AWS が余らせている EC2 リソースを入札形式で安く利用する方式
- 余剰リソースがなくなると自動で中断する
- リザーブドインスタンス
- 長期間の利用を約束することで割引を受けられるオプション
- SP(Savings Plans)
- 金額を指定して、両機利用を前提に割引するプラン
AMI(Amazon Machine Image)
- EC2 を起動する際に作成するインスタンスの元となるイメージ
- AWS が標準で提供しているもの -各ベンダーがサービスをプリインストールしたもの
- 利用者自身が作成
- 手動作成
- EC2 Image Builder を利用して作成
インスタンスメタデータ
- AMI の ID やインスタンス ID、IAM のクレデンシャル情報などのインスタンスに関する情報
- 現時点で version1(IMDSv1)と version2(IMDSv2)があるが、可能な限り vIMDSv2 のみを利用する
ユーザーデータ
- インスタンス起動時に実行されるカスタムデータ
プレイスメントグループ
- グループ内のインスタンスをルールに従った配置で起動することができる
- ルール
- クラスタ: インスタンス同士をできるだけ近いところで起動
- パーティション: インスタンスを複数の論理的なパーティションに分散配置
- スプレッド: インスタンスをできるだけ同一のハードウェア上で起動しない
インスタンスの自動復旧
- Cloud watch による監視と復旧
- 監視対象のステータスに変化があった場合に任意のアクションを設定可能
- インスタンスに関するステータスチェックのメトリクス
- StatusCheckFailed_Instance: 個々のインスタンスのソフトウェア、ネットワークなどの問題を検出
- StatusCheckFailed_System: インスタンスが稼働する AWS システムの状態の問題を検出
- Auto Recovery 設定による自動復旧
- EC2 インスタンスの設定で、有効にすることで自動復旧が行われる(デフォルトでオン)
- 内部的に実行されることは上記と同じ
ELB
Elastic Load Balancing
- ロードバランサーのマネージドサービス
種類
- CLB(Classic Load Balancer)
- L4/L7 レイヤーでの負荷分散
- ALB(Application Load Balancer)
- L7 レイヤーでの負荷分散
- WebSocket や HTTP/2 に対応
- パスベースルーティング機能
- NLB(Network Load Balancer)
- L4 レイヤーでの負荷分散
- HTTP(S)以外のプロトコル通信の負荷分散
特徴
- 負荷に応じて自動的にスケーリング
- ヘルスチェック
Auto Scaling
EC2 の利用状況に応じて自動的にインスタンスの数を増減させる機能
設定項目
- 最小のインスタンス数
- 最大のインスタンス数
- インスタンスの数を増やす条件と増やす数
- インスタンスの数を減らす条件と減らす数
- スケールインする際にどのインスタンスから削除するか
ECS
Elastic Container Service
- Docker コンテナ環境を簡単に用意できるサービス
- Task ごとに IAM ロールを割り当てられる
用語
- Task
- コンテナ
- Cluster
- コンテナを実行する EC2 インスタンス
- Task Definition
- Task の定義ファイル
- Service
- 指定した数のタスクを常に稼働させるための仕組み
その他のコンテナサービス
- Fargate
- EC2 を使わずにコンテナを動かすことができるサービス
- EKS(Elastic Kubernetes Service)
- Kubernetes を利用するためのマスターを提供するサービス
- ECR(Elastic Container Registry)
- コンテナイメージのレジストリ
関連サービス
- AWS Batch
- 大規模計算処理時に利用するコンピューティングリソースを効率的に管理するサービス
- 一連のバッチ処理を実行する上でインフラ管理を行うオーケストレーションサービス
Lambda
- ソースコードの実行環境を提供するサービス
- ソースコードのデプロイと実行トリガーの定義で使用できる
設定項目
- 使用する言語
- Node.js
- Python
- Java
- C#
- Go
- Rudy
- PowerShell
- 割り当てるメモリ量
- タイムアウトまでの時間
- 割り当てる IAM ロール
- VPC 内・外のどちらで実行するか
費用
- Lambda 関数の実行数
- Lambda 関数の実行時間
- 割り当てたメモリ量によって単位課金額が決まる
Discussion