SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
ビットバンク株式会社
Deploy Typescript Application
by
CodePipeline
〜CodePipelineを使用したLambdaデプロイについて〜
2018 / 8 / 24 bitbank LT Night #2 ~Node.js~
shogo ishikawa / bitbank, lnc
Copyright © bitbank, inc.
自己紹介
Resources:
 Introduction:
  Type: My::Introduction
  Properties:
Name: shogo ishikawa
Age: 11000b
Role: AWS engineer
   FavoriteService: CloudFormation
Hobby: SELinux
Copyright © bitbank, inc.
今回お話すること
サーバレスデプロイのCI/CD
してますか?
Copyright © bitbank, inc.
今回お話すること
TypeScriptでCodePipelineを使った
サーバレスデプロイを自動化する方法について
お話します。
Copyright © bitbank, inc.
CI / CDの導入のキッカケ
● 手動デプロイをしたくない
● ソースコード管理を確実にしたい
負担が増大して辛い 
リリース手順書
作業ミスの増大作業がしんどい
Git管理されてないソー
スがあるか不安
Copyright © bitbank, inc.
CI / CDの導入のメリット
● ソースコード管理を簡略化
● 手動デプロイの撲滅
● テストからデプロイまでの一連の作業を自動化
リリース自動化
手順書不要リリース楽
作業ミス減る
自動化されて安心
Copyright © bitbank, inc.
利用したサービス
● CodePipeline
● CodeBuild
● SAM
● Lambda
● CircleCI
Copyright © bitbank, inc.
CodePipelineとCodeBuild
● 様々なサービスと連携可能なパイプライン
Source Test Build Deploy
Github
CodeBuild
CloudFormation
...
S3
CodeCommit
ECS
Copyright © bitbank, inc.
SAMとは
● 端的に言うとCloudFormationにServerlessよりなサービスをプ
ロビジョニングできるよう拡張したもの。
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Copyright © bitbank, inc.
構成図
Copyright © bitbank, inc.
デプロイのルール
● Githubのブランチはproductionとdevelopmentに分離
● CircleCIでテストパス後、CodePipelineをWebhookで呼び出す
Copyright © bitbank, inc.
なぜCircleCIから直接デプロイしないのか?
● CircleCIにAWSクレデンシャルを払い出したくなかった
● CodePipeline経由にすることで、承認フローも追加できるため
Copyright © bitbank, inc.
なぜTypeScriptなのか?
● データの型を定義できる
○ Lambdaの利用はサービス間のデータ連携が主になる
○ node: const id = event.invocationId;
● eventってこのJSON何者???
○ ts: 何が入ってくるか明示的に書かれているので安心
Copyright © bitbank, inc.
なぜTypeScriptでSAMなのか?
● sam-localを使ったローカルテスト
○ command: sam local invoke sampleEvent -t sample-template.yaml -e ./event.json
eventデータを用意する必要があるため、実データのダミーも残る
ため、いちいち内容を確認する必要がない
メンテナンス性が高くなる!
SAMテンプレートがLambdaの全てを語ってくれる
Copyright © bitbank, inc.
デモ
デモします。当日のみ
Copyright © bitbank, inc.
まとめ
● CI/CDを導入することでサーバレスデプロイを自動化
● CircleCIから直接デプロイするのではなくて、CodePipeline経由
でLambdaデプロイすることでAWSクレデンシャルを払い出さず
に済む
Copyright © bitbank, inc.
We're Hiring!
AWSエンジニアを募集しています。
● FaaS
○ Lambda with TypeScript
● CI / CDの構築
○ CodePipeline, CodeBuild
● Infrastructure as code
○ CloudFormation
● コンテナ導入
○ Fargete、Docker

Weitere ähnliche Inhalte

Was ist angesagt?

ビットバンクの開発におけるAWSの利用
ビットバンクの開発におけるAWSの利用ビットバンクの開発におけるAWSの利用
ビットバンクの開発におけるAWSの利用bitbank, Inc. Tokyo, Japan
 
