Soumettre la recherche
Mettre en ligne
AWSで始めるサーバレスな RESTful API システム
•
Télécharger en tant que PPTX, PDF
•
42 j'aime
•
16,182 vues
Masayuki Kato
Suivre
2017年3月11日 JAWS DAYS 2017 のワークショップにてハンズオンを実施した資料です。
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 61
Télécharger maintenant
Recommandé
え!? Power BI の画面からデータ更新なんてできるの!? ~PowerApps カスタムビジュアルの可能性~
え!? Power BI の画面からデータ更新なんてできるの!? ~PowerApps カスタムビジュアルの可能性~
Yugo Shimizu
AWS CDKに魅入られた PHPer がオススメする
AWS CDKに魅入られた PHPer がオススメする
Taichi Inaba
グラフ構造のデータモデルをPower BIで可視化してみた
グラフ構造のデータモデルをPower BIで可視化してみた
CData Software Japan
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
はじめての datadog
はじめての datadog
Naoya Nakazawa
オープンソースのAPIゲートウェイ Kong ご紹介
オープンソースのAPIゲートウェイ Kong ご紹介
briscola-tokyo
OSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係について
Takuto Wada
Recommandé
え!? Power BI の画面からデータ更新なんてできるの!? ~PowerApps カスタムビジュアルの可能性~
え!? Power BI の画面からデータ更新なんてできるの!? ~PowerApps カスタムビジュアルの可能性~
Yugo Shimizu
AWS CDKに魅入られた PHPer がオススメする
AWS CDKに魅入られた PHPer がオススメする
Taichi Inaba
グラフ構造のデータモデルをPower BIで可視化してみた
グラフ構造のデータモデルをPower BIで可視化してみた
CData Software Japan
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
はじめての datadog
はじめての datadog
Naoya Nakazawa
オープンソースのAPIゲートウェイ Kong ご紹介
オープンソースのAPIゲートウェイ Kong ご紹介
briscola-tokyo
OSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係について
Takuto Wada
知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について
健一 辰濱
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ota42y
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
Amazon Web Services Japan
データ分析基盤を支えるエンジニアリング
データ分析基盤を支えるエンジニアリング
Recruit Lifestyle Co., Ltd.
実践 Amazon KMS #cmdevio2015
実践 Amazon KMS #cmdevio2015
y torazuka
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
Tokoroten Nakayama
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
Yusuke Suzuki
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
Hitachi, Ltd. OSS Solution Center.
IntuneとWSUSを使ってWindows Updateをやってみる。
IntuneとWSUSを使ってWindows Updateをやってみる。
shotayamamura1
Keycloak入門
Keycloak入門
Hiroyuki Wada
フロー効率性とリソース効率性、再入門 #devlove #devkan
フロー効率性とリソース効率性、再入門 #devlove #devkan
Itsuki Kuroda
FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話
NipponAlgorithm
JAWS-UG初心者支部 リザーブドインスタンス買ってみた
JAWS-UG初心者支部 リザーブドインスタンス買ってみた
佐藤 雅樹
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
Kentaro Yoshida
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと
Amazon Web Services Japan
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Masahito Zembutsu
[AWSマイスターシリーズ] Amazon CloudFront / Amazon Elastic Transcoderによるコンテンツ配信
[AWSマイスターシリーズ] Amazon CloudFront / Amazon Elastic Transcoderによるコンテンツ配信
Amazon Web Services Japan
[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜
[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜
Atsushi Fukui
20170705 blackbelt AWS Lambda
20170705 blackbelt AWS Lambda
Amazon Web Services Japan
Contenu connexe
Tendances
知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について
健一 辰濱
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ota42y
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
Amazon Web Services Japan
データ分析基盤を支えるエンジニアリング
データ分析基盤を支えるエンジニアリング
Recruit Lifestyle Co., Ltd.
実践 Amazon KMS #cmdevio2015
実践 Amazon KMS #cmdevio2015
y torazuka
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
Tokoroten Nakayama
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
Yusuke Suzuki
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
Hitachi, Ltd. OSS Solution Center.
IntuneとWSUSを使ってWindows Updateをやってみる。
IntuneとWSUSを使ってWindows Updateをやってみる。
shotayamamura1
Keycloak入門
Keycloak入門
Hiroyuki Wada
フロー効率性とリソース効率性、再入門 #devlove #devkan
フロー効率性とリソース効率性、再入門 #devlove #devkan
Itsuki Kuroda
FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話
NipponAlgorithm
JAWS-UG初心者支部 リザーブドインスタンス買ってみた
JAWS-UG初心者支部 リザーブドインスタンス買ってみた
佐藤 雅樹
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
Kentaro Yoshida
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと
Amazon Web Services Japan
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Masahito Zembutsu
[AWSマイスターシリーズ] Amazon CloudFront / Amazon Elastic Transcoderによるコンテンツ配信
[AWSマイスターシリーズ] Amazon CloudFront / Amazon Elastic Transcoderによるコンテンツ配信
Amazon Web Services Japan
Tendances
(20)
知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
データ分析基盤を支えるエンジニアリング
データ分析基盤を支えるエンジニアリング
実践 Amazon KMS #cmdevio2015
実践 Amazon KMS #cmdevio2015
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
IntuneとWSUSを使ってWindows Updateをやってみる。
IntuneとWSUSを使ってWindows Updateをやってみる。
Keycloak入門
Keycloak入門
フロー効率性とリソース効率性、再入門 #devlove #devkan
フロー効率性とリソース効率性、再入門 #devlove #devkan
FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話
JAWS-UG初心者支部 リザーブドインスタンス買ってみた
JAWS-UG初心者支部 リザーブドインスタンス買ってみた
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと
TLS, HTTP/2演習
TLS, HTTP/2演習
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
[AWSマイスターシリーズ] Amazon CloudFront / Amazon Elastic Transcoderによるコンテンツ配信
[AWSマイスターシリーズ] Amazon CloudFront / Amazon Elastic Transcoderによるコンテンツ配信
Similaire à AWSで始めるサーバレスな RESTful API システム
[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜
[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜
Atsushi Fukui
20170705 blackbelt AWS Lambda
20170705 blackbelt AWS Lambda
Amazon Web Services Japan
InterBEE 2018 AWS & AWS Elemental Booth Review
InterBEE 2018 AWS & AWS Elemental Booth Review
Amazon Web Services Japan
AWS Black Belt Online Seminar AWS 体験ハンズオン 〜 Amazon DynamoDB テーブル作成編 〜
AWS Black Belt Online Seminar AWS 体験ハンズオン 〜 Amazon DynamoDB テーブル作成編 〜
Amazon Web Services Japan
20180221 AWS Black Belt Online Seminar AWS Lambda@Edge
20180221 AWS Black Belt Online Seminar AWS Lambda@Edge
Amazon Web Services Japan
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
Amazon Web Services Japan
サーバーレスの今とこれから
サーバーレスの今とこれから
真吾 吉田
Introducing C# in AWS Lambda
Introducing C# in AWS Lambda
Atsushi Fukui
Classmethod共催IT部門向け Tableauを活用した全社レベルのデータ民主化とガバナンス
Classmethod共催IT部門向け Tableauを活用した全社レベルのデータ民主化とガバナンス
Takeo Hirakawa
【IVS CTO Night & Day】AWS re:Invent 2017 振り返り
【IVS CTO Night & Day】AWS re:Invent 2017 振り返り
Amazon Web Services Japan
AWS Black Belt Online Seminar AWS Amplify
AWS Black Belt Online Seminar AWS Amplify
Amazon Web Services Japan
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Yahoo!デベロッパーネットワーク
20190620 aws summit_tokyo_2019
20190620 aws summit_tokyo_2019
PIXELAcorporation
20170809 AWS code series
20170809 AWS code series
Atsushi Fukui
AWS Amplify - Auth/API Category & Vue 構築ハンズオン
AWS Amplify - Auth/API Category & Vue 構築ハンズオン
Eiji KOMINAMI
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
Amazon Web Services Japan
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
日本Javaユーザーグループ
Serverless backendformobilegame and_aws-appsync_gamingtechnight-2
Serverless backendformobilegame and_aws-appsync_gamingtechnight-2
Amazon Web Services Japan
Amazon Kinesis Familyを活用したストリームデータ処理
Amazon Kinesis Familyを活用したストリームデータ処理
Amazon Web Services Japan
AWS Black Belt - AWS Glue
AWS Black Belt - AWS Glue
Amazon Web Services Japan
Similaire à AWSで始めるサーバレスな RESTful API システム
(20)
[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜
[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜
20170705 blackbelt AWS Lambda
20170705 blackbelt AWS Lambda
InterBEE 2018 AWS & AWS Elemental Booth Review
InterBEE 2018 AWS & AWS Elemental Booth Review
AWS Black Belt Online Seminar AWS 体験ハンズオン 〜 Amazon DynamoDB テーブル作成編 〜
AWS Black Belt Online Seminar AWS 体験ハンズオン 〜 Amazon DynamoDB テーブル作成編 〜
20180221 AWS Black Belt Online Seminar AWS Lambda@Edge
20180221 AWS Black Belt Online Seminar AWS Lambda@Edge
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
サーバーレスの今とこれから
サーバーレスの今とこれから
Introducing C# in AWS Lambda
Introducing C# in AWS Lambda
Classmethod共催IT部門向け Tableauを活用した全社レベルのデータ民主化とガバナンス
Classmethod共催IT部門向け Tableauを活用した全社レベルのデータ民主化とガバナンス
【IVS CTO Night & Day】AWS re:Invent 2017 振り返り
【IVS CTO Night & Day】AWS re:Invent 2017 振り返り
AWS Black Belt Online Seminar AWS Amplify
AWS Black Belt Online Seminar AWS Amplify
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
20190620 aws summit_tokyo_2019
20190620 aws summit_tokyo_2019
20170809 AWS code series
20170809 AWS code series
AWS Amplify - Auth/API Category & Vue 構築ハンズオン
AWS Amplify - Auth/API Category & Vue 構築ハンズオン
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
Serverless backendformobilegame and_aws-appsync_gamingtechnight-2
Serverless backendformobilegame and_aws-appsync_gamingtechnight-2
Amazon Kinesis Familyを活用したストリームデータ処理
Amazon Kinesis Familyを活用したストリームデータ処理
AWS Black Belt - AWS Glue
AWS Black Belt - AWS Glue
AWSで始めるサーバレスな RESTful API システム
1.
2017/03/11 ハンズラボ 株式会社 JAWS
DAYS 2017 AWSワークショップ AWSで始める サーバレスな RESTful API システム Copyright © 2017. All rights reserved.
2.
Copyright © 2017
All rights reserved.1 ハンズオンで使用するファイル ・以下から圧縮ファイルをダウンロードして下さい https://s3-ap-northeast-1.amazonaws.com /hands-lab-handson/jawsdays_handson.zip ・解凍すると以下の4フォルダがあります /API Gateway (API Gatewayの設定用テキスト) /Demo (動作確認用のフロントの静的ファイル) /DynamoDB (DynamoDBのテーブル構築用テキスト) /Lambda (Lambda関数の作成用テキスト)
3.
Copyright © 2017
All rights reserved.2 ハンズラボ株式会社 • 情シス部門 東急ハンズの各種システムの内製開発と運用保守 • 外販 自社開発の経験を活かした受託開発、内製支援 東急ハンズのシステム子会社
4.
自己紹介 • 名前:加藤 雅之 •
所属:ハンズラボ株式会社 • 担当: 東急ハンズ - AWSインフラ、IT 統制 ハンズラボ 外販 - AWS構築運用支援 等
5.
Copyright © 2017
All rights reserved.4 AWS Samurai 2015 / 2016を連続受賞 2015 長谷川 2016 青木
6.
Copyright © 2017
All rights reserved.5 今日の内容 サーバレス(Serverless)とは RESTful APIについて 4つのRESTの原則 設計でのポイント BaaSとFaaS AWSのサーバレス SPA(Single Page Application)のすゝめ サーバレスとの相性 フロントエンドとの完全分離
7.
Copyright © 2017
All rights reserved.6 今日の内容 hands - on 1.DynamoDBのテーブル作成 2.Lambda実行用ロールの作成 3.Lambda実装 4.API Gateway の作成とデプロイ 5.動作確認 6.S3へ静的ファイルの設置 7.Cloudfrontでキャシュ作成
8.
Copyright © 2017
All rights reserved.7 サーバレス(Serverless)とは 冗長性と可用性が担保される様なインフラの構築運用や、OSやミド ルウェアを気にする必要が無い、開発に集中出来るアーキテクチャー BaaS(バックエンドサービス) データベースや認証、メッセージング等のサービス FaaS(Function as a Service) 必要な物はコードのみで処理を実行させる 注意:サーバは存在します
9.
Copyright © 2017
All rights reserved.8 主に使用されるAWSのサーバレス Amazon S3(ファイルストレージ) Amazon Cloudfront(コンテンツデリバリーネットワーク) Amazon DynamoDB(NoSQLデータベース) Amazon API Gateway(アプリケーションインターフェース) AWS Lambda(コード実行サービス) Amazon Cognito(認証認可サービス) Amazon SQS(メッセージキューイング) 等々。。。 特に定義は無いですが、 EC2インスタンスが影に見えない事
10.
Copyright © 2017
All rights reserved.9 RESTful APIとは REST( Representational State Transfer )の原則に沿った形で設計され たAPI(Application Programming Interface) その1 ステートレス性 他のリクエスト情報から完全に分離している その2 統一インターフェース HTTP定義通りのメソッドを使用する その3 アドレス可能性 URIで表されるユニークなアドレスを持つ その4 接続性 別のリンクを含めて辿る事が出来る
11.
Copyright © 2017
All rights reserved.10 その1 ステートレス性 セッション情報等のクライアント側の状態を持たず、他のリクエスト情報か らも完全に分離されている。 ステートフルとステートレスの違いは、オライリーでRESTfulの本を監訳し ている方の有名なブログが分かりやすい。 http://yohei-y.blogspot.jp/2007/10/blog-post.html 客:Aセットください。 店員:サイドメニューは? 客:ポテトで 店員:ドリンクは? 客:コーラで 店員:以上で良いですか? 客:はい 客:Aセットください。 店員:サイドメニューは? 客:Aセットをポテトで 店員:ドリンクは? 客:Aセットをポテトとコーラで 店員:以上で良いですか? 客:Aセットをポテトとコーラで。以上 ステートレスステートフル
12.
Copyright © 2017
All rights reserved.11 その2 統一インターフェース 処理 HTTPメソッド SQL CRUD操作 取得 GET SELECT READ 登録 POST INSERT CREATE 更新 PUT UPDATE UPDATE 削除 DELETE DELETE DELETE PUTしたIDがない場合はCreateとなる POSTはID指定が出来ないCREATE CRUDとSQLとの比較 操作は定義通りのHTTPメソッドで
13.
Copyright © 2017
All rights reserved.12 その3 アドレス可能性 URI(URL / URN)にて簡単に指し示す事が出来る ユニークなアドレスを持つ URI (Uniform Resource Identifier) 識別子 名前とアドレスを識別する書き方 URL (Uniform Resource Locator) 住所 場所を示す書き方のルールでWebアドレスで用いられる URN (Uniform Resource Name) 名前 名前を永続的に識別する書き方のルールでISBN等がある 言語や実装依存の拡張子やパスを含めない → 環境が変わっても同じURIで動作
14.
Copyright © 2017
All rights reserved.13 その4 接続性 リソースの中に関連性を持つURIのハイパーメディアリンクを含む 事が出来る。 もちろん無理にリンクを設ける必要はない 例えば、商品購入リストのリソースの中に、個別商品のハイ パーメディアリンク(URI)が記載されていれば接続性を保持して いる事になる。
15.
Copyright © 2017
All rights reserved.14 API設計で最初にすること まずは、とにかくシンプルに何をどうするを考える 何 = リソース(情報)の洗い出し どうする = CRUD(httpメソッド) シンプル = リソースの関連性を単純化する
16.
Copyright © 2017
All rights reserved.15 API設計でのポイント ・リソース名をなるべく具体的な複数形の名詞にする ・バージョニングをどうするかを考える おすすめはURIのパスに含める。他にはQueryパラメータやヘッダ等もある。 ・メッセージフォーマットを決める おすすめはJSON。他にはXML等も ・ドメインはAPIと分かりやすい物が良い ・URIを見ただけでリソースの関係性が分かるようにする ・リソースの階層は2階層くらいまで https://api.hands-lab.com/v2/users ユーザー一覧 https://api.hands-lab.com/v1/users/15/ ID15 ユーザーの指定 https://api.hands-lab.com/v2/articles/321/comments ID 321記事のコメント一覧
17.
Copyright © 2017
All rights reserved.16 SPA(Single Page Application)のすゝめ 単一ページで構成されるWebアプリケーション 主にHTMLとJavascriptで構成されており、DOM操作でページ切り替 えやAjax非同期更新を行う AngularやReactやVue.js等々のフレームワークやライブラリがある 細かく非同期で更新をかけたいSPAと、疎結合でマイクロサービス化 されているRESTful APIは相性が良い UI/UXをフロントエンドに任せることで、うまく分離して作業を進める 事が出来る。 またAPIとのやり取りをリソース情報のみに徹底する事は、アプリ対 応等に派生した場合も別対処する必要は無い。
18.
Copyright © 2017
All rights reserved.17 ハンズオン Let’s hands - on 1.DynamoDBのテーブル作成 2.Lambda実行用ロールの作成 3.Lambda実装 4.API Gateway の作成とデプロイ 5.動作確認 〜 以下、補足説明 〜 6.S3へ静的ファイルの設置 7.Cloudfrontでキャシュ作成
19.
Copyright © 2017
All rights reserved.18 DynamoDB サービスを開く マネイジメントコンソールにログインしたら、左上の 「サービス」メニューをクリック データベースグループにある「DynamoDB」をクリック
20.
Copyright © 2017
All rights reserved.19 DynamoDB テーブル作成 「テーブルの作成」ボタンをク リック テーブル名 → handson_db プライマリーキー → id プライマリーキー 属性 → 文字列 テーブル設定 → デフォルト設定の仕様 保存ボタンでテーブル作成
21.
Copyright © 2017
All rights reserved.20 DynamoDB テーブル情報の確認 概要タブが選択されている事を確認 右の様な画面で テーブル名 プライマリーパーティションキー テーブルの状態 を作成した通りか確認
22.
Copyright © 2017
All rights reserved.21 DynamoDB アラームの確認 アラームタブを選択 handson_dbの ReadCapacity WriteCapacity のアラームが作成されている事を確認
23.
Copyright © 2017
All rights reserved.22 DynamoDB キャパシティの確認 容量タブを選択 読み込み容量ユニット及び、書き込み容量ユニットがそれぞれ 5 となっている事を確認
24.
Copyright © 2017
All rights reserved.23 DynamoDB 初期データ挿入1 項目タブを選択 項目の作成ボタンをクリック 項目の作成画面が開いたら左上の、選択項目から Text を選択 ※ 1参考画像 テキスト入力形式画面が開いたら、 DynamoDB JSON のチェックボックスをチェック ※ 2参考画像 2 参考画像 1 参考画像
25.
Copyright © 2017
All rights reserved.24 DynamoDB 初期データ挿入2 ハンズオンファイルから DynamoDBフォルダ内にある DynamoDB_sampleData_xxx.txt をテキストエディタで開く ※xxx はmac / win の環境です テキストの内容を、DynamoDB JSONの 画面に全て貼り付け 左側の行数箇所にエラーが出ていない事を 確認したら、保存
26.
Copyright © 2017
All rights reserved.25 DynamoDB 初期データ確認 正しく反映されているか内容を確認 修正したいデータにチェックをつけて、アクションから編集も可能です
27.
Copyright © 2017
All rights reserved.26 Lambda実行ロール IAMサービスを開く 左上のサービスをクリック セキュリティ、アイデンティティグループにあるIAMをクリック
28.
Copyright © 2017
All rights reserved.27 Lambda実行ロール 新しいロールの作成1 IAMサービス画面に入ったら、左側のロールをクリック 「新しいロールの作成」ボタンをクリック ※IAMの権限作成は強力な権限です。 うまく開かない等がありましたらチュー ターをお呼び下さい
29.
Copyright © 2017
All rights reserved.28 Lambda実行ロール 新しいロールの作成2 ロール名の設定で lambda_exec と入力し、次へをクリック ロールタイプの選択で AWS Lambdaの右にある 選択 をクリック
30.
Copyright © 2017
All rights reserved.29 Lambda実行ロール 新しいロールの作成3 AmazonDynamoDB FullAccess と AWSLambda BasicExecutionRole の2つのみをチェックして、 次のステップをクリック 設定した通りの内容になってい るかを確認して、 ロールの作成ボタンをクリック
31.
Copyright © 2017
All rights reserved.30 Lambda実装 サービスを開く 左上のサービスをクリック コンピューティンググループにあるLambdaをクリック
32.
Copyright © 2017
All rights reserved.31 Lambda実装 作成画面を開く まだ作成した事がない場合は、 「今すぐ始める」 ボタンをクリック 既に作成した事がある場合は、 「Lambda関数の作成」 ボタンをクリック
33.
Copyright © 2017
All rights reserved.32 Lambda実装 関数の作成1 設計図の選択画面から画面中央にある ブランク関数 をクリック トリガーの設定では、そのまま次へ
34.
Copyright © 2017
All rights reserved.33 Lambda実装 関数の作成2 関数の設定フェーズにて 名前 → api_get_handson 説明 → データ個別取得 ランタイム → Node.js 4.3
35.
Copyright © 2017
All rights reserved.34 Lambda実装 関数の作成3 Lambda 関数のコード フェーズにて コードエントリタイプ → コードをインラインで編集 ハンズオンファイルから Lambdaフォルダ内にある Lambda_sampleCode_xxx.txt をテキストエディタで開く ※xxx はmac / win の環境です テキストの内容を、 コードの箇所に全て貼り付け 左側の行数箇所にエラーが出ていない 事を確認
36.
Copyright © 2017
All rights reserved.35 Lambda実装 関数の作成4 環境変数の入力箇所のそれぞれに → TABLE_NAME → handson_db ハンドラ index.handler → index.get ロール → 既存のロールを選択 既存のロール → lambda_exec
37.
Copyright © 2017
All rights reserved.36 Lambda実装 関数の作成5 詳細設定をクリックしタイムアウトを10秒へ 次へをクリックして、内容が設定した通りか確認をしたら「関数の作成」 以下のように「あめでとうございます」となっているか確認
38.
Copyright © 2017
All rights reserved.37 Lambda実装 関数の作成6 左側のダッシュボードをクリックし、 同様の作業( 「作成画面を開く」 から「関数の作成5」)を 以下を変更しながら繰り返す 関数の作成2にて 名前 → api_getall_handson 説明 → データ一括取得 関数の作成4にて ハンドラ index.handler → index.getall
39.
Copyright © 2017
All rights reserved.38 Lambda実装 関数の作成7 関数の作成2にて 名前 → api_put_handson 説明 → データ登録 関数の作成4にて ハンドラ index.handler → index.put 左側のダッシュボードをクリックし、 同様の作業( 「作成画面を開く」 から「関数の作成5」)を 以下を変更しながら繰り返す
40.
Copyright © 2017
All rights reserved.39 Lambda実装 関数の作成8 関数の作成2にて 名前 → api_delete_handson 説明 → データ削除 関数の作成4にて ハンドラ index.handler → index.delete 左側のダッシュボードをクリックし、 同様の作業( 「作成画面を開く」 から「関数の作成5」)を 以下を変更しながら繰り返す
41.
Copyright © 2017
All rights reserved.40 Lambda実装 関数の作成9 左側の関数をクリックし、4つのlambda関数が登録されている事を確認
42.
Copyright © 2017
All rights reserved.41 API Gateway の作成 サービスを開く 左上のサービスをクリック アプリケーションサービスグループにあるAPI Gatewayをクリック
43.
Copyright © 2017
All rights reserved.42 API Gateway の作成 作成画面を開く まだ作成した事がない場合は、 「今すぐ始める」 ボタンをクリック 既に作成した事がある場合は、 「APIの作成」 ボタンをクリック
44.
Copyright © 2017
All rights reserved.43 API Gateway の作成 APIのインポート Swagger から インポートをチェックして、右のSwaggerファイルの選択から ハンズオンファイルのAPI Gatewayフォルダ内にある apiGateway_sample.yml を選択し、インポート
45.
Copyright © 2017
All rights reserved.44 API Gateway の作成 Lambdaの紐付け1 リソースメニューの /resouce のGETをクリックし、 統合タイプ Lambda関数 Lambdaプロキシ統合の仕様にチェック Lambda関数 api_getall_handson で保存する。権限追加のダイアログはそのままOKを行う
46.
Copyright © 2017
All rights reserved.45 API Gateway の作成 Lambdaの紐付け2 リソースメニューの /resouce /{resourceId} のDELETEをクリックし、 統合タイプ Lambda関数 Lambdaプロキシ統合の仕様にチェック Lambda関数 api_delete_handson で保存する。権限追加のダイアログはそのままOKを行う
47.
Copyright © 2017
All rights reserved.46 API Gateway の作成 Lambdaの紐付け3 リソースメニューの /resouce /{resourceId} のGETをクリックし、 統合タイプ Lambda関数 Lambdaプロキシ統合の仕様にチェック Lambda関数 api_get_handson で保存する。権限追加のダイアログはそのままOKを行う
48.
Copyright © 2017
All rights reserved.47 API Gateway の作成 Lambdaの紐付け4 リソースメニューの /resouce /{resourceId} のPUTをクリックし、 統合タイプ Lambda関数 Lambdaプロキシ統合の仕様にチェック Lambda関数 api_put_handson で保存する。権限追加のダイアログはそのままOKを行う
49.
Copyright © 2017
All rights reserved.48 API Gateway の作成 Mockの紐付け1 リソースメニューの /resouce のOPTIONSをクリックし、 統合タイプ Mock で保存する。
50.
Copyright © 2017
All rights reserved.49 API Gateway の作成 Mockの紐付け2 リソースメニューのの /resouce /{resourceId} のOPTIONSをクリックし、 統合タイプ Mock で保存する。
51.
Copyright © 2017
All rights reserved.50 API Gateway の作成 CORSの設定1 リソースメニューの /resouce 配下のOPTIONSをクリックし、 右下の統合レスポンスをクリック
52.
Copyright © 2017
All rights reserved.51 API Gateway の作成 CORSの設定2 表内の左端にある三角(▶)をクリックし、更にヘッダーのマッピングの三角をクリック
53.
Copyright © 2017
All rights reserved.52 API Gateway の作成 CORSの設定3 レスポンスヘッダー3種の右端にある鉛筆クリックし、マッピングの値を、 ハンズオンファイルのAPI Gatewayフォルダ内にある apiGateway_options.txt の通りに入力。入力後は右端のチェックマークをクリックで確定。 ※前後のシングルクオーテーションも必要です。 同様の作業を リソースメニューの /resouce / {responceID }のOPTIONS に対しても行って下さい。
54.
Copyright © 2017
All rights reserved.53 API Gateway の作成 デプロイ アクションのAPIのデプロイをクリック 新しいステージを選択し ステージ名 → handson でデプロイをクリック
55.
Copyright © 2017
All rights reserved.54 API Gateway の作成 エンドポイントを確認 エンドポイント(URL)をメモ
56.
Copyright © 2017
All rights reserved.55 動作確認 エンドポイントの登録 ハンズオンファイルのDEMOフォルダ内にある Index.htmlをテキストエディタで開く 139行目の API_endpoint を先程メモしたエンドポイントに書き換えて保存
57.
Copyright © 2017
All rights reserved.56 動作確認 ハンズオンファイルのDEMOフォルダ内にある Index.htmlをブラウザで開いて色々と動作を確認
58.
Copyright © 2017
All rights reserved.57 動作詳細 Index.htmlの初回読み込み時及び、各タブ選択時 → https://APIGatewayエンドポイント/resource/ GETメソッド (api_getall_handson Lambda) GETタブ内のGETボタン → https://APIGatewayエンドポイント/resource/{指定ID}/ GETメソッド (api_get_handson Lambda) PUTタブ内のPUTボタン → https://APIGatewayエンドポイント/resource/{指定ID}/ PUTメソッド (api_put_handson Lambda) DELETEタブ内のDELETEボタン → https://APIGatewayエンドポイント/resource/{指定ID}/ DELETEメソッド (api_delete_handson Lambda)
59.
Copyright © 2017
All rights reserved.58 時間の関係上、本日は省略しますが クライアントでの動作にて問題が無いことを確認しましたら、 以下を実行する事で完全なサーバレスでの動作になります。 ・動作検証済みのDEMOフォルダ内容をS3のバケットにアップロード ・対象のバケットに対してのキャッシュ配信をCloudFrontにて設定 ※S3はCloudFrontからのみのアクセス許可を行うと良い 更に、Route53にてドメインを取得しCloudFrontへDNSを向け、 Certificate Managerにて証明書を取得しCloudFrontへ紐付ければ、 AWSのみで完結するサーバレスの基本形が完成します。 そこからはCognitoと連携させてログイン機能(認証認可)を行ったり、WAFやKMSと連携させてセキュアにし てみたり、アイデア次第で様々な機能を持ったシステムを構築してく事が可能です。
60.
Copyright © 2017
All rights reserved.59 最後に サーバレスでもシステム運用は必要です。 もちろんステートレスな構成が故の、デプロイの難しさやログの追尾 性等の問題があります。 魔法の様な銀の弾丸では無いが、特性にマッチした部分で活用出来 るようになると非常に有効なシステムとなります。 多少無理でも大丈夫そうなら是非サーバレスで! 大事なことは「やっていく気持ち」
61.
Copyright © 2017
All rights reserved.60 そんなエンジニアを募集中! 求むエンジニア! ハンズラボは積極的に技術者採用中です。
Notes de l'éditeur
最初に読み込んで 一部を非同期で更新をかけていく
Télécharger maintenant