どうも、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 の起動
- AMI 選択
- 台数、インスタンスタイプ、AZ の指定
- EBS の設定
- Key Pair の選択
- 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 ボリュームのサイズ変更
- EBS をデタッチ
- EBS から S3 にスナップショットを作成
- 新たなボリュームサイズを指定して EBS を作成する
- EBS をアタッチする
- マウントしてリサイズする
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
- SIMPLE MONTHLY CALCULATOR
- Web 上の概算費用を計算出来る
複数の価格モデル
- 選べる課金モデル
- 時間課金(オンデマンド・インスタンス)
- 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) を写経する」です。