DeveloperSuccess として何を届けられるか、様々な分野を経た先として何ができるか
DeveloperSuccess として何を届けられるか、様々な分野を経た先として何ができるかDeveloperSuccess として何を届けられるか、様々な分野を経た先として何ができるか
DeveloperSuccess として何を届けられるか、様々な分野を経た先として何ができるかbitbank, Inc. Tokyo, Japan
 
TypeScriptでライトニングネットワークを使ってみよう
TypeScriptでライトニングネットワークを使ってみようTypeScriptでライトニングネットワークを使ってみよう
TypeScriptでライトニングネットワークを使ってみようbitbank, Inc. Tokyo, Japan
 
bitbankフロントエンド開発について
bitbankフロントエンド開発についてbitbankフロントエンド開発について
bitbankフロントエンド開発についてKou Matsumoto
 
仮想通貨取引所 bitbank の IaC の導入と実践
仮想通貨取引所 bitbank の IaC の導入と実践 仮想通貨取引所 bitbank の IaC の導入と実践
仮想通貨取引所 bitbank の IaC の導入と実践 bitbank, Inc. Tokyo, Japan
 
only ip whitelist at cloudfront is ok?
only ip whitelist at cloudfront is ok?only ip whitelist at cloudfront is ok?
only ip whitelist at cloudfront is ok?Yuta Suzuki
 
そのコンテナ化、本当に嬉しいですか?
そのコンテナ化、本当に嬉しいですか?そのコンテナ化、本当に嬉しいですか?
そのコンテナ化、本当に嬉しいですか?Yuta Suzuki
 
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...Takayoshi Tanaka
 
Sidekiq Proを1年ほど使ってみて良かったところ、困ったところ | 新宿.rb 29th #shinjukurb
Sidekiq Proを1年ほど使ってみて良かったところ、困ったところ | 新宿.rb 29th #shinjukurbSidekiq Proを1年ほど使ってみて良かったところ、困ったところ | 新宿.rb 29th #shinjukurb
Sidekiq Proを1年ほど使ってみて良かったところ、困ったところ | 新宿.rb 29th #shinjukurbKoichiro Sumi
 
Riotでサーバレスにした話
Riotでサーバレスにした話Riotでサーバレスにした話
Riotでサーバレスにした話Hiroyuki Hara
 
【Code for向け】保育園・消火栓mapを作れるアプリを作ろう!
【Code for向け】保育園・消火栓mapを作れるアプリを作ろう!【Code for向け】保育園・消火栓mapを作れるアプリを作ろう!
【Code for向け】保育園・消火栓mapを作れるアプリを作ろう!史識 川原
 
今後のContainerの行く末の感じたこと、思ったこと 〜JKD参加報告〜
今後のContainerの行く末の感じたこと、思ったこと〜JKD参加報告〜今後のContainerの行く末の感じたこと、思ったこと〜JKD参加報告〜
今後のContainerの行く末の感じたこと、思ったこと 〜JKD参加報告〜Tsukasa Kato
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門torisoup
 
開発メンバーを増やすときの 秩序だったプラクティス with SideCI
開発メンバーを増やすときの秩序だったプラクティス with SideCI開発メンバーを増やすときの秩序だったプラクティス with SideCI
開発メンバーを増やすときの 秩序だったプラクティス with SideCIKoichiro Sumi
 
GraalVM Native Imageが見せた未来
GraalVM Native Imageが見せた未来GraalVM Native Imageが見せた未来
GraalVM Native Imageが見せた未来Rakuten Group, Inc.
 
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行gree_tech
 
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例Naoya Kishimoto
 

Was ist angesagt? (20)

ビットバンクの開発におけるAWSの利用
ビットバンクの開発におけるAWSの利用ビットバンクの開発におけるAWSの利用
ビットバンクの開発におけるAWSの利用
 
DeveloperSuccess として何を届けられるか、様々な分野を経た先として何ができるか
DeveloperSuccess として何を届けられるか、様々な分野を経た先として何ができるかDeveloperSuccess として何を届けられるか、様々な分野を経た先として何ができるか
DeveloperSuccess として何を届けられるか、様々な分野を経た先として何ができるか
 
TypeScriptでライトニングネットワークを使ってみよう
TypeScriptでライトニングネットワークを使ってみようTypeScriptでライトニングネットワークを使ってみよう
TypeScriptでライトニングネットワークを使ってみよう
 
