🐾

【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