Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
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
110
AWS Graviton をご提案の武器とするには?-お客様事例から学ぶ活用ポイント-
cs_sonar
0
40
Kyoto.LT Gravitonを活用する!
cs_sonar
0
300
Other Decks in Technology
See All in Technology
eBPFとwaruiBPF
sat
PRO
4
1.6k
小さな判断で育つ、大きな意思決定力 / 20251204 Takahiro Kinjo
shift_evolve
PRO
1
320
日本Rubyの会の構造と実行とあと何か / hokurikurk01
takahashim
4
570
Digitization部 紹介資料
sansan33
PRO
1
6.1k
Microsoft Agent 365 を 30 分でなんとなく理解する
skmkzyk
1
320
プロダクトマネジメントの分業が生む「デリバリーの渋滞」を解消するTPMの越境
recruitengineers
PRO
3
460
Docker, Infraestructuras seguras y Hardening
josejuansanchez
0
150
ブロックテーマとこれからの WordPress サイト制作 / Toyama WordPress Meetup Vol.81
torounit
0
320
Ryzen NPUにおけるAI Engineプログラミング
anjn
0
220
なぜフロントエンド技術を追うのか?なぜカンファレンスに参加するのか?
sakito
9
2k
AI (LLM) を活用する上で必須級のMCPをAmazon Q Developerで学ぼう / 20251127 Ikuma Yamashita
shift_evolve
PRO
2
100
モバイルゲーム開発におけるエージェント技術活用への試行錯誤 ~開発効率化へのアプローチの紹介と未来に向けた展望~
qualiarts
0
310
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
Typedesign – Prime Four
hannesfritz
42
2.9k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
For a Future-Friendly Web
brad_frost
180
10k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3k
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