クラウドインフラ構築記

現在AWSの構築支援に携わっております。今注視しているのは、GKE、BigQuery、Google Dataflowなどサービスを展開しているGoolge Cloud Platformです。

2014年6月23日
から hiruta
0件のコメント

6/22(日) JTF2014に参加しました。

昨日のことになりますが、産業技術大学院大学で行われた6/22 (日) JTF2014に参加しました。

受講したセッションは以下になります。

  • Serverspecに見る技術トレンドを生み出すヒント (@gosukenator )
    • インフラテストフレームワーク Serverspecについて、生まれた背景、認知度、成功要因について話されました。

Serverspecが使われるようになった理由について

別領域で成功しているプラクティスを持ち込む、イメージがしやすい
インフラの構築もコードを書く流れ。ソフトウェア開発と同じプラクティスを押し込みやすい
ツールのネーミング、officalドキュメントは、英語で書くのが前提。Serverspecの場合、公式には英語のdocしかないとのこと
あとは、シンプルであること。プラグイン等で拡張できる。
このことから、監視ツールのSensuはシンプル。community pluginsで拡張もできる。

  • Google Cloud Platform 最新動向
    • Google Cloud Platformについて話されました。

ディスクIO、バックボーンネットワークが強力。プライベートネットワークはリージョン跨ぎが可能。

なんといっても、LBは、100万QPSの処理を裁ける性能を持っている。

  • 構築/運用/監視の自動化再確認! Chefとクラウドで、もっとシステムを楽しもうNiftyクラウドハンズオン

6/18 にリリースされた ニフティクラウド Automationで、1層構成、WEB + DBの2層、LBによる負荷分散構成のハンズオン構成。※LBについては、当日調子が悪く実際のハンズオンを行うことができませんでした。

ニフティクラウド Automation自体 AWS Opsworksのクローンの位置づけ。Chef レシピからサーバーを自動構築するサービス

仮想サーバーの起動とか時間がかかるのが残念。10分位掛かっていたのでは。 そのうえ、LBの作成とかこの当日はご機嫌斜めで、作成に時間がかかったり、ニフティクラウド Automation でLB追加の際、事前に作成していたLBがリストがでてくるのが時間がかる(この点については、改善されるとのこと)

  • Serfでシステム監視と運用を楽しくする話 (@zembutsu)

 

2014年6月15日
から hiruta
0件のコメント

【MT東京-03】Movable Typeケーススタディ Vol.3 に参加しました。

今日【MT東京-03】Movable Typeケーススタディ Vol.3 に参加しました。

  • Movable Type for AWS ( @yuki )

Markplace AMI 「Movable Type 6 for AWS」の説明。

「Movable Type 6 for AWS」は http://www.sixapart.jp/movabletype/aws/ から

Movable Type for AWS(AMI)  CMS プラットフォーム Movable Type を Amazon EC2 のクラウドで

t1.micro は Movable Typeのライセンスは無料

Market placeから数クリックでインストールできる。(AmazonLinux/nginx/php/PSGIを利用)

MT + S3、Mt + S3 + Cloudfront 、Cache Distribution パターンについて概要に触れられました。

今後、Movable Typeのパッケージをyumでの計画もあるとのこと。

MTイベントの告知 Movable Type Data API + Google Chrome Hack-a-thon  → 詳細は ここ
  • “MT on AWS”でWebサイト構築! 作り手が気をつけておきたいポイント(仮)

MT構築中、構築完了・データ移行、運用開始時にどのインスタンスタイプを使えばいいかについて説明がありました。

構築中から、メモリよりCPU性能が高いインスタンス(c3.large)を選ぶといいとのこと。構築中から、ElasticIP、Route53は利用。

運用開始時は、アクセス、レスポンス次第でインスタンスタイプは変更していくのがよいとのこと。

運用開始後、追加開発等が行う場合、開発用インスタンスを別途用意する。(インスタンス停止しておけばEBSの利用料を除いてかからないので、このようにするのがよい)

見積する場合は、ある程度幅を持たせるのがよい。

  • MTのスケールアップのデザインパターン with AWS  ( @ar1 )

CDPコンテンツ配信のシステムを構築するシナリオに従って、説明された、