Ethereumのシャーディング概論
Ethereumのシャーディング概論Ethereumのシャーディング概論
Ethereumのシャーディング概論
 
ng build --prod & Continuous Delivery
ng build --prod & Continuous Deliveryng build --prod & Continuous Delivery
ng build --prod & Continuous Delivery
 
bitbankフロントエンド開発について
bitbankフロントエンド開発についてbitbankフロントエンド開発について
bitbankフロントエンド開発について
 
仮想通貨取引所 bitbank の IaC の導入と実践
仮想通貨取引所 bitbank の IaC の導入と実践 仮想通貨取引所 bitbank の IaC の導入と実践
仮想通貨取引所 bitbank の IaC の導入と実践
 
only ip whitelist at cloudfront is ok?
only ip whitelist at cloudfront is ok?only ip whitelist at cloudfront is ok?
only ip whitelist at cloudfront is ok?
 
そのコンテナ化、本当に嬉しいですか?
そのコンテナ化、本当に嬉しいですか?そのコンテナ化、本当に嬉しいですか?
そのコンテナ化、本当に嬉しいですか?
 
Fukuten 20200117 up
Fukuten 20200117 upFukuten 20200117 up
Fukuten 20200117 up
 
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
 
Sidekiq Proを1年ほど使ってみて良かったところ、困ったところ | 新宿.rb 29th #shinjukurb
Sidekiq Proを1年ほど使ってみて良かったところ、困ったところ | 新宿.rb 29th #shinjukurbSidekiq Proを1年ほど使ってみて良かったところ、困ったところ | 新宿.rb 29th #shinjukurb
Sidekiq Proを1年ほど使ってみて良かったところ、困ったところ | 新宿.rb 29th #shinjukurb
 
Riotでサーバレスにした話
Riotでサーバレスにした話Riotでサーバレスにした話
Riotでサーバレスにした話
 
【Code for向け】保育園・消火栓mapを作れるアプリを作ろう!
【Code for向け】保育園・消火栓mapを作れるアプリを作ろう!【Code for向け】保育園・消火栓mapを作れるアプリを作ろう!
【Code for向け】保育園・消火栓mapを作れるアプリを作ろう!
 
今後のContainerの行く末の感じたこと、思ったこと 〜JKD参加報告〜
今後のContainerの行く末の感じたこと、思ったこと〜JKD参加報告〜今後のContainerの行く末の感じたこと、思ったこと〜JKD参加報告〜
今後のContainerの行く末の感じたこと、思ったこと 〜JKD参加報告〜
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門
 
開発メンバーを増やすときの 秩序だったプラクティス with SideCI
開発メンバーを増やすときの秩序だったプラクティス with SideCI開発メンバーを増やすときの秩序だったプラクティス with SideCI
開発メンバーを増やすときの 秩序だったプラクティス with SideCI
 
GraalVM Native Imageが見せた未来
GraalVM Native Imageが見せた未来GraalVM Native Imageが見せた未来
GraalVM Native Imageが見せた未来
 
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
 
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
 

Ähnlich wie Deploy TypeScript Application by CodePipeline

サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話しサーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話しAkira Nagata
 
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏Daisuke Ikeda
 
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!史識 川原
 
マルチクラウドデータ連携Javaアプリケーションの作り方
マルチクラウドデータ連携Javaアプリケーションの作り方マルチクラウドデータ連携Javaアプリケーションの作り方
マルチクラウドデータ連携Javaアプリケーションの作り方CData Software Japan
 
Realm platform2019
Realm platform2019Realm platform2019
Realm platform2019昌桓 李
 
cndjp: 「Microclimate」by capsmalt
cndjp: 「Microclimate」by capsmaltcndjp: 「Microclimate」by capsmalt
cndjp: 「Microclimate」by capsmaltcapsmalt
 
Gitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイGitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイiwata jaws-ug
 
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜Masaya Aoyama
 
TypeScriptでCLIアプリケーション開発
TypeScriptでCLIアプリケーション開発TypeScriptでCLIアプリケーション開発
TypeScriptでCLIアプリケーション開発Shuto Suzuki
 
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすDangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすShunsuke Maeda
 
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?Developers Summit
 
