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
1.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS codeシリーズを使ったCI_CDに挑戦した
kyoto.lt #26 onlineでの発表資料です
cs_sonar
August 28, 2021
More Decks by cs_sonar
See All by cs_sonar
MCP本を読んで考えた「今やるべきこと/やらなくていいこと」
cs_sonar
0
140
こんな感じに AWS Identity Center(旧AWS SSO) を使ってます2024
cs_sonar
0
140
AWS Graviton をご提案の武器とするには?-お客様事例から学ぶ活用ポイント-
cs_sonar
0
57
Kyoto.LT Gravitonを活用する!
cs_sonar
0
330
Other Decks in Technology
See All in Technology
Model Studio CLI × Token Plan
maigo999
0
210
Head First モブプログラミング / Head First Mobprogramming
takaking22
10
12k
AI-DLC実践録_フルサイクル開発への挑戦
miyuc
0
360
Kiro Crew入門 - 常駐エージェントの仕組みと使いどころ / Intro to Kiro Crew
k_adachi_01
1
740
国家プロジェクトを支える「さくらONE」 大規模LLM開発におけるGPU障害を乗り越えるクラスター運用戦略
gpuunite_official
0
240
アクセスキーが漏れた日にやるべきこと- 無効化の先にある本当の対応
kazzpapa3
0
180
AI for Science時代を切り開く、政府の次世代HPC戦略の展望
gpuunite_official
0
200
AIで変わるエンジニアの働き方(仮)
naoinaoi
0
370
Genie Codeハンズオン応用編
taka_aki
0
140
会社紹介資料 / Sansan Company Profile
sansan33
PRO
24
430k
英語が話せなくてもKubeConスタッフに参加した話
yusuke427
2
1.1k
【書籍出版記念】 10周回って、エージェント開発は RAGがすべてだった。〜RAGの歴史と開発現場で見えた実践知〜
akiratameto
12
4.7k
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
540
Deep Space Network (abreviated)
tonyrice
0
270
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
YesSQL, Process and Tooling at Scale
rocio
174
15k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
500
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
490
Unsuck your backbone
ammeep
672
58k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
730
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
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