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
110
第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
第155回 雲勉 サーバレスアーキテクチャを 用いたコスト重視 AI サービス
iret
0
41
第154回 雲勉 AWS Codeシリーズ盛り上げ隊 ~ Codeシリーズは砕けない ~
iret
0
38
第153回 雲勉 トラシューが秒で終わる新機能 Amazon Q Developer operational investigations
iret
0
53
第150回 雲勉 AWS AppSyncではじめるGraphQL体験
iret
0
46
第151回 雲勉 プロジェクトのドキュメントにおける課題をAmazon Bedrockで解決してみる
iret
0
62
第152回 雲勉 シームレスなマルチリージョンへの移行と検討 ~Amazon EKSとAWS Global Acceleratorを使用した環境〜
iret
0
58
第149回 雲勉 AWS ベストプラクティスの最新と実際 AWS Well-Architected
iret
0
90
第148回 雲勉 Web アプリケーションセキュリティ
iret
0
53
第147回 雲勉 Amazon CloudWatchをウォッチ!
iret
0
66
Other Decks in Technology
See All in Technology
【詳説】コンテンツ配信 システムの複数機能 基盤への拡張
hatena
0
290
アジャイルな開発チームでテスト戦略の話は誰がする? / Who Talks About Test Strategy?
ak1210
1
760
日経のデータベース事業とElasticsearch
hinatades
PRO
0
260
エンジニア主導の企画立案を可能にする組織とは?
recruitengineers
PRO
1
290
サイト信頼性エンジニアリングとAmazon Web Services / SRE and AWS
ymotongpoo
7
1.8k
Potential EM 制度を始めた理由、そして2年後にやめた理由 - EMConf JP 2025
hoyo
2
3k
マルチアカウント環境における組織ポリシーについて まとめてみる
nrinetcom
PRO
2
100
生成AI×財務経理:PoCで挑むSlack AI Bot開発と現場巻き込みのリアル
pohdccoe
1
790
OPENLOGI Company Profile
hr01
0
60k
IAMのマニアックな話2025
nrinetcom
PRO
6
1.4k
どちらかだけじゃもったいないかも? ECSとEKSを適材適所で併用するメリット、運用課題とそれらの対応について
tk3fftk
2
250
プルリクエストレビューを終わらせるためのチーム体制 / The Team for Completing Pull Request Reviews
nekonenene
1
760
Featured
See All Featured
The Cult of Friendly URLs
andyhume
78
6.2k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Bash Introduction
62gerente
611
210k
Side Projects
sachag
452
42k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
46
2.4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.1k
RailsConf 2023
tenderlove
29
1k
Optimizing for Happiness
mojombo
377
70k
Writing Fast Ruby
sferik
628
61k
Become a Pro
speakerdeck
PRO
26
5.2k
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