のんびりSEの議事録

プログラミング系のポストからアプリに関してのポストなどをしていきます。まれにアニメ・マンガなど

Developers.IO 2017に参加してきました

今年も開催された、Developers.IO 2017に参加してきましたので、ざっくり感想をまとめました。

dev.classmethod.jp

午前はあいにくの雨で、しかも傘を会社に置き忘れてもっていなかったのですが、会場はいつものSAPジャパンさんで行われ、半蔵門駅に直結していたため、ほぼ濡れること無く、会場入り出来ました。マジ感謝ですw

パンフレットやステッカー等

今年はクラスメソッドテクニカルライブラリーという、実際にAWS移行に役立つテキストが入っており、とても太っ腹だなと思いました。

f:id:tatsu_tora:20170701195049j:plain:w250 f:id:tatsu_tora:20170701195120j:plain:w250 f:id:tatsu_tora:20170701195142j:plain:w250 f:id:tatsu_tora:20170701195208j:plain:w250

あと、おみくじガチャなるものがあったので、やってみた結果、大凶でした。。。w

f:id:tatsu_tora:20170701195226j:plain:w190

参加したセッション

今年、参加させて頂いたセッションは以下の通りで、これらを中心にまとめました。

  • 【C-1】 クラウドネイティブなRDBMS Aurora
  • 【C-2】 AWSで始めるビッグデータ分析
  • 【A-3】 開発環境でのDocker活用事例と本番運用に向けて考えたこと
  • 【A-4】 Amazon Elasticsearch Service の使いドコロ

Colud Native RDBMS Aurora

Auroraの特徴

  • 管理が簡単
  • 高いスケーラビリティ
  • 高可用性と耐久性
  • MySQL 5.6, PostgreSQL 9.6
  • 高い安全性
  • 安全マネージメント型
  • スループット
    • 1つ1つのクエリが大きい場合はパフォーマンスがいい場合も
    • バッチは合わない場合も

機能

Storage

  • 論理的な共有ストレージボリューム
  • 2重障害でも書き込み可
  • 3重障害でも読み込みは可

Quorum -> 多数決

Log Structured Storage
  • データをログのように先頭から追記する
  • レコードはsequence numberを持つ

レプリケーション

  • メタデータを渡す
  • 間にCacheを介している
  • Cacheを独立させている

フェイルオーバー

  • SlaveがMasterに昇格
  • 昇格したタイミングで全Cacheをパージする
  • そのため、1~2秒オフラインになるので、要注意

Lambda to Aurora

  • 実装はストアドプロシージャ(非同期)
  • トリガーやイベントスケジューラと組み合わせ可

IAM

Database Cloning

  • 即座にDBデータを複製
  • クローン先で変更したときにコピー
  • 削除してもデータが増える

Database backtrack(まだ未搭載)

  • DBデータを任意の時点に高速に巻き戻す

高速フェイルオーバー

  • MariaDB Connector/Jを使用すると各ノードのステータスを判断してWriterへ接続出来る

所感

最初はAuroraについて、名前程度しか、知見が無かったので、RDSとは別に有るものかと思ってましたが、Amazon サービス内のDBエンジンという位置づけらしく、MySQLPostgreSQLとの互換があるとのことで、RDSでMySQLPostgreSQLという選択肢から、RDS でAuroraという選択肢もケースバイケースで有りかなと思いました。

AWSで始めるビッグデータ分析

  • データ分析をパイプラインで考える

    収集、前処理、保存、分析、可視化

  • 各サービスが何に最適化されているか、最適化された結果のトレード・オフは何か

    スループットレイテンシー、スケーラビリティ、上限値、コスト…

  • パイプライン上のそれぞれのジョブに最適なサービスを選択する

収集

データタイプに着目

集めたデータはS3に集約

前処理

  • バッチ -> EMR, EC2
  • リアルタイム -> Lambda, Kinasis Analytics

分析

  • 固定されたスキーマ -> RDS, Redshift
  • スキーマレス -> DynamoDB, ERM, Athena, ElasticSearch Service, ColudSearch

可視化

Redshiftパフォーマンスチューニング

テーブル設計が重要

  • 分散キー
  • ソートキー
  • 圧縮タイプ

