smallpalace's blog

鯖缶主婦の日々の記録です

AWSSUMMIT20150602-TA03-TA05をみてきた

こんにちは。smallpalaceです。

いってきたので一応記録しときまっす。

f:id:smallpalace:20150603074309j:plain

お菓子が配られたり無料イベントなわりにノベルティがゴージャスだったり。

以下TechDeepDiveあたりをみてきたんですが誤字あったらすみません。元スライド探してあったら後で貼るかもしれません。。

ちなみに満席でも立ち見や横の床に座るのは可能でした。予約してると並ばずに優先して座れるってだけっぽいです。

各セッションの動画と資料

AWS Summit Tokyo 2015 開催レポート動画・資料一覧 | アマゾン ウェブ サービス(AWS 日本語)

 

・TA-03 Redshiftのマイグレのはなし

 SAの八木橋さん

Redshiftの概要とアップデートとインテグレーションとかの話を

RdeShiftのアーキテクチャ
データノードとコンピュートノード

MPP超並列演算

データの格納

列指向カラムナ型
圧縮

他のAWSサービスとの親和性、Dynamoとか

CPUを各コアにプロセスをはりつけていく

ノードスライス=メモリとディスクをCPUコアと同数にした単位

アーキテクチャー:データロード

S3との親和性が高い、リーダーノードを経由せずにS3から直接引っ張ってくる
スロット同じ並列度でロード
ファイル数はスロットの倍数が望ましい

Redshiftのカスタムドライバ
JDBCODBCをサポートしていてポスグレより親和性が高いのがでてる

InterleavedSortKey
SortKeyを複数のカラムに指定が可能になり、フルスキャンを回避、DisykI/Oをおさえられる
データ量が多い場合に差がわかりやすい

インテグレーション:データ連携

オンプレとの、AWSサービス間の、
考慮すべき点
 シングルパラレル、
 同期非同期

オンプレとだとS3にcsvファイルを保存して
オンプレから直にredshiftは非推奨
大量の同時クライアントからの書き込みが生じるならDynamoやkinesysから

サービス間とのデータ連携はS3がハブとなり他のAWSサービスと連携

AWSネイティブのサービスとしては、
サンプル・s成夫ーバッチ
RDBMSからデータを抽出、
S3に保存、Upload
EMRでデータのフィルタリング、Transform
Redshiftにファクトテーブルへコピー、
サマリテーブルへの集計

Talendのご紹介
EclipseベースのETLツール
Javaによる拡張が可能らしい

ジョブを単体のJarにビルド・実行も可能
スケジューリング、監視、サポートはEnterpriseバージョンで提供

サンプル
csvの時点で複数のファイルに分割
Redshiftへの並列ロードのため

ChangeDataCapture-CDC
 データのロード先がファクトテーブルの場合、
通常日付や識別子などを抽出条件に使用
差分データの抽出が非常に難しい

大量のレコードを抽出するばあい、メモリの枯渇を防ぐためにカーソルを利用
抽出、分割後にファイルを圧縮することでS3のup時間を短縮

パラレルにupすることでトータルのup時間を短縮できる

設計のポイントーupload
 クライアントのスペックCPUコア数で並列度を決める
 S3の先頭文字列4をばらけさせる

Transform処理をどこで実行するか
1.AWSにアップロード前のオンプレ側
 転送時間の削減、オンプレ側にリソースが必要
2.S3ないのファイルをEMRでバッチ変換(推奨)
R RedshiftからTransform処理をオフロード、Haddooop関連技術がひつよう

3.SQLで一時テーブルから本番テーブルへ
Redshiftの負荷があがる

EMR、フルマネージドなHadoopを提供。
Hiveによるデータ変換の例

PowerShellでAWSCLIとHiveスクリプトを実行、、
AWSCLIの呼び出しは非同期実行なのでフローの中にくむのが難しい

設計のポイント、Transform
・データの変換処理場所
AWSではEMRが便利


Redshiftへのロード
単一ファイルの指定では特定のコンピュートノードのみ

 

ここで睡魔が...orz

 

まあ大量のデータを扱う関係でいろいろ並列にして高速化する勘所があるのがなんかわかった気になりました。

 

・TA-05 CodeDeploy,ElasticBeansTalk,Opsworks,CloudFormationなどの比較

 ElasticBeansTalk、OpsWorks、CodeDeploy、CloudFormation

どのように違うかというお話

船崎さん
業種を問わず支援してるSAの方

EC2、RDS,ELB、S3を使うケースがとても多い

code、build,test,deploy,provision,monitor
という一連の流れとのサービスの関連
codecommit(private-git)発表されてるが利用できない
CodePipeline(一連の開発のワークフロー、発表されてるが利用できない
ElasticBeanstalk:deploy、provision,monitorが含まれる、opsworksもおなじ
CodeDeployはdeployだけ
CloudFormationはProvisionだけ、
Cloudwatchがmonotrだけ

EBはAutoScalingもふくまれる 

Opsworksは多様なアーキテクチャに対応できるスタックをつくってchefのレシピで管理
LBレイヤもいけるっぽい

codeデプロイ
アプリのデプロイに特化してる
インスタンスのなかにエージェントをいれてエージェントがcoodeデプロイと通信する
Deploymentグループはどのインスタンスにデプロイするかでタグの機能をつかう
Name:Stagingがデプロイ対象とかで判断
Autoscalingグループにタグをつけてそのグループにデプロイとかも可能
デプロイの順序をはんぶんとかぜんぶとか一台ずつとか選べる

CloudFormation
jsonフォーマットに
インスタンスタイプとかAMIとかを指定する
リソースの中にOSのなかで何を実行するとかもかけるらしい

WordPressを題材にして解説してくれるとのこと

ElasticBeanstalk
gitのリポジトリの内容をeb-deployというコマンドでアーカイブ作ってebにアップロードとかできる
デプロイについては、1度に1台とか25%ずつとか全部とか調整が可能

ConfigrationFileで動作中のコンテナをカスタマイズできる。
独自AMIを用いなくても必要なコンポーネントの追加が可能。

CFは頻繁デプロイには向いてない(たしかにDR対策とかで聞くかんじだ)

EBが開発向き、
OWはインフラ連携むき

f:id:smallpalace:20150603074349j:plain

 

やっぱり中のSAの人によるサービスの説明にまさるセッションはないのではと思った次第です。TAのセッションはPSAとりたい人向けにもいいかもと思いました。

 

セルフベースラボに行ってみたところだいぶ空いてたっす。帰りにせんべいもらったのと資格とる関係の有料トレーニングのチラシをいっぱいもらいました。ビジネスチャンスなんですね。

 

では、みていただいてありがとうございました。