Slide 1

Slide 1 text

なんとなくわかる AWSサービス @ミニアプリNight

Slide 2

Slide 2 text

自己紹介 ● 本名 ○ 松永勇太 ● SNSでの名前 ○ ufoo68(@ufoo_yuta) ● 好きなアニメ ○ バジリスク

Slide 3

Slide 3 text

本資料が目指すところ 本発表では、AWSサービスの理解ではなく、今回触るAWSサービスがどんなものかな んとなく雰囲気を知ってもらうことを目的としています 説明はかなりざっくりとしておりますので、あしからず この時間では各AWSサービスの名前と立ち位置だけを知ってもらって、あとは各自が調 べてみる形がいいかと思います

Slide 4

Slide 4 text

きょうの登場人物 Cloudfront S3 API Gateway Lambda DynamoDB LINE Server Stack CloudFormation AWS Systems Manager LIFFライブラリ経 由 /api/* /* デプロイ Serverless Framework

Slide 5

Slide 5 text

CloudFront ● content delivery network(CDN)に用いられるサービス ○ エッジロケーションでレイテンシを削減する ○ キャッシュ機能で必要なときだけオリジンと通信する ● 今回はパスの振り分け機能を使用 ○ /apiを含んでいるパスは APIへ、それ以外はUIへ振り分ける。等ができる ● ウェブアプリとかを実装するなら使っておいて損はないサービス ○ SPAの場合だと、「404エラーのときでもindex.htmlを読むようにする」等といったことが実装できる

Slide 6

Slide 6 text

S3 ● フルネームはSimple Storage Service ○ スケーラビリティ、データ可用性、セキュリティ、およびパフォーマンスを提供するオブジェクトスト レージサービス ○ 99.999999999% (9 x 11) の耐久性を実現 ● ストレージサービスとしても十分に使えるサービスであるが、今回はウェブサイトの ホスティング機能を使用 ○ ちなみにS3だけを用いてウェブアプリを公開することも可能(非推奨)

Slide 7

Slide 7 text

API Gateway ● 早い話がAPIを作るなら必須なサービス ○ APIの作成、公開、保守、モニタリング、保護を簡単に行うことができる ○ REST APIおよびWebSocket APIが作成できる ● 今回はLambda(次で説明)と組み合わせてREST APIを作成している ○ ちなみにS3とか他のAWSサービスとの直接連携もできる

Slide 8

Slide 8 text

Lambda ● AWSが提供するFaaS(Function as a Service) ○ サーバーのプロビジョニングや管理、ワークロード対応のクラスタースケーリングロジックの作成、イ ベント統合の維持、ランタイムの管理が不要 ○ アプリケーションのコードを書くだけでサーバーを実装することができる ● 本当にいろんなことができる ○ 今回のようなAPI Gatewayと組み合わせたAPIサーバーを実装する ○ あるイベント(例:S3にデータが書き込まれた時 )をトリガーにしてコードを実行 ○ 定期的(例:1分おき)にコードを実行

Slide 9

Slide 9 text

DynamoDB ● AWSが提供するNoSQLデータベースサービス ○ データの格納と取得に特化している (所謂key-valueストア) ○ jsonデータの保存もできる ○ マルチリージョン、マルチアクティブで耐久性がある ● とりあえずLambdaでデータベースを使いたい時によく使うサービス ○ データの貯蔵にはお金がかかるので実用する場合は注意

Slide 10

Slide 10 text

Systems Manager パラメータストア ● 設定データ管理と機密管理のための安全な階層型ストレージ ○ パスワード、データベース文字列、 Amazon マシンイメージ (AMI) ID、ライセンスコードなどのデー タをパラメータ値として保存できる ○ コードで用いる機密情報をハードコーディングせずに管理するために使うサービス ● 今回はLIFFのIDとチャンネルIDの保存に使用

Slide 11

Slide 11 text

CloudFormation ● AWSが提供するIaC(Infrastructure as Code)サービス ○ テンプレートファイルで AWSの構成を管理できる ○ プロビジョニング(AWSを実際に構成する作業 )を自動化できる ● 今回は用いるAWSサービス達はCloudFormationを用いてStackというまとまりで 管理されている

Slide 12

Slide 12 text

Serverless framework ● サーバーレスなアーキテクチャを簡単に構成できるフレームワーク ● AWS意外にも様々なクラウドサービスに対応している(らしい) ● CloudFormationのテンプレートエンジンとしても使うことができる ○ サーバーレスなアプリケーションを素の CloudFormationを書くよりも簡単に記述・デプロイが可能 ○ 今回サーバーレスの開発で用いるツールはこれ