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 codeシリーズを使ったCI_CDに挑戦した
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
cs_sonar
August 28, 2021
Technology
0
1.1k
AWS codeシリーズを使ったCI_CDに挑戦した
kyoto.lt #26 onlineでの発表資料です
cs_sonar
August 28, 2021
Tweet
Share
More Decks by cs_sonar
See All by cs_sonar
こんな感じに AWS Identity Center(旧AWS SSO) を使ってます2024
cs_sonar
0
120
AWS Graviton をご提案の武器とするには?-お客様事例から学ぶ活用ポイント-
cs_sonar
0
49
Kyoto.LT Gravitonを活用する!
cs_sonar
0
310
Other Decks in Technology
See All in Technology
ランサムウェア対策としてのpnpm導入のススメ
ishikawa_satoru
0
220
茨城の思い出を振り返る ~CDKのセキュリティを添えて~ / 20260201 Mitsutoshi Matsuo
shift_evolve
PRO
1
400
猫でもわかるKiro CLI(セキュリティ編)
kentapapa
0
110
Frontier Agents (Kiro autonomous agent / AWS Security Agent / AWS DevOps Agent) の紹介
msysh
3
190
登壇駆動学習のすすめ — CfPのネタの見つけ方と書くときに意識していること
bicstone
3
130
Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した.pdf
riku_423
2
610
Tebiki Engineering Team Deck
tebiki
0
24k
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
360
OWASP Top 10:2025 リリースと 少しの日本語化にまつわる裏話
okdt
PRO
3
850
Ruby版 JSXのRuxが気になる
sansantech
PRO
0
170
We Built for Predictability; The Workloads Didn’t Care
stahnma
0
150
生成AIを活用した音声文字起こしシステムの2つの構築パターンについて
miu_crescent
PRO
3
220
Featured
See All Featured
Are puppies a ranking factor?
jonoalderson
1
2.7k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
470
How GitHub (no longer) Works
holman
316
140k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Six Lessons from altMBA
skipperchong
29
4.2k
Speed Design
sergeychernyshev
33
1.5k
Skip the Path - Find Your Career Trail
mkilby
0
59
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.6k
Visualization
eitanlees
150
17k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
230
Transcript
Kyoto.LT Online #26 AWS codeシリーズを使っ たCI/CDに挑戦した 原口 秀人 / @cs_sonar
自己紹介 原口 秀人 (はらぐち ひでと) ・株式会社シーズでCTOをやっています ・AWSのアドバンスドパートナー ・2021 AWS APN
Ambassador に選出
コンテナ使ってますか
- 15 Apr 2021 2021年 国内コンテナ/Kubernetesに関するユー ザー導入調査結果を発表 420社に対してアンケート調査結果 本番環境で使用 16.9%
検証段階 23.3% この2つを合わせた40.2%の企業がコンテ ナの導入を進めている。
DockerでビルドしたプロジェクトをECSに 展開
NOW
NOW ここを自動化したい!
Codeシリーズ!
Feature
Feature
WHAT ARE WORKING ON AWS版github ビルドされたソフトをデプロイ を自動で実行。今回は blue/greenのために利用。 コードのビルドやテストを行 いデプロイ可能なパッケージ
を作成できるサービス。 CircleCIとかJenkinsみたい なやつ。 CodeCommit CodeDeploy CodeBuild 左3つのcodeシリーズの流 れをとりまとめてくれる頼れ る兄貴。PMみたいな人。 CodePipeline
CodeCommit CodeBuild CodeDeploy Source Artifact ・gitの内容全て ・buildspec.yml ・appspec.yaml ・taskdef.json 出力
出力 CodePipeline GitHub docker image ECS (blue/green deploy) ECR Build Artifact ・ImageDetail.json ・appspec.yaml ・taskdef.json
ローカル開発環境。 dockerで動くシステムを作成。
GitHub プロジェクトのリポジトリに以下のファイルを含める (codePipeline で利用します) ・buildspec.yml ・appspec.yaml ・taskdef.json
CodeCommit CodeBuild CodeDeploy CodePipeline GitHub github actions にてリポジトリにpushがあったら CodeCommit にもpushする(ミラーリングする)actionsを
追加する。 CodeCommitへのpushがCodePipeline開始のトリガー
CodeCommit CodeBuild CodeDeploy CodePipeline GitHub Source Artifact ・gitの内容全て ・(buildspec.yml) ・(appspec.yaml)
・(taskdef.json) 出力
CodeCommit CodeBuild CodeDeploy CodePipeline GitHub Source Artifact ・gitの内容全て ・(buildspec.yml) ・(appspec.yaml)
・(taskdef.json) 出力 CodeBuildはLinuxサーバーを立ち上げ、Source Artifact の内容をダウンロードしてきて展開した状態から 利用できます。 その中でbuildspec.ymlに書かれた内容を実行してくれ ます。
CodeCommit CodeBuild CodeDeploy CodePipeline GitHub Source Artifact ・gitの内容全て ・(buildspec.yml) ・(appspec.yaml)
・(taskdef.json) 出力 Build Artifact ・ImageDetail.json ・appspec.yaml ・taskdef.json 出力 docker image ECR
CodeCommit CodeBuild CodeDeploy CodePipeline GitHub Source Artifact ・gitの内容全て ・(buildspec.yml) ・(appspec.yaml)
・(taskdef.json) 出力 Build Artifact ・ImageDetail.json ・appspec.yaml ・taskdef.json 出力 docker image ECR
CodeCommit CodeBuild CodeDeploy Source Artifact ・gitの内容全て ・buildspec.yml ・appspec.yaml ・taskdef.json ECS
(blue/green deploy) 出力 出力 CodePipeline GitHub docker image ECR Build Artifact ・ImageDetail.json ・appspec.yaml ・taskdef.json
CodeCommit CodeBuild CodeDeploy Source Artifact ・gitの内容全て ・buildspec.yml ・appspec.yaml ・taskdef.json 出力
出力 CodePipeline GitHub docker image ECS (blue/green deploy) ECR Build Artifact ・ImageDetail.json ・appspec.yaml ・taskdef.json
Feature
ハマりどころ HEADER TEXT SLIDER ICONS
①CodeDeployでtask definitionが読めない CodeDeploy
①CodeDeployでtask definitionが読めない Exception while trying to read the task definition
artifact file from: SourceArtifact. appspec.ymlやtaskdef.jsonを「SourceArtifact」から読んでいると出るエラー
CodeCommit CodeBuild CodeDeploy Source Artifact ・gitの内容全て ・buildspec.yml ・appspec.yaml ・taskdef.json ECS
(blue/green deploy) 出力 出力 CodePipeline GitHub docker image ECR Build Artifact ・ImageDetail.json
Code Commit CodeBuild CodeDeploy Source Artifact ・gitの内容全て ・buildspec.yml ・appspec.yaml ・taskdef.json
ECS (blue/green deploy) 出力 出力 Code Pipeline GitHub docker image ECR Build Artifact ・ImageDetail.json 実はCodeDeployのアーティファクトサ イズの制限は3MB!
①CodeDeployでtask definitionが読めない CodeDeploy 解決策 CodeDeployの利用アーティファクトをBuildArtifactsに変更する。そ の為にCodeBuildのbuildspec.yamlにてBuildArtifactsとして appspec.ymlとtaskdef.jsonを書き出すようにする。
①CodeDeployでtask definitionが読めない buildspec.yamlの最後でtaskdef.jsonとappspec.yamlをBuildArtifactsとして追加 書き出しする
①CodeDeployでtask definitionが読めない CodePipelineのCodeDeployの設定でタスク定義とAppSpecの入力アーティファクトを BuildArtifact にする
Code Commit CodeBuild CodeDeploy Source Artifact ・gitの内容全て ・buildspec.yml ・appspec.yaml ・taskdef.json
ECS (blue/green deploy) 出力 出力 CodePipeline GitHub docker image ECR Build Artifact ・ImageDetail.json ・appspec.yaml ・taskdef.json CodeBuildで書き出してCodeDeployで 利用する
①CodeDeployでtask definitionが読めない CodeDeploy
②CodeBuildがlimitエラー出る CodeBuild
②CodeBuildがlimitエラー出る toomanyrequests: You have reached your pull rate limit. You
may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit
②CodeBuildがlimitエラー出る 匿名ユーザは6時間に100リクエストに制限され ます。 余裕じゃん?😋
②CodeBuildがlimitエラー出る 匿名ユーザは6時間に100リクエストに制限され ます。 余裕じゃん?😋 匿名ユーザはIPアドレス毎に6時間に100リクエ ストに制限されます。 東京リージョンのCodeBuildのIPは8つ使いまわ し
②CodeBuildがlimitエラー出る CodeBuild 解決策 ・成功するまでリトライするようにする ・CodeBuildをVPC(+NAT Gateway)につないでIPを固定化 ・ECRにイメージを集約する ・DockerHubにログインする
②CodeBuildがlimitエラー出る CodeBuild 解決策 ・成功するまでリトライするようにする ・CodeBuildをVPC(+NAT Gateway)につないでIPを固定化 ・ECRにイメージを集約する ・DockerHubにログインする
③CodeCommit いらなくね? CodeCommit
CodeCommit CodeBuild CodePipeline GitHub ③CodeCommit いらなくね?
CodeBuild CodePipeline GitHub ③CodeCommit いらなくね? ・たしかにこれでもできます ・というかネット記事はこちらしかないかも
CodeBuild CodePipeline GitHub ③CodeCommit いらなくね? ・codebuild側にgithubリポジトリアクセス権限が必要 ・権限はgithubアカウント(OrganizationならOrg単位)で付与 する必要がある CodeBuildが自分の他のリポジトリを閲覧できるようになる
③CodeCommit いらなくね? CodeCommit CodeCommitは要る! ・・・けど自社サービスのみとかならいらないかもね
懇親会では… アーティファクトってなんやねん dockerfileの書き方コツ Codebuild時間短縮したい gitリポジトリ管理方法 ECR pushではまった話
Codeシリーズは難解だけど うまく使って開発を加速させたいですね!
ありがとうございました! Does anyone have any question? @cs_sonar seeds-std.co.jp