GitLab で実現する Ansible コードの管理
GitLab で実現する Ansible コードの管理GitLab で実現する Ansible コードの管理
GitLab で実現する Ansible コードの管理裕貴 荒井
 
SpringOne Platform Replay -Pivotal Cloud Foundry-
SpringOne Platform Replay -Pivotal Cloud Foundry-SpringOne Platform Replay -Pivotal Cloud Foundry-
SpringOne Platform Replay -Pivotal Cloud Foundry-CASAREAL, Inc.
 
ビットバンクのデプロイ戦略について
ビットバンクのデプロイ戦略についてビットバンクのデプロイ戦略について
ビットバンクのデプロイ戦略についてbitbank, Inc. Tokyo, Japan
 
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)NTT DATA Technology & Innovation
 
プライベートクラウド作ってみました
プライベートクラウド作ってみましたプライベートクラウド作ってみました
プライベートクラウド作ってみましたKoji Hasebe
 
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!CData Software Japan
 
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニーUnity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニーYoshifumi Kawai
 
サイバーエージェントにおけるプライベートコンテナ基盤AKEを支える技術
サイバーエージェントにおけるプライベートコンテナ基盤AKEを支える技術サイバーエージェントにおけるプライベートコンテナ基盤AKEを支える技術
サイバーエージェントにおけるプライベートコンテナ基盤AKEを支える技術Masaya Aoyama
 

Ähnlich wie Deploy TypeScript Application by CodePipeline (20)

サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話しサーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話し
 
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
 
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
 
マルチクラウドデータ連携Javaアプリケーションの作り方
マルチクラウドデータ連携Javaアプリケーションの作り方マルチクラウドデータ連携Javaアプリケーションの作り方
マルチクラウドデータ連携Javaアプリケーションの作り方
 
Realm platform2019
Realm platform2019Realm platform2019
Realm platform2019
 
【初心者向け】API を使ってクラウドの管理を自動化しよう
【初心者向け】API を使ってクラウドの管理を自動化しよう【初心者向け】API を使ってクラウドの管理を自動化しよう
【初心者向け】API を使ってクラウドの管理を自動化しよう
 
cndjp: 「Microclimate」by capsmalt
cndjp: 「Microclimate」by capsmaltcndjp: 「Microclimate」by capsmalt
cndjp: 「Microclimate」by capsmalt
 
Gitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイGitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイ
 
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
 
TypeScriptでCLIアプリケーション開発
TypeScriptでCLIアプリケーション開発TypeScriptでCLIアプリケーション開発
TypeScriptでCLIアプリケーション開発
 
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすDangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らす
 
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
 
GitLab で実現する Ansible コードの管理
GitLab で実現する Ansible コードの管理GitLab で実現する Ansible コードの管理
GitLab で実現する Ansible コードの管理
 
SpringOne Platform Replay -Pivotal Cloud Foundry-
SpringOne Platform Replay -Pivotal Cloud Foundry-SpringOne Platform Replay -Pivotal Cloud Foundry-
SpringOne Platform Replay -Pivotal Cloud Foundry-
 
ビットバンクのデプロイ戦略について
ビットバンクのデプロイ戦略についてビットバンクのデプロイ戦略について
ビットバンクのデプロイ戦略について
 
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
 
プライベートクラウド作ってみました
プライベートクラウド作ってみましたプライベートクラウド作ってみました
プライベートクラウド作ってみました
 
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
 
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニーUnity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
 
サイバーエージェントにおけるプライベートコンテナ基盤AKEを支える技術
サイバーエージェントにおけるプライベートコンテナ基盤AKEを支える技術サイバーエージェントにおけるプライベートコンテナ基盤AKEを支える技術
サイバーエージェントにおけるプライベートコンテナ基盤AKEを支える技術
 

Mehr von bitbank, Inc. Tokyo, Japan

ビットバンク流 アジャイル開発の紹介.pdf
ビットバンク流 アジャイル開発の紹介.pdfビットバンク流 アジャイル開発の紹介.pdf
ビットバンク流 アジャイル開発の紹介.pdfbitbank, Inc. Tokyo, Japan
 
