share facebook facebook2 twitter menu hatena pocket slack

2014.10.27 MON

AWS 白帯シリーズ(16) AWS Black Belt Tech シリーズ Amazon Elastic Compute Cloud (Amazon EC2) を写経する

川原 洋平

WRITTEN BY 川原 洋平

どうも、cloudpackかっぱ@inokara)です。

はじめに

AWS Black Belt Tech シリーズ Amazon Elastic Compute Cloud (Amazon EC2) を読んで自分なりに要点を纏めてみます。(結果として写経になりました…)


参考

以下、「今日の Agenda」に従って纏めていきます。


Amazon EC2 とは?

Amazon EC2

  • コンピュータ処理に分類される AWS の各種サービスの一つ
  • コンピュータ処理には EC2 以外に EMR や AutoScaling が含まれる(※ Workspaces は含まれる??)
  • 仮想化されたサーバー

リジョンとエッジロケーション

  • リージョン(世界で 8 + 2 拠点)とエッジロケーション(36 都市+ 51 箇所)
  • リージョン(バージニア、GovCloud、カリフォルニア、オレゴン、サンパウロ、ダブリン、シンガポール、シドニー、北京、東京)

アベイラビリティゾーン(AZ)

  • データセンター群
  • 各リージョン内に複数の AZ が存在
  • 各 AZ はお互いの影響を受け難いように「地理」「電源」「ネットワーク」を分離して設計
  • AZ 間は高速専用線で接続
  • リージョン間はインターネットを使用している

VPC と EC2-Classic

  • 現状の標準環境は VPC(Virtual Private Cloud)
  • VPC はユーザー毎の IP アドレス領域でインスタンスを利用可能
  • EC2-Classic は全ユーザーで共通の 10.0.0.0/8 の IP アドレスを利用する

EC2-VPC の Default VPC

  • Default VPC では 172.31.0.0/16 の IP アドレスが利用される
  • 各 AZ に Default Subnet(public) が自動作成される(CIDR は /20 => 4096 IPs)
  • 選択した AZ の Default Subnet にインスタンスがデプロイされる
  • EC2 インスタンスには Public IP アドレス(動的割当の Global IP)がアサインされる

Amazon Elastic Block Store(EBS)

  • EBS とは EC2 に仮想外付けされるプロックレベルのストレージサービス
  • 1G 〜 1TB サイズ
  • 各 EC2 で複数の EBS を利用することが出来る
  • データは永続的に保存される
  • いつでもバックアップ(スナップショット)が取得出来る
  • スナップショットから EBS を作成可能(他の AZ に作成出来る)
  • Provisioned IOPS でパフォーマンス指定が可能(2014/3 時点で最大 4000IOPS)
  • 他の EC2 インスタンスに付け替えが可能

Instance Storage と EBS

  • Instance Storage は内蔵ディスク
  • EC2 を Stop or Terminate するとクリアされる(注意!)
  • 性能、容量はインスタンスタイプ毎に決められている
  • 追加コスト無し
  • EBS はネットワークで接続
  • EC2 とは独立管理で EC2 を Terminate しても EBS は保持可能
  • Volume 毎に性能、容量を定義可能
  • EBS の費用が発生

EC2 に関連する主要コンポーネント

  • AMI(☆)
  • CloudWatch
  • Elastic IP
  • VPC
  • Auto Scaling
  • ELB
  • Management Console
  • Key Pairs(☆)
  • Security Groups(☆)
  • EBS -> Snapshot(☆)
  • VM Import/Export

Amazon EC2 の基本

EC2 の起動

  1. AMI 選択
  2. 台数、インスタンスタイプ、AZ の指定
  3. EBS の設定
  4. Key Pair の選択
  5. Security Groups の選択

Amazon Machine Image(AMI)

  • インスタンスの作成に使用するイメージテンプレート
  • 公式、サードパーティも AMI を提供している
  • EC2 インスタンスから任意のタイミングでカスタム AMI を作成出来る

EC2 インスタンスのライフサイクル

  • Running -> 実行中、課金される
  • Stopped -> 停止中、課金されない
  • Terminated -> 終了(Stop / Start が出来ない)

EC2 インスタンスのタイプ変更

  • Stop していると、いつでもタイプを変更出来る

EBS ボリュームのアタッチ

  • EC2 インスタンスと同じゾーンに作ること
  • スナップショットから複製可能

