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
44
第154回 雲勉 AWS Codeシリーズ盛り上げ隊 ~ Codeシリーズは砕けない ~
iret
0
41
第153回 雲勉 トラシューが秒で終わる新機能 Amazon Q Developer operational investigations
iret
0
55
第150回 雲勉 AWS AppSyncではじめるGraphQL体験
iret
0
47
第151回 雲勉 プロジェクトのドキュメントにおける課題をAmazon Bedrockで解決してみる
iret
0
62
第152回 雲勉 シームレスなマルチリージョンへの移行と検討 ~Amazon EKSとAWS Global Acceleratorを使用した環境〜
iret
0
58
第149回 雲勉 AWS ベストプラクティスの最新と実際 AWS Well-Architected
iret
0
92
第148回 雲勉 Web アプリケーションセキュリティ
iret
0
55
第147回 雲勉 Amazon CloudWatchをウォッチ!
iret
0
67
Other Decks in Technology
See All in Technology
Introduction to OpenSearch Project - Search Engineering Tech Talk 2025 Winter
tkykenmt
2
230
MLflowはどのようにLLMOpsの課題を解決するのか
taka_aki
0
140
QAエンジニアが スクラムマスターをすると いいなぁと思った話
____rina____
0
160
Aurora PostgreSQLがCloudWatch Logsに 出力するログの課金を削減してみる #jawsdays2025
non97
1
250
20250304_赤煉瓦倉庫_DeepSeek_Deep_Dive
hiouchiy
2
130
EMConf JP 2025 懇親会LT / EMConf JP 2025 social gathering
sugamasao
2
210
20250309 無冠のわたし これからどう先生きのこれる?
akiko_pusu
2
170
Cracking the Coding Interview 6th Edition
gdplabs
14
28k
どちらかだけじゃもったいないかも? ECSとEKSを適材適所で併用するメリット、運用課題とそれらの対応について
tk3fftk
2
280
Pwned Labsのすゝめ
ken5scal
2
570
Snowflake ML モデルを dbt データパイプラインに組み込む
estie
0
120
エンジニアの健康管理術 / Engineer Health Management Techniques
y_sone
4
1.4k
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1.1k
Building a Scalable Design System with Sketch
lauravandoore
461
33k
Scaling GitHub
holman
459
140k
Adopting Sorbet at Scale
ufuk
75
9.2k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.9k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Gamification - CAS2011
davidbonilla
80
5.2k
Why Our Code Smells
bkeepers
PRO
336
57k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.3k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
YesSQL, Process and Tooling at Scale
rocio
172
14k
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