AWS Black Belt Techシリーズ Amazon Elastic Compute Cloud (Amazon EC2)
リージョンとエッジロケーション
世界8+2ヶ所のリージョン
36都市51ヶ所のエッジロケーション
アベイラビリティーゾーン
各リージョンにふ複数存在し、地理的・電源的・ネットワーク的に分離して設計される。AZ間は高速専用線で接続されている。
#典型的アーキテクチャ
Route53
→ELB(ロードバランサ)→AZに分けた2つのVPC(各VPCにEC2×1、それぞれにRDSマスタとスレーブという構成)
+
→cloudfront→S3(静的コンテンツの格納)
##EC2-VPC
VPC内にサブネットを設定しプライベートIPアドレス管理でEC2を構築する。
- DefaultVPCは172.31.0.0/16が使われる
- 各AZにDefaultSubnet(pubric)が自動作成される
- Launch時に設定したAZのサブネットにインスタンスがデプロイされる
- インスタンスには動的割り当てされるPubricIPアドレスが割り当てられる
##EC2-EBS
EC2に仮想的に外付されるブロックレベルのストレージサービス
- サイズは1GB単位の1TBまで
- サイズ+期間で課金
- EC2一つに複数のアタッチメントが可能
- データの永続的保存
- スナップショットでバックアップ
- スナップショットからAZにEBSを複製できる
- プロビジョンドIOPSによるIOパフォーマンスが指定可能
- 別のEC2インスタンスに付け替え可能
###InstanceStorageとEBS比較
InstanceStorage | EBS | |
---|---|---|
EC2との接続方法 | 内蔵ディスク | ネットワーク接続 |
EC2との関係 | EC2と不可分 | EC2と独立管理 |
データの存続期間 | EC2を停止するとクリア | EC2と関係なく単独保持される |
性能 | インスタンスタイプごとに規定 | 個別で性能・容量を定義可能 |
費用 | なし | 発生 |
##EC2に関連した主要コンポーネントリスト
- AMI
- EBS
- Snapshot
- ElasticIP
- VPC
- ELB
- AutoScaling
- VM Import/Export
- KeyPairs
- SecurityGroups
##EC2デプロイの流れ
1.リージョン選択
2.AMIの選択
AMIはS3に保管されているインスタンス作成のためのイメージテンプレート。EC2からも任意のタイミングで作成が可能。
3.台数、インスタンスタイプ、AZの選択
デプロイ後も、インスタンスタイプは可能。Stop状態であること。
4.EBSの設定
デフォルトではEC2と同じAZに作成される。
5.KeyPair選択
サーバー接続用の公開鍵方式の秘密鍵のダウンロード(一度のみ!)
6.SecurityGroupの選択
ファイヤウォールの設定。事前に準備したものをサーバーに設定。
IN/OUTのトラフィック制限を行う。デフォルトではINは全トラ閉。
アクセスルールの定義対象→プロトコル(TCP/UDP)、宛先ポート、アクセス元IP ※これらをまとめたものがSecurityGroupと呼ばれる。
インスタンス用途に応じそれぞれSecurityGroupを用意。
アクセス元を制限してセキュリティを高める。
7.起動完了
8.ターミナルからアクセス
ssh接続。ログインの際のアカウントはAmazonLinux→ec2-user、その他Linux→root,admin
##EC2のアドレス一覧
- PrivateIP。VPC内のサブネットから割り当て。
- PrivateDNS名。(*.internal)
- PublicDNS名。(*.amazonaws.com)
- PublicIP。オプションで選択可。
- ElasticIP。固定されたPubricIP。EC2とは独立しているので付け外しが可能。
###EIP使いドコロ
通常、EC2のPubricIPを用いることでRoute53によるCNAME名前解決を行うことで紐付け出来る。
メールサーバ、監視サーバ等の固定IPアドレスがどうしても必要な場合にEIPを用いる
Managementコンソールから簡単にAMIのリージョン間コピーが出来る
##AWSのセキュリティ
###シェアード・レスポンシビリティ・モデル
WEBサイト/アプリケーション→利用者
インフラ→AWS
###セキュリティ証明書一覧
鍵認証 | ターミナル | |
---|---|---|
MFA(多要素認証、IAM、パスワード認証) | WEBマネジメントコンソール | |
アクセスキー、X.509証明書、IAM | コマンドライン/SDK |
EC2のサービスレベルアグリーメントは99.95%
##最近の追加機能(2014.3)
- VM Import for Linux
- IAM(EC2 resource Permissions)
- リザーブドインスタンスのインスタンスタイプが変更可能に
- SR-IOVネットワークドライバーによるネットワーク性能の向上
- Intel processor Featuresに対応
##EC2 Tips
###故障のための設計をする
- 備えるための設計
- 全てが故障しうるという考えのもと、システム全体で保守設計する
- SPOF(単一障害点)の排除
- 障害復旧の重視
--
- 故障時のための設計
- AMIを常にとっておく-無停止でAMIを定期的に作成
- EBSのスナップショットによるバックアップ-スクリプトによる定期的なバックアップ
- 複数のアベイラビリティゾーンへの分散
- ELBでサーバを冗長化、AutoScalingによる自動復帰
- ReservedInstanceでキャパシティ保障
--
- 他組み合わせで冗長性を高めるサービス-S3、SimpleDB、RDS等
###InstanceStorageにSSDを積んだインスタンスの活用
M3、C3インスタンスなどInstanceStorageにSSDを搭載しているインスタンスが増えている。
-
InstanceStorageのメリット
高IOPS、高帯域(広帯域?)なストレージ -
考慮すべき点
消えても良いデータの置き場として使う、ストレージ冗長化を準備出来るかどうか
###EC2へのファイル転送
- SCPを使う
- S3経由で共有する。S3のオブジェクトをEC2からwgetでアクセス。
- FTPサーバーをEC2上に立ち上げる
- TsunamiUDP、Aspera等を使った高速送信
###VM Import Exportとは
複数のプラットフォームのVMイメージをEC2にインポート、エクポートする事ができる。
###稼働EC2インスタンスからメタデータの取得
curl http://{IP}/latest/meta-data
###起動時にパラメータを渡す(16KB以内で任意のもの可)
CloudFormation、Chef、Puppetを利用した自己構成AMIの作成
CloudFormation 詳細 -ほぼ週刊AWSマイスターシリーズ第6回-
###コマンドラインツール、AWS SDKs
APIを使ったプログラマブルなアクセスが可能に
###EC2のステータスチェック機能
2種類の自動ステータスチェックテストがある。乖離がある場合はレポート可能。
- システムステータスチェック
- インスタンスステータスチェック
それぞれネットワークパケットがEC2インスタンスに通るか、インスタンスのOSに受け取るかをチェックする。
###EBSのボリュームサイズ変更の流れ
EBSをデタッチ→EBSスナップショットをS3に作成→新しいEBSの作成(ボリュームサイズ変更)→EBSアタッチ→マウント、リサイズ
EC2からみたEBSとS3
EBS | S3 | |
---|---|---|
複数のEC2にアタッチ不可 | 複数のEC2からアクセス可 | |
ブロックデバイスとして使う | WriteOnceReadALotな利用が向いている。アップロード並列化も出来る。 | |
NFSのような利用の場合はミドルウェアの導入がいる | 耐久性高い、自動でレプリケーションされる。 |
###EIPポイント
EIPを用いる場合、インターネット経由のアクセスとなるため課金が発生する可能性がある。
EC2内部でPublicIPでアクセスされた場合はPrivateIPに変換される。