JAWS Days 2019メモ

AWS IoTのベストプラクティス」それホント? 10:10~

  • ソニー森本さん、AWS園田さん

  • 事例:マルチファンクションライト

    • スピーカーもついてる、家電の操作もできる
  • 1 デバイス証明書の管理

    • どうやって個別の鍵をセキュアに埋め込むか?
    • あとで配信する場合は?FOTAはできるけど
    • ファームウェア配信からのCSR送信で解決
      • 秘密鍵が外に出ないのがポイント!
      • でもなりすましとかいろんな対策はしている
    • 正攻法は工場で組み込む(セキュアな場所に格納できるので)、だけど。。
    • DeviceBootstrapパターン
      • 証明書が漏れたときのリスクも分析しておく!!
        • 個別にAWS IoT側でBANできる
        • Device Defenderで複数のクライアントIDが同じ証明書を使っていることは検知できる!
  • 2 WebAPIも使いたいんだけど

    • AWS IoTの経路を使えばいいが・・・
    • データ分析基盤に送るとかはやっぱりWebAPIへ投げたい
    • 双方向でやる必要がないログとか、まとめて送りたいとかはWebAPIがいい!
    • APIの認証を作り込む必要あり。
    • ただ、MQTTSを使ったほうがTLSハンドシェイクを抑えられて省電力
  • 余談:AWS IoTのお値段が高い!(高かった)話

    • 2018年にいきなり安くなったそうですw
      • メッセージサイズが512Byteから5KBに!(値段で言えば10分の1)
      • 使ったコンポーネントごとに課金、で安くなった
      • メッセージブローカを経由しないメッセージは更に安く(クラウドに上げさえすれば良いデータ)
  • 3 IoT CoreのLogging

    • AWSIoTLogsV2
      • JSONログになった!
      • Logs Insightと相性がいい
        • クエリ速度速いけどパケ死に注意!
        • なぜ速いかは「企業努力」www
  • 4 大量のメッセージ送信

    • 緊急地震速報みたいなユースケース
    • コネクションあたりの秒間Publish数の上限緩和はできない
    • アカウント単位の秒間Publish数は相談可能とのこと
    • なので、Topicを分けるのがプラクティス
    • 送りっぱなしでACKは返さない、送ったあとAPI叩くとかすると受け側が死ぬので注意!
  • 5 コネクションの切断検知

    • シーリングライトの壁スイッチ問題
      • スイッチオフすると主電源が落ちる
    • LWTをサポートしているのでこれを拾ってステータスをレポートする!
      • Alexaではこの対応ができてないとスキルの審査が通らないよ
      • ただリアルタイムではないので・・・
  • 6 Shadowの使い方

    • オフライン時にデバイスへのメッセージ送信が不要なので、Desired使わずにシンプルにできる
    • エラーを返すべきケースとか、1つのコマンドで複数デバイスが動く、などはShadowでなく
    • MQTTのPub/Subがいいシナリオ

SAに相談するのがいいよ!で締め。IoTはアップデートも速いので。

RDSリファクタリングと異種間DB移行の戦い - Amazon DMSを使った止めずにリファクタリングする手法

  • オミカレ 曽根壮大さん
  • 満席!人気セッション!
  • 資料はそーだいさんのブログで既に公開されているとのこと

    • すでに見たやつかも
  • 婚活サービス、8年もの、これのDBリファクタリング

  • 趣のある謎のデータww
  • 非正規化してパフォーマンスあがるのはSelectだけ。コードは複雑化するはUpdateは遅くなるわ。

  • Refactoring Database 英語の本はまだある、日本語はピアソンショックで絶版、プレミアついてる

  • Aurora使うとOSSではないので最悪心中のリスクがあるのでRDS for - PostgreSQLを採用
    • Postgreチョットデキルのでw
  • 商用は高いし(GoledenGateとかな)、OSSは運用コスト高い(作った人しかわからん)しサポート少ないし、でDMS

実際のところ

  • DMSのレプリケーションは数秒は普通に遅延する
  • かっちりやりたいトランザクションとかは厳しい
  • そこをAPI
  • APIのいいところはテストが書ける!
  • カナリヤリリースできる、ロールバックしやすい
    • 安心感が違う
    • 既存がでかすぎてロジックがよくわからないときにも
  • DMSは一時的な利用を想定したものなので、常時上げておくといろいろ不都合があるお話
    • リードレプリカの昇格はMackerelで検知してDMSのCFnを書き換えるようなタスクを書いたとか
  • RDSのログを監視しよう

    • 当時、RDS for PostgreSQLはCloudWatch Logsに対応してなかったそう
    • Aurora(Postgre互換)は今もない模様
    • なので、MackerelプラグインPHPで書いたっぽいお話
  • MySQLのZero Dateへの止めどない怒りw

  • UTCで揃えておいたほうがいい話

