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
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
41
Kyoto.LT Gravitonを活用する!
cs_sonar
0
300
Other Decks in Technology
See All in Technology
半年で、AIゼロ知識から AI中心開発組織の変革担当に至るまで
rfdnxbro
0
150
ハッカソンから社内プロダクトへ AIエージェント ko☆shi 開発で学んだ4つの重要要素
leveragestech
0
270
TED_modeki_共創ラボ_20251203.pdf
iotcomjpadmin
0
150
AWSに革命を起こすかもしれない新サービス・アップデートについてのお話
yama3133
0
520
ActiveJobUpdates
igaiga
1
330
「もしもデータ基盤開発で『強くてニューゲーム』ができたなら今の僕はどんなデータ基盤を作っただろう」
aeonpeople
0
250
たまに起きる外部サービスの障害に備えたり備えなかったりする話
egmc
0
430
アプリにAIを正しく組み込むための アーキテクチャ── 国産LLMの現実と実践
kohju
0
240
Strands Agents × インタリーブ思考 で変わるAIエージェント設計 / Strands Agents x Interleaved Thinking AI Agents
takanorig
5
2.2k
202512_AIoT.pdf
iotcomjpadmin
0
150
AI との良い付き合い方を僕らは誰も知らない
asei
0
280
Amazon Connect アップデート! AIエージェントにMCPツールを設定してみた!
ysuzuki
0
150
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
6k
So, you think you're a good person
axbom
PRO
0
1.8k
Writing Fast Ruby
sferik
630
62k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.3k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
Rails Girls Zürich Keynote
gr2m
95
14k
The Language of Interfaces
destraynor
162
25k
Leo the Paperboy
mayatellez
0
1.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Mind Mapping
helmedeiros
PRO
0
40
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.5k
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