Skip to content

Developers.IO 2019 Tokyo

   

https://eventregist.com/e/191004-developers-io-2019

1年ぶり2回目の参加です。

去年は秋葉原でしたが、今年は日本橋での開催。 会場が広くなってトラック数も増えてどれを観るか悩みますが、AIとかIaCを中心に見ていきたいと思います。

10:30 11:15 認証の標準的な方法は分かった。では認可はどう管理するんだい?

都元ダイスケ

  • 認証のでファクトはOIDCなど
  • Key(鍵)とLock(錠)の違い
    • リソースにかけるもの(Lock)
    • ユーザーに渡すもの(Key)←狭義の認可
    • keyでlockを解除する(認証)
  • 積極的アクセス制御(NG時に拒否する)
    • Springでいうと @PreAuthorize, @PostAuthorize
  • 消極的アクセス制御(NG時に加工する)
    • 返すときにフィルタリングするとか
  • ISO 10181-3 Access Control Framework
    • 2万円超え
  • ADF
    • ADIを使って判定するファンクション
  • ADI
    • アクセス制御の条件
    • 無数に考えられる
  • アクセス制御の要素整理
    • 操作するヒト(ユーザー)、操作されるモノ(オブジェクト)、操作自体(アクション、パラメータ)
  • アクションごとにアクセス制御を行う
    • AWS SQSも同様
  • 何をADIとして扱うか
    • リクエストしたアクション名
    • ユーザーが持つ権限
    • アクションのパラメータはADIとしないほうが良い
      • アクション自体を分けるべき
  • 事後消極アクセス制御を使わない理由
    • 手間の割に恩恵が少ない
    • うまく動かないときの原因特定が大変
  • リソースごとのアクセス制御
    • オブジェクトのオーナーというADI
  • ACL:アクセス制御リスト
    • リソースが持つプロパティ
  • まとめ
    • ADIはKey、ADFがLock
    • アクセス制御は4つに分類
    • AIDは無数にある
  • おまけ
    • RBAについて
    • 権限は個人ではなく、役職(ロール)につける

11:30 12:15 「今」のAI技術と「3年後」のAI技術のご紹介

清野剛史(せーの)

  • AIで作曲した曲からはじまる
    • Googleアシスタントで認識できた
  • 進化の過程で起こること
    • 環境が突然変異する
      • 適応できるかできないか
      • 環境の変化を読む
  • 現在は第3次ブーム
    • 第1次はコンピューターの性能に限界があった
      • パーセプトロン
      • ニューラルネットワーク
    • 第2次は演算能力が増えた
      • ルールベース(エキスパートシステム)
    • 第3次でさらに演算能力が増えた
      • ディープラーニング
        • ニューラルネットワークの中間層を多段化
  • AWSの定義
    • 機械学習
      • アルゴリズムを学習・育成させること
    • AI
      • ユーザに付加価値を与えるビジネスロジック、サービス
  • AIのビジネスステップ
    • 効率化、自動化
      • 人件費の削減
    • 付加価値
      • 新たな体験の提供
      • 求められる半歩先
      • 熟練者の行動を機械学習して初級者に提供
        • 雪国の車運転とか
    • 多様性
      • 「あなたのため」の価値
        • パーソナライズ
      • ビジネスの種
  • 3年後
    • Ambient Computing
      • コンピュータの存在を感じさせない
      • 機械が機械を操作
    • BMI
      • 脳波を使って操作する
      • リストバンドで計測できるようになってきている
    • EMG
      • 筋肉の動きで操作する
      • 仮想キーボードが実現されている
    • 環境の変化
      • 5G
        • 低遅延、大容量、同時接続
      • LPWA
        • 自由に使える電波帯を使う
        • Amazon Sidewalk
          • メッシュネットワークを構築
      • Project Kuiper
        • 人工衛星を低軌道で飛ばす
      • 量子コンピューティング
        • 0,1ではなく、そのあいだの状態を持つ
  • 10年後
    • AGI(Artifical General Intelligence)
    • 汎用(ジェネラル)AI
      • 「設計」を「学習」する
      • WBAアプローチ
        • 脳全体をシュミレート
        • 脳の各部の動的な連携
  • シンギュラリティは2029年(10年後)