DBのせいでアプリコードがおかしくなってきたら、覚悟を決めてDBをリファクタリング

  • Q:ZeroDateどういれた?
    • A:マイナスインフィニティ、1年1月1日、UnixTime初期値などが考えられる
    • ORマッパーの対応、誕生日とかのからみで1年1月1日に。

ランチセッション3つ

気になるやつがそろったところをまとめて聞く

  • Spotinst 日商エレクトロニクス宮野さん
    • Spotinstすごく気になる
  • Teraform TIS横井さん
    • 解約時のリソース削除は手動でやりたくない、たしかに。
  • セキュリティテストの自動化 シノプシス伊藤さん

至高の CI/CD パイプラインを実現する5つの約束

  • ポジティブな Toriさん 小西 宏樹さん

  • 立ち見も満席の人気セッション!

    • 飛べない鳥さんw
    • 事前に録画した動画を流す形式
  • つい手動でやりがちな作業を断固として拒否する強い気持ちが重要

  • ビジネス層への理解を得ること、そのために必要なメトリクスをとって見えるようにしておこう

AWS Transit Gateway を使った新しいセキュリティ手法を試してみた

  • F5 伊藤 悠紀夫さん 39歳前厄

  • 便利になる一方で全てがつながるとセキュリティに問題あり

  • Reference Architectureも発表されている
  • セキュリティ用のVPCを用意する
    • そこにF5製品で実装したよというお話(したよというか紹介)
  • F5 Big-IpのWAF機能
    • ログはAWS Security Hubに対応しているので、Hubで集中管理できる
  • AWS WAFのマネージドルールにF5のエンジンがあるよ
    • 本日イチオシはボット対策ルール
    • POSTのペイロードまでは見れないが
  • OutboundのURLフィルタルールもF5で

    • Squidを自前で立てると大変(性能面とか、フィルタの柔軟性)
  • お客様事例:PIEM様 ブライダル業務効率化アプリ

    • 機微情報を扱うので情報漏えいは絶対にできない
  • お客様事例:某B2C検索サイト  - DDoSやBot攻撃でランニングコストを増加させない

AWSセキュリティ入門】徒然なるままに責任共有モデルの下から上までそこはかとなく解説

  • 大竹 孝昌さん

  • 早めに終わったので最後の10分ぐらいを聞く

  • 資料いい感じだった・・・社内に見せたい
  • 「これはセキュリティの基本なので。左手は添えるだけ。」

PenTesterが知っている危ないAWS環境の共通点 ~攻撃者視点よりお届けする狙われやすいAWSの穴~

  • 洲崎 俊さん、一ノ瀬 太樹さん、北原 憲さん

  • 狙うならやっぱりクレデンシャル!

  • キーは特に注意、の件。ローカルでも安全ではない。
  • SSRFでメタデータが取れる件。
  • 窃取されたクレデンシャルから、さらにIAMポリシーの不備で権限昇格される例。

    • Attach*Policyが付与されている場合
    • PassRole,CreateFunction,InvokeFunctionからの昇格
  • Pacuという攻撃デモンストレーションツール

    • これでPassRoleからCreateFunction,InvokeFunctionで昇格する
    • デモでは奪ったユーザーがPassできるRoleに test_lambda_adminがあり、 それがAdministratorAccessのPolicyがあるため、なんでもできてしまう
      • 奪ったユーザーのロールにAdminを付与する
    • さらに新規のアクセスキーを作ってバックドアにする
    • Admin権限があればSystemsManagerでOS侵入などもツールで簡単にできてしまう
  • アプローチ

    • 漏洩の防止、悪用の抑制、悪用の検知
    • IAMのベストプラクティスに従って対策しましょう
    • ツールも活用
      • AWS TA
      • classmethod insightwatch
      • netflix security monkey
    • 異常検知は「普段の状態」を知っている必要がある
      • 普段からログを見ること大事
      • GuardDutyも活用(とりあえず入れる、でもいいぐらい)

