EC2要点まとめ


[AWS Black Belt Techシリーズ Amazon Elastic Compute Cloud (Amazon EC2)](http://www.slideshare.net/AmazonWebServicesJapan/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回-](http://www.slideshare.net/kentamagawa/cloudformation-aws5)

###コマンドラインツール、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に変換される。