ビットバンクで求められるプロジェクトマネジメント
ビットバンクで求められるプロジェクトマネジメントビットバンクで求められるプロジェクトマネジメント
ビットバンクで求められるプロジェクトマネジメントbitbank, Inc. Tokyo, Japan
 
ビットバンクでのネイティブアプリケーション開発におけるCI_CD環境
ビットバンクでのネイティブアプリケーション開発におけるCI_CD環境ビットバンクでのネイティブアプリケーション開発におけるCI_CD環境
ビットバンクでのネイティブアプリケーション開発におけるCI_CD環境bitbank, Inc. Tokyo, Japan
 
ビットバンクのマッチングエンジン.pdf
ビットバンクのマッチングエンジン.pdfビットバンクのマッチングエンジン.pdf
ビットバンクのマッチングエンジン.pdfbitbank, Inc. Tokyo, Japan
 
ビットコインウォレットで手軽にパスワードレス認証が可能なbitidについての紹介
ビットコインウォレットで手軽にパスワードレス認証が可能なbitidについての紹介	ビットコインウォレットで手軽にパスワードレス認証が可能なbitidについての紹介
ビットコインウォレットで手軽にパスワードレス認証が可能なbitidについての紹介 bitbank, Inc. Tokyo, Japan
 
アプリケーション開発目線から考える テストの書き方について
アプリケーション開発目線から考える テストの書き方についてアプリケーション開発目線から考える テストの書き方について
アプリケーション開発目線から考える テストの書き方についてbitbank, Inc. Tokyo, Japan
 
bitbank LT Night #1 fargate blue green deployment
bitbank LT Night #1 fargate blue green deploymentbitbank LT Night #1 fargate blue green deployment
bitbank LT Night #1 fargate blue green deploymentbitbank, Inc. Tokyo, Japan
 

Mehr von bitbank, Inc. Tokyo, Japan (15)

インフラチームの歴史とこれから
インフラチームの歴史とこれからインフラチームの歴史とこれから
インフラチームの歴史とこれから
 
ビットバンク流 アジャイル開発の紹介.pdf
ビットバンク流 アジャイル開発の紹介.pdfビットバンク流 アジャイル開発の紹介.pdf
ビットバンク流 アジャイル開発の紹介.pdf
 
ビットバンクで求められるプロジェクトマネジメント
ビットバンクで求められるプロジェクトマネジメントビットバンクで求められるプロジェクトマネジメント
ビットバンクで求められるプロジェクトマネジメント
 
ビットバンクでのネイティブアプリケーション開発におけるCI_CD環境
ビットバンクでのネイティブアプリケーション開発におけるCI_CD環境ビットバンクでのネイティブアプリケーション開発におけるCI_CD環境
ビットバンクでのネイティブアプリケーション開発におけるCI_CD環境
 
ビットバンクのマッチングエンジン.pdf
ビットバンクのマッチングエンジン.pdfビットバンクのマッチングエンジン.pdf
ビットバンクのマッチングエンジン.pdf
 
bitbank Corporate Information
bitbank Corporate Informationbitbank Corporate Information
bitbank Corporate Information
 
マーブル図で怖くないRxJS
マーブル図で怖くないRxJSマーブル図で怖くないRxJS
マーブル図で怖くないRxJS
 
ビットコインウォレットで手軽にパスワードレス認証が可能なbitidについての紹介
ビットコインウォレットで手軽にパスワードレス認証が可能なbitidについての紹介	ビットコインウォレットで手軽にパスワードレス認証が可能なbitidについての紹介
ビットコインウォレットで手軽にパスワードレス認証が可能なbitidについての紹介
 
Daocasinoにおけるstate channel実装
Daocasinoにおけるstate channel実装Daocasinoにおけるstate channel実装
Daocasinoにおけるstate channel実装
 
20181108 bitbank lt-maintainable-e2e-testing
20181108 bitbank lt-maintainable-e2e-testing20181108 bitbank lt-maintainable-e2e-testing
20181108 bitbank lt-maintainable-e2e-testing
 
Angular Refactoring in Real World
Angular Refactoring in Real WorldAngular Refactoring in Real World
Angular Refactoring in Real World
 