12:30 13:30 CI/CD と Cloud Security ~継続的な脆弱性診断・運用のベストプラクティス~あと Security Consultingの最新情報もしますよ~

エフセキュア 河野真一郎 氏

  • ランチセッション
  • クラウドのセキュリティコンサル、物理セキュリティコンサルもやってる
  • MS-DOS時代からセキュリティやってる会社
  • 自動化セキュリティ
    • F-Secure Radar
      • APIインターフェースが公開されている
      • エージェントインストール不要
      • 動的ページのスキャンは不向き
      • サーバー台数での課金(参考価格)
        • コンテナ1イメージで1サーバー扱い
    • 脆弱性が1つでもあれば攻撃されうる
  • クラウド環境セキュリティコンサル
    • pre-study
  • クラウド環境アンチウィルス
    • 月額1000円以下

13:45 14:30 AWSのすべてをコードで管理する方法〜その理想と現実〜

濱田孝治(@hamako9999)

  • CFnは強い(イメージ)
  • 使いこなしが難しい
  • 使わないことで、AWS利用の効率化の可能性を捨てることになる
  • IaCを理解する
    • コード(テキスト)でインフラを定義する
    • リソースの状態を定義するので、状態が変わらなければ何度実行しても変わらない
    • aws cliは「処理の定義」なので、実行するたびに更新される
    • テンプレートの記述はJSONではなくYAML推奨
  • CloudFormation
    • メリット
      • インフラの管理を簡略化
      • インフラを簡単に複製可能
      • インフラの変更管理が可能
  • CLIで実行する
    • CFnの実行はマネジメントコンソールからとCLIからの2つある
      • コンソール使っていると再現性の担保に問題がある
    • 実行結果を見るのにGUI使うのはあり
  • create-stack, update-stack使わない。deploy使う。
    • コマンドにべき等性がない
    • 関連コマンドが多い
  • スタック名の重複に注意
    • チェンジセットを確認すれば事前に気づける
    • --no-execute-changesetを指定する
  • テンプレート(スタック)の分割
    • 依存関係がファイル名でわかるようにプレフィクス(番号)振る
    • スタック感でパラメータ参照する方法
      • クロススタック参照
        • OutputExportして!ImportValueで参照する
        • 参照があると参照元の削除や変更ができない
      • ダイナミック参照
        • パラメータストアやSecretManagerの値をテンプレートに書く
      • シェルで頑張る
        • クロススタックでexportできないときにcliで取得して加工する
  • 運用上の辛み
    • スタックの作成削除が帰ってこない
      • 何を持て完了とするか
      • サービス定義に不備
        • エラーが出ないでタイムアウトまで待ってしまう
    • 対応していないプロパティ
    • 循環参照
    • Conditions
      • テンプレートで条件分岐を書く
        • 可読性が悪い
        • 環境を分けたいならテンプレート自体分けてしまう
    • 複数人で操作したときの問題
      • ドリフト検出で気づける
      • AWS configでチェックできる
  • パイプラインで自動化
    • どこで実行する?
      • クライアントPC
      • EC2
      • パイプライン

14:45 15:30 “やってみた系”技術メディアDevelopers.IOの中身だいたい見せます

鵜飼亮次

  • 240万PV
  • 読者層、25〜34歳男性が多い
  • PCでの閲覧が8割弱
    • 世間的には逆にモバイルが多い。
  • Windowsが5割弱
  • 平均滞在時間2分
    • 読まれている
  • 直帰率8割
    • ピンポイントでの訪問が多い
  • 流入経路
    • 検索系で8割
  • パートナー企業との関係構築に役立つ
  • 社内のメンバーにも役立っている
    • 自己紹介代わりにも
  • 採用にも効く
  • ブログ本数が多すぎてクロールが終わらない
  • 最初の記事は社長が書いたS3の記事
  • テラスハウス型の運用
    • 生産性と即時性を最大化
  • 基本ポリシー
    • アウトプット主義
  • NGルールもある
    • ディスり、比較、非公開内容、裏とりのできていない情報、規約違反、コピペ、個人情報
  • 社内評価にも使っている
    • 四半期ごとの表彰、決算賞与の増額など
  • モチベーション
    • 優越感
    • 知識の定着
    • 知識向上
  • 課題
    • 一気に書きすぎて通知用ツイッターアカウントが凍結された