Redshift Spectrum

  • S3上のファイルに直接クエリ操作可能
  • クエリ単位の課金
  • データロード不要

EMR

Athena

  • マネージドPresto
  • サーバレス
  • S3王のファイルにクエリ操作可能

Kinesis Streams

  • 24h ~ 7day
  • 遅延は1秒未満
  • Autoスケールは出来ない

Kinesis Firehouse

  • 収集と配信
  • S3, Redshift, ElasticSearch Serviceにデータを配信できる
  • Autoスケール可
  • ストリームデータに対してLambdaで実行可能

Kinesis Analytics

  • ストリームデータに対してSQL操作可能
  • Autoスケール可

QuickSight

  • BIサービス
  • AWS内外のデータソースにアクセス可能

所感

実は丁度、進行中の案件でSparkを中心とした分析基盤の構築を進めているところで、AWS内で構築するならと言う前提で設計をしていたので、自分のイメージに近い構成で紹介されている部分が多かったので、だいぶ自信につながり、安心して実装を進めていけそうなイメージが掴めました。

Docker活用事例

開発環境で使うメリット

  • リソース消費が少ない
  • 再作成が用意
  • ポータビリティが高い
  • エコシステムを利用できる

OfficialとPublic

  • Officialのものは、直接イメージ名でpull出来るもの(通常はusername/image-name)

docker-compose

  • 複数のコンテナをまとめて管理
  • 複数のコンテナのネットワーク管理

AWS本番環境でDocker

メリット

  • サーバ設定はDockerfileに集約
  • 役割が明確
  • ビルドやデプロイが早い
  • 安心してデプロイ出来る

  • Docker Swarm

  • kubernets
  • ECS

ECS

  • AWSとの親和性高い
クラスタ設計
  • リミット
    • CPUリミット 予約するCPU割り当ての最小数
    • ハードメモリ制限(指定が必須)
    • ソフトメモリ制限
  • スケーリングとインスタンスタイプ
  • アプリケーションの特性ごとにクラスタを分割する
  • コンテナ配置戦略
デプロイ
  • デプロイフロー
  • デプロイ戦略
ローリングアップデート

ダウンタイム0でdeploy出来る

ロギング

  • クラスタインスタンスのログ
    • CloudWatch Logsに出力できる
  • コンテナのログ
    • awslogs logging driver(STDOUT -> CloudWatch)
    • fluentd logging driver(fluentd -> S3, Logentrie)

モニタリング

  • アプリケーション
    • ログ監視
    • パフォーマンス監視
  • コンテナ
    • リソース監視
    • ディスク監視

所感

Docker中心の話が半分、ECS中心の話が半分といった割合だったため、個人的にはECSをもう少し掘り下げた内容だったら満足したかなと。

Amazon Elatic Search Service

https://speakerdeck.com/shinjifujimoto/amazon-elasticsearch-service-falseshi-idokoro

  • 適合率 -> 適切なドキュメントが多いと高い
  • 検索システムにおいてソートは重要

    • フリーワード検索ではマッチ度でソート
  • プライマリーシャードの数は変更できない

Analyzer

  • Cahactor Filter : 検索に不要な文字列は取り除いてくれたり出来る
  • Tokenizer : 単語他院位で分かち分け
  • Token Filter : 品詞のつなぎ部分?(はとかのとか)を除去してくれる

AWS上での選択肢

  • Amazon CloudSearch (Solr)
    • 機能の制限有り
  • EC2上に構築
  • Amazon ElasticSearch Service
  • Elastic Cloud
  • Elastic Cloud Enterprice

所感

こちらに関しても、丁度ElasticSearch絡みの案件を進めていたところで、今まで駆け足でElasticSearchをやっていた部分が多かったので、知見の再確認がとれて、参考になりました。

全体を通しての感想

AWSのシェア率と平行して、参加人数も徐々に増えていっている感じがあり、まあAWSに限らずGoogle CloudでもAzureでもいいけど、どれかのPaaSに特化したスキルを持っている事は、今後のエンジニアのキャリアパスに有利に働くということを確信しました。

その他のセッション内容については、公式ブログで随時、更新されていくと思います。

dev.classmethod.jp