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

GovTechプログラムの活用方法 / How to use the GovTech program

GovTechプログラムの活用方法 / How to use the GovTech program

新田洋平(LINE Fukuoka株式会社)
LINE SMART CITY GovTech プログラムオンライン説明会での発表資料です
https://linecorp.connpass.com/event/191029/

53850955f15249a1a9dc49df6113e400?s=128

LINE Developers
PRO

October 28, 2020
Tweet

Transcript

  1. LINE Fukuoka 開発センター 開発2室 室⻑ 新⽥洋平 GovTech プログラムの活⽤⽅法 アーキテクチャと技術概要および環境構築⼿順について 2020/10/28

    LINE SMART CITY GovTech プログラムオンライン説明会
  2. ⾃⼰紹介 Self Introduction 東京で複数のWebサービス事業会社での勤務を経て、 2012年3⽉に福岡へ家族でIターン移住。2014年LINE Fukuokaに⼊社後、LINEバイトの⽴ち上げにバックエ ンドエンジニアとして参加。2018年1⽉より現職。 新⽥ 洋平 LINE

    Fukuoka 開発センター 開発2室 室⻑
  3. 本セッションのアジェンダ The Agenda of The Session 1. リポジトリとソースコード • 利⽤申し込みからソースコード取得、開発参画の⽅法

    2. アーキテクチャ • 技術スタック • 関連AWSサービス 3. 環境構築⼿順 4. 代表的な機能のデモ 5. 今後の GovTech プログラム
  4. 1. リポジトリとソースコード

  5. 利⽤申し込みフォームについて • GovTech プログラムの公式サイト から申し込みフォームへ • 申し込みにあたって右図の情報が必 要です • 1営業⽇以内に招待されます

    • 個⼈情報はGovTechプログラムに関 するご連絡・ご案内、Smart City 関 連のニュースレター(任意)に限り 利⽤します GovTech プログラム申請
  6. linefukuoka/line-smart-city • プライベートリポジトリ • Git を⽤いてクローンして 利⽤いただきます • 初期状態は読込専⽤です •

    書込権限がなくても運⽤で きます GitHub リポジトリ
  7. line-smart-city/CONTRIBUTING_ja.md • ICLA への同意を求めています • 同意後に書込権限を得られます • 課題管理は GitHub Issues

    • 変更管理は Pull Request ソースコードを変更したいとき
  8. 2. アーキテクチャ

  9. ⾃治体システムに求められる技術要件とは? Requirements of GovTech Program 1. 環境構築の容易さ 2. 運⽤コストが限りなく少ない 3.

    トラフィックの急増に耐えるスケーラビリティ 4. セキュリティに対する信頼性 5. 幅広いエンジニアが対応できる技術選定 結論. GovTech プログラムはパブリッククラウドのフルマネージドサービスが最適
  10. AWS Serverless Application Model (SAM) GovTech Program Meets SAM •

    AWS SAM は OSS の Serverless Application 構築フレームワーク • ベストプラクティスに沿って AWS サービスをシームレスに統合 • SAM CLI によってコマンドで環境構築やデプロイを実⾏可能 • 環境設定は AWS CloudFormation で YAML ファイルで⼀元管理
  11. 基本的なアーキテクチャと関連AWSサービス FAQチャットボット アンケート(LIFFアプリ) 管理機能 APIs Auth Cognito API Gateway Functions

    Webhook LIFFv2 SDK Vue
 Component Databases セグメント配信(メール受信) Lambda ⾃治体向け
 LINE公式アカウント Message Queue SQS DynamoDB SES Messaging API Runtime
  12. インフラ基盤・運⽤に利⽤しているAWSサービス AWS services used for operations ストレージ、コンテンツ配信:S3, CloudFront 設定や認証情報の管理:Secrets Manager

    ユーザー管理:IAM 環境構築、デプロイ:CloudFormation モニタリング:CloudWatch, SNS バックアップ:AWS Backup ドメイン、証明書:Route53, Certificate Manager
  13. LSC Command Line Interface docs/COMMANDS.md • LSC CLI は環境構築やデプロイメントのための独⾃コマンド •

    AWS CLI や SAM CLI をラップして運⽤や開発時の作業の簡素化を実現 • 実装は bash script と TypeScript を⽤いている # コマンド例 ## 初期設定 $ ./lsc.sh setup ## 管理画⾯APIの更新 $ ./lsc.sh platform fresh ## LIFFアプリの更新 $ ./lsc.sh survey liff refresh
  14. 運⽤に求められるエンジニア像 Operational Engineers require skills for • AWS Management Console

    や AWS CLI での運⽤経験 • Serverless Application Model の関連 AWS サービスの利⽤経験 • LINE ログイン、Messaging API の設定 • (アンケート機能を使う場合は)LIFFアプリの設定
  15. GovTech プログラム開発にあると望ましいスキル Skills for GovTech Program Development 以下のどれか⼀つでも経験があればすぐに開発に参加できます • AWS

    Lambda の Node 版、Python 版の実装 • Flask でのシンプルな Web アプリケーション開発 • LINE Messaging API SDK for Python を使⽤したチャットボット開発 • LINE Froneend Framework (LIFF) SDK v2 を使⽤した LIFF アプリ開発 • Vue, Vuetify を使⽤したフロントエンド開発 • TypeScript を使⽤した CLI 実装
  16. 3. 環境構築⼿順

  17. GovTechプログラムの環境構築 docs/DEVELOPERS.md 1. LINE Developers のコンソールでチャネルを作る 2. AWS Secrets Manager

    に設定情報を保存 3. AWS Management Console での設定 4. lsc.sh コマンドでの環境構築 5. Messaging API の Webhook 設定
  18. 1. LINE Developers のコンソールでチャネルを作る まず LINE プラットフォーム上の設定情報を先に得る必要があるので、まずLINEログインとMessaging API 2つのチャネルを作成します

  19. 1. LINE Developers のコンソールでチャネルを作る 作成後に LINEログインと Messaging API のチャネルID、チャネルシークレッ トをそれぞれ取得します。

    次に Messaging API のチャネルアクセストークンを取得します。
  20. 2. AWS Secrets Manager に設定情報を保存 deploy/secrets_manager/{env-name}.json 次に取得した情報をJSONファイル に反映させます。 JSONファイル名は環境名だけでな くサブドメインやAWSの環境名に

    も使⽤されるのでユニークなもので ある必要があります。
  21. 3. AWS Management Console での設定 SESのルールセットとRoute53のドメイン Certificate Manager の証明書

  22. 4. lsc.sh コマンドでの環境構築 GovTech プログラムをAWSへ環境構築(プロビジョニング)を実⾏する コマンド実⾏には40-50分かかります

  23. 5. Messaging API の Webhook 設定 構築された環境から Webhook URL を取得して設定します

  24. 5. Messaging API の Webhook 設定 最後に LINE Official Account

    Manager の Webhook を有効化します
  25. 環境構築後の実際のコンソール Demonstration for building the environment

  26. 4. 代表的な機能の紹介

  27. 操作デモ Demonstration

  28. 運⽤コストの⽬安 Approximately billing • 基本的に低コストでの運⽤が実現可能 • マネージド型サービスのみで構成されているため利⽤量に応じた従量課⾦体系 • 先⾏事例では⽉額数千円〜1万円の負担にとどまっています •

    LINE公式アカウントの友だち数や需要によって変動します • セグメント配信 / アンケート / FAQチャットボット • LINE公式アカウントは地⽅公共団体プランを前提としているため無償
  29. 5. 今後の GovTech プログラム

  30. None
  31. ご清聴ありがとうございました