Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWS CDK × Reactでliffをつくる
Search
tokku5552
June 29, 2022
Programming
590
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS CDK × Reactでliffをつくる
AWS CDK × Reactでliffをつくる
tokku5552
June 29, 2022
More Decks by tokku5552
See All by tokku5552
他責思考で考える、EMとICの本音
tokku5552
1
190
Google CloudとAWSのコンテナ実行環境比較
tokku5552
0
250
高スループット・低レイテンシを実現する技術
tokku5552
3
17k
AWS CDKのススメ
tokku5552
1
550
Messaging APIのメッセージオブジェクトを検証できるChrome拡張機能を作った話
tokku5552
1
160
FlutterにLINEログインを仕込んで通知メッセージを送る
tokku5552
2
1k
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
tokku5552
1
140
ネットワーク基礎 - WEBページが表示されるまで
tokku5552
1
320
インフラエンジニアのお仕事(オンプレ)
tokku5552
0
170
Other Decks in Programming
See All in Programming
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
800
Oxlintのカスタムルールの現況
syumai
6
1.1k
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
300
AIで効率化できた業務・日常
ochtum
0
140
A2UI という光を覗いてみる
satohjohn
1
140
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
4.3k
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
190
1B+ /day規模のログを管理する技術
broadleaf
0
100
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
170
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
14
5.6k
スマートグラスで並列バイブコーディング
hyshu
0
210
「なぜそう決めたのか」を残し続ける仕組み ― Notion AI カスタムエージェント × Slack連携による設計判断の自動記録 - NIKKEI Tech Talk #47
niftycorp
PRO
0
210
Featured
See All Featured
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
750
We Have a Design System, Now What?
morganepeng
55
8.2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
240
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
180
Marketing to machines
jonoalderson
1
5.5k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1.1k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
400
Transcript
AWS CDK x ReactでLIFFアプリ LINE Monthly LT #3 2022/6/29
自己紹介 とっく(@tokkuu) • ミロゴス株式会社のエンジニア • php/python/TypeScript • AWS周り 3-tierからサーバレスまで •
元々はSIerのインフラエンジニア • LINE API歴は半年くらい 2
はじめに • 前提知識 ◦ AWSリソース(CloudFront/S3) ◦ CloudFormationの概要(json or yamlでテンプレートを書いてスタック作成 )
◦ LINE Developersコンソールの操作・liffについて • このスライドの元ネタ ◦ https://zenn.dev/tokku5552/articles/liff-cdk-create • 参考 ◦ https://developers.line.biz/ja/docs/liff/ 3
AWS CDKとは • AWSが提供するIaC(Infrastructure as Code)ツールの一つ ◦ CloudFormationのテンプレートを作成し、デプロイしてくれるツール • CloudFormationが対応しているものは対応していると考えて良い
◦ サーバーレスでないリソースも作れる • 特徴はjsonやyamlではなく、プログラミング言語でインフラを記述できるところ。 ◦ IDEの補完などの補助機能が使える。画像は TypeScriptの場合の例 4
AWS CDK×Reactでのliffのはじめかた
構成 • AWS CDKがCloudFormationの スタックを作成 • CloudFrontとS3バケットが 作成される • liffのコードもビルドしたものをcdkで
デプロイ 6 ・リポジトリ https://github.com/tokku5552/liff-cdk-sample
AWS CDK × Reactでのliffのはじめかた • cdk init ◦ cdkの雛形が作られる ◦
サーバーレスな構成でアプリケーションコードと一緒に管理するときは cdkのプロジェクト構成がトップにあったほうがやりやすい。 • create-liff-app ◦ プロジェクトルートで実行するが、途中で聞かれる project nameのフォルダが 勝手に切られ、その下に作成される。(好都合) • ここまででyarn devでliffが起動&cdk deployでデプロイできる ◦ cdkはstackを定義していないので、 liffがデプロイされるわけではないが ローカルの環境構築はこれだけ 7
フォルダ構成 . ├── README.md ├── bin/ │ └── liff-cdk-sample.ts ├──
cdk.json ├── cdk.out/ ├── lib/ │ └── liff-cdk-sample-stack.ts ├── liff-app/ │ ├── index.html │ ├── package.json │ ├── src/ │ │ ├── App.css │ │ ├── App.tsx │ │ ├── favicon.ico │ │ ├── main.tsx │ │ └── vite-env.d.ts │ ├── vite.config.ts ├── package.json └── tsconfig.json 8 • cdk init でbin,lib,cdk.jsonなどが作られる ◦ binがcdkコマンドのエントリポイント ◦ libの下にスタックのコードを置いていく • create-liff-appではproject nameで指定した フォルダが作られる ◦ その下はviteというビルドツールで Reactの雛形の構 成が生成されている ◦ cd liff-app && yarn devでliffアプリがローカルで起 動する
stackの記述 export class LiffCdkSampleStack extends Stack { constructor(scope: Construct, id:
string, props?: StackProps) { super(scope, id, props); const liffAppBucket = new s3.Bucket(this, 'LiffAppBucket', { websiteIndexDocument: 'index.html' }); const liffAppDistribution = new cloudfront.CloudFrontWebDistribution(this, 'LiffAppDistribution', { originConfigs: [ { s3OriginSource: { s3BucketSource: liffAppBucket, originAccessIdentity: liffAppIdentity }, behaviors: [{isDefaultBehavior: true}] } ], }) Stackを継承したclassの中の constructorに作りたいリソースを 書いていく 前段で作成したS3バケットを変数に入 れておき、CloudFrontのオリジンに渡し ている。これで連携可能 9 ※途中省略しています
デプロイ npx cdk deploy CloudFormationのスタックが作られる 10
liffアプリ起動🎉 11
まとめ • liffアプリをAWS上で、Reactで作る場合はAWS CDKがおすすめ • CDKならホスティングのみならず、API Gateway + Lambda +
DynamoDBみたいな 構成もかなり短く記述できる • とにかくAWS CDKオススメです!!!! ご清聴ありがとうございました