Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
2021.08-CICD-01
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
w2or3w
August 27, 2021
69
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
2021.08-CICD-01
w2or3w
August 27, 2021
More Decks by w2or3w
See All by w2or3w
2021.09-DeployDeGo!!
w2or3w
0
28
2021.06-Deploy-de-Go!!
w2or3w
0
49
2021.04-YOTEIASOBI vol.1 (Amplify, Cognito, Google Calendar)
w2or3w
0
320
2020.12-浜松IT合同勉強会2020
w2or3w
0
310
2020.10-にゃーにゃーマップvol.4(Uber H3 Index)
w2or3w
0
440
2020.09-JAWS UG SONIC(コロナ対策サイト+にゃーにゃーマップvol.3)
w2or3w
0
360
2020.07-にゃーにゃーマップvol.2(CloudSearch)
w2or3w
0
370
2020.06-にゃーにゃーマップvol.1
w2or3w
0
360
2020.03-サーバーレスWebアプリ制作で学ぶAppSync
w2or3w
0
360
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Color Theory Basics | Prateek | Gurzu
gurzu
1
470
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
280
How STYLIGHT went responsive
nonsquared
100
6.3k
Abbi's Birthday
coloredviolet
4
10k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
690
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
36k
Between Models and Reality
mayunak
4
460
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
500
Transcript
Amplify Consoleでしか CICDできなかったけど..。 @w2or3w 2021.08.27 JAWS-UG浜松 AWS勉強会 2021#8
Amplify ConsoleでしかCICDできなかったけど..。 ・静的WebサイトをAmplifyConsoleでCICD ・静的WebサイトをCode PipelineでCICD (おまけ : GoのWebアプリをCode PipelineでCICD) 今日やること
CICD やってるマン! (プライベートで AmplifyConsoleだけ) CICD 担当マン! (本業でもやってる ) ちょっと 進化した
ナカムラ ツカサ (38) 浜松市在住の リーマンアプリケーションエンジニア 好き: サーバーレスWebアプリ制作 データレイク・データ連携 Amplify, Lambda,
DynamoDB, AppSync S3, Athena, Glue, StepFunctions 転職して2ヶ月 Webアプリ(Nuxt)の実装しつつ、 CICD担当としてAWSと戯れる日々。 @w2or3w 2(ツー) or(~か) 3(サン) 自己紹介
https://aws.amazon.com/jp/amplify/hosting/ https://aws.amazon.com/jp/codepipeline/ Amplify Console / CodePipeline
1. Amplify Consoleでアプリ作成 2. リポジトリとブランチを選択 3. ビルドの設定 (テストや環境変数もここに含まれる ) 4.
確認 静的Webサイトを Amplify ConsoleでCICD
1. S3バケットの作成 2. S3バケットの設定(パブリック許可、ホスティング有効) 3. Code Pipelineでパイプライン作成 4. リポジトリとブランチを選択 5.
ビルドの設定 (テストや環境変数もここに含まれる ) 6. デプロイの設定(プロバイダ=S3) 7. 確認 静的Webサイトを Code PipelineでCICD
Code Pipelineで担う範囲に限定すれば、Amplify Consoleと大体同じ。 (a)ソースステージ、(b)ビルドステージ、(c)デプロイステージ ・・・この辺りはアプリケーションエンジニアの領域! (a) (b) (a) (b) (c)
やってみよう!
1. yarn dev で簡易サーバーを立ち上げて実行 2. yarn run generate でビルドされた静的コンテンツを出力 3.
aws s3 cp コマンドでアップロード 静的Webサイトを ローカルで実行したり、 コマンドラインでデプロイする
(a) ソースステージ Amplify Console Code Pipeline GitHub(バージョン2)が推奨されているが、 AmplifyConsoleでは選択できない。
(b) ビルドステージ Amplify Console Code Pipeline artifactsの baseDirectory の指定に 若干差異があるが、だいたい同じ。
(!)本当は、 nodeのバージョンを指定したり、 テストを実行したりするのが望ましいが、 割愛している。
(c) デプロイステージ Amplify Console Code Pipeline なし
CICDしてる様子 Amplify Console Code Pipeline
おまけ:GoのWebアプリをCode PipelineでCICD ビルドステージ 1. リポジトリ(ECR)の作成 2. CodeBuildプロジェクト作成 ※ビルドステージ (ECRとCodeBuild)とデプロイステージ (ECS)は
それぞれ事前に作成しておいてから、パイプラインでそれらを選択します。 ※DockerHubにログインしておかないと、 「Too Many Requests」というエラーによりビルドが失敗することがあります。 ( https://dev.classmethod.jp/articles/codebuild-has-to-use-dockerhub-login-to-avoid-ip-gacha/ ) ※DockerfileはBuildspecに直接書いても良いですが、 このサンプルではソースコードと同じ場所にあるファイルを利用しています。 ( https://github.com/ww2or3ww/learn-run-go/blob/main/03.webapp/webapp/Dockerfile.release ) なお、Buildspec自体もソースコードと同じ場所に作成しておくこともできます。
おまけ:GoのWebアプリをCode PipelineでCICD デプロイステージ 1. ECSのタスクをFAGATEとして作成 (コンテナは先ほど作成したECRを指定) 2. ECSのクラスターを作成 3. 作成したクラスターにサービスを作成
(タスクは上で作成したタスクを指定 ) (ターゲットグループを作成する必要あり ) (VPC, サブネット, セキュリティグループ, ALBも必要) この辺りはインフラ色が強く、アプリ担当の出番はない領域かもしれません。 私も全てでなく、一部のみ担当しています。 インフラ担当 :VPC、サブネット、セキュリティグループ、 ALB、ECSクラスター アプリ担当 (私) :ECSタスク、ECSサービス、ターゲットグループ 今感じている辛み 環境変数が多くて辛い ・SystemManagerのパラメータストアに実際の値を設定 (機密情報は、さらに Secrets Managerへの登録も。 ) ・タスクのコンテナ設定では、パラメータストアのパスを指定
Enjoy Deploy🚀 Thank You !! @w2or3w