AWS AllStars

ちゃんと時間内に終わって感動したw

JAWS DAYS 2018メモ

keynote-1 A story of cloud journey with Community

  • 今回会場は1800人、スタッフ250人
  • ライブストリーミングあり(今回初か?)
  • 韓国の人結構来てた。
  • 楽しんで、登壇・アウトプットして、Make a Different。

Enterprise Serverlessを実現するための信頼性エンジニアリング

  • SERVERWORKS 照井さん
  • CNCFのServerlessの定義
    • 「使わないときはコストがかからない」→DynamoDBのキャパシティ予約は?
  • 信頼性とは?→RASIS
    • 自分で確保する
    • シンプルに考える
    • シンプルに保つ
    • マインドを変える、アプリケーション層で解決する
  • 結果はクライアントが取りに行く。だが、Push型ができるかが課題。AppSync?(Pushing via Websocket)
  • ACID特性がない店の対策→非正規化、条件付き書き込み、RDS使うなら非同期書き込み
  • テストは必ず書く →ワイルドサバンナ登場w
    f:id:morimop:20180311142145j:plain
    ワイルドサバンナ
  • 継続的なE2Eテストを、トレースできるIDを入れて

keynote-2 AWS Technical Evangelists Special talk session @D

  • Dトラックで聞くと静かだな(メインはA)
  • 機器トラブルで映像でないw
  • 復帰した

    AWSのアップデートにどう追いつくか

  • 興味のあるものを絞って、そこを追いかける、プラス2つか3つぐらいを見ておいて広げる
  • シャーディングがいい
  • 学び方を学ぶ
  • 好奇心を持って学ぶ

    AWSビギナーが学ぶには何がいいか?

  • は飛ばす(ぉ

    認定エンジニアになるために必要な学び方は?

  • アソシエイトはAWSわからなくても大丈夫
  • プロフェッショナルはAWSを詳しくても正答率85%
  • アーキテクチャを知る必要がある。知るには顧客の事例を観ること。
  • 認定で学ぶこととプロジェクトで学ぶことは違っている
  • クラウドの特徴はセルフサービスでハンズオンでできること。どんどん触って覚える。

    インフラエンジニアにおすすめするプログラミング言語は?

  • プログラミングの話をする場合、テキストエディタの議論があります、で笑い
  • 同僚がすでに使っている言語はなにか、それを学ぶべき
  • Python
  • Javascript
  • 言語はツール。大事なのは問題解決。
  • ビルド言語とスクリプト言語を1つづつやるのがいいのでは。

    学ぶのにおすすめのフレームワークやツールは?

  • Pythonです
  • 1つのものを何十年も使っていくということはありえない。継続的に学ぶ、ナレッジのリフレッシュが必要。
  • 日々新しいものを学ぶ時間を作ることをお勧めする。
  • Well-Architected Frameworkを学んでください

    5年後にもITエキスパートでいるには

  • Pythonですよ
  • 新しいものがでてきたとき、それは洗練されていないので、あれもできない・これもできないとなる
  • が、そこで心を閉ざしてしまうとその先に陳腐化する
  • なので、ちょっと足りないところでブログに書く。今後こうなっていくだろうということを書く。
  • 2014年当初、Lambdaを発表したときみんな興味はなかった。Workspacesとかのほうが注目された。
  • しかし今は違う。

    ある一人がk8sを学び、苦労してEC2上にk8sをデプロイした。その2ヶ月後、AWSのがEKSとFargeteを出した。自分は今後も同じことが起きるのかと恐れた。この人になんとコメントする?

  • 難しいこと言うね。
  • 顧客のニーズを見ていく。AWSも需要が大きいか、あるのかを見ている。例えば60%以上のワークロードでk8sが使われているということがわかれば、AWSはサービス化を検討するだろう。
  • 学んだことは無駄にならない。学んだことは付加価値として提供できるはず。自分たちで構築できることは選択肢になる。マネージドサービスを使うことに価値があると思えばつかっていただければいい。

AWSのコミュニティの他との違いは?

  • インフラのコミュニティは大体が暗い。AWSの日本のUGは明るかった。

    日本ではEC2の利用料が多いが、これは日本独特?

  • 最初はEC2だから、そこは変わらない。

    今後のITトレンドには何がありそう?(IoT,AI,ML,Edge computing以外)

  • 今までも色々あっtが、ハンズオンが大事だと思う。
  • 今後コードを書くことが減っていくかもしれないが、Jeffはいまもコードを書いて、ハンズオンしている。
  • みなさん自分自身のリージョンだけ使っているが、グローバルに展開できるサービスが増えている。他のリージョンへの展開もやってみるのはどうか。Grobal DynamoとかInter-region peeringとか。そういうトレンドが来るだろう。

ユーザー企業におけるサーバレスシステムへの移行

  • ダイソーの丸本さん
  • 大規模システムの課題
    • 影響範囲
    • テストが大きい
    • ベンダーの依存度が高くなる
  • 密結合の課題 システムが小さくても密結合では意味がない
  • インフラ管理の課題 アプリ、ビジネスに注力したい
  • スケールアップしたくない
    • 5,050店舗に7万商品を45日やったら159億レコード。
    • Oracleでやったら終わらなかったそうでw
  • アーキテクチャ
    • コマンドとクエリの分離
    • POSレジデータをS3に送り、SNSでトリガして回す感じf:id:morimop:20180311142756j:plain
      • サーバレスのオンプレ比較の話?
    • 「S3はファイルシステム」というのはどうだろうか。。
    • 「S3はファイル移動が失敗することがある」というか移動させないほうがいいだろうという気がする
    • オブジェクト名のハッシュの話
      • 定常的に100リクエスト/秒か瞬間的に800リクエスト/秒
  • SQSのキューイングパターンの話。冪等性。
  • SNSのPub/Subの話。
    • ダイソーでは基本的にFanoutパターン(Pub/Sub)としている
  • Lambdaの話。最大タイムアウトが5分の件。
    • コードの容量上限50MB。Pandasが40MBあるのでどうしたらいいの?という件。→解決策教えて。
      • AWS Batchじゃないかな?
  • DynamoDBの話。キャパシティ、というわかりにくい概念の話w
    • キャパシティ低めにするとLambdaの書き込み待ちが発生して、前述のタイムアウトにかかった話。
    • ダイソーでDynamoDBのキャパシティが100万円ぐらいかかる」ってすごいな。
    • Lambdaの同時期同数を制限して解決させた
  • 開発手法の話。Cloud9+Github+CircleCI+CloudFormation。
  • SourceTreeも使ってます
  • CFnで対応していない(例えばLambdaの同時実行数)は、CircleCIの最後でCLIを叩いている
  • 実験環境、開発環境、検証環境、本番環境とある
  • 自動テストの知見ほしい。テストコードのボリュームがやはりおおい。

    まとめ

  • アプリエンジニア的に、サーバレスにして「最初は大変だった」「制約があるので迷わない」
  • インフラエンジニアの評価は90点。満点じゃないのはAWSも結構サーバ落ちる。でもDesign for failur。
  • アプリケーションエンジニアの評価は90点。サーバレスにするとデザインが良くなってくる
    • イベント・ドリブンになるからかな??
  • 広島で働きたい社員募集!いっしょにやるひと募集!

コンテナを守る技術2018

  • JAWS-UGコンテナ支部の中丸さん
  • 「コンテナごとにIAMとSGを設定できるよ」知らんかった・・・そうなの???
    • awsvpcモードでできるそう。
    • Fargateもこの仕組。
  • ECSのタスク定義(Dokcerネイティブのオプションも多数ある)を厳密に定義しよう
  • docker-benchかけよう。AWS公式でLambdaで定期実行してアラームで通知しよう。
  • aquaというツール(商用)中丸さんおすすめ
  • NeuVectorのデモの動画
  • セキュリティポリシーはチームで、みんなでつくろう

API Meetup Tokyo #19 行ってきたメモ

API Meetup Tokyo #19 〜六本木ヒルズスペシャル〜に行ってきました

  • ヒルズにいるapigee@GoogleさんとPivotalさんなのでヒルズスペシャル!

Googleが提供する機械学習API

  • Google Cloud Platformチーム デベロッパーアドボケイト 佐藤 一憲(@kazunori_279) さん

  • GCP

    • AWSみたいなやつ」で会場ウケる
  • ニューラルネットワーク(NN)

    • 学習できる関数
    • 「やってみないとわからないが」
      • ゲームならチートや優良プレイヤーの検知
    • PlayGroundのデモ
      • 根気強く答えを教えてやると学習してくる
      • 単純な線形分割を1つのニューロンとすると、それを階層化する
      • ニューロンの結びつき(Weight)の強弱を変える
      • これをノンプログラミングでできるのが、いまのAIの盛り上がり
      • ニューロンの階層、各階層の数はセオリーがない
        • みんな試行錯誤でやっている・・
        • ルールベースでないところがNNの強み
          • cf.チェスのディープブルー
        • 要は データの特徴を探し出す
      • ニューロンの階層が深いと「ディープラーニング(DL)」
  • Googleでは10を超えるサービスでDL
  • Cloud Vision API
    • 一番使われているのはセーフサーチ(エログロ系のブロック)
  • Cloud Speech API

    • 文字起こしに使える
    • コールセンターなどの引き合い
    • さらにNatural Language API自然言語っぽく整形、感情分析
    • ツイートなどから製品や店舗の評判の分析にも
  • TensorFlow

    • よくある引き合い、既存のAPIでは対応できないもの
      • CTやレントゲンの画像からガンを見つけたい
      • 中古車の画像から車種などを特定したい
    • 機械学習で必要な数学の知識がなくても使えるのが強み
    • 結局NNは行列演算になるので、得意なのはGPU
    • スケーラビリティを念頭に置いたフレームワーク
    • 学習結果自体は数十MBぐらいの容量になるのでスマホにも入れられなくはないサイズ
    • コミュニティ、エコシステムの厚さ
    • SnapdragonがチップセットレベルでTensorFlowをサポートするなど
      • CPUでの認識より10倍以上早いというデモ
    • きゅうり農家さんの事例
    • からあげロボット
      • 食品をつかむのは難しい、というところを学習
    • DCGAN
      • お手本を多数インプットすると、それに近いものを生成してくる
        • アイドルの顔を多数見せて、アイドルっぽい顔写真の生成 こちら?
      • DeNAはプレイヤーごとのアイコン作成を実験中
    • GoogleではTensor用のASICチップを大量に入れているのでTensorに最適化されている
      • なのでGCP使うといいよ!
  • Cloud Machine Learning Engine(ML Engine)

Pivotalが推進するAPIとプラットフォームの活用

  • Pivotalジャパン 市村 友寛 さん
  • VMWareとGE出資でPivotal
  • Spring盛り上がっている!

  • アジャイルメソドロジーを覚えて帰っていってもらう活動もしている

    • Circle of Code
    • イデア→プラン→コード→ビルドパイプライン→デプロイ→フィードバック→(アイデアに戻る)
      • Pivotalで一連のアクティビティをサポートできるよ
  • 朝礼は9:06分

    • 9:00だと来ない、9:10だと遅れだすらしい
    • 円陣組んでやってる
  • イデアからプランへ

    • トーリーにする
      • コードを書き出せる程度に細分化するプロセス
    • Pivotal Tracker
      • SaaS型PJ管理ツール
      • 対抗はRedmineとかJIRA
      • トーリーを管理できるのがウリ
      • CloudFoundryのプロダクト管理にも活用
      • トーリーが1タスクになる
        • プロダクトマネージャーが承認して開始、受入もプロダクトマネージャー
          • (難易度を入れられるところも含めスクラムみたいだ)
        • トーリーの状態管理にUIもAPIもある
          • わかりやすい事例はGithub連携
          • コミットコメントにステータスとストーリIDを埋めるとWebhookでTrackerに
  • spring framework

  • Concourse (build pipeline)

    • CloudFoundryにおけるCI/CDの課題
      • 異なるアーキテクチャ、プラットフォーム、インフラでの動作確認やデプロイ
      • Jenkins職人作るぐらいなら・・・・
    • リソースにGitやS3、Docker、Bosh.ioつかえる
    • パイプラインの定義はYAMLで書ける
      • Concourseが動いていれば、どこでもパイプラインを持ち出せる
    • プロジェクトとパイプラインの統合
      • git -> Concourse -> Pivotal Tracker
      • APIを駆使して色々なものをパイプラインに任せられる
  • フィードバック

    • Spring Cloud Sleuth + Zipken
      • Zipkin
        • どのエンドポイントがボトルネックになっているか を一元的に表示
    • 何かが遅いというときに
      • Sleuthで仕込み
      • Zipkinで集める
  • Pivotal Labsでベストプラクティスをお教えしています!」

次回予告

  • 次回番外 福岡開催
    • 国家戦略特区である福岡
    • 5/19(金)@ヌーラボ福岡オフィス