T O K Y O · 実装時の参考資料/ 参考になる事例集 • AWS...
Transcript of T O K Y O · 実装時の参考資料/ 参考になる事例集 • AWS...
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
T O K Y O2
01
9.1
0.0
3-
04
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
よくある課題を一気に解説!御社の技術レベルがアップする2019 秋期講習
Startup SAs (Mohican, Zabbio, Mats, Hariby)
Amazon Web Services Japan K.K.
G - 3
T O K Y O
20
19
.1
0.0
3-0
4
© 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.
Startup SAs in Japan (2019.10.04)
© 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.
© 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..
Revision: yyy
Env: yyy
Tag: yyy
Revision: 2
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
3. マネージドサービスを中心にパイプラインを考えよう
• 本来の目的は開発の効率化や、プロダクトのクオリティの向上• CI/CD 環境自体の管理運用コストを出来るだけおさえるようにする
• 要件の変化に合わせて変化させていくことを考慮する
Amazon ECSGit Repository
Amazon ECR
AWS CodePipeline
AWSCodeBuild
AWSCodeBuild
AWSCodeBuild
Revision: yyy
Tag: yyy
Revision: 2
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
3. マネージドサービスを中心にパイプラインを考えよう
• 本来の目的は開発の効率化や、プロダクトのクオリティの向上• CI/CD 環境自体の管理運用コストを出来るだけおさえるようにする
• 要件の変化に合わせて変化させていくことを考慮する
Amazon ECSGit Repository
Amazon ECR
AWS CodePipeline
AWSCodeBuildJenkins
AWSCodeDeploy
Revision: yyy
Tag: yyy
Revision: 2
© 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.
© 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.
© 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 nP o l l y
A m a z o nT r a n s c r i b e
A m a z o nT r a n s l a t e
A m a z o nC o m p r e h e n d
A m a z o nL e x
Chatbots
A m a z o nF o r e c a s t
Forecasting
A m a z o nT e x t r a c t
A m a z o nP e r s o n a l i z e
RecommendationsVision Speech Language
自分でモデルを作らなくても学習済みのモデルを API で簡単に使える
• コンピュータビジョン (画像及び動画内の物体検出・顔認識・不適切コンテンツの検出や OCR)• OpenCV で前処理 + Amazon Rekognition に投げるだけでも結構色々できる
• 音声 (読み上げ・書き起こし)
• 自然言語処理 (翻訳・文書意味理解)
• チャットボット
AutoML
A I サービス
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
1. できる限りマネージドサービスを使えないか考えよう
M L サービス 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 nP o l l y
A m a z o nT r a n s c r i b e
A m a z o nT r a n s l a t e
A m a z o nC o m p r e h e n d
A m a z o nL e x
Chatbots
A m a z o nF o r e c a s t
Forecasting
A m a z o nT e x t r a c t
A m a z o nP e r s o n a l i z e
RecommendationsVision Speech Language
AutoML
HPO学習 デプロイアノテーションビルトインアルゴリズム
123
推論
A I サービス
いい感じの機械学習基盤を作りたい
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
1. できる限りマネージドサービスを使えないか考えよう
深層学習フレームワーク&
インフラストラクチャ
A I サービス
M L サービス 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 nP o l l y
A m a z o nT r a n s c r i b e
A m a z o nT r a n s l a t e
A m a z o nC o m p r e h e n d
A m a z o nL e x
Chatbots
A m a z o nF o r e c a s t
Forecasting
A m a z o nT e x t r a c t
A m a z o nP 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 dataTrain data
AWS Glue Amazon S3(data)
Amazon SageMakerTraining Job /
Batch Transform
Amazon S3(raw data)
Endpoint
AWS LambdaSageMaker
Endpoint deploy
Amazon S3(trained model)
いい感じの機械学習基盤を作りたい
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
3. ワークフローの構築と自動化を考えよう
• Git レポジトリでトレーニング用のコード (モデル) をバージョン管理
AWS Step Functions workflow
Test dataTrain data
Data Scientists/Developers
AWS Glue Amazon S3(data)
Amazon SageMakerTraining Job /
Batch Transform
AWS CodeCommitor
3rd party Git repository
Amazon S3(raw data)
Endpoint
AWS LambdaSageMaker
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 dataTrain data
Data Scientists/Developers
Git webhook docker push
AWS Glue Amazon S3(data)
Amazon SageMakerTraining Job /
Batch Transform
AWS CodeCommitor
3rd party Git repository
Amazon S3(raw data)
Amazon Elastic Container
Registry(ECR)
AWS CodeBuild
Endpoint
AWS LambdaSageMaker
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株式会社における機械学習の取り組み
いい感じの機械学習基盤を作りたい
Machine LearningApplication DevelopmentContainer/Serverless
オンラインで参加できるカンファレンス、全 60 セッション
おすすめセッション
2019 年 10 月 1 日 〜 11 月 5 日開催amzn.to/AWSInnovateJP
© 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.
© 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. まずマネージドサービスを使おう
• 各種マネージドサービスで
自分の責任範囲を小さくする
セキュリティを自動化するにはどうすれば
• セキュリティ系マネージドサービスで
低コストに高機能を得る
AmazonEC2
AWSFargate
AWSLambda
責任共有モデル | AWS
AmazonGuardDuty
AWS SecurityHub
AWS Config
AWS CloudTrail
Amazon CloudWatch
Events
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
1. まずマネージドサービスを使おう
• 各種マネージドサービスで
自分の責任範囲を小さくする
セキュリティを自動化するにはどうすれば
• セキュリティ系マネージドサービスで
低コストに高機能を得る
AmazonEC2
AWSFargate
AWSLambda
※ 参考:責任共有モデル | AWS
お客様の責務
AWS の責務
AmazonGuardDuty
コンピューティングサービスの例
AWS SecurityHub
AWS Config
AWS CloudTrail
Amazon CloudWatch
Events
集約/把握 対応
Action!
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
2. キャッチすべきアラートやイベントを決めよう
• 何を検知できるのか、発生時にどう影響があるのか考える(例)
セキュリティを自動化するにはどうすれば
AmazonEC2
Attacker
AWS CloudTrail
AWSIAM
AmazonGuardDuty
!
👀
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
AWSLambda
AWS Step Functions
AmazonSNS
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. いい感じの機械学習基盤を作りたい
4. セキュリティを自動化するにはどうすれば
• AWS スタートアップチームでは日々多くの技術相談を実施
• Start-upゼミシリーズ(2017夏、2018春・秋、2019春)、AWS Black Belt Online Seminar 、カンファレンスやコミュニティなどなどで知識をひろげよう
• 困ったことがあればAWS スタートアップチームやAWS Loft Tokyo の Ask An Expertに相談しよう
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Ask the AWS Startup SAs !!
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
怠惰なプログラマ向けハンズオンワークショップのお知らせ
2019/10/15(火) 18:30〜@ AWS Loft Tokyohttps://amzn.to/laziness20191015
2019/10/25(火) 13:00〜@ AWS Pop-up Loft Osakahttps://awsamplifyvuejschaliceosaka.splashthat.com/
※AWS Dev Day で行われた AWS Amplify & AWS Chalice ワークショップと同内容です。
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
アンケートご協力のお願いお手持ちの受講票のアンケート用QRコードから
アンケートにお答えいただくと、記念品を差し上げております。
※イメージです
プレゼントの引き換えは、神田明神の会場出口付近(屋外)までお越しください
IT情報安全守護
Thank you!
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Startup SAs (Mohican, Zabbio, Mats, Hariby)
Amazon Web Services Japan K.K.