※AWSの日本語書籍が少ない(昨々年は出ていたが、昨年はあまり出ていない。MamagementConsoleが日々変更されているので、1年前のUIをベースにした書籍は役に立たないのも起因)

最小構成 →S3 + EC2 → 海外展開( Cloudfront + S3 + EC2 )

ログが10Gとか膨大になって、ディスクフルになって、システム停止しないように、ログ退避は必要。

  • MT+AWSでECサイトを構築してわかったこと  ( @mtajima )

MT コマース の説明。

LTで JAWS-UG三都物語 1500-1550 トラック5 「MTとAWSと萌と」の告知。

タイムテーブル   夏のJAWS UG 三都物語 2014

現在Wordpressで構築している個人ブログをMT6 で再構築したくなってきた。スタティックパブリッシングに対応しているので、AWS(+S3)に親和性があるCMSと思いました。Wordpressのテーマ移行、ブログ記事移行、メディアデータ移行など検証しないと。

2014年6月14日
から hiruta
0件のコメント

Cloud OS MVP Roadshowに参加しました。

本日マイクロソフト品川本社で行われた Cloud OS MVP Roadshowに参加しました。

受講したセッションは以下になります。

  • System Center Virtual Machine によるプライベートクラウド基盤の構成

クラウドに必要なことは、リソースごとに貸し出し、サービステンプレート(テンプレートと言っても、OSの仮想VM+α)、ユーザのセルフサービス、モニタリング、自動化になります。

SCVMM(System Center Virtual Machine Manager)を利用することで、上記を満たすことが可能。

利用者からは、物理のリソースを隠蔽するなどアクセス権を設定できる。

  • Active Directory on Azure IaaSを構築する際の注意点

Azure AD  というAD PaaSのサービスがあるが、Windows認証に対応していないなど、現在Windows認証を使ったアプリケーションが存在するなど、過渡期

(ここからADよりクラウドを使う上での留意点に思われる)

    • 可用性

負荷分散セット、可用性セット(仮想マシンを異なる物理サーバに格納)を利用することが必須

    • ディスクデータ

キャッシュなしディスクに保存することが必須。OSディスクをキャッシュ無効にすることも可能だが、パフォーマンスが悪化するので推奨しない。キャッシュ無効にするのはPowerShellでできるようです。→ここ

OS、データディスクは分離することが必須 あとアフィニティを意識する。

    • ネットワーク

VIP = DIP間はポートフォワーディング

    • 名前解決
    • IPアドレス

 仮想マシンがシャットダウンするとVIP側の割当状況は消える。DIP側は削除するまで開放されないとのこと。

DHCPで割当されるプライベートIPアドレスを固定する説明。

Windows Azure PowerShell に、Set-AzureStaticVNetIP というインターフェースが用意されています。

PowerShellでAzureに接続する準備作業が必要 詳しくはSEの雑記に記載されています。

  • System Center Data Protection Managerを用いたプライベートクラウドの保護および回復 ( @kogesaka )

クラウドでのバックアップ対象データの増大、バックアップ対象サーバの増大の解決方法が説明された。

System Center Data Protection Managerを使って解決方法についての説明。

2014年5月11日
から hiruta
0件のコメント

mackerelを試してみました。

