以下メモ

Amazon Elastic Compute Cloud (EC2)

必要な時に必要なだけ、1秒ごとの従量課金で利用できる仮想コンピューティング環境をつくれるサービス。

ユースケース

EC2は真に仮想的なコンピューティング環境を提供してくれるサービスであり、ユーザは自分の好きなようにこれを利用できる。

  • Webサイト
  • Webアプリケーション
  • 開発環境
  • ビルドサーバー
  • コードリポジトリ
  • マイクロサービス
  • テストやステージング環境
  • 基幹業務アプリケーション

特徴

  • 世界14箇所のリージョンで利用可能
  • 複数のロケーションとElastic IPアドレスによる高い可用性
  • CloudWatch連携による、容易なAuto Scaling
  • 管理者権限での利用
  • 多彩なインスタンスタイプやOSを選択
  • ハイパフォーマンスコンピューティングクラスターにも対応
  • 数クリックでの追加・削除
  • 柔軟なストレージオプション
  • 拡張性の高いネットワークオプション

インスタンスタイプ

EC2を始めるなら、まずインスタンスタイプ (t2m4m3c4c3などのプラン) を選択しなければならない。これは、仮想コンピューティング環境自体の性能だ。ここで設定したインスタンス上で、AMI (後述) が立ち上が仕組みになっている。

インスタンスタイプの名前にはC3.8xlargeのようなものが並んでいるが、それぞれ意味があり、インスタンスファミリー、世代、性能などで決められている。

インスタンスタイプ C3.8xlarge 意味
C インスタンスファミリー
3 世代(大きいものはより新しいプロセッサー)
.8xlarge CPUやメモリ、帯域によって違う

またこの中でも、インスタンスファミリー + 世代の組み合わせは用途によって複数使い分けられている。ここで紹介されているもの以外にも、複数存在する。

用途
T2 最も低コストな汎用インスタンスタイプ
M3 提供されるリソースのバランスが良く、多くのアプリに適したインスタンスタイプ
M4 最新世代の汎用リソースが提供されるインスタンスタイプ
C5 コンピューティング集中型ワークロードに最適化された、高いパフォーマンスを発揮するインスタンスタイプ
x1e ハイパフォーマンスデータベース、インメモリデータベース、その他メモリ負荷の高いエンタープライズアプリケーション用に最適化されたインスタンスタイプ
P3 最新世代の汎用GPUインスタンス

1度作ったインスタンスでも、インスタンスタイプはいつでも変更することが可能。

ライフサイクル

起動したインスタンスは、3つの状態を持つ。(Instance Storageを利用している場合ははStop不可)

ライフサイクル
Running 実行中。課金される
Stopped 停止中。課金されない
Terminated 終了済み。Stop/Startはできない

課金

課金はインスタンス利用料 (Running時間) とデータ転送量 (OUT) で行われる。 また、購入オプションによって様々な用途で利用することが可能。

購入オプションとユースケース

オプション 特徴 ユースケース
オンデマンドインスタンス 初期費用無し、従量課金 (デフォルト) - ピーク対応で増減するサーバ
- 一時利用のキャンペーンサイト
- 昼にしか使わない開発サーバ
リザーブドインスタンス 常に利用可能なキャパシティ予約により最大75%割引 - 常時稼働しているサーバ
- DB, キャッシュサーバ
スポットインスタンス 未使用キャパシティに入札して利用
スポット価格よりも高い限り、大幅な割引で利用可能
複数の入札方法が用意されている
- 分散処理のタスクノード
- クローラ
- メディアプロセッシング等
専用ホスト
(Dedicated Hosts)
インスタンス実行用物理ホストの単位で支払い 専用物理サーバーが欲しい場合
ハードウェア専有インスタンス
(Dedicated Instance)
シングルテナント クラウド上の専用サーバが欲しい場合

Amazon Machine Image

AMIはインスタンスの起動に必要なOSイメージで、これはOSのテンプレートを格納している。ミドルウェア、権限設定などこみこみで含めてテンプレートとして提供。実際のイメージ本体は、Amazon S3に保存されている。

AWSが提供する純正のイメージ以外にも、サードパーティAMIが提供されている。さらに、自分が構築したEC2インスタンスから自前のカスタムAMIを作成することもでき、作成したAMIは別アカウントと共有可能。 (別リージョンへのコピーもできる)

含まれるもの

  • インスタンスのルートボリュームのテンプレート (OS、アプリサーバ、アプリなど)
  • 権限設定 (AMIを使用してインスタンスを起動する権限を、特定のAWSアカウントに与える)
  • インスタンスの起動時にインスタンスにアタッチするボリュームを指定するブロックデバイスマッピング

分類

AMIはそれぞれの設定、方式などで分類分けされている。

  • ビット数
    • 32bitと64bit
  • 仮想化方式
    • 準仮想化 (Paravirtual, PV)
    • 完全仮想化 (Hardware-assisted VM, HVM)
  • ブートストレージ
    • EBS Backed
    • Instance Store-Backed (S3 Backed)

同じOSでも、上記種類で複数のパターンが存在。 一般的な推奨は 64bit HVM EBS-Backed になる。

HVM限定の機能

  • VM Import/ExportはHVMのみ対応
  • 一部のCPU拡張命令 (AVX等) はHVMのみ対応
  • PVとHVM間の変換機能は提供されていない

AMIを探す

  • コミュニティAMI
  • AWS Marketplace
    • AWSで実行されるソフトウェアやサービスを購入してすぐに利用できるオンラインストア
    • 多くのソフトウェアベンダー製品やOSSソフトウェアがインストール済OSイメージなどが公開されている
    • 有償ソフトウェアを従量課金で利用可能

関連サービス

負荷分散する

1つのインスタンスは1つの仮想サーバーなので、横に並べて可用性を獲得することが多い。 複数のアベイラビリティーゾーンでEC2を起動し、Amazon Elastic Load Balancingを使ってロードバランスする仕組みがある。 (Multi AZと呼ばれる)

Amazon Elastic Load Balancingは、EC2ヘルスも確認しており、自動的なロードバランシングを実現してくれる。

スケーラビリティを確保する

横に並べるということは、可用性の他にパフォーマンス・性能を上げることができるということ。この場合、Amazon CloudWatchと連携した Auto Scaling を利用する。

Amazon CloudWatchは監視する項目 (メトリックス) を収集 (CPUやメモリの使用量) しているので、例えば、CPU使用量80%以上で新規インスタンス起動、などの条件を設定することができる。そのものは追加料金無しで利用可能なので、使用量が変動するアプリケーションに最適。

Auto Scalingは Auto Healing として利用することもでき、最小及び最大インスタンス数をX台とすれば、X台の正常なインスタンスを保持できる。

モニタリングする

Amazon CloudWatchでは、先述したように項目を収集しており、それはグラフ等で表示することができる。また、アラーム機能でAuto Scaling などのアクションを実行できる。

基本無料だが、追加課金すれば1分毎に変更してデータを収集し続ける事もできる。 (無課金時は5分毎のデータ収集)

リソースのプロビジョニングを自動化

設定管理を含むクラウドのオートセッティングでは、AWS CloudFormationを利用する。これはEC2にかぎらず、殆どのAWSサービスをオートセッティングすることができる。

参考

results matching ""

    No results matching ""