EC2
HPC向け
- Nehalemと同等のCPUを割り当てられるものがある。
リージョンとゾーン
リージョン
- 世界で8か所
- 1か所は米国政府専用
- どこでも自由に選んで設置できる
- 世界で8か所
アベイラビリティゾーン
- 同じリージョン内で
- 同じリージョン内のゾーン同士は専用線で結ばれているので高速
- リージョン間はインターネット
EBS
外付けHTDDみたいなもの
- AZ単位で存在する。
- 他のインスタンスに付け替え可能
- スナップショットをS3にバックアップ可能。そのバックアップから他のAZに作成することもできる。
- リージョンも移動できるの?
- 複数のEC2にアタッチすることはできない。
インスタンスストレージとは?
- インスタンスに付属している。別途料金はかからない。
- 寿命がインスタンス依存
AMI
EBS backed AMI
- EBSにAMIが保存されている。
- EC2を停止してもインスタンスデータが残るタイプ。
- stopすると停止でき、その間は課金されない。
- terminatすると破棄される。
S3 backed AMI
- 昔からあるタイプ
- 停止すると揮発する。
セキュリティモデル
- 責任分担モデル。
- 物理インスタンス・ファイアウォールはAWS側が責任を持つ
- 個別のインスタンスにセキュリティグループ、ファイアウォールが設定できる。
TIPS
- 故障のための設計をしておく
- 定期的なバックアップ
- Private IP 経由の通信を活用すると安く済む
- EBSは1Tを選ぶと性能最大化
ELB / AutoScaling / CloudWatch
ELB
ソフトウェアロードバランサ
- ELB自体がスケールアウト・スケールアップを自動で行う
- 異なるAZをまたがって分散可能
- ヘルスチェックあり
トラフィックに合わせて増減するので、IPアドレスもそれに伴って増減する。IPを指定しちゃだめ。
- ELBにはDNS名が割り振られるので、それを使うようにすべき。
- その名前をさらにCNAMEして使う。
WebSocket対応しているの?
- 現状はサポートしていない。
CloudWatch との統合
- 各所のヘルスチェックができる。
IPv6もサポート
SSL のサポート
- ELBでSSLをひもとくことが可能
- Cipherも選択できる。
セッションアフィニティもサポート
- ELBがcookieを発行できる。
- とはいえ、スケール性を考えると使うのはあんまりお勧めしない。
X-Forwarded ヘッダーもサポート
UDPはサポートしない
TIPS
- IPアドレスはダメ絶対
- 負荷分散は、AZ毎に均等に割り振ろうとする。
- 性能のバランスに偏りがある場合に注意。
- 各インスタンスのサイズ・性能は考慮されない。
- Management Consoleではサポートされていないが、コマンドラインツールでしかサポートされていない機能もあるので注意。
- 急激な増減がある場合は注意
- キャパシティ判定は5分ぐらい
- 予想できるものには、事前に準備を。
- DNSのTTLが60秒かかるので、その辺もスケール時に注意
- ヘルスチェックのアクセス権に注意。
- ELBの負荷テストは要注意。ドキュメントがあるのでそれに従って。
- 60秒でセッションを切る仕様になったりしている。
AutoScaling
- ELBと組み合わせてよく使う。
- マニュアル・スケジュール・ポリシーベース(CPUの使用率など) に従ってインスタンスを増減してくれる。
- コマンドラインツールから設定する。
- グループ単位で増減させる対象を指定する。
- インスタンスも勝手に落ちたりするので、そうなる事を考慮して設計しておく
- 20以上のインスタンス使いたい場合は連絡ください。
CloudWatch
- いろんなメトリクスをグラフで見れる。
- カスタムメトリクス(有料)も作れる。
S3
デモ
- UpするとURLがつく
- CloudFrontを使う使わないでURL変わる。
S3とは
- httpsでアクセスするWebのストレージサービス
- アクセスコントロールなどもできる。
信頼性も高い。
バケット
- 1アカウント最大100個
オブジェクト
- 1オブジェクト5TBまで。
- バケットごとの個数制限は無い?
コンセプト
堅牢であること
- 2006年サービス以降データロストなし
- 3か所以上にレプリケーション
- イレブンナイン
- 3つ以上のDCが同時に焼失しない限りは無くならない。
常に利用可能なこと
- 99.9%のSLA
- 計画停止なし
- 8つのリージョンから選択可能。
スケールすること
- 論理的には無限にスケール
- 1PBになろうが保存可能
- 1つのフィルサイズは5TBまで。
安全であること
- 全てSSL通信
- 認証・認可機能を持つ
- ACL/ポリシーベース
- ユーザーアクセスコントロール
- サーバサイドでの暗号化機能もある。
高速であること
- 常に高速なレイテンシ
- 専用線で直結も可能
- これ詳しく聞きたいな。どういった形でのサービス提供?
シンプルであること
- PUT/GET/DELETE/LIST のみ
- データサイズも数も気にしなくてよい。
- 様々な言語でのSDKもある。
低コストであること
- 6年間で15回値下げしてる!
- 2012/2にまた13%値下げした。
事例として
- Smugmug
- プロの写真販売用サイト
- ペタバイトのデータを保存している。
AWS自体もユーザ
AWSサービスの中心にS3がある。
リージョン間での簡単な移動ソリューションはあるか?
- インポート/エクスポートという手はある。
- 一回ローカルに落とす感じ。
ディザスタリカバリとして、東京リージョン + 他のリージョンにも保持した方がいいか?
- そこはむしろ費用との兼ね合い。
- 日本丸ごと潰れる心配をする感じであれば考えてもいいかも。
東京リージョンのレイテンシはどれくらい?
- 公式ではないが、10msecぐらいという感じ。
- シンガポールだと70msec程度
CloudFormation
Amazon Simpleworkflowもおすすめ!
CloudFormation
デプロイと自動化を担当するサービス
テンプレートを元にして、AWSのEC2 / ELB / S3などを一発で各サービスを構成することができる
利用シーンと利点
一度テンプレートを作成すれば、同じ構成を再現できる
- 開発環境の構築など
- 同じアプリでデータが異なるものなど
ベストプラクティスが盛り込まれたテンプレートが元から提供されている
起動パラメータも渡せる
利用料金
- このサービス自体は無料
スタック
- リソースの集合のこと
スタックの単位で構築することができる。
スタックの構築方法
- マネジメントコンソール
- コマンドラインツールやSDKからも可能
テンプレート
- サンプルでいろんなものが利用できる
- 別途、stack作成の際に自分でuploadすることもできる。
S3に保存しておくことも可能。
JSONフォーマット
- どのサービスもだいたいJSON
- JSONの中にプログラミングして行くようなイメージになりそう。
- 後で変更可能なパラメータなどを定義可能
- 予約後などもテンプレート内で取れる
- 1つのテンプレートを複数のリージョンで使いたい場合でも、分類してキーを指定したりできる。
- スタック構築後に知りたいアウトプットパラメータとして返す値を定義して行くことも可能。
TIPS
- EC2必須ではない
- DB構築だけ、オートスケールだけ、アラーム設定だけでもOK
- 参照関係があると、依存関係とみなされる。
CloudFormer
テンプレート作るのしんどい
- ひながたからつくるてもあるが。。。
もともと持っているシステム構成を元にテンプレートを生成するリバースエンジニアリングツール
使い方
- CloudFormerのテンプレートからスタックを作成。
- テンプレート化したりリージョンを選んで、対象にしたいリソースにチェックを入れて生成すればできる。
AmazonLinuxには、cloud-init / cfnヘルパー(もしくはchef)などと組み合わせることも可能なので、セットアップも柔軟に可能!
CloudFront / Route53
CloudFront
- 世界中に散らばったCDN
- IPアドレスベースで一番近いところにアクセスする。
- コミットメントなし
- オリジンにはHTTPでアクセス
FLVも可能
利用メリット
- EC2向けのネットワーク課金より安い
- エッジロケーションごとに価格は異なる
- コミットしてもらえれば、ディスカウントもあり。
オリジンの使い分け
- EC2を使う場合
- 動的コンテンツ
- Ajaxなどのクロスドメイン通信が必要なもの
- S3を使う場合
- 静的コンテンツ
- FLVなど
ログの保存
S3に保存される
- アクセス記録は全ロケーションから24時間以内に収集
- とらないことも可能
ログの形式
- 1hもしくは50MBで分割
注意点
料金はトラフィックとリクエスト数に依存
- HTTPSの方がちょっと高い
特定のエッジロケーションだけに制限することはできない
- 日本だけ。。。とかは無理
エッジロケーションを絞るのも無理。
今はHTTPSではカスタムドメインが利用できない
キャッシュ制御
- 最小時間は1h
- 廃棄リクエストは可能だが、同時に3リクエストまで
- 1リクエストあたり1000URLまで。
- 廃棄リクエストは可能だが、同時に3リクエストまで
動画配信
ストリーミング
- エンドユーザが視聴後にファイルが残らない
- 部分再生の場合、再生部分のみを配送するので低料金
ライブストリーミング
- FMS on AWSを購入すれば可能
Route53
- AnyCastで一番近いロケーションのDNSにつながる
- 4つの異なるトップドメインにドメインが登録される
とは
- SLA 100%のサービス!!
- 権威DNSサーバ
- 豊富なレコードタイプ
ホストゾーン
ホストゾーン=ドメインファイル
- レコードは1000個まで。緩和可能
- サブドメインも同一のホストゾーンにできる
レコードは荷重ラウンドロビンをサポート
独自のエイリアスタイプ
- ELBのDNS名をドメインだけの形にして割り当て可能
価格
- ホストゾーン + リクエスト数
利用方法
- Google SpreadSheetベースで管理・設定することも可能。
FAQ
- IPv6対応だが、IPv6で運用しているわけではない。
- プライベートIP目的の利用は推奨していない。
- 反映はものすごく速い。1分もかかることはない
SQS / SNS / Simpleworkflow
Simple Queue Service
- 分散Queueサービス
- HTTPSでキューを投げて、受信するだけ
- システムを疎結合に分割するためのキーサービス
SQSの機能
- 最低1度の到達保証
- シンプルなAPI
- HTTPSでやりとりする
- プロダクトのインストール不要
分散キューサービス
- 自動的に複数DC間でレプリケーションされ、メッセージロストを防ぐ
- Persisitent Message
使い方
- エンドポイントの作成
- メッセージの送信
- メッセージの受信
- のみ
メッセージの到達保証
- 最低1度は受信する
- At-Latest-Once delivery
- Visibility Timeout
- Readerがメッセージを受信した場合に、一定期間メッセージが見えなくなる
- メッセージは明示的に消さない限り、2週間存在し続ける。
- 勝手に消すようなコントロールはしない
- デメリット
- 稀に複数回届くことがある
- 消さないと消えない
制約
- 順序性は保証しない
- 保存は最大2週間
- サイズは64KBまで
- キュー内に入るメッセージ数は無制限
- キュー名は80文字まで。
いつ使うか?
- コンポーネント間の依存を疎結合にする
- オンプレミスとのやりとり
Simple Notification Service
- 通知サービス
- CloudWatchとも連携
- マルチプロトコル
- ショートメッセージも飛ばせる(日本だと微妙)
使い方
- トピックの作成
- トピックの購読者を登録
- 通知を送ると、購読者に届く
制約
- 1アカウントあたり100トピックまで
- メッセージは最大8KBまで
Simple Workflow Service
- オーケストレーションをするサービス
- 分散処理を管理する
- 言ってみれば、オーケストラの指揮者のようなもの!
- AWSの中だけではなく、オンプレミス / モバイルなどのコンポーネントとの連携することが可能
- ワークフローだけAmazon側で自動化できる
- ワークフローの階層構造も可能
構成
- Workflow Starter
- Workflow Worker
- Decider
Flow Framewrok
- Java製。SWFを使うワークフローフレームワーク
- DSLを利用する
VPC
VPCの利用典型
- AWS上にプライベートクラウドを構築
- オンプレミスとのハイブリッドを実現
- 社内インフラの一部に見える
- ENIというMac/IPをインスタンスごとに付け替えられるようにするサービスも日本で始まった
VPCの機能
- VPN
- プライベートサブネットとパブリックサブネット
- インターネットへのゲートウェイ
EC2 Dedicated Instance
- 物理サーバを別の人と同居するのは嫌だ、という場合。
- VPC内での専用インスタンス
- シングルテナント保証
- クラウドのメリットは保証
パケットの出入り管理
- ネットワークレイヤで、INもOUTもコントロールできる
- もちろん、インスタンス単位でセキュリティグループでもIN/OUTの両方をコントロールできる。
Amazon VPCをどう考えるか
- これから標準になるもの
- ネットワークを仮想化するもの
- ネットワークのに関する要望にこたえたもの
- IPアドレス/Macの固定
- サブネットを使った管理
使い方
- リージョンを選択
- IPブロックを設定する
- 最大16ビット
- 節約する必要はないよw
Public Subnetの作成
VPC内にIPブロックをセ艇する
- 最大で17ビットマスク
- サブネット内の4IPはAWS予約
- サブネットはAZをまたぐことはできない。
- ELBもこのサブネット内に置かれる。
デフォルトでは、サブネット内での通信のみ
- 内部でのACLはフルオープン
Internet Gateway の追加
- Elastic IPつけられる。
- In / Out のフィルタ設定が可能。S3にだけアクセスさせる、とかも可能。
セキュリティグループ
- EC2で扱っているセキュリティグループとは別のもの。
- 稼働中にインスタンスとグループを切り替え可能
VPC とEC2のインスタンスの違い
- Dedicated Instance
- t1.microは利用できない
- VPC/subnetを選べる
Private Subnet
- NATインスタンスを付与することで可能
NATインスタンスとは
プライベートサブネットから、インターネット接続するためのNAT
- 実態は、AmazonLinux
普通のインスタンスの起動と同じように起動することができる。
- EIPによってpublicなIPをつける必要がある。
VPNでつなぐ
- ハードウェアVPNを対象
- 詳細には、BGPが喋れてIPsec AES 128bitが使えればOK
制限
- 1つのVPNゲートウェイあたり10までの接続
そのた
DHCPオプションの活用
マルチホーム(cloudhub)
- 拠点通信も行える
VPCでは特別なお金は頂いてません
- VPNの接続設定にはちょっと費用かかるけどそれぐらい。
EC2にあるEBSはVPCに持っていくことはできるが、逆はできない。
Storage Gataway / Direct Connect
データを移行するような場合
- S3に持っていくような場合には、Internet経由しかなかった
- 次にAWS Import / Exprot サービス
- Storage Gataway
- 既存のデータセンタのデータをクラウドストレージに安全に統合するサービス
- インターネット経由でアクセスするサービス
- AWS Direct Connect (10G / 1G)
- 直接専用線を引くサービス
- 高スループット + 低レイテンシ
Storage Gataway
仮想アプライアンス
- VMWare ESXi 4.01 の仮想サーバ
- どこかに置くと、iSCSI対応のストレージとして見れる。
- そ子におかれたデータが、スケジューリングされてS3に保存される。
バックアップデータの保存形式はEBSスナップショット
- そのため、AWSクラウド上でシステムリカバリも可能
定期的にスナップショットバックアップをS3上に保存してくれる、という感じ?
ユースケース
- バックアップ
- ディザスタリカバリとBCP
詳細
- 1ボリューム最大1TiB
- 1ゲートウェイで最大12TiB
- 上限申請も緩和可能
- スナップショットの作成スケジュールを1,2,4…12時間などで設定可能
Direct Connect
AWS Direct Connectの物理接続
- 相互接続ポイントを公開している
- ポイントにサーバがあるわけではない。
通常の専用線引き込みと違い、サーバの設置場所指定に依存しなくてすむ。
EC2/S3などとの接続
- Public ASを使ったBGP接続を行う。
- VPCなどはVLAN
注意
- Public IP transitは行わない
- リージョン毎の独立した契約
できること
- オンプレミスとのハイブリッド環境の構築
- 広域LANサービスの一部として使うことなども考えられる。
Direct Conect 接続のために
- AWS Direct Connect Solution Provider
- 諸々の手続きを肩代わりしてくれる。
物理接続
- 1Gbps or 10Gbpsの接続口を提供
- アベイラビリティゾーンとは独立
- Equinixへラックを設置する必要がある
- 終端装置を置くのが、ラック単位で契約。。。
- Solution Providerに任せれば解決はしてくれる。