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
第107回 雲勉【オンライン】Amazon ECSとCodeシリーズでCICDに入門!
Search
iret.kumoben
July 07, 2023
Technology
0
130
第107回 雲勉【オンライン】Amazon ECSとCodeシリーズでCICDに入門!
下記、勉強会での資料です。
https://youtu.be/HRamhqFDnWk
iret.kumoben
July 07, 2023
Tweet
Share
More Decks by iret.kumoben
See All by iret.kumoben
第173回 雲勉 ノーコードで生成 AI アプリを構築!Google Cloud AI Applications(旧 Vertex AI Agent Builder)入門
iret
0
33
第170回 雲勉 Lyria が切り拓く音楽制作の未来
iret
1
26
第169回 雲勉 AWS WAF 構築 RTA
iret
0
34
第168回 雲勉 JITNAの使い方とハマったポイントについて語る回
iret
0
36
第167回 雲勉 エージェント開発を加速する Agent Development Kit 入門
iret
1
48
第166回 雲勉 コードを読んで理解する AWS Amplify Gen2 Backend
iret
0
45
第165回 雲勉 Google Agentspace について
iret
0
58
第164回 雲勉 Agent Development Kit と MCP Toolbox for Databases で MCP 連携してみた
iret
1
110
第163回 雲勉 CircleCIで複数リポジトリ間のパイプラインを連携する
iret
1
41
Other Decks in Technology
See All in Technology
TypeScript入門
recruitengineers
PRO
8
1.4k
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
30k
マイクロモビリティシェアサービスを支える プラットフォームアーキテクチャ
grimoh
1
200
AIとTDDによるNext.js「隙間ツール」開発の実践
makotot
5
660
LLM時代の検索とコンテキストエンジニアリング
shibuiwilliam
2
1.1k
サービスロボット最前線:ugoが挑むPhysical AI活用
kmatsuiugo
0
190
Browser
recruitengineers
PRO
3
260
Figma + Storybook + PlaywrightのMCPを使ったフロントエンド開発
yug1224
3
170
実践アプリケーション設計 ①データモデルとドメインモデル
recruitengineers
PRO
2
200
AIドリブンのソフトウェア開発 - うまいやり方とまずいやり方
okdt
PRO
9
570
浸透しなさいRFC 5322&7208
hinono
0
120
JOAI発表資料 @ 関東kaggler会
joai_committee
1
260
Featured
See All Featured
Become a Pro
speakerdeck
PRO
29
5.5k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
183
54k
[RailsConf 2023] Rails as a piece of cake
palkan
56
5.8k
What's in a price? How to price your products and services
michaelherold
246
12k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.6k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Fireside Chat
paigeccino
39
3.6k
Transcript
第107回 雲勉【オンライン】 Amazon ECSとCodeシリーズでCICDに⼊⾨︕ 2023/7/6
0. 自己紹介 松田 啓佑 • 所属 ◦ クラウドインテグレーション事業部 構築第2セクション •
業務 ◦ AWSを中心としたインフラ設計/構築/運用 ◦ New Relic/Datadogを利用した監視の設計/実装 • 好きなAWSサービス ◦ Amazon ECS ◦ AWS Step Functions • 認定 ◦ 2023 Japan AWS Top Engineers ◦ iretテクニカルアンバサダー advanced • 趣味 ◦ テニス ◦ 飲酒 2
本日のゴール 3 ❏ コンテナ、Amazon ECSが何かを理解する ❏ CI/CD、AWS Codeシリーズを何か理解する ❏ AWS
Codeシリーズを利用したECSのCI/CDパイプライン構成をイメージできるようになる
本日のアジェンダ 4 - 0. 自己紹介 - 1. 座学(19:05-19:25) - コンテナとは
- Amazon ECSとは - CI/CDとは - AWS Codeシリーズとは - 2. AWS Codeシリーズを利用してECSのCI/CDパイプラインを実装する (19:25-50) - 3. 質疑応答 (19:50-20:00)
5 [座学] コンテナとは
[座学] コンテナとは 6 • アプリケーション実行環境 ◦ コンテナ以外の実行環境:仮想マシン(VM)、ベアメタルサーバ • 仮想マシンに比べて容量が少なく、起動時間が短い =>
軽量 • 軽量という特徴により、構築からデプロイを迅速に行うことができる => アジリティ 開発スピードが求められる昨今において、 コンテナが実行環境の主流になりつつある
7 [座学] Amazon ECSとは
8 • ECS(Elastic Container Service)とは ◦ AWSが提供するフルマネージドコンテナオーケストレーションサービス ◦ オーケストレーション =
管理 [座学] Amazon ECSとは
9 オーケストレーションがない世界(管理対象1つ) 管理対象が少なければ問題はないが.... [座学] Amazon ECSとは
10 オーケストレーションサービスがない世界(管理対象複数) 対象が増えると管理が煩雑になり、オペレーションミス発生などを招いてしまう! [座学] Amazon ECSとは
11 オーケストレーションがある世界 面倒な管理作業はオーケストレーションサービスにお任せ! [座学] Amazon ECSとは
12 • ECS(Elastic Container Service)とは ◦ AWSが提供するフルマネージドコンテナオーケストレーションサービス ◦ オーケストレーション =
管理 [座学] Amazon ECSとは コンテナをいい感じに管理してくれるサービス
13 AWSのオーケストレーションサービス • ECS(Elastic Container Service) ◦ 小/中規模ワークロード向け ◦ AWS独自ソフトウェアがベース
• EKS(Elastic Kubernetes Service) ◦ 大規模ワークロード向け ◦ Kubernetesがベース [座学] Amazon ECSとは
14 [ 起動タイプ:Fargate ] • ECSで利用可能なサーバレスコンテナ実行環境 • ECSの基盤となるインスタンスの管理をオフロードする • つまり管理者はインスタンスの運用から解放される
• コストは起動タイプEC2よりやや割高 [ 起動タイプ:EC2 ] • EC2インスタンスをコンテナ実行環境とした起動タイプ • EC2インスタンスの運用/保守は利用者の責任範囲 • EC2インスタンスの細かいカスタマイズを行うことができる [座学] Amazon ECSとは
15 • クラスター : 入れ物 • タスク : アプリケーションを実行するコンテナ群 =
アプリケーション本体 • タスク定義 : タスク(アプリケーション)の金型 • サービス:タスクの管理人 ECSの構成要素 [座学] Amazon ECSとは
16 [座学] CI/CDとは
17 [座学] CI/CDとは • Continuous Integration/Continuous Delivery = 継続的インテグレーション/継続的デリバリー •
アプリケーション開発の各ステージを自動化することにより、アプリケーション開発を高速/効率化する手法
[座学] CI/CDとは 18 時間がかかる ヒューマンエラーが発生する ソースコードの変更 ビルド実施 テスト実施 デプロイ実施 リリース
人がやる範囲 CI/CDがない世界
[座学] CI/CDとは 19 ソースコードの変更 ビルド実施 テスト実施 デプロイ実施 リリース 人がやる範囲 時間はかからない
ヒューマンエラーはゼロ CI/CDがある世界
20 [座学] CI/CDとは • Continuous Integration/Continuous Delivery = 継続的インテグレーション/継続的デリバリー •
アプリケーション開発の各ステージを自動化することにより、アプリケーション開発を高速/効率化する手法 CI/CD + コンテナ => 開発の高速化を実現
21 [座学] CI/CDとは • ソース:ソースコードの更新 • ビルド:コンパイル、単体テスト、コンテナイメージの作成 • テスト:結合テスト、UIテスト、ロードテスト •
デプロイ:本番環境への適用 CI/CDではこれら各フェーズを自動化する => 自動化した一連のプロセスをCI/CDパイプラインと呼ぶ ソース ビルド テスト デプロイ アプリケーションの一般的なリリースサイクル
22 [座学] AWS Codeシリーズとは
23 [座学] AWS Codeシリーズとは • アプリケーションのリリースプロセスを担うサービス
24 [座学] AWS Codeシリーズとは ECSのCI/CDパイプラインをCodeシリーズで構成した際のイメージ ソースコード レポジトリ ① ② ③
① Code Commitのレポジトリに変更をPUSH ② Code Buildがソースコードの変更を検知して、ECRに新しいイメージをPUSH ③ Code Deployがタスク定義を更新して、新しいイメージを利用したコンテナを 起動
25 2. AWS Codeシリーズを利用してECSのCI/CDパイプラインを実装する
2. AWS Codeシリーズを利用してECSのCI/CDパイプラインを実装する 26 ◆実施すること AWS Codeシリーズを利用してECSのCI/CDパイプラインを実装する ◆ゴール ソースコード更新をトリガーにCI/CDパイプラインが実行されて、ECSのコンテナが更新されることを 確認する
2. AWS Codeシリーズを利用してECSのCI/CDパイプラインを実装する 27 完成イメージ
2. AWS Codeシリーズを利用してECSのCI/CDパイプラインを実装する 28 - 0. 事前準備 - 0.1 事前に作成したリソース説明
- 0.2 ALBエンドポイントへのリクエスト確認 - 1. 構築 - 1.1 Code Commitレポジトリ作成 - 1.2 Code Build ビルドプロジェクト作成 - 1.3 Code Deploy アプリケーション/デプロイグループ作成 - 1.4 必要なファイルをレポジトリにPUSH - 1.5 Code Pipeline パイプラインの作成 - 1.6 動作確認
29 - 0. 事前準備 - 0.1 事前に作成したリソース説明 - 0.2 ALBエンドポイントへのリクエスト確認
- 1. 構築 - 1.1 Code Commitレポジトリ作成 - 1.2 Code Build ビルドプロジェクト作成 - 1.3 Code Deploy アプリケーション/デプロイグループ作成 - 1.4 必要なファイルをレポジトリにPUSH - 1.5 Code Pipeline パイプラインの作成 - 1.6 動作確認 2. AWS Codeシリーズを利用してECSのCI/CDパイプラインを実装する
30 ネットワークとECS周りのリソースを作成して、ALBのエンドポイントを叩けばApacheのWebページが 見れる状態にする 2. AWS Codeシリーズを利用してECSのCI/CDパイプラインを実装する ALB周りの詳細な構成
31 - 0. 事前準備 - 0.1 事前に作成したリソース説明 - 0.2 ALBエンドポイントへのリクエスト確認
- 1. 構築 - 1.1 Code Commitレポジトリ作成 - 1.2 Code Build ビルドプロジェクト作成 - 1.3 Code Deploy アプリケーション/デプロイグループ作成 - 1.4 必要なファイルをレポジトリにPUSH - 1.5 Code Pipeline パイプラインの作成 - 1.6 動作確認 2. AWS Codeシリーズを利用してECSのCI/CDパイプラインを実装する
32 - 0. 事前準備 - 0.1 事前に作成したリソース説明 - 0.2 ALBエンドポイントへのリクエスト確認
- 1. 構築 - 1.1 Code Commitレポジトリ作成 - 1.2 Code Build ビルドプロジェクト作成 - 1.3 Code Deploy アプリケーション/デプロイグループ作成 - 1.4 必要なファイルをレポジトリにPUSH - 1.5 Code Pipeline パイプラインの作成 - 1.6 動作確認 2. AWS Codeシリーズを利用してECSのCI/CDパイプラインを実装する
33 3. 質疑応答
3