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
cs_sonar
August 28, 2021
Technology
0
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
110
AWS Graviton をご提案の武器とするには?-お客様事例から学ぶ活用ポイント-
cs_sonar
0
39
Kyoto.LT Gravitonを活用する!
cs_sonar
0
300
Other Decks in Technology
See All in Technology
serverless team topology
_kensh
3
230
Introdução a Service Mesh usando o Istio
aeciopires
1
280
ソースを読むプロセスの例
sat
PRO
15
9.9k
まだ間に合う! 2025年のhono/ssg事情
watany
3
660
What's new in OpenShift 4.20
redhatlivestreaming
0
230
Linux カーネルが支えるコンテナの仕組み / LF Japan Community Days 2025 Osaka
tenforward
1
120
AIプロダクトのプロンプト実践テクニック / Practical Techniques for AI Product Prompts
saka2jp
0
110
OpenTelemetry が拡げる Gemini CLI の可観測性
phaya72
2
2.2k
AI時代、“平均値”ではいられない
uhyo
8
2.5k
ローカルLLMとLINE Botの組み合わせ その2(EVO-X2でgpt-oss-120bを利用) / LINE DC Generative AI Meetup #7
you
PRO
1
160
GraphRAG グラフDBを使ったLLM生成(自作漫画DBを用いた具体例を用いて)
seaturt1e
1
140
AWS UG Grantでグローバル20名に選出されてre:Inventに行く話と、マルチクラウドセキュリティの教科書を執筆した話 / The Story of Being Selected for the AWS UG Grant to Attending re:Invent, and Writing a Multi-Cloud Security Textbook
yuj1osm
1
130
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
The Language of Interfaces
destraynor
162
25k
A designer walks into a library…
pauljervisheath
209
24k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
RailsConf 2023
tenderlove
30
1.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
A Modern Web Designer's Workflow
chriscoyier
697
190k
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