EC2 インスタンスのアドレス

  • Private IP(VPC 内のサブネットから割り当てる)
  • Pribate DNS(*.internal)
  • Public DNS 名(*.amazonaws.com)
  • Public IP アドレスをオプションで付けられる
  • 固定された Public IP Addresses を EIP と呼ぶ
  • EIP は稼働中の EC2 インスタンスに瞬時に取付け、取り外しが可能
  • インスタンスにアサインしている時には料金はかからない

EIP の使いどころ

  • 通常は EIP は不要で EC2 の Public DNS 名を用いて CNAME で名前変換を行う(Route 53 で Public DNS を用いる)
  • 固定 IP アドレスが必要な時に限り EIP を用いる(メールサーバーの送信制限解除、逆引き申請等が必要)

リージョン間のコピー

  • AMI と EBS はリージョン間のコピーがkanou

Amazon EC2 関連サービスと関連情報

用途 / 役割 サービス 備考
監視 CloudWatch
負荷分散 ELB
自動スケール AutoScaling
閉域網での利用、仮想ネットワーキング Amazon VPC 社内ネットワークから VPN 接続 / ルーティング、イントラ IP アドレス、仮想 NIC 等
専有サーバー Amazon Dedicated Instance
専用線接続 Amazon Direct Connect
Windows Windows インスタンス
スパコン HPC インスタンス
アクセス管理 IAM
料金関係 Consolidated Billing

Amazon EC3 のセキュリティモデル

AWS のセキュリティの考え方

  • シェアード・レスポンシビリティ・モデル(責任共有モデル)
  • Web サイトとアプリケーションのセキュリティはお客様、SI にて実現可能
  • インフラ(ファシリティ、データセンター、電源、ネットワーク冗長化)はよりハイレベルのセキュリティを AWS が提供

EC2 の責任共有モデル

  • ファイアウォールとインスタンスはユーザーが管理する
  • 物理インターフェースとハイパーバイザーは AWS が管理する

ファイアウォールを実現する Security Group

  • インスタンスの IN/OUT トラフィックを制限するファイアウォール
  • デフォルトで IN 向けは全てのトライフィックを閉じている
  • 必要な受信アクセスに対してアクセスルールを定義する(プロトコル、宛先ポート、アクセス元 IP / Security Group)
  • ルールをひとまとめにしたテンプレートを Security Group と呼ぶ

Security Group の使い方

  • インスタンスの用途に応じた Security Group を用意する
  • アクセス元に Security Group を設定して限定可能

セキュリティ証明書

  • EC2 インスタンスへのアクセス -> 鍵認証
  • Web コンソールへのアクセス -> パスワード認証 / 他要素認証 / IAM
  • API へのアクセス -> アクセスキー / X.509 証明書 / IAM

キーペアを用いた鍵認証

  • 鍵認証はユーザー名、パスワードの認証よりも安全な認証方式

EC2 の SLA

  • EC2 の可用性が 99.95%
  • SLA が満たされない場合にはサービスクレジットを返還する

最新アップデート

追加された機能

  • VM Import for Linux
  • IAM に EC2 Resource Permissions
  • リザーブドインスタンスの変更可能に
  • SR-IOV ネットワークドライバを採用してネットワーク性性能向上(C3 / I2 / R3 インスタンスで対応)

インスタンスのさらなる追加(目的別のインスタンスタイプ)

  • 一般的な目的なら M3
  • Compute Optimized なら C3
  • Memory Optimized なら R3
  • GPU が必要なら G2
  • IOPS 重視なら I2
  • Disk Based Storage なら HS1

Intel Processor Features

  • m3 / c3 / cc2 / g2 / cr1 / i2 / r3 の全てが対応
  • AES New Insturactions(AES-NI) -> c1 / cg1 / m2 でも対応
  • Advanced Vector Extensions(Intel AVX)
  • Turbo Boost Technology

利用における TIPS

故障の為の設計(Design for Failure)

  • 故障に備えた設計(故障するものと考えてシステム全体で保守的な設計)
  • SPOF の排除
  • 障害からの復旧(対応品質)を重視する
  • 他の冗長性の高いサービスとの組み合わせ

EC2 における故障の為の設計

  • AMI を常にとっておく
  • EBS のスナップショットでバックアップ
  • 複数の AZ への分散
  • ELB でサーバーを冗長化、Auto Scaling で自動復帰
  • Reserved Instance でキャパシティ保証

定期的なバックアップ

  • EC2 の AMI を定期的に作成する
  • データボリュームとしての EBS の場合、EBS のスナップショットを定期的に作成

