Upgrade to Pro — share decks privately, control downloads, hide ads and more …

なんとなくわかるAWSサービス

ufoo68
April 21, 2021

 なんとなくわかるAWSサービス

ufoo68

April 21, 2021
Tweet

More Decks by ufoo68

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

  4. きょうの登場人物
    Cloudfront
    S3
    API
    Gateway
    Lambda DynamoDB
    LINE
    Server
    Stack
    CloudFormation
    AWS Systems
    Manager
    LIFFライブラリ経

    /api/*
    /*
    デプロイ
    Serverless
    Framework

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide