(」・ω・)」うー!(/・ω・)/にゃー!

JAWS Summit 2012 の2日目レポート

| Comments

EC2

HPC向け

  • Nehalemと同等のCPUを割り当てられるものがある。

リージョンとゾーン

  • リージョン

    • 世界で8か所
      • 1か所は米国政府専用
    • どこでも自由に選んで設置できる
  • アベイラビリティゾーン

    • 同じリージョン内で
    • 同じリージョン内のゾーン同士は専用線で結ばれているので高速
    • リージョン間はインターネット

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まで。

動画配信

  • ストリーミング

    • エンドユーザが視聴後にファイルが残らない
    • 部分再生の場合、再生部分のみを配送するので低料金
  • ライブストリーミング

    • 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に任せれば解決はしてくれる。

Comments