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
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
65
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
27
2021.06-Deploy-de-Go!!
w2or3w
0
44
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
430
2020.09-JAWS UG SONIC(コロナ対策サイト+にゃーにゃーマップvol.3)
w2or3w
0
350
2020.07-にゃーにゃーマップvol.2(CloudSearch)
w2or3w
0
360
2020.06-にゃーにゃーマップvol.1
w2or3w
0
350
2020.03-サーバーレスWebアプリ制作で学ぶAppSync
w2or3w
0
350
Featured
See All Featured
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
570
Design in an AI World
tapps
1
240
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
200
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
230
The Invisible Side of Design
smashingmag
302
52k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
270
Un-Boring Meetings
codingconduct
0
310
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
610
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
180
A Modern Web Designer's Workflow
chriscoyier
698
190k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
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