Instance Storage に SSD を積んだインスタンスが増えてきた

  • 第三世代のインスタンス(m3 とか c3 とか…)から?
  • cr1 とか hi1 とか i2 にも…

Instance Storage を使うべきなのは…

  • 高 IOPS や高帯域なストレージが必要
  • 消えても良い一次データの置き場
  • ストレージ冗長化を準備でいる場合

EC2 へのファイル転送

  • SCP
  • S3 経由で共有
  • FTP サーバーを立ち上げる
  • 高速に送信したい場合には Tsunami UDP や Aspera 等のソリューションを利用

VM Import / Export

  • 複数のプラットフォームの VM イメージを Amazon EC2 に移行することが出来る
  • VMWare ESX VMDK
  • Citrix XenServer VHD
  • Microsoft Hyper-V VHD

稼働 EC2 インスタンスからメタデータ取得

  • curl http://169.254.169.254/latest/meta-data
  • 色々と取得できまっせ
  • 詳細はこちら

起動時にパラメーターを渡す

  • 起動時に 16KB 以内で任意のものを渡せる
  • Chef や Puppet 等を利用して、自己構成出来る AMI に

EC2コマンドラインツール & AWS SDKs

  • コマンドラインから EC2 の API にアクセス出来るツール(ツールをインストールしてセキュリティ証明書を配置)
  • マネジメントコンソールだけではなく API からプログラマブルにアクセス

EC2 のスケジュールイベント表示機能

  • EC2 インスタンスが稼働していているハードのメンテナンスが必要な場合に情報を提供するする仕組み
  • インスタンスリブート、システムリブート、リタイヤ

EC2 のステータスチェック機能

  • Status Check タブ
  • システムステータスチェックとインスタンスステータスチェックを自動テストを実行して情報掲示する
  • システムステータスチェック(EC2 インスタンスにネットワーク疎通があるかチェック)
  • インスタンスステータスチェック(EC2 上の OS へのネットワーク疎通があるかチェック)
  • 状況に乖離がある場合にはレポートすることが出来る

AWS 制限増加申請

  • EC2 を誤って大量に作成しないように、最大インスタンス数の上限を 20 に制限している
  • 制限増加申請フォームで各種制限の増加を行える

既存 EBS ボリュームのサイズ変更

  1. EBS をデタッチ
  2. EBS から S3 にスナップショットを作成
  3. 新たなボリュームサイズを指定して EBS を作成する
  4. EBS をアタッチする
  5. マウントしてリサイズする

EBS と S3

  • EBS は複数の EC2 にアタッチすることは出来ない
  • 単独の EC2 インスタンスのブロックデバイスとしての使い方
  • NFS のような使い方をしたい場合には GlusterFS 等のミドルウェアを導入する
  • S3 は複数の EC2 からアクセス可能
  • Write Once Read A Lot
  • S3 の耐久性は 99.999999999% で非常に高い

EIP 使用時の注意点

  • EIP を用いた場合にはインターネット経由のアクセスとなり課金が発生するケースがある
  • 名前解決したいサーバーに固定 IP を付与
  • 各サーバーは固定グローバル IP を元に AWS の DNS に名前を問い合わせ
  • 問い合わせ結果、返ってくる外部 DNS 名でサーバーにアクセス
  • EC2 内部で外部 DNS 名を使ってアクセスするとプライベート IP アドレスに返還される為に目的のサーバーにプライベート IP でアクセス出来る

料金モデル

AWS 課金の仕組み

  • データ転送量
  • ELB 利用料、データ処理量
  • インスタンスタイプ別利用料
  • EBS の利用料
  • S3 の利用料

Simple Monthly Calculator

複数の価格モデル

  • 選べる課金モデル
  • 時間課金(オンデマンド・インスタンス)
  • EC2 リザーブドインスタンス(ある程度継続して EC2 を利用する→ 1 年 or 3 年)
  • EC2 スポットインスタンス(入札を利用してより安く使う)

AWS 無料試用枠

  • お世話になりました

俺のまとめ

  • インスタンスタイプの m とか c とかそんな意味やったんやー
  • EC2 の可用性は 99.95%
  • S3 の耐久性は 99.999999999%
  • UserData は 16KB まで
  • Amazon Dedicated Instance って初耳
  • あと二回位は読む

元記事は、「AWS 白帯シリーズ(16) AWS Black Belt Tech シリーズ Amazon Elastic Compute Cloud (Amazon EC2) を写経する」です。