アプリケーション開発目線から考える テストの書き方について
アプリケーション開発目線から考える テストの書き方についてアプリケーション開発目線から考える テストの書き方について
アプリケーション開発目線から考える テストの書き方について
 
Asana handson
Asana handsonAsana handson
Asana handson
 
RDBMS with Node.js
RDBMS with Node.jsRDBMS with Node.js
RDBMS with Node.js
 
bitbank LT Night #1 fargate blue green deployment
bitbank LT Night #1 fargate blue green deploymentbitbank LT Night #1 fargate blue green deployment
bitbank LT Night #1 fargate blue green deployment
 

Deploy TypeScript Application by CodePipeline

  • 2. Copyright © bitbank, inc. 自己紹介 Resources:  Introduction:   Type: My::Introduction   Properties: Name: shogo ishikawa Age: 11000b Role: AWS engineer    FavoriteService: CloudFormation Hobby: SELinux
  • 3. Copyright © bitbank, inc. 今回お話すること サーバレスデプロイのCI/CD してますか?
  • 4. Copyright © bitbank, inc. 今回お話すること TypeScriptでCodePipelineを使った サーバレスデプロイを自動化する方法について お話します。
  • 5. Copyright © bitbank, inc. CI / CDの導入のキッカケ ● 手動デプロイをしたくない ● ソースコード管理を確実にしたい 負担が増大して辛い  リリース手順書 作業ミスの増大作業がしんどい Git管理されてないソー スがあるか不安
  • 6. Copyright © bitbank, inc. CI / CDの導入のメリット ● ソースコード管理を簡略化 ● 手動デプロイの撲滅 ● テストからデプロイまでの一連の作業を自動化 リリース自動化 手順書不要リリース楽 作業ミス減る 自動化されて安心
  • 7. Copyright © bitbank, inc. 利用したサービス ● CodePipeline ● CodeBuild ● SAM ● Lambda ● CircleCI
  • 8. Copyright © bitbank, inc. CodePipelineとCodeBuild ● 様々なサービスと連携可能なパイプライン Source Test Build Deploy Github CodeBuild CloudFormation ... S3 CodeCommit ECS
  • 9. Copyright © bitbank, inc. SAMとは ● 端的に言うとCloudFormationにServerlessよりなサービスをプ ロビジョニングできるよう拡張したもの。 AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31
  • 10. Copyright © bitbank, inc. 構成図
  • 11. Copyright © bitbank, inc. デプロイのルール ● Githubのブランチはproductionとdevelopmentに分離 ● CircleCIでテストパス後、CodePipelineをWebhookで呼び出す
  • 12. Copyright © bitbank, inc. なぜCircleCIから直接デプロイしないのか? ● CircleCIにAWSクレデンシャルを払い出したくなかった ● CodePipeline経由にすることで、承認フローも追加できるため
  • 13. Copyright © bitbank, inc. なぜTypeScriptなのか? ● データの型を定義できる ○ Lambdaの利用はサービス間のデータ連携が主になる ○ node: const id = event.invocationId; ● eventってこのJSON何者??? ○ ts: 何が入ってくるか明示的に書かれているので安心
  • 14. Copyright © bitbank, inc. なぜTypeScriptでSAMなのか? ● sam-localを使ったローカルテスト ○ command: sam local invoke sampleEvent -t sample-template.yaml -e ./event.json eventデータを用意する必要があるため、実データのダミーも残る ため、いちいち内容を確認する必要がない メンテナンス性が高くなる! SAMテンプレートがLambdaの全てを語ってくれる
  • 15. Copyright © bitbank, inc. デモ デモします。当日のみ
  • 16. Copyright © bitbank, inc. まとめ ● CI/CDを導入することでサーバレスデプロイを自動化 ● CircleCIから直接デプロイするのではなくて、CodePipeline経由 でLambdaデプロイすることでAWSクレデンシャルを払い出さず に済む
  • 17. Copyright © bitbank, inc. We're Hiring! AWSエンジニアを募集しています。 ● FaaS ○ Lambda with TypeScript ● CI / CDの構築 ○ CodePipeline, CodeBuild ● Infrastructure as code ○ CloudFormation ● コンテナ導入 ○ Fargete、Docker