Mackerl ( https://mackerel.io ) が利用できるようになった旨のメールを5/8に頂き、早速使用してみました。

サービス作成

Create a New Service ・ web se

次に、Role作成

Create Role ・ web se

 

agentソフトウェアのダウンロード

curl https://mackerel.io/assets/files/agents/mackerel-agent-0.5.0-1.noarch.rpm -o mackerel-agent-0.5.0-1.noarch.rpm
rpm -ivh mackerel-agent-0.5.0-1.noarch.rpm

コンフィグファイルの編集。API Key程度です。

vi /etc/sysconfig/mackerel-agent

agentサービス起動

/etc/init.d/mackerel-agent start

10分位立つとmackerelの管理画面で、CPU、メモリ、ディスク、ネットワーク使用率のグラフが表示できれば、完了。

xxxxx.biz ・ web se

 

Meckerlは、ウェブアプリケーションのパフォーマンスとインフラを管理するためのサービスで、複数のサーバーのリソース状況を可視化(エージェントを入れる方式)、各種ツールと連携(ヘルプを見る限り、sensuと連携もできる)、複数のクラウド環境を一元管理ができる。

 

2014年4月22日
から hiruta
0件のコメント

第4回 Jubatus 分散ハンズオンに参加しました。

NTTソフトウェアで行われた 第4回Jubatus 分散ハンズオンに参加してきました。

近年携帯の位置情報、カーナビの位置情報、スパム判定、広告配信などデータは爆発している。リアルタイムに分析する需要も大きくなってきている。Jubatusリアルタイムに学習・処理する基盤として利用できる。

説明資料を見返していると、ストリーム、クラスタとでてきていますが、リアルタイム分析の点からKinesisに似ている印象。

本日(ていうか昨日になっていますが)ハンズオンの流れは以下となっています。

  • AWSアカウントの設定
  • インスタンス生成×5

ここまで、AWSの環境設定でした。

  • 単独構成で衛星の情報(CSV)をJubatusで処理する
  • 分散構成で同じ情報をJubuatusで処理する

Jubuatusの今回の説明資料は以下で公開されています。

http://download.jubat.us/event/handson_04/jubatushandson4.pdf

2014年4月16日
から hiruta
0件のコメント

GoogleのAsia Pacificリージョンできたので、tracerouteしてみてみました。

GCEのリージョン今まで、US、EUのみでしたが、今日(?)Asia Pacificリージョンできたので、どこの国のDC使っているのか、tracerouteで調べてみようとしました。


7 tkort3-wrt1s.bb.sakura.ad.jp (59.106.251.137) 18.827 ms 18.825 ms as15169.ix.jpix.ad.jp (210.171.224.96) 18.810 ms
 8 as15169.ix.jpix.ad.jp (210.171.224.96) 18.747 ms 209.85.245.206 (209.85.245.206) 19.024 ms 209.85.255.34 (209.85.255.34) 34.937 ms
 9 209.85.242.56 (209.85.242.56) 86.847 ms 64.233.175.216 (64.233.175.216) 20.714 ms 209.85.240.81 (209.85.240.81) 57.390 ms
10 72.14.232.45 (72.14.232.45) 57.352 ms 209.85.255.39 (209.85.255.39) 51.816 ms 72.14.232.45 (72.14.232.45) 52.201 ms
11 * 209.85.242.56 (209.85.242.56) 51.168 ms 209.85.243.23 (209.85.243.23) 57.892 ms
12 209.85.243.21 (209.85.243.21) 54.347 ms 122.179.167.107.bc.googleusercontent.com (107.167.179.122) 56.652 ms *

traceroute -Aの結果は下記になります。

6 tkgrt1s-wrt3.bb.sakura.ad.jp (59.106.247.121) [AS9370] 16.558 ms 16.192 ms 16.178 ms
 7 209.85.243.58 (209.85.243.58) [AS15169] 16.160 ms 209.85.243.56 (209.85.243.56) [AS15169] 16.680 ms 209.85.243.58 (209.85.243.58) [AS15169] 16.249 ms
 8 209.85.243.58 (209.85.243.58) [AS15169] 18.406 ms as15169.ix.jpix.ad.jp (210.171.224.96) [AS7527] 16.483 ms 16.480 ms
 9 209.85.255.36 (209.85.255.36) [AS15169] 31.812 ms 209.85.245.206 (209.85.245.206) [AS15169] 56.276 ms 209.85.243.58 (209.85.243.58) [AS15169] 16.439 ms
10 209.85.255.217 (209.85.255.217) [AS15169] 49.637 ms 209.85.243.21 (209.85.243.21) [AS15169] 55.070 ms 209.85.255.36 (209.85.255.36) [AS15169] 39.195 ms
11 * 209.85.243.23 (209.85.243.23) [AS15169] 57.135 ms 209.85.255.217 (209.85.255.217) [AS15169] 49.595 ms
12 209.85.243.23 (209.85.243.23) [AS15169] 62.061 ms 122.179.167.107.bc.googleusercontent.com (107.167.179.122) [AS15169] 51.956 ms *

が、IPだけでは、どこの国のDCつかっているかわかりませんでした。

※tracerouteの結果は、一部セキュリティ上削除してあります。

2014年4月10日
から hiruta
0件のコメント

VirtualBoxの仮想マシンイメージ VDIをEC2インスタンスにインポートしてみました。

http://blog.cloudpack.jp/2014/04/server-news-vm-import-virtualbox-hvm.html で紹介されていたVirtualBoxの仮想マシンをEC2インスタンスにインポートしてみました。

VirtualBox上に、仮想ディスク VDI(8GB)、メインメモリ1Gで、CentOS 6.5 最小構成で構築。

まずは、構築したCentOS 6.5を、VirtualBoxにVBoxManageコマンドで、RAWフォーマットに変換。

VBoxManage internalcommands converttoraw CentOS6.5.vdi CentOS6.5.img 

ec2-import-instancesでしばし待てばインポートされます。

export EC2_HOME=/ec2-api-tools
 export JAVA_HOME=/usr/java/jre1.7.0_51
 RAW=/mnt/disk/CentOS6.5.img
 S3_OWNER_ACCESS_KEY=<aws access key>
 S3_OWNER_SECRET_KEY=<aws secret key>
 S3_BUCKET_NAME=s3-vmimport

/ec2-api-tools/bin/ec2-import-instance \
 $RAW \
 -t m3.medium \
 -f RAW \
 -a x86_64 \
 --region us-east-1 \
 -p Linux \
 --bucket $S3_BUCKET_NAME \
 --subnet subnet-xxxxxxx \
 --availability-zone us-east-1a \
 -g ec2-vmimport-sg \
 --aws-access-key $S3_OWNER_ACCESS_KEY \
 --aws-secret-key $S3_OWNER_SECRET_KEY \
 -o $S3_OWNER_ACCESS_KEY \
 -w $S3_OWNER_SECRET_KEY

Create Imageで、Private AMIを作成してしまえば、spot instancesなり起動することができます。

Virtualizationは、hvmになっていることが確認できました。

EC2 Management Console

ESXiがなくても、AWSにマイグレーションができるようになります。

2014年4月5日
から hiruta
0件のコメント

本日開催しましたJAWS-UG千葉勉強会Vol.3でNode.jsでS3で話させてもらいました。

本日開催しましたJAWS-UG千葉勉強会Vol.3でNode.jsでS3で話させてもらいました。このような場で発表する機会があまりなく、100%という訳にいきませんでしたが、なんとか終わることができました。

本日発表したスライドを公開します。

以下が話したポイントになります。
  • Google Compute Engineについて
    • Google Compute Engineがいけてないところ(仮想マシンをの停止の概念がない、UI、現状US/EUリージョンのみ)
    • Google Compute Engine とAWSのUnix Bench結果の比較
      • GCEはAWSと競い合っている印象。
    • Google Compute Engine v.s AWSの価格比較
      • Google Compute Engine、AWS(4月以降の値下げ及びR3インスタンスを考慮)の相当スペックで比較すると、ほぼ金額については横並びの印象です。※発表時、チラ見したEXCELファイルについては現時点で公開はありません。
  • VPC Peering
    • VPC間をトンネル接続できる技術
    • 改善の余地があるところ(2段階ルーティングができない)
    • vyattaで構築できるものの置き換えも可能の場合があります。
  • Node.js
    • AWS CLIについて
    • Node.jsについて (リアルタイムWebには必須)
    • Node.js環境構築(yumでインストールでき、5分もかからず終了します)
    • ディレクトリ階層をS3(互換ストレージ)に階層を保ってコピー(アップロード)

2014年3月23日
から hiruta
0件のコメント

WindowsAzureの仮想マシンで公開鍵を使う上で

WindowsAzureの仮想マシンに公開鍵でSSHにログインには、opensslコマンドでX509証明書と秘密鍵を作成し、証明書を仮想マシン作成時にアップロードすることで、公開鍵認証が利用するのだが。

openssl v1.0で作成すると、Tera Term、putty等で秘密鍵を読み込めません。ネット上で「azure openssl 公開鍵」ググっても以下のようなことが出ています。

[Windows Azure]公開鍵認証のフォーマットにはご注意を!

x509証明書でのログイン不可につきまして

非暗号化キーだからできないツイートの返信も頂きました。

結果的にも暗号化キーにしても読み込むことができませんでした。

openssl pkcs8 -topk8 -in myPrivateKey.key -out myPrivateEncryptedKey.key

現状では、openssl v0.9でx509証明書を作成しておくのがいいと思います。

2014年3月17日
から hiruta
0件のコメント

JAWS DAYS 2014に行ってきました。

3/15 (土)  JAWS DAYS 2014に参加しました。1月からJAWS-UG千葉支部のコアメンバーとなって参加になりました。また、3/16 (日)のJAWS-UG総会にも参加し、2014年JAWS-UGが進むべき方向についての議論にも参加しました。

なお、整理できたものから参加レポートを記載します。なお、内容については、随時更新しておきます。

Amazon Kinesisで広がるクラウドによるリアルタイムデータプロセッシングとその未来
大谷 晋平 & 榎並 利晃 [アマゾンデータサービスジャパン株式会社]

Amazon Kinesisはフルマネージドなリアルタイムデータ処理ができる。いままでは、ストリームタイプはありませんでした。

Kinesisの仕組みは肝になるのは下記2つ

  • ストリーム (土管をイメージ)
  • シャード (分割した単位)

Kinesisは小さいサイズで最適化している。

Kinesisがすごいと思ったのは、Kinesisに流しているEC2インスタンスが何らかで落ちてしまった場合も、チェックポイント(フラグ)を付けておいて、EC2が再起動して、落ちてしまったところから再開することが可能。

Kinesisを使う場合、Kinesis Client Libraryを使うのがGOOD!Kinesis SDKもあるが、非現実的。

サンプルなども同封されたKinesis Connectorもあります。

クックパッドのデプロイとオートスケール
成田 一生 [クックパッド株式会社]

cookpadでは、500-700 EC2 インスタンス、50 ELB、96 のS3バケットで運用。

cookpadでは、EC2のTag(タグ)を使って、管理している。

  • Name タグ サーバーのホスト名
  • Role タグ インスタンスの役割
    • Role:app
  • Status タグ バランサーに追加していいかを定義
    • Status : working  となっている場合、HA Proxy ( cookpadではELBでなくHA Proxyをロードバランサとして使用しているとのこと)に紐づける

オートスケール Instance-hour(AWSの場合、1時間単位の課金)を最小化するのがコスト的に大事。

ELBは以下理由で使っていない。

  • 1分後に反映
  • Graceful Terminate問題
    • 10から8にAuto-Scallingした際、2インスタンスがTerminateされるのだが、ELBがTerminateされたインスタンスに振り向かれて、エラーになる問題

上記問題があり、HA Proxyを利用している。

cookpadの場合、業務時間内しかデプロイしていけない、デプロイ後1時間は待機というルールがあるので、Auto-Scallingでロックする回数をうまく調整している。

Infrastructure as Codeと組織のドキュメンテーション+Immutable Infrastructureの事例
澤登 亨彦[HiganWorks LLC]

作成準備中

※4月に、「Chef活用ガイド」の書籍が発売される予定。ただし、入門本でなく、書籍に記載されたものをそのまま使えるものではないので注意。Chef入門本は他を参照するのがよい。

プロビジョニング&デプロイ on AWSのキホン

吉羽 龍太郎 [アマゾンデータサービスジャパン株式会社]

アプリケションデプロイ、監視サーバーに登録も含めて、どう自動化する主眼を置いた話。
クラウドの場合、SDKでサーバーを操作できる。
コードでインフラを記載するのが、当たり前になる。コードが手順書になる。
コードだと、他のプロジェクトに再利用もできる
自動化しない
  • 手順書がメンテナンスされない
  • マニュアル作業で間違う。1,2台だったら、問題ないが、10.20台だとミスもある
  • 職人芸依存
  • リリース失敗→チェックリスト追加→チェック項目が増えていく

AWSでは、故障を前提として設計が要

  • SPOF N.G.
  • 疎結合コンポーネント
  • リブートしてもシステムに影響ない設計
  • ELBにあげられるように並列処理、マルチスレッドに対応した設計

監視についても、Auto-Scallingによって、自動で対象から外れる仕組みが必要。

監視サーバーとして、Sensu http://sensuapp.org/ について紹介されていました。

Active Directory on AWS
吉松 龍輝 & 渡邉 源太
アマゾンデータサービスジャパン株式会社

ドメインコントローラの配置パターン
  • AWSとオンプレに配置
    • FSMO をどこに配置するかがポイント 環境、ネットワークによって変わる
  • AWS上のみ配置
    • リストアに注意が必要!
AWS上に配置するドメインコントローラは、現在稼働中のADドメインのドメインコントローラで構築ことが重要。
ADの設計において
  • VPN/DirectConnect 、N/Wレイテンシー、スケジュールにかかる時間
  • サイト間複製 180分
  • サイトを分けた場合は、サイト間複製、複製トポロジが意図したもので作成されているかポイント

グローバルカタログは、Exchange Serverを構築する際必要

DNSについて

  • DC上のDNSのフォワーダーがAWSが提供するDNSを設定する ※SRVレコード
  • DHCP Options Setの利用
    • ntp-serverは空欄。時刻同期は、PDCエミュレータがドメインに展開するため。こうしないとkerberos認証に影響が出る恐れがある

リストアについて

  • iスナップショットからリストアを取った場合、USNロールバックになってしまい、すべて再構築する羽目になる恐れ。
  • ディレクトリサービス復元モード(DSRM)は、AWSでは使えない。
  • ActiveDirectoryのゴミ箱機能は有効にする(デフォルトは無効)

全台破損からのリストア

  • バックアップデータから仮DC構築
  • ntdsutil metadata clleanup ゴミ情報をきれいに削除
  • AWS上でDC構築。仮DCからデータ複製
  • FSMOを仮DCからDCに移動
  • 仮DCを降格

AWSとIAMの連携

  • SAML2.0
  • IAM Management ConsoleでRoleをADと同じ名前で作成
  • ADのアカウントでManagement Consoleすることが可能になる

CloudFrontで実現するセキュアコンテンツ配信と効果のトラッキング
北迫 清訓 & 今井 雄太
[アマゾンデータサービスジャパン株式会社]

CloudFrontのSigned URLについての話。Signed URLを利用することで、期間指定で公開する等が可能になる。

  • HTTPS以外受け付けないものも可能
  • 期間を指定したURL
  • カスタムポリシー
  • ワイルドカード許可コンテンツパス(特定URLすべて使用可)

CloudFrontが実力を発揮するのは、動画配信。

そこで、HLS  Live Streaming

  • HLSの売りは、WEBサーバーがあれば配信可能
    • 元の動画をセグメンターで分割要
  • マニフェストファイルの漏洩には気をつける (AWS encryptionを利用しているが暗号が解除される場合あり)
  • Cache-controlヘッダを調整。w-maxageを長めにして、大規模配信にも可能
  • マニフェストファイルは適時更新が要。Cloudfront Distributionは同一パスで
  • プレミアムコンテンツの保護にも利用できる

CloudFrontのレポート機能 ※2/14にリリース

  • 地域別アクセス、キャッシュヒット率、トラフィックスルーピットなど
  • キャッシュヒット率は今後対応予定

Cloudfrontのログ解析を自前でも解析可能

  • S3に保存したCloudfrontのログをS3DistCopyなどでEMRで分析

JAWS DAYSでは、javascript aws sdk + DynamoDBで分析結果をグラフで表示するデモが行われました。

2014年AWSイベントスケジュール
5/14-16 Cloud Comuting Expo Tokyo
6/18-19 Cloud Days Kyushu
6/25-26 Cloud Days Nagoya
7/17-18 AWS Summit tokyo ADSJ主催
10/15-17 Cloud Days Tokyo Fall
10/30 Cloud Roadshow Sapporo ADSJ主催
11/6 Cloud Roadshow Fukuoka ADSJ主催
11/10-16 re:Invent 2014
11/25 Cloud Roadshow Nagoya ADSJ主催
12/2 Cloud Roadshow Osaka ADSJ主催
Cloud Roadshow は地方版AWS Summitとのこと。Cloud Roadshowは詳細は出ていません。やることは確定。