Skip to main content
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
Morning Session:
よくある課題を一気に解説!
御社の技術レベルがアップする2019 秋期講習
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
[AWS Start-up ゼミ]よくある課題シリーズ
• AWS の Startup Team は、
⽇々うけている技術相談から
スタートアップにおける
技術的な課題と傾向を把握
• このスライドは2019年秋時点
での「あるある」まとめ
• 詳細な解説を全てこの資料で
⾏うのでなく、
「こうしたい」に対し
「どう考えてどの資料を⾒れば
よいか」
を⽰す逆引き辞典
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
[AWS Start-up ゼミ] これまでの発表
2017 夏期講習 2018 春期講習 2018 秋期講習 2019 春期講習
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
秋期講習 2019 のアジェンダはこちら
1. コンテナの CI/CD ちゃんとしたい
2. ログってどう設計すればいいの
3. 令和時代の機械学習基盤は︖
4. セキュリティを⾃動化するにはどうすれば
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
1. コンテナの CI/CD ちゃんとしたい
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
コンテナの CI/CD ちゃんとしたい
• よくいただく課題 😂
• 「 コンテナ使いたいんだけど、Build とかあって逆にめんどくさくなってる気がする」
• 「 ⾃動テスト、⾃動デプロイみたいなのやりたいけどみんなどうしてるの︖」
• 本当にしたいことは何︖ 😳
• 開発速度を上げ、プロダクトの価値を向上させたい
• テストをちゃんと⾏い、プロダクトのクオリティを上げたい
• ⾃動化しつつも状況の把握やロールバック等のハンドリングを適切にやりたい
• 思考フロー 😌
1. ⼿作業でのデプロイと決別する
2. リビジョンとデプロイメントを連動させることを考える
3. マネージドサービスを中⼼にパイプラインを構成する
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
「 Continuous Integration / Continuous Delivery 」の略
※ 直訳すると、継続的インティグレーション / 継続的デリバリー
CI/CD は、アプリケーション開発を効率化する仕組みや開発⼿法のことで、
単⼀の技術を指すものではない
0. CI/CD とは
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
1. ⼿作業でのデプロイと決別する
• パイプライン外での構成変更やデプロイを認めない強い気持ち
• 今までと変わるため、初めは⾯倒に感じることも多い
• 実際、⼿作業で変更するケースについての質問はとても多い
• 「⼿作業での変更を⾏わないためにどうすべきか」という思考
• とはいえ緊急時(障害や外部からの攻撃など)は仕⽅がないこともある
• Well-Architected フレームワーク でも⾔及しているが、ビジネスへの影響を考慮し意思決定
することは重要
• ⾮常に例外的な対応をしていると認識し、しっかりと帳尻を合わせる
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
2. リビジョンとデプロイメントを連動させることを考えよう
• リビジョンを⼀意に特定する要素
• リビジョン番号(コミットハッシュ値)
• タグ
• リリースバージョン
• メリット
• 本番やステージングなどの環境に依らず、⼀意なコード/コンテナを利⽤できるようになる
• ロールバックが容易になる
• The Twelve-Factor App でもベストプラクティスとされている
• コードベースとアプリケーションの間に、常に1対1の関係を持たせる
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
2. リビジョンとデプロイメントを連動させることを考えよう
Task Task Task
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
2. リビジョンとデプロイメントを連動させることを考えよう
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
2. リビジョンとデプロイメントを連動させることを考えよう
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
3. マネージドサービスを中⼼にパイプラインを考えよう
• 本来の⽬的は開発の効率化や、プロダクトのクオリティの向上
• CI/CD 環境⾃体の管理運⽤コストを出来るだけおさえるようにする
• 要件の変化に合わせて変化させていくことを考慮する
Amazon ECSGit Repository
Amazon ECR
AWS CodeBuild / CircleCI / etc..
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
3. マネージドサービスを中⼼にパイプラインを考えよう
• 本来の⽬的は開発の効率化や、プロダクトのクオリティの向上
• CI/CD 環境⾃体の管理運⽤コストを出来るだけおさえるようにする
• 要件の変化に合わせて変化させていくことを考慮する
Amazon ECSGit Repository
Amazon ECR
AWS CodePipeline
AWS
CodeBuild
AWS
CodeBuild
AWS
CodeBuild
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
3. マネージドサービスを中⼼にパイプラインを考えよう
• 本来の⽬的は開発の効率化や、プロダクトのクオリティの向上
• CI/CD 環境⾃体の管理運⽤コストを出来るだけおさえるようにする
• 要件の変化に合わせて変化させていくことを考慮する
Amazon ECSGit Repository
Amazon ECR
AWS CodePipeline
AWS
CodeBuildJenkins
AWS
CodeDeploy
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
実装時の参考資料 / 参考になる事例集
• AWS クラウドサービス活⽤資料集
• AWS CodeCommit, AWS CodeBuild (資料)
• AWS CodeDeploy, AWS CodePipeline, AWS CodeStar (資料)
• AWS Summit / AWS Dev Day / AWS Startup Day 講演資料
• DevOps の劇的改善︕古いアーキテクチャから王道のマネージドサービスを活⽤しフルリプレイス︕(2019, 資料 | 動画)
• パナソニックの IoT 家電を⽀えるクラウド基盤の進化 〜 AWS・DevOps 技術適⽤で構築スピード倍増〜(2019, 資料 | 動画)
• AWS を活⽤した「Enterprise DevOps」適⽤への挑戦(2018, 資料)
• AWS マネージドサービスで実現する CI/CD パイプライン(2017, 資料 | 動画)
• その他の記事等
• AWS で CI/CD パイプラインをセットアップする
• The Twelve-Factor App (⽇本語訳)
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
2. ログってどう設計すればいいの
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
ログってどう設計すればいいの
• よくいただく課題 😂
• 「ログ解析をしたいが、ログを垂れ流している」
• 本当にしたいことは何︖ 😳
• サービス / アプリケーションの状況を把握したい
• ⽬的に応じて可視化したい
• 思考フロー 😌
1. ログの種類と⽬的を考えよう
2. ログの設計をしよう
3. アプリケーションにあったフォーマットを考えよう
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
1. ログの種類と⽬的を考えよう
• ログの種類と⽤途を考えるところから始めよう
• アプリのログ、ミドルウェアのログ、OSのログ
• 利⽤状況の把握、調査⽤、監査要件で必要とされるもの
• ⽤途にあったものが出⼒されているか確認しよう
• ⾜りない項⽬はないか
• 環境に応じた適切な情報量なのか
• 秘匿性が⾼いものが出⼒されていないか (たとえば、ID/PASSやメールアドレス)
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
2. ログの設計をしよう
• FATAL、ERROR、WARN、INFO、DEBUG
• development、test、production
• ⽤途や緊急度によって適宜ログレベルを設定する
• 運⽤者がすぐに⾒つけられるところに集約
• 例えば /var/logや、app/logなど
• Cloudwatchlogsや、S3など
• 適切なログの権限なのか
• ログの内容によっては⾒られたらいけない、
変更もされてはいけない
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
3. アプリケーションに合ったフォーマットを考えよう
• 接続元IP
• port
• http status code
• user_agent
• request size
• apptime/resptime
• log_lovel
• loggc
• HeapDumpPath
• Errorfile
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
0.0.0.0 - - [02/Oct/2019:11:04:05 +0000] "HEAD / HTTP/1.1" 200 0 "-" "curl/7.54.0" "-"
0.0.0.0 - - [02/Oct/2019:11:04:06 +0000] "HEAD / HTTP/1.1" 200 0 "-" "curl/7.54.0" "-"
0.0.0.0 - - [02/Oct/2019:11:04:06 +0000] "HEAD / HTTP/1.1" 200 0 "-" "curl/7.54.0" "-"
host:0.0.0.0 vhost:hoge.amazonaws.com port:80 time:2019-10-02T11:10:53+00:00 method:HEAD uri:/
protocol:HTTP/1.1 status:200 size:0 ua:curl/7.54.0 jphone_uid:- up_subno:- referer:-
log_user:- log_track:- dcmguid:- forwardedfor:- forwardedproto:- apptime:- resptime:0.000
upstream_addr:- upstream_status:- upstream_size:-
• 変更前
• 変更後
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
実装時の参考資料 / 参考になる事例集
§ AWS Summit/Dev Day 講演資料(2016 | 2017 | 2018)
§ AWS Start-up ゼミ よくある課題を⼀気に解説︕ 御社の技術レベルがアップする 2019 春期
講習 (資料 )
§ Startup Tech Talks: Data Lake と分析事例集 (2018)(資料 | 動画)
§ AWS の DataLake を使ったデータ分析⼊⾨ (2018) (資料 | 動画)
§ ストリームデータ分析の AWS 設計パターン (2018) (資料 | 動画)
§ AWS のデータ分析⼊⾨ (2017)(資料 | 動画)
§ その他の記事
§ プライバシーに配慮したアプリケーションログ出⼒の設計 (資料)
§ Log4jのloglevel (資料)
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
3. いい感じの機械学習基盤を作りたい
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
いい感じの機械学習基盤を作りたい
• よくいただく課題 😂
• 「環境構築が⼤変」
• 「会社で買った GPU が⾜りなくなってきた」
• 本当にしたいことは何︖ 😳
• ユーザーに価値を届けつつ運⽤負荷を減らしたい
• 属⼈化させず、再現性を担保。パフォーマンスももちろん⼤事
• ユーザ・エンジニア・データの増加に対応できるスケーラブルな機械学習基盤を作って
プロダクトの継続的な価値向上に繋げたい
• 思考フロー 😌
1. できる限りマネージドサービスを使えないか考えよう
2. どこまで⾃由度を求めるか考えよう
3. ワークフローの構築と⾃動化を考えよう
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
1. できる限りマネージドサービスを使えないか考えよう
いい感じの機械学習基盤を作りたい
A m a z o n
R e k o g n i t i o n
I m a g e / V i d e o
A m a z o n
P o l l y
A m a z o n
T r a n s c r i b e
A m a z o n
T r a n s l a t e
A m a z o n
C o m p r e h e n d
A m a z o n
L e x
Chatbots
A m a z o n
F o r e c a s t
Forecasting
A m a z o n
T e x t r a c t
A m a z o n
P e r s o n a l i z e
RecommendationsVision Speech Language
⾃分でモデルを作らなくても学習済みのモデルを API で簡単に使える
• コンピュータビジョン (画像及び動画内の物体検出・顔認識・不適切コ
ンテンツの検出や OCR)
• OpenCV で前処理 + Amazon Rekognition に投げるだけでも結構⾊々できる
• ⾳声 (読み上げ・書き起こし)
• ⾃然⾔語処理 (翻訳・⽂書意味理解)
• チャットボット
AutoML
AI サービス
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
1. できる限りマネージドサービスを使えないか考えよう
ML サービス Amazon SageMaker
A m a z o n
R e k o g n i t i o n
I m a g e / V i d e o
A m a z o n
P o l l y
A m a z o n
T r a n s c r i b e
A m a z o n
T r a n s l a t e
A m a z o n
C o m p r e h e n d
A m a z o n
L e x
Chatbots
A m a z o n
F o r e c a s t
Forecasting
A m a z o n
T e x t r a c t
A m a z o n
P e r s o n a l i z e
RecommendationsVision Speech Language
AutoML
HPO学習 デプロイアノテーション
ビルトイン
アルゴリズム
1
2
3
推論
AI サービス
いい感じの機械学習基盤を作りたい
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
1. できる限りマネージドサービスを使えないか考えよう
深層学習フレームワーク
&
インフラストラクチャ
AI サービス
ML サービス Amazon SageMaker
A M A Z O N E C 2
C 5 I n s t a n c e s
A M A Z O N E C 2
P 3 / G 4 I n s t a n c e s
F P G A s
Frameworks
A m a z o n
R e k o g n i t i o n
I m a g e / V i d e o
A m a z o n
P o l l y
A m a z o n
T r a n s c r i b e
A m a z o n
T r a n s l a t e
A m a z o n
C o m p r e h e n d
A m a z o n
L e x
Chatbots
A m a z o n
F o r e c a s t
Forecasting
A m a z o n
T e x t r a c t
A m a z o n
P e r s o n a l i z e
RecommendationsVision Speech Language
E l a s t i c I n f e r e n c e
Infrastructure
Interfaces
AutoML
いい感じの機械学習基盤を作りたい
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
• AutoML
• Amazon Personalize/Forecast
• Amazon SageMaker
• ビルトインアルゴリズム
• トレーニングスクリプトを⽤意
• train.py の⼊出⼒書き換え
• Docker イメージを⽤意
• Bring Your Own Container
いい感じの機械学習基盤を作りたい
2. どこまで⾃由度を求めるか考えよう
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
3. ワークフローの構築と⾃動化を考えよう
• データだけ⽤意してビルトインアルゴリズムで定期実⾏
AWS Step Functions workflow
Test data
Train data
AWS Glue Amazon S3
(data)
Amazon SageMaker
Training Job /
Batch Transform
Amazon S3
(raw data)
Endpoint
AWS Lambda
SageMaker
Endpoint deploy
Amazon S3
(trained model)
いい感じの機械学習基盤を作りたい
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
3. ワークフローの構築と⾃動化を考えよう
• Git レポジトリでトレーニング⽤のコード (モデル) をバージョン管理
AWS Step Functions workflow
Test data
Train data
Data
Scientists/
Developers
AWS Glue Amazon S3
(data)
Amazon SageMaker
Training Job /
Batch Transform
AWS CodeCommit
or
3rd party
Git repository
Amazon S3
(raw data)
Endpoint
AWS Lambda
SageMaker
Endpoint deploy
Amazon S3
(trained model)
git push
いい感じの機械学習基盤を作りたい
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
3. ワークフローの構築と⾃動化を考えよう
• CI/CD のパイプラインで Docker イメージビルドと継続的なモデル更新
AWS Step Functions workflow
Test data
Train data
Data
Scientists/
Developers
Git webhook docker push
AWS Glue Amazon S3
(data)
Amazon SageMaker
Training Job /
Batch Transform
AWS CodeCommit
or
3rd party
Git repository
Amazon S3
(raw data)
Amazon
Elastic Container
Registry
(ECR)
AWS CodeBuild
Endpoint
AWS Lambda
SageMaker
Endpoint deploy
Amazon S3
(trained model)
git push
いい感じの機械学習基盤を作りたい
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
実装時の参考資料 / 参考になる事例集
• AWS Summit / AWS Dev Day / AWS Startup Day 講演資料
• [dely株式会社登壇事例] 機械学習を⽤いたサービス改善の考え⽅ (AWS Startup Day 2019
Tokyo, 資料)
• グローバルに広がるシナモンの AI 開発体制と、そのバックエンドを⽀える Amazon
SageMaker【AWS Summit Tokyo 2019 基調講演書き起こし】(AWS Summit Tokyo 2019,
AWS Startup Blog)
• Amazon SageMaker Deep Dive (AWS Summit Tokyo 2019, 資料 | 動画)
• その他の記事等
• 【開催報告】ML@Loft #1, #2, #3, #4, #5
• 【開催報告】Amazon SageMaker 事例祭り #1, #2, #3, #4, #5, #6, #7, #8
• 【寄稿】dely株式会社における機械学習の取り組み
いい感じの機械学習基盤を作りたい
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
http://bit.ly/amzn-fp
Amazon Forecast&Personalize ハンズオン
2019 年 10 ⽉ 31 ⽇(⽊)13:00〜17:00 (開場12:00)
ハンズオン + スタートアップ事例登壇3社
モノオク株式会社/株式会社アイデミー/株式会社プレイド
場所: アマゾンジャパン合同会社
〒153-0064 東京都 ⽬⿊区下⽬⿊1-8-1
ARCO TOWER ANNEX 12F
※アマゾン⽬⿊オフィス (⽬⿊セントラルスクエア) では
ございませんのでご注意ください。
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
4. セキュリティを⾃動化するにはどうすれば
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
セキュリティを⾃動化するにはどうすれば
• よくいただく課題 😂
• 「セキュリティ、何をどこまでやればよいのか分からない、やったらやったで⼤変そう」
• 「セキュリティに不安があるのでレビューしてほしい」
• 本当にしたいことは何︖ 😳
• 効率よく過不⾜なくセキュリティに取り組みたい
• セキュアなシステムで事業とユーザーを守りたい
• 思考フロー 😌
1. まずマネージドサービスを使おう
2. キャッチすべきアラートやイベントを決めよう
3. イベントに対するレスポンスを考えよう
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
0. セキュリティ要件はサービス運営者⾃⾝から出てくるもの
• 「何をすべきか」は各社・各ビジネスによって異なるため、
この資料では実装時の汎⽤的な考え⽅について述べています
• 「AWS が実施しているセキュリティ」ではなく、
「AWS 上でお客様が構築する環境のセキュリティ」について話します
セキュリティを自動化するにはどうすれば
2018 春期講習
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
1. まずマネージドサービスを使おう
• 各種マネージドサービスで
⾃分の責任範囲を⼩さくする
セキュリティを自動化するにはどうすれば
• セキュリティ系マネージドサービスで
低コストに⾼機能を得る
Amazon
EC2
AWS
Fargate
AWS
Lambda
責任共有モデル | AWS
Amazon
GuardDuty
AWS Security
Hub
AWS Config
AWS
CloudTrail
Amazon
CloudWatch
Events
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
1. まずマネージドサービスを使おう
• 各種マネージドサービスで
⾃分の責任範囲を⼩さくする
セキュリティを自動化するにはどうすれば
• セキュリティ系マネージドサービスで
低コストに⾼機能を得る
Amazon
EC2
AWS
Fargate
AWS
Lambda
※ 参考︓責任共有モデル | AWS
お客様の
責務
AWS の
責務
Amazon
GuardDuty
コンピューティング
サービスの例
AWS Security
Hub
AWS Config
AWS
CloudTrail
Amazon
CloudWatch
Events
集約/把握 対応
Action!
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
2. キャッチすべきアラートやイベントを決めよう
• 何を検知できるのか、発⽣時にどう影響があるのか考える(例)
セキュリティを自動化するにはどうすれば
Amazon
EC2
Attacker
AWS CloudTrail
AWS
IAM
Amazon
GuardDuty
!
👀
AWS Config
!
Amazon GuardDuty Finding Types
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
3. イベントに対するレスポンスを考えよう
• Amazon CloudWatch Events を起点に必要なアクションに連携(例)
セキュリティを自動化するにはどうすれば
AWS CloudTrail
Amazon GuardDuty
👀
AWS Config
!
!
Amazon
CloudWatch
Events
AWS
Lambda
AWS Step
Functions
Amazon
SNS
Admin Attacker
AWS CloudTrail
Workflows
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
実装時の参考資料 / 参考になる事例集
• AWS セキュリティ&コンプライアンスリソース
• AWS コンプライアンスページ - 責任共有モデル
• AWS Well-Architected フレームワーク
• AWS クラウドサービス活⽤資料集
• 実践的 Serverless セキュリティプラクティス(資料 | 動画)
• AWS ご利⽤時に最低限おさえておきたい 10 のこと(資料および動画)
• …その他 "Security, Identity & Compliance" カテゴリ内の各資料
• 各種講演資料等
• AWS におけるモニタリング 議論のための観点総ざらえ(資料)
• AWS におけるクラウドネイティブでセキュアな証券システムの運⽤(資料)
※ AWS Summit Tokyo 2019 株式会社 FINATEXT 様講演資料
セキュリティを自動化するにはどうすれば
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
まとめ
© 2019, Amazon Web Services, Inc. or its affiliates. All rights
reserved.
まとめ
• 2019年秋のあるある情報は以下の通りでした
1. コンテナの CI/CD ちゃんとしたい
2. ログってどう設計すればいいの
3. Machine Learning やりたかったけど難しい…
4. セキュリティを⾃動化するにはどうすれば
• AWS スタートアップチームでは⽇々多くの技術相談を実施
• Start-upゼミシリーズ(2017夏、2018春・秋、2019春)、
AWS Black Belt Online Seminar 、カンファレンスや
コミュニティなどなどで知識をひろげよう
• 困ったことがあればAWS スタートアップチームや
AWS Loft Tokyo の Ask An Expertに相談しよう