15:45 16:30 AWS CDKの基本と実例

加藤諒

  • AWS構築の歴史
    • 手順書に沿ってマネコンで操作を行う
      • 操作する時間がかかる、操作ミスが起こる可能性がある
      • AWSのバージョンアップで手順書との乖離が出る
    • スクリプト作成
      • CLS/SDKを使う
      • べき等性、ロールバック処理の作り込みが必要
      • マネコンだと勝手に関連リソース作ってくれるようなサポートが受けられない
    • プロビジョニングツール
      • CFn, Terraformなど
      • 冪等性があり、継続的なデプロイが行いやすい
      • 複雑な条件分岐やループがやりにくい
      • DOM(GoFormationなど)
        • CFnのテンプレートを生成するツール
      • IaaSとしてクラウドを使う時代からマネージドサービスを活用する時代へ
        • IaCの記述量が増えていく
        • 考慮する事項も増えていく
        • IaaS程度の利用だと、CDKはオーバースペック気味
    • CDK
      • コードでかける
        • 型がある言語ならIDEの支援が受けられる
        • 前処理もコードでかける
        • 条件分岐やループを簡単にかける
        • リソース定義を継承して拡張できる
      • 抽象化
        • Lambdaごとに権限管理が必要なとき
          • CFnとかだとLambdaの種類だけIAMロールの定義が必要
          • CDKではインラインポリシーを生成してくれる
      • 複数環境へのデプロイ
        • cdk.jsonに環境ごとのパラメータを設定可能
        • 設定したパラメータはコードで参照できる
  • CDKでテストを実施する
    • テストが必要な理由
      • CDK自体のバージョンアップが頻繁にある
      • 意図した変更になっているか確認したい
    • テストの種類
      • スナップショットテスト
        • 生成テンプレートの確認
      • Fine-grained tests
        • CFnリソースが存在するか比較
        • 意図せずリソース消えてないかも確認
      • Validations tests
  • CDKを使う実際の流れ
  • CDKを学ぶ
    • AWSのドキュメントが充実している

16:45 17:30 DeepRacerで学ぶ機械学習

大澤勇斗

  • DeepRacer League今日の朝終わった
    • 新しいリーグ始まるのかは不明
  • 機械学習とは
    • ざっくりいうと、規則性を学習させること
  • 強化学習
    • 環境とエージェントのフィードバックループで報酬を最大化する状態を求める
  • SageMakerで学習モデルの作成をする
  • RoboMakerでシミュレーションを行う
  • DeepRacerが上2つの面倒なところをやってくれる
  • DRでできること
    • 機械学習や強化学習の流れや概要について体験&学べる
    • 機械学習を使った問題の解き方への落とし込み
    • 報酬関数の設計
  • 1時間の学習で400円くらいかかる
    • 簡単な学習で2〜3時間くらい

17:45 18:30 Developers.IO CafeがなぜアプリからPWAになったのか

亀井栄利

  • タイトルの修正
    • ネイティブも引き続きやる
  • 最初ネイティブアプリだった理由
    • とにかくスピード優先した結果
  • PWAにした理由
    • 開発リソースの不足
    • iOSとAndroid同時リリースが難しい
    • iOSは審査の時間がかかる
    • OSの互換性を気にする必要がある
    • コーヒー飲みたいだけなのにアプリダウンロードしないといけない不便
    • OSごとのUI差分により、店舗オペレーション負担増
    • 新しい体験を高速に実験したい
      • ネイティブアプリを作りたいわけではない
  • VueとIonicを選択
  • 副産物
    • ワンソースでいろんなチャネルに対応
    • LINE
  • 微妙な差
    • レイアウト
    • iOSでプッシュ通知ができない
      • SMS使ったり
  • iPhoneユーザーがSafariプライベートモードで使用する
    • 毎回ログインが外れる
    • Webは危ないという認識(若者)
    • 一度外部アプリに行くとリダイレクトで戻ってこれない(プライベートじゃない方になってしまう)
  • 対策
    • ガワネイティブ
    • ついでにAndriodもTWA化
  • ワンソースメリット
    • すぐリリースできる
    • 開発リソースを体験に集中できるようになった
    • ユーザーが好きなもので体験できるようになった
  • 課題
    • 最適化
    • UIテストの自動化
    • キャッシュ対策