SlideShare a Scribd company logo
1 of 107
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS 公式 Webinar
https://amzn.to/JPWebinar
過去資料
https://amzn.to/JPArchive
Solutions Architect 松本 雅博
2021/1/26
AWS CodeDeploy
サービスカットシリーズ
[AWS Black Belt Online Seminar]
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
自己紹介
松本 雅博(まつもと まさひろ)
技術統括本部 西日本ソリューション部
ソリューションアーキテクト
関西を中心に、西日本のお客様をご支援
好きなサービス
• Code シリーズ
• AWS CloudFormation, AWS Cloud Development Kit
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Black Belt Online Seminar とは
「サービス別」「ソリューション別」「業種別」のそれぞれのテーマに分かれて、アマゾ
ン ウェブ サービス ジャパン株式会社が主催するオンラインセミナーシリーズです。
質問を投げることができます!
• 書き込んだ質問は、主催者にしか見えません
• 今後のロードマップに関するご質問は
お答えできませんのでご了承下さい
① 吹き出しをクリック
② 質問を入力
③ Sendをクリック
Twitter ハッシュタグは以下をご利用ください
#awsblackbelt
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
内容についての注意点
• 本資料では2021年1月26日現在のサービス内容および価格についてご説明しています。最新の
情報はAWS公式ウェブサイト(http://aws.amazon.com)にてご確認ください。
• 資料作成には十分注意しておりますが、資料内の価格とAWS公式ウェブサイト記載の価格に相
違があった場合、AWS公式ウェブサイトの価格を優先とさせていただきます。
• 価格は税抜表記となっています。日本居住者のお客様には別途消費税をご請求させていただきま
す。
• AWS does not offer binding price quotes. AWS pricing is publicly available and is
subject to change in accordance with the AWS Customer Agreement available at
http://aws.amazon.com/agreement/. Any pricing information included in this
document is provided only as an estimate of usage charges for AWS services based on
certain information that you have provided. Monthly charges will be based on your
actual use of AWS services, and may vary from the estimates provided.
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本セミナーの概要
• 本セミナーで学習できること
• AWS CodeDeploy
• 対象者
• アーキテクトの方
• 技術者の方
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本日のアジェンダ
• AWS CodeDeploy 概要
• EC2 / オンプレミスへのデプロイ
• Lambda へのデプロイ
• ECS へのデプロイ
• 機能紹介
• まとめ
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ソフトウェア開発に関連する AWS サービス
AWS CodeBuild
+ Third Party
AWS
CodeCommit
AWS
CodeBuild
AWS
CodeDeploy
AWS
X-Ray
AWS CodePipeline
MONITOR
DEPLOY
TEST
BUILD
SOURCE /
ARTIFACT
AUTHOR
AWS Cloud9
AWS IDE Toolkits
Amazon
CloudWatch
AWS CloudFormation AWS SAM
AWS Cloud Development Kit
MODEL
Amazon CodeGuru
AWS
CodeArtifact
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ソフトウェア開発に関連する AWS サービス
AWS CodeBuild
+ Third Party
AWS
CodeCommit
AWS
CodeBuild
AWS
CodeDeploy
AWS
X-Ray
AWS CodePipeline
MONITOR
DEPLOY
TEST
BUILD
SOURCE /
ARTIFACT
AUTHOR
AWS Cloud9
AWS IDE Toolkits
Amazon
CloudWatch
AWS CloudFormation AWS SAM
AWS Cloud Development Kit
MODEL
Amazon CodeGuru
AWS
CodeArtifact
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS CodeDeploy
 ソフトウェアのデプロイを自動化する、
フルマネージド型のサービス
 Amazon EC2、AWS Lambda、オンプレミス サーバー、
コンテナへの自動的なデプロイメント
 アプリケーションの複雑なアップデートの実施
 アプリケーションのデプロイ中のダウンタイムを回避
 エラーを検知すると自動的にロールバックを実行
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Pull 型のデプロイ手段
✕ Push型
?
Deploy
Deploy先サーバを
知っている必要がある
◯ Pull型
Deploy
指示
各インスタンスが
必要な変更をPull
どんなサーバが立っているか意識する必要はない
自動化を実現するには、Pull 型のデプロイが推奨される。
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS CodeDeploy の 主要コンポーネント
• アプリケーション
• コンピューティングプラットフォーム
• デプロイグループ
• デプロイタイプ
• デプロイ設定
• リビジョン
• ターゲットリビジョン
• サービスロール
• IAM インスタンスプロファイル
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
アプリケーションとコンピューティングプラットフォーム
• アプリケーション
• デプロイするアプリケーションを一意に識別する名前
• コンピューティングプラットフォーム
• アプリケーションがデプロイされるプラットフォーム
• EC2/オンプレミス
• AWS Lambda
• Amazon ECS
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイグループ
• デプロイ環境の定義
• Auto Scaling グループ
• タグのグループ
• EC2 インスタンス、オンプレミスインスタンス
• ECS サービス
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイタイプ
v1 v1 v1
v1 v1 v1
In-Place
v1 v1 v1
Blue/Green
v1 がデプロイされた状態
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイタイプ
v1 v1 v1
v2 v2 v2
In-Place
v1 v1 v1 v2 v2 v2
Blue/Green
v2 をデプロイ
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイタイプ
v1 v1 v1
v2 v2 v2
In-Place
v1 v1 v1 v2 v2 v2
Blue/Green
既存ノードのアセットを更新
(1 台ずつ行う場合は
ローリングデプロイとも言う)
新規にノードを構築し、デプロイ・テスト後に
リクエストの振り分け先を変更
EC2 の場合、In-Place もしくは Blue/Green
Lambda, ECS の場合は Blue/Green
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイ設定
• どのようにデプロイするかを定義したもの
• デプロイする割合やデプロイ成功、失敗の条件が異なる
• 独自のデプロイ設定を作成することも可能
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイ設定 EC2/オンプレミス
v1
v1 v1 v1 v1 v1 v1
v1 v1 v1 v1 v1 v1
v1 v1 v1 v1
One-at-a-time
Min. healthy hosts = 99%
[Custom]
Min. healthy hosts = 75%
Half-at-a-time
Min. healthy hosts = 50%
All-at-once
Min. healthy hosts = 0
v1
v1
v1
v1 v1
v1
v1
v1 v1 v1 v1
v1 v1
v1
v1
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイ設定 EC2/オンプレミス
v2 v1 v1 v1 v1 v1 v1 v1
v2 v2 v1 v1 v1 v1 v1 v1
v2 v2 v2 v2 v1 v1 v1 v1
v2 v2 v2 v2 v2 v2 v2 v2
One-at-a-time
Min. healthy hosts = 99%
[Custom]
Min. healthy hosts = 75%
Half-at-a-time
Min. healthy hosts = 50%
All-at-once
Min. healthy hosts = 0
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイ設定 EC2/オンプレミス
v2 v1 v1 v1 v1 v1 v1 v1
v2 v2 v1 v1 v1 v1 v1 v1
v2 v2 v2 v2 v2 v2 v2 v2
v2 v2 v2 v2 v2 v2 v2 v2
One-at-a-time
Min. healthy hosts = 99%
[Custom]
Min. healthy hosts = 75%
Half-at-a-time
Min. healthy hosts = 50%
All-at-once
Min. healthy hosts = 0
v2 v2 v2 v2
v2 v2
v2
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイ設定 EC2/オンプレミス
v2 v1 v1 v1 v1 v1 v1 v1
v2 v2 v1 v1 v1 v1 v1 v1
v2 v2 v2 v2 v2 v2 v2 v2
v2 v2 v2 v2 v2 v2 v2 v2
One-at-a-time
Min. healthy hosts = 99%
[Custom]
Min. healthy hosts = 75%
Half-at-a-time
Min. healthy hosts = 50%
All-at-once
Min. healthy hosts = 0
v2 v2 v2 v2
v2 v2
v2
v2 v2
v2
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイ設定 EC2/オンプレミス
v2 v1 v1 v1 v1 v1 v1 v1
v2 v2 v1 v1 v1 v1 v1 v1
v2 v2 v2 v2 v2 v2 v2 v2
v2 v2 v2 v2 v2 v2 v2 v2
One-at-a-time
Min. healthy hosts = 99%
[Custom]
Min. healthy hosts = 75%
Half-at-a-time
Min. healthy hosts = 50%
All-at-once
Min. healthy hosts = 0
v2 v2 v2 v2
v2 v2
v2
v2 v2
v2
v2 v2
v2
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイ設定 EC2/オンプレミス
v2 v1 v1 v1 v1 v1 v1 v1
v2 v2 v1 v1 v1 v1 v1 v1
v2 v2 v2 v2 v2 v2 v2 v2
v2 v2 v2 v2 v2 v2 v2 v2
One-at-a-time
Min. healthy hosts = 99%
[Custom]
Min. healthy hosts = 75%
Half-at-a-time
Min. healthy hosts = 50%
All-at-once
Min. healthy hosts = 0
v2 v2 v2 v2
v2 v2
v2
v2 v2
v2
v2 v2
v2 v2
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイ設定 EC2/オンプレミス
v2 v1 v1 v1 v1 v1 v1 v1
v2 v2 v1 v1 v1 v1 v1 v1
v2 v2 v2 v2 v2 v2 v2 v2
v2 v2 v2 v2 v2 v2 v2 v2
One-at-a-time
Min. healthy hosts = 99%
[Custom]
Min. healthy hosts = 75%
Half-at-a-time
Min. healthy hosts = 50%
All-at-once
Min. healthy hosts = 0
v2 v2 v2 v2
v2 v2
v2
v2 v2
v2
v2 v2
v2 v2 v2
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイ設定 EC2/オンプレミス
v2 v1 v1 v1 v1 v1 v1 v1
v2 v2 v1 v1 v1 v1 v1 v1
v2 v2 v2 v2 v2 v2 v2 v2
v2 v2 v2 v2 v2 v2 v2 v2
One-at-a-time
Min. healthy hosts = 99%
[Custom]
Min. healthy hosts = 75%
Half-at-a-time
Min. healthy hosts = 50%
All-at-once
Min. healthy hosts = 0
v2 v2 v2 v2
v2 v2
v2
v2 v2
v2
v2 v2
v2 v2 v2 v2
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイ設定 EC2/オンプレミス
v2 v1 v1 v1 v1 v1 v1 v1
v2 v2 v1 v1 v1 v1 v1 v1
v2 v2 v2 v2 v2 v2 v2 v2
v2 v2 v2 v2 v2 v2 v2 v2
One-at-a-time
Min. healthy hosts = 99%
[Custom]
Min. healthy hosts = 75%
Half-at-a-time
Min. healthy hosts = 50%
All-at-once
Min. healthy hosts = 0
v2 v2 v2 v2
v2 v2
v2
v2 v2
v2
v2 v2
v2 v2 v2 v2 v2
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
100%
デプロイ設定 Lambda / ECS
Canary
Step 25%, Interval 10min
Linear
Step 25%, Interval 10min
v1 v2
100% 0%
v1 v2
0%
v1 v2
100% 0%
All-at-once
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
75%
デプロイ設定 Lambda / ECS
Canary
Step 25%, Interval 10min
Linear
Step 25%, Interval 10min
v1 v2
0% 100%
v1 v2
25%
v1 v2
75% 25%
All-at-once
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
0%
デプロイ設定 Lambda / ECS
Canary
Step 25%, Interval 10min
Linear
Step 25%, Interval 10min
v1 v2
0% 100%
v1 v2
100%
v1 v2
50% 50%
All-at-once
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
0%
デプロイ設定 Lambda / ECS
Canary
Step 25%, Interval 10min
Linear
Step 25%, Interval 10min
v1 v2
0% 100%
v1 v2
100%
v1 v2
25% 75%
All-at-once
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
0%
デプロイ設定 Lambda / ECS
Canary
Step 25%, Interval 10min
Linear
Step 25%, Interval 10min
v1 v2
0% 100%
v1 v2
100%
v1 v2
0% 100%
All-at-once
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
リビジョンとターゲットリビジョン
• リビジョン
• EC2
• ソースコード、Webページ、スクリプト等と
AppSpec ファイルをまとめたアーカイブ
• Lambda
• Lambda デプロイ用の AppSpec ファイル
• ECS
• ECS デプロイ用の AppSpec ファイル
• ターゲットリビジョン
• リポジトリにアップロードした直近のリビジョン
• デプロイグループへデプロイする対象
• 自動デプロイで取得されるリビジョン
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
サービスロール
• CodeDaploy に付与する IAM ロール
• CodeDaploy から AWS リソースを操作するために必要
• 管理ポリシー
• AWSCodeDeployRole
• AWSCodeDeployRoleForLambda
• AWSCodeDeployRoleForLambdaLimited
• AWSCodeDeployRoleForECS
• AWSCodeDeployRoleForECSLimited
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
IAM インスタンスプロファイル
• EC2 インスタンスに付与する IAM ロール
• S3 から配布物を取得できるようにする
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:Get*",
"s3:List*"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
EC2 / オンプレミス へのデプロイ
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeDeploy EC2/オンプレミス デプロイメント
• AWS CodeDeploy Agent が導入された、EC2インスタンス、オンプレミス
インスタンスへデプロイ
• EC2 インスタンスには、In-Place、Blue/Green デプロイが可能
• オンプレミスインスタンスへは、In-Place デプロイのみ可能
• デプロイグループに Auto Scaling Group を指定することで、スケールアウ
ト時に最新のリビジョンが自動でデプロイされる
• ライフサイクルイベントへ Hook を指定し、スクリプトを実行可能
• Hookが失敗した場合やAmazon CloudWatchアラームを検知した場合は
数秒で迅速にロールバック
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
アプリケーションの作成
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイグループの作成
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイグループの作成
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイグループの作成
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイグループの作成
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイグループの作成
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイグループの作成
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイの作成
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイの作成
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイ実行
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
• フォルダ構成
• appspec.yml (必須)
• ビルド済みの成果物
• その他の配布物
• Hook スクリプト
• アップロード先
• Amazon S3
• GitHub のリポジトリ
リビジョンの構成
/
├── appspec.yml
├── config/
│ └── config.xml
├── deploy_hooks/
│ ├── start-tomcat.sh
│ └── stop-tomcat.sh
└── target/
└── hello.war
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeDeploy EC2/オンプレミス appspec
version: 0.0
os: linux
files:
- source: /
destination: /var/www/html
permissions:
- object: /var/www/html
pattern: “*.html”
owner: root
group: root
mode: 755
hooks:
BeforeInstall:
- location: Scripts/deregister_from_elb.sh
AfterInstall:
- location: Scripts/install_dependencies.sh
ApplicationStart:
- location: Scripts/scripts/start_httpd.sh
ValidateService:
- location: Scripts/scripts/register_with_elb.sh
Hook用スクリプトの指定
• インストール前後の処理
• アプリケーションの開始
• デプロイ成功の確認
特定のディレクトリとファイル
のアクセス許可を設定
アプリケーションや設定ファイ
ルをディレクトリへコピー
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイライフサイクルイベント
In-Place Blue/Green
Hook スクリプト 実行可能箇所
• ApplicationStop
• BeforeInstall
• AfterInstall
• ApplicationStart
• ValidateService
• BeforeAllowTraffic
• AfterAllowTraffic
• BeforeBlockTraffic
• AfterBlockTraffic
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS CodeDeploy Agent
• デプロイ対象となるインスタンスで実行
• サポートする Amazon EC2 AMI OS
• Amazon Linux 2018.03.x、2017.03.x、2016.09.x、2016.03.x、2014.09.x
• Amazon Linux 2 (ARM、x86)
• Ubuntu Server 20.04 LTS、19.10、18.04 LTS、16.04 LTS、14.04 LTS
• Microsoft Windows Server 2019、2016、2012 R2、および 2008 R2
• Red Hat Enterprise Linux (RHEL) 7.x
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS CodeDeploy Agent
• サポートされているオンプレミス OS
• Ubuntu Server 20.04 LTS、19.10、18.04 LTS、16.04 LTS、14.04 LTS
• Microsoft Windows Server 2019、2016、2012 R2、および 2008 R2
• Red Hat Enterprise Linux (RHEL) 7.x
• オープンソースで利用可能なので、他の環境にも適用可能
• https://github.com/aws/aws-codedeploy-agent
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Lambda のデプロイ
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeDeploy Lambda デプロイメント
• AWS Lambda の関数重み付けエイリアスを利用したトラフィックのシフト
• カナリアデプロイ (10分間 10% のトラフィックをシフト、その後残り
全部もシフト ) やリニアデプロイ(毎10分ごとに10%ずつシフト)を選択可能
• Validation Hookは各ステージへのデプロイ時のテストを有効化
• Hookが失敗した場合やAmazon CloudWatchアラームを検知した場合は
数秒で迅速にロールバック
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
アプリケーションの作成
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイグループの作成
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイグループの作成
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイの作成
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイの作成
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイ実行中
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeDeploy Lambda デプロイメント (appspec)
AppSpec File の例
version: 0.0
Resources:
- myLambdaFunction:
Type: AWS::Lambda::Function
Properties:
Name: "myLambdaFunction”
Alias: "myLambdaFunctionAlias”
CurrentVersion: "1”
TargetVersion: "2”
Hooks:
- BeforeAllowTraffic: "BeforeTrafficShift”
- AfterAllowTraffic: "AfterTrafficShift"
デプロイするLambdaの指定
Hook用Lambda関数の指定
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeDeploy Lambda デプロイメント (SAM)
サーバーレスアプリケーションのテンプレート
Resources:
GetFunction:
Type: AWS::Serverless::Function
Properties:
DeploymentPreference:
Type: Canary10Percent10Minutes
Alarms:
- !Ref ErrorsAlarm
Hooks:
PreTraffic: !Ref PreTrafficHook
PostTraffic: !Ref PostTrafficHook
SAMによるLambda関数の定義
カナリアデプロイの定義
CloudWatchアラームの定義
Hook用Lambda関数の指定
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイライフサイクルイベント
Hook スクリプト 実行可能箇所
• BeforeAllowTraffic
• AfterAllowTraffic
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeDeploy Lambda カナリアデプロイメント
v1 AWS
Lambda
function
code
100%
Amazon API
Gateway
AWS
Lambda
function-
weighted
alias “live”
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeDeploy Lambda カナリアデプロイメント
Amazon API
Gateway
AWS
Lambda
function-
weighted
alias “live”
v1 code
100%
V2コードがトラフィックを受け取る前にHook関数が実行される
v2 code
0%
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeDeploy Lambda カナリアデプロイメント
v1 code
90%
警告によるロールバックに備えて10分間待機
v2 code
10%
Amazon API
Gateway
AWS
Lambda
function-
weighted
alias “live”
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeDeploy Lambda カナリアデプロイメント
v1 code
0%
デプロイメントが完了
v2 code
100%
Amazon API
Gateway
AWS
Lambda
function-
weighted
alias “live”
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon ECS のデプロイ
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeDeploy ECS blue/greenデプロイメント
• Greenタスクをプロビジョニングし、ロードバランサーのトラフィックを切
り替え
• 検証Hookによって各ステージのデプロイメントでテストを有効化
• Hookが失敗した場合やAmazon CloudWatchアラームを検知した場合は数秒
でBlueタスクに迅速にロールバック
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
アプリケーションの作成
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイグループの作成
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイグループの作成
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイの作成
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイの作成
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイ実行
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeDeploy ECS appspec
version: 0.0
Resources:
- TargetService:
Type: AWS::ECS::Service
Properties:
TaskDefinition: "my_task_definition:8"
LoadBalancerInfos:
ContainerName: "SampleApp"
ContainerPort: 80
Hooks:
- BeforeInstall: "BeforeNewRevisionInstalltion"
- AfterInstall: "AfterNewRevisionInstallation"
- AfterAllowTestTraffic: "AfterTestTrafficShift"
- BeforeAllowTraffic: "BeforeTrafficShift"
- AfterAllowTraffic: "AfterTrafficShift"
ターゲットタイプの指定
タスク定義
ロードバランサの定義
フック関数の定義
※実際にはLambdaのARNを指定
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイライフサイクルイベント
Hook スクリプト 実行可能箇所
• BeforeInstall
• AfterInstall
• AfterAllowTestTraffic
• BeforeAllowTraffic
• AfterAllowTraffic
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeDeploy ECS blue/greenデプロイメント
Application
Load
Balancer
Production
traffic
listener
(port 80)
Target
group 1
Blueタスク:
v1 code
100%
本番
トラフィック
AWS
Fargate
service
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeDeploy ECS blue/greenデプロイメント
Application
Load
Balancer
Test traffic listener
(port 9000)
Production
traffic
listener
(port 80)
Target
group 2
Target
group 1
Blueタスク:
v1 code
AWS
Fargate
service
100%
本番
トラフィック
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeDeploy ECS blue/greenデプロイメント
Application
Load
Balancer
Test traffic listener
(port 9000)
Production
traffic
listener
(port 80)
Target
group 2
Target
group 1
Greenタスク:
v2 code
greenタスクを配置
AWS
Fargate
service
Blueタスク:
v1 code
100%
本番
トラフィック
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeDeploy ECS blue/greenデプロイメント
Application
Load
Balancer
Production
traffic
listener
(port 80)
Target
group 2
Target
group 1
greenタスクが本番用トラフィックを受け取る前にテストエンドポイントで
hookが実行される
AWS
Fargate
service
Test traffic listener
(port 9000)
Greenタスク:
v2 code
Blueタスク:
v1 code
100%
本番
トラフィック
100%
テスト
トラフィック
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeDeploy ECS blue/greenデプロイメント
Application
Load
Balancer
Production
traffic
listener
(port 80)
Target
group 2
Target
group 1
Greenタスクへのトラフィックを切り替え。
もし失敗を検知した場合はロールバック
AWS
Fargate
service
Test traffic listener
(port 9000)
Greenタスク:
v2 code
Blueタスク:
v1 code
0%
本番
トラフィック
100%
テスト
トラフィック
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeDeploy ECS blue/greenデプロイメント
Application
Load
Balancer
Production
traffic
listener
(port 80)
Target
group 2
Target
group 1
AWS
Fargate
service
Test traffic listener
(port 9000)
Greenタスク:
v2 code
blueタスクをドレイニイング
100%
テスト
トラフィック
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
重要:デプロイメントのためのコンテナイメージのタグ付け
• Dockerタグはデプロイ時のみではなく個々のコンテナの開始時にも利用
• latest や prod タグはスケールアウトイベント発生時に未テストの
コードを本番環境へデプロイする結果を招く
• デプロイメントにはユニークでイミュータブルなタグを利用すべき
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイメントのためのコンテナイメージのタグ付け
AWS
Fargate
service
Amazon
ECR
repository
Image: sha256@11111... (“latest”)
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイメントのためのコンテナイメージのタグ付け
Image: “latest” tag
AWS
Fargate
service
ビルドが新しい latest イメージをプッシュ
Amazon
ECR
repository
Image: sha256@11111...
Image: sha256@22222... (“latest”)
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイメントのためのコンテナイメージのタグ付け
Image: “latest” tag
AWS
Fargate
service
サービスがスケールアウトし新しいタスクを実行開始
Amazon
ECR
repository
Image: sha256@11111...
Image: sha256@22222... (“latest”)
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイメントのためのコンテナイメージのタグ付け
イミュータブルなタグをデプロイ
{
"name": "sample-app",
"image": "amazon/amazon-ecs-
sample@sha256:3e39d933b1d948c92309bb583b5a1f3d28f0119e1551ca1fe538ba414a41af48d"
}
{
"name": "sample-app",
"image": "amazon/amazon-ecs-sample:build-b2085490-359f-4eaf-8970-6d1e26c354f0"
}
SHA256 digestを利用
Build IDを利用
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイメントのためのコンテナイメージのタグ付け
ビルド時にイミュータブルなタグを生成
SHA256 digest
export IMAGE_URI=`docker inspect --format='{{index .RepoDigests 0}}' my_image:$IMAGE_TAG
サンプル結果:
amazon/amazon-ecs-sample@sha256:3e39d933b...
Build ID
export IMAGE_TAG=build-`echo $CODEBUILD_BUILD_ID | awk –F":" ‘{print $2}'`
サンプル結果:
build-b2085490-359f-4eaf-8970-6d1e26c354f0
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイメントのためのコンテナイメージのタグ付け
Image: “build-11111” tag
AWS
Fargate
service
Amazon
ECR
repository
Image: sha256@11111... (“build-11111”)
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイメントのためのコンテナイメージのタグ付け
Image: “build-11111” tag
AWS
Fargate
service
ビルドが新しいビルドIDのイメージタグをプッシュ
Amazon
ECR
repository
Image: sha256@11111... (“build-11111”)
Image: sha256@22222... (“build-22222”)
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイメントのためのコンテナイメージのタグ付け
Image: “build-11111” tag
AWS
Fargate
service
サービスがスケールアウトし、新しいタスクを実行しようとする
Amazon
ECR
repository
Image: sha256@11111... (“build-11111”)
Image: sha256@22222... (“build-22222”)
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デプロイメントのためのコンテナイメージのタグ付け
Image: “build-22222” tag
AWS
Fargate
service
Amazon
ECR
repository
Image: sha256@11111... (“build-11111”)
Image: sha256@22222... (“build-22222”)
デプロイメントはサービス定義を更新し、タスクを置き換え
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
機能紹介
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Validation Hook Lambda
'use strict';
const aws = require('aws-sdk');
const codedeploy = new aws.CodeDeploy({apiVersion: '2014-10-06'});
exports.handler = (event, context, callback) => {
//Read the DeploymentId from the event payload.
var deploymentId = event.DeploymentId;
//Read the LifecycleEventHookExecutionId from the event payload
var lifecycleEventHookExecutionId = event.LifecycleEventHookExecutionId;
/*
Enter validation tests here.
*/
// Prepare the validation test results with the deploymentId and
// the lifecycleEventHookExecutionId for AWS CodeDeploy.
var params = {
deploymentId: deploymentId,
lifecycleEventHookExecutionId: lifecycleEventHookExecutionId,
status: 'Succeeded' // status can be 'Succeeded' or 'Failed'
};
// Pass AWS CodeDeploy the prepared validation test results.
codedeploy.putLifecycleEventHookExecutionStatus(params, function(err, data) {
});
};
CodeDeploy に結果を連携
テストコード
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CloudWatch アラームによるデプロイ停止
メトリクス やログを監視し、デプロイを停止することが可能
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ステータスの通知
通知ルール、デプロイトリガーを設定してデプロイ状況の通知を
受けることが可能
Amazon Simple
Notification Service
AWS Chatbot
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
VPC エンドポイントをサポート
• EC2 へのデプロイには codedeploy, codedeploy-commands-secure の
両方が必要
AWS Cloud
VPC
Private subnet
codedeploy
AWS CodeDeploy
codedeploy-
commands-secure
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
VPC エンドポイントをサポート
• Lambda, ECS へのデプロイには codedeploy のみ必要
AWS Cloud
VPC
Private subnet
codedeploy
AWS CodeDeploy
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
利用料金
• EC2 / Lambda / ECS へのデプロイは無料
• オンプレミスのインスタンスに対するデプロイは、
0.02 USD / インスタンス / デプロイ
• 3台のオンプレミスインスタンスへデプロイ
• 3台 * 0.02 USD = 0.06 USD
• 1台のオンプレミスインスタンスへ 3回デプロイ
• 1台 * 0.02 USD * 3回= 0.06 USD
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
まとめ
• AWS CodeDeploy は、フルマネージドなデプロイサービス
• EC2、 オンプレミス、Lambda、ECS へデプロイ可能
• 単体で使うことも、他のサービスと組み合わせることも可能
• 8種類のチュートリアル
• https://docs.aws.amazon.com/ja_jp/codedeploy/latest/usergui
de/tutorials.html
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ソフトウェア開発に関連する AWS サービス
AWS CodeBuild
+ Third Party
AWS
CodeCommit
AWS
CodeBuild
AWS
CodeDeploy
AWS
X-Ray
AWS CodePipeline
MONITOR
DEPLOY
TEST
BUILD
SOURCE /
ARTIFACT
AUTHOR
AWS Cloud9
AWS IDE Toolkits
Amazon
CloudWatch
AWS CloudFormation AWS SAM
AWS Cloud Development Kit
MODEL
Amazon CodeGuru
AWS
CodeArtifact
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ソフトウェア開発に関連する AWS サービス
AWS CodeBuild
+ Third Party
AWS
CodeCommit
AWS
CodeBuild
AWS
CodeDeploy
AWS
X-Ray
AWS CodePipeline
MONITOR
DEPLOY
TEST
BUILD
SOURCE /
ARTIFACT
AUTHOR
AWS Cloud9
AWS IDE Toolkits
Amazon
CloudWatch
AWS CloudFormation AWS SAM
AWS Cloud Development Kit
MODEL
Amazon CodeGuru
AWS
CodeArtifact
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ソフトウェア開発に関連する AWS サービス
• AWS CodeGuru
• https://aws.amazon.com/jp/blogs/news/webinar-bb-amazon-codeguru-2020/
• AWS CodeStar & AWS CodePipeline
• https://aws.amazon.com/jp/blogs/news/webinar-bb-awscodestar_awscodepipeline-2020/
• AWS CodeCommit & AWS CodeArtifact
• https://aws.amazon.com/jp/blogs/news/webinar-bb-aws-codecommit_aws-codeartifact-
2020/
• AWS CodeBuild
• https://aws.amazon.com/jp/blogs/news/webinar-bb-aws-codebuild-2020/
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Q&A
お答えできなかったご質問については
AWS Japan Blog 「https://aws.amazon.com/jp/blogs/news/」にて
後日掲載します。
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS の日本語資料の場所「AWS 資料」で検索
https://amzn.to/JPArchive
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
で[検索]
AWS イベント
毎週”W-A個別技術相談会”を実施中
• AWSのソリューションアーキテクト(SA)に
対策などを相談することも可能
• 申込みはイベント告知サイトから
(https://aws.amazon.com/jp/about-aws/events/)
AWS Well-Architected 個別技術相談会
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS 公式 Webinar
https://amzn.to/JPWebinar
過去資料
https://amzn.to/JPArchive
ご視聴ありがとうございました

More Related Content

What's hot

20190326 AWS Black Belt Online Seminar Amazon CloudWatch
20190326 AWS Black Belt Online Seminar Amazon CloudWatch20190326 AWS Black Belt Online Seminar Amazon CloudWatch
20190326 AWS Black Belt Online Seminar Amazon CloudWatchAmazon Web Services Japan
 
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
20191016 AWS Black Belt Online Seminar Amazon Route 53 ResolverAmazon Web Services Japan
 
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用Amazon Web Services Japan
 
AWS Black Belt Online Seminar AWS Key Management Service (KMS)
AWS Black Belt Online Seminar AWS Key Management Service (KMS) AWS Black Belt Online Seminar AWS Key Management Service (KMS)
AWS Black Belt Online Seminar AWS Key Management Service (KMS) Amazon Web Services Japan
 
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続Amazon Web Services Japan
 
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...Amazon Web Services Japan
 
20191001 AWS Black Belt Online Seminar AWS Lake Formation
20191001 AWS Black Belt Online Seminar AWS Lake Formation 20191001 AWS Black Belt Online Seminar AWS Lake Formation
20191001 AWS Black Belt Online Seminar AWS Lake Formation Amazon Web Services Japan
 
20191105 AWS Black Belt Online Seminar Amazon Route 53 Hosted Zone
20191105 AWS Black Belt Online Seminar Amazon Route 53 Hosted Zone20191105 AWS Black Belt Online Seminar Amazon Route 53 Hosted Zone
20191105 AWS Black Belt Online Seminar Amazon Route 53 Hosted ZoneAmazon Web Services Japan
 
20200721 AWS Black Belt Online Seminar AWS App Mesh
20200721 AWS Black Belt Online Seminar AWS App Mesh20200721 AWS Black Belt Online Seminar AWS App Mesh
20200721 AWS Black Belt Online Seminar AWS App MeshAmazon Web Services Japan
 
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要Amazon Web Services Japan
 
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)Amazon Web Services Japan
 
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...Amazon Web Services Japan
 
20190806 AWS Black Belt Online Seminar AWS Glue
20190806 AWS Black Belt Online Seminar AWS Glue20190806 AWS Black Belt Online Seminar AWS Glue
20190806 AWS Black Belt Online Seminar AWS GlueAmazon Web Services Japan
 
20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems Manager20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems ManagerAmazon Web Services Japan
 
20190522 AWS Black Belt Online Seminar AWS Step Functions
20190522 AWS Black Belt Online Seminar AWS Step Functions20190522 AWS Black Belt Online Seminar AWS Step Functions
20190522 AWS Black Belt Online Seminar AWS Step FunctionsAmazon Web Services Japan
 
20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)
20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)
20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)Amazon Web Services Japan
 
20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS Batch20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS BatchAmazon Web Services Japan
 
20191002 AWS Black Belt Online Seminar Amazon EC2 Auto Scaling and AWS Auto S...
20191002 AWS Black Belt Online Seminar Amazon EC2 Auto Scaling and AWS Auto S...20191002 AWS Black Belt Online Seminar Amazon EC2 Auto Scaling and AWS Auto S...
20191002 AWS Black Belt Online Seminar Amazon EC2 Auto Scaling and AWS Auto S...Amazon Web Services Japan
 
20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon CognitoAmazon Web Services Japan
 
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本Amazon Web Services Japan
 

What's hot (20)

20190326 AWS Black Belt Online Seminar Amazon CloudWatch
20190326 AWS Black Belt Online Seminar Amazon CloudWatch20190326 AWS Black Belt Online Seminar Amazon CloudWatch
20190326 AWS Black Belt Online Seminar Amazon CloudWatch
 
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
 
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
 
AWS Black Belt Online Seminar AWS Key Management Service (KMS)
AWS Black Belt Online Seminar AWS Key Management Service (KMS) AWS Black Belt Online Seminar AWS Key Management Service (KMS)
AWS Black Belt Online Seminar AWS Key Management Service (KMS)
 
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
 
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
 
20191001 AWS Black Belt Online Seminar AWS Lake Formation
20191001 AWS Black Belt Online Seminar AWS Lake Formation 20191001 AWS Black Belt Online Seminar AWS Lake Formation
20191001 AWS Black Belt Online Seminar AWS Lake Formation
 
20191105 AWS Black Belt Online Seminar Amazon Route 53 Hosted Zone
20191105 AWS Black Belt Online Seminar Amazon Route 53 Hosted Zone20191105 AWS Black Belt Online Seminar Amazon Route 53 Hosted Zone
20191105 AWS Black Belt Online Seminar Amazon Route 53 Hosted Zone
 
20200721 AWS Black Belt Online Seminar AWS App Mesh
20200721 AWS Black Belt Online Seminar AWS App Mesh20200721 AWS Black Belt Online Seminar AWS App Mesh
20200721 AWS Black Belt Online Seminar AWS App Mesh
 
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
 
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
 
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
 
20190806 AWS Black Belt Online Seminar AWS Glue
20190806 AWS Black Belt Online Seminar AWS Glue20190806 AWS Black Belt Online Seminar AWS Glue
20190806 AWS Black Belt Online Seminar AWS Glue
 
20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems Manager20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems Manager
 
20190522 AWS Black Belt Online Seminar AWS Step Functions
20190522 AWS Black Belt Online Seminar AWS Step Functions20190522 AWS Black Belt Online Seminar AWS Step Functions
20190522 AWS Black Belt Online Seminar AWS Step Functions
 
20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)
20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)
20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)
 
20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS Batch20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS Batch
 
20191002 AWS Black Belt Online Seminar Amazon EC2 Auto Scaling and AWS Auto S...
20191002 AWS Black Belt Online Seminar Amazon EC2 Auto Scaling and AWS Auto S...20191002 AWS Black Belt Online Seminar Amazon EC2 Auto Scaling and AWS Auto S...
20191002 AWS Black Belt Online Seminar Amazon EC2 Auto Scaling and AWS Auto S...
 
20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito
 
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本
 

Similar to 20210126 AWS Black Belt Online Seminar AWS CodeDeploy

AWS Command Line Interface (AWS CLI) version 2 GA記念! 〜今からでも間に合う機能のおさらい〜
AWS Command Line Interface (AWS CLI) version 2 GA記念! 〜今からでも間に合う機能のおさらい〜AWS Command Line Interface (AWS CLI) version 2 GA記念! 〜今からでも間に合う機能のおさらい〜
AWS Command Line Interface (AWS CLI) version 2 GA記念! 〜今からでも間に合う機能のおさらい〜Hiroki Uchida
 
[20210519 Security-JAWS] AWS エッジサービス入門ハンズオンの紹介と AWS WAF のアップデートについて
[20210519 Security-JAWS] AWS エッジサービス入門ハンズオンの紹介と AWS WAF のアップデートについて[20210519 Security-JAWS] AWS エッジサービス入門ハンズオンの紹介と AWS WAF のアップデートについて
[20210519 Security-JAWS] AWS エッジサービス入門ハンズオンの紹介と AWS WAF のアップデートについてAmazon Web Services Japan
 
20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operations20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operationsAmazon Web Services Japan
 
(AWS DevOps祭り 2018) AWS Management Toolsサービスアプデートのご紹介
(AWS DevOps祭り 2018) AWS Management Toolsサービスアプデートのご紹介(AWS DevOps祭り 2018) AWS Management Toolsサービスアプデートのご紹介
(AWS DevOps祭り 2018) AWS Management Toolsサービスアプデートのご紹介Yukitaka Ohmura
 
AWS_reInforce_2022_reCap_Ja.pdf
AWS_reInforce_2022_reCap_Ja.pdfAWS_reInforce_2022_reCap_Ja.pdf
AWS_reInforce_2022_reCap_Ja.pdfHayato Kiriyama
 
2013/12/05 Serverworks Seminar 小室分
2013/12/05 Serverworks Seminar 小室分2013/12/05 Serverworks Seminar 小室分
2013/12/05 Serverworks Seminar 小室分Serverworks Co.,Ltd.
 
20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndure20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndureAmazon Web Services Japan
 
AWSマイスターシリーズReloaded -AWS SDK for .NET-
AWSマイスターシリーズReloaded -AWS SDK for .NET-AWSマイスターシリーズReloaded -AWS SDK for .NET-
AWSマイスターシリーズReloaded -AWS SDK for .NET-Amazon Web Services Japan
 
Windowsシステムの AWS移行とMulti-AZ化 - JAWS DAYS 2015
WindowsシステムのAWS移行とMulti-AZ化 - JAWS DAYS 2015 WindowsシステムのAWS移行とMulti-AZ化 - JAWS DAYS 2015
Windowsシステムの AWS移行とMulti-AZ化 - JAWS DAYS 2015 Takayuki Enomoto
 
AWSのインフラはプログラミングコードで構築!AWS Cloud Development Kit 入門
AWSのインフラはプログラミングコードで構築!AWS Cloud Development Kit 入門AWSのインフラはプログラミングコードで構築!AWS Cloud Development Kit 入門
AWSのインフラはプログラミングコードで構築!AWS Cloud Development Kit 入門Amazon Web Services Japan
 
[AWSマイスターシリーズ] Amazon Virtual Private Cloud (VPC)
[AWSマイスターシリーズ] Amazon Virtual Private Cloud (VPC)[AWSマイスターシリーズ] Amazon Virtual Private Cloud (VPC)
[AWSマイスターシリーズ] Amazon Virtual Private Cloud (VPC)Amazon Web Services Japan
 
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...Amazon Web Services Japan
 
[AWSマイスターシリーズ] AWS Elastic Beanstalk
[AWSマイスターシリーズ] AWS Elastic Beanstalk[AWSマイスターシリーズ] AWS Elastic Beanstalk
[AWSマイスターシリーズ] AWS Elastic BeanstalkAmazon Web Services Japan
 
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨Amazon Web Services Japan
 
[AWSマイスターシリーズ] AWS OpsWorks
[AWSマイスターシリーズ] AWS OpsWorks[AWSマイスターシリーズ] AWS OpsWorks
[AWSマイスターシリーズ] AWS OpsWorksAmazon Web Services Japan
 
[網元] WordPress 高速化チューニング AMI
[網元] WordPress 高速化チューニング AMI [網元] WordPress 高速化チューニング AMI
[網元] WordPress 高速化チューニング AMI Hiromichi Koga
 
[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight
[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight
[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonightAmazon Web Services Japan
 
ハイブリットクラウド環境におけるモダンアプリケーション開発
ハイブリットクラウド環境におけるモダンアプリケーション開発ハイブリットクラウド環境におけるモダンアプリケーション開発
ハイブリットクラウド環境におけるモダンアプリケーション開発政雄 金森
 
20200728 AWS Black Belt Online Seminar What's New in Serverless
20200728 AWS Black Belt Online Seminar What's New in Serverless20200728 AWS Black Belt Online Seminar What's New in Serverless
20200728 AWS Black Belt Online Seminar What's New in ServerlessAmazon Web Services Japan
 

Similar to 20210126 AWS Black Belt Online Seminar AWS CodeDeploy (20)

AWS Command Line Interface (AWS CLI) version 2 GA記念! 〜今からでも間に合う機能のおさらい〜
AWS Command Line Interface (AWS CLI) version 2 GA記念! 〜今からでも間に合う機能のおさらい〜AWS Command Line Interface (AWS CLI) version 2 GA記念! 〜今からでも間に合う機能のおさらい〜
AWS Command Line Interface (AWS CLI) version 2 GA記念! 〜今からでも間に合う機能のおさらい〜
 
[20210519 Security-JAWS] AWS エッジサービス入門ハンズオンの紹介と AWS WAF のアップデートについて
[20210519 Security-JAWS] AWS エッジサービス入門ハンズオンの紹介と AWS WAF のアップデートについて[20210519 Security-JAWS] AWS エッジサービス入門ハンズオンの紹介と AWS WAF のアップデートについて
[20210519 Security-JAWS] AWS エッジサービス入門ハンズオンの紹介と AWS WAF のアップデートについて
 
20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operations20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operations
 
(AWS DevOps祭り 2018) AWS Management Toolsサービスアプデートのご紹介
(AWS DevOps祭り 2018) AWS Management Toolsサービスアプデートのご紹介(AWS DevOps祭り 2018) AWS Management Toolsサービスアプデートのご紹介
(AWS DevOps祭り 2018) AWS Management Toolsサービスアプデートのご紹介
 
AWS_reInforce_2022_reCap_Ja.pdf
AWS_reInforce_2022_reCap_Ja.pdfAWS_reInforce_2022_reCap_Ja.pdf
AWS_reInforce_2022_reCap_Ja.pdf
 
2013/12/05 Serverworks Seminar 小室分
2013/12/05 Serverworks Seminar 小室分2013/12/05 Serverworks Seminar 小室分
2013/12/05 Serverworks Seminar 小室分
 
20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndure20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndure
 
AWSマイスターシリーズReloaded -AWS SDK for .NET-
AWSマイスターシリーズReloaded -AWS SDK for .NET-AWSマイスターシリーズReloaded -AWS SDK for .NET-
AWSマイスターシリーズReloaded -AWS SDK for .NET-
 
Windowsシステムの AWS移行とMulti-AZ化 - JAWS DAYS 2015
WindowsシステムのAWS移行とMulti-AZ化 - JAWS DAYS 2015 WindowsシステムのAWS移行とMulti-AZ化 - JAWS DAYS 2015
Windowsシステムの AWS移行とMulti-AZ化 - JAWS DAYS 2015
 
AWSのインフラはプログラミングコードで構築!AWS Cloud Development Kit 入門
AWSのインフラはプログラミングコードで構築!AWS Cloud Development Kit 入門AWSのインフラはプログラミングコードで構築!AWS Cloud Development Kit 入門
AWSのインフラはプログラミングコードで構築!AWS Cloud Development Kit 入門
 
[AWSマイスターシリーズ] Amazon Virtual Private Cloud (VPC)
[AWSマイスターシリーズ] Amazon Virtual Private Cloud (VPC)[AWSマイスターシリーズ] Amazon Virtual Private Cloud (VPC)
[AWSマイスターシリーズ] Amazon Virtual Private Cloud (VPC)
 
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
 
[AWSマイスターシリーズ] AWS Elastic Beanstalk
[AWSマイスターシリーズ] AWS Elastic Beanstalk[AWSマイスターシリーズ] AWS Elastic Beanstalk
[AWSマイスターシリーズ] AWS Elastic Beanstalk
 
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
 
[AWSマイスターシリーズ] AWS OpsWorks
[AWSマイスターシリーズ] AWS OpsWorks[AWSマイスターシリーズ] AWS OpsWorks
[AWSマイスターシリーズ] AWS OpsWorks
 
20201125 EC Solution Seminar Live Commerce
20201125 EC Solution Seminar Live Commerce20201125 EC Solution Seminar Live Commerce
20201125 EC Solution Seminar Live Commerce
 
[網元] WordPress 高速化チューニング AMI
[網元] WordPress 高速化チューニング AMI [網元] WordPress 高速化チューニング AMI
[網元] WordPress 高速化チューニング AMI
 
[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight
[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight
[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight
 
ハイブリットクラウド環境におけるモダンアプリケーション開発
ハイブリットクラウド環境におけるモダンアプリケーション開発ハイブリットクラウド環境におけるモダンアプリケーション開発
ハイブリットクラウド環境におけるモダンアプリケーション開発
 
20200728 AWS Black Belt Online Seminar What's New in Serverless
20200728 AWS Black Belt Online Seminar What's New in Serverless20200728 AWS Black Belt Online Seminar What's New in Serverless
20200728 AWS Black Belt Online Seminar What's New in Serverless
 

More from Amazon Web Services Japan

202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFSAmazon Web Services Japan
 
202204 AWS Black Belt Online Seminar AWS IoT Device Defender
202204 AWS Black Belt Online Seminar AWS IoT Device Defender202204 AWS Black Belt Online Seminar AWS IoT Device Defender
202204 AWS Black Belt Online Seminar AWS IoT Device DefenderAmazon Web Services Japan
 
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現Amazon Web Services Japan
 
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...Amazon Web Services Japan
 
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Web Services Japan
 
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したことAmazon Web Services Japan
 
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用Amazon Web Services Japan
 
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdfAmazon Web Services Japan
 
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介Amazon Web Services Japan
 
Amazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon Web Services Japan
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことAmazon Web Services Japan
 
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチAmazon Web Services Japan
 
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介Amazon Web Services Japan
 
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer ProfilesAmazon Web Services Japan
 
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Web Services Japan
 
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介Amazon Web Services Japan
 
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介Amazon Web Services Japan
 
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...Amazon Web Services Japan
 
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピAmazon Web Services Japan
 

More from Amazon Web Services Japan (20)

202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
 
202204 AWS Black Belt Online Seminar AWS IoT Device Defender
202204 AWS Black Belt Online Seminar AWS IoT Device Defender202204 AWS Black Belt Online Seminar AWS IoT Device Defender
202204 AWS Black Belt Online Seminar AWS IoT Device Defender
 
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
 
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
 
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
 
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
 
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと
 
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
 
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
 
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
 
Amazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDD
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
 
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
 
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
 
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
 
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
 
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
 
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
 
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
 

Recently uploaded

Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 

Recently uploaded (7)

Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 

20210126 AWS Black Belt Online Seminar AWS CodeDeploy

  • 1. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS 公式 Webinar https://amzn.to/JPWebinar 過去資料 https://amzn.to/JPArchive Solutions Architect 松本 雅博 2021/1/26 AWS CodeDeploy サービスカットシリーズ [AWS Black Belt Online Seminar]
  • 2. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 自己紹介 松本 雅博(まつもと まさひろ) 技術統括本部 西日本ソリューション部 ソリューションアーキテクト 関西を中心に、西日本のお客様をご支援 好きなサービス • Code シリーズ • AWS CloudFormation, AWS Cloud Development Kit
  • 3. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Black Belt Online Seminar とは 「サービス別」「ソリューション別」「業種別」のそれぞれのテーマに分かれて、アマゾ ン ウェブ サービス ジャパン株式会社が主催するオンラインセミナーシリーズです。 質問を投げることができます! • 書き込んだ質問は、主催者にしか見えません • 今後のロードマップに関するご質問は お答えできませんのでご了承下さい ① 吹き出しをクリック ② 質問を入力 ③ Sendをクリック Twitter ハッシュタグは以下をご利用ください #awsblackbelt
  • 4. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 内容についての注意点 • 本資料では2021年1月26日現在のサービス内容および価格についてご説明しています。最新の 情報はAWS公式ウェブサイト(http://aws.amazon.com)にてご確認ください。 • 資料作成には十分注意しておりますが、資料内の価格とAWS公式ウェブサイト記載の価格に相 違があった場合、AWS公式ウェブサイトの価格を優先とさせていただきます。 • 価格は税抜表記となっています。日本居住者のお客様には別途消費税をご請求させていただきま す。 • AWS does not offer binding price quotes. AWS pricing is publicly available and is subject to change in accordance with the AWS Customer Agreement available at http://aws.amazon.com/agreement/. Any pricing information included in this document is provided only as an estimate of usage charges for AWS services based on certain information that you have provided. Monthly charges will be based on your actual use of AWS services, and may vary from the estimates provided.
  • 5. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本セミナーの概要 • 本セミナーで学習できること • AWS CodeDeploy • 対象者 • アーキテクトの方 • 技術者の方
  • 6. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本日のアジェンダ • AWS CodeDeploy 概要 • EC2 / オンプレミスへのデプロイ • Lambda へのデプロイ • ECS へのデプロイ • 機能紹介 • まとめ
  • 7. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ソフトウェア開発に関連する AWS サービス AWS CodeBuild + Third Party AWS CodeCommit AWS CodeBuild AWS CodeDeploy AWS X-Ray AWS CodePipeline MONITOR DEPLOY TEST BUILD SOURCE / ARTIFACT AUTHOR AWS Cloud9 AWS IDE Toolkits Amazon CloudWatch AWS CloudFormation AWS SAM AWS Cloud Development Kit MODEL Amazon CodeGuru AWS CodeArtifact
  • 8. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ソフトウェア開発に関連する AWS サービス AWS CodeBuild + Third Party AWS CodeCommit AWS CodeBuild AWS CodeDeploy AWS X-Ray AWS CodePipeline MONITOR DEPLOY TEST BUILD SOURCE / ARTIFACT AUTHOR AWS Cloud9 AWS IDE Toolkits Amazon CloudWatch AWS CloudFormation AWS SAM AWS Cloud Development Kit MODEL Amazon CodeGuru AWS CodeArtifact
  • 9. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS CodeDeploy  ソフトウェアのデプロイを自動化する、 フルマネージド型のサービス  Amazon EC2、AWS Lambda、オンプレミス サーバー、 コンテナへの自動的なデプロイメント  アプリケーションの複雑なアップデートの実施  アプリケーションのデプロイ中のダウンタイムを回避  エラーを検知すると自動的にロールバックを実行
  • 10. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Pull 型のデプロイ手段 ✕ Push型 ? Deploy Deploy先サーバを 知っている必要がある ◯ Pull型 Deploy 指示 各インスタンスが 必要な変更をPull どんなサーバが立っているか意識する必要はない 自動化を実現するには、Pull 型のデプロイが推奨される。
  • 11. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS CodeDeploy の 主要コンポーネント • アプリケーション • コンピューティングプラットフォーム • デプロイグループ • デプロイタイプ • デプロイ設定 • リビジョン • ターゲットリビジョン • サービスロール • IAM インスタンスプロファイル
  • 12. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. アプリケーションとコンピューティングプラットフォーム • アプリケーション • デプロイするアプリケーションを一意に識別する名前 • コンピューティングプラットフォーム • アプリケーションがデプロイされるプラットフォーム • EC2/オンプレミス • AWS Lambda • Amazon ECS
  • 13. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイグループ • デプロイ環境の定義 • Auto Scaling グループ • タグのグループ • EC2 インスタンス、オンプレミスインスタンス • ECS サービス
  • 14. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイタイプ v1 v1 v1 v1 v1 v1 In-Place v1 v1 v1 Blue/Green v1 がデプロイされた状態
  • 15. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイタイプ v1 v1 v1 v2 v2 v2 In-Place v1 v1 v1 v2 v2 v2 Blue/Green v2 をデプロイ
  • 16. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイタイプ v1 v1 v1 v2 v2 v2 In-Place v1 v1 v1 v2 v2 v2 Blue/Green 既存ノードのアセットを更新 (1 台ずつ行う場合は ローリングデプロイとも言う) 新規にノードを構築し、デプロイ・テスト後に リクエストの振り分け先を変更 EC2 の場合、In-Place もしくは Blue/Green Lambda, ECS の場合は Blue/Green
  • 17. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイ設定 • どのようにデプロイするかを定義したもの • デプロイする割合やデプロイ成功、失敗の条件が異なる • 独自のデプロイ設定を作成することも可能
  • 18. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイ設定 EC2/オンプレミス v1 v1 v1 v1 v1 v1 v1 v1 v1 v1 v1 v1 v1 v1 v1 v1 v1 One-at-a-time Min. healthy hosts = 99% [Custom] Min. healthy hosts = 75% Half-at-a-time Min. healthy hosts = 50% All-at-once Min. healthy hosts = 0 v1 v1 v1 v1 v1 v1 v1 v1 v1 v1 v1 v1 v1 v1 v1
  • 19. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイ設定 EC2/オンプレミス v2 v1 v1 v1 v1 v1 v1 v1 v2 v2 v1 v1 v1 v1 v1 v1 v2 v2 v2 v2 v1 v1 v1 v1 v2 v2 v2 v2 v2 v2 v2 v2 One-at-a-time Min. healthy hosts = 99% [Custom] Min. healthy hosts = 75% Half-at-a-time Min. healthy hosts = 50% All-at-once Min. healthy hosts = 0
  • 20. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイ設定 EC2/オンプレミス v2 v1 v1 v1 v1 v1 v1 v1 v2 v2 v1 v1 v1 v1 v1 v1 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 One-at-a-time Min. healthy hosts = 99% [Custom] Min. healthy hosts = 75% Half-at-a-time Min. healthy hosts = 50% All-at-once Min. healthy hosts = 0 v2 v2 v2 v2 v2 v2 v2
  • 21. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイ設定 EC2/オンプレミス v2 v1 v1 v1 v1 v1 v1 v1 v2 v2 v1 v1 v1 v1 v1 v1 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 One-at-a-time Min. healthy hosts = 99% [Custom] Min. healthy hosts = 75% Half-at-a-time Min. healthy hosts = 50% All-at-once Min. healthy hosts = 0 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2
  • 22. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイ設定 EC2/オンプレミス v2 v1 v1 v1 v1 v1 v1 v1 v2 v2 v1 v1 v1 v1 v1 v1 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 One-at-a-time Min. healthy hosts = 99% [Custom] Min. healthy hosts = 75% Half-at-a-time Min. healthy hosts = 50% All-at-once Min. healthy hosts = 0 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2
  • 23. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイ設定 EC2/オンプレミス v2 v1 v1 v1 v1 v1 v1 v1 v2 v2 v1 v1 v1 v1 v1 v1 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 One-at-a-time Min. healthy hosts = 99% [Custom] Min. healthy hosts = 75% Half-at-a-time Min. healthy hosts = 50% All-at-once Min. healthy hosts = 0 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2
  • 24. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイ設定 EC2/オンプレミス v2 v1 v1 v1 v1 v1 v1 v1 v2 v2 v1 v1 v1 v1 v1 v1 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 One-at-a-time Min. healthy hosts = 99% [Custom] Min. healthy hosts = 75% Half-at-a-time Min. healthy hosts = 50% All-at-once Min. healthy hosts = 0 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2
  • 25. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイ設定 EC2/オンプレミス v2 v1 v1 v1 v1 v1 v1 v1 v2 v2 v1 v1 v1 v1 v1 v1 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 One-at-a-time Min. healthy hosts = 99% [Custom] Min. healthy hosts = 75% Half-at-a-time Min. healthy hosts = 50% All-at-once Min. healthy hosts = 0 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2
  • 26. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイ設定 EC2/オンプレミス v2 v1 v1 v1 v1 v1 v1 v1 v2 v2 v1 v1 v1 v1 v1 v1 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 One-at-a-time Min. healthy hosts = 99% [Custom] Min. healthy hosts = 75% Half-at-a-time Min. healthy hosts = 50% All-at-once Min. healthy hosts = 0 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2
  • 27. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 100% デプロイ設定 Lambda / ECS Canary Step 25%, Interval 10min Linear Step 25%, Interval 10min v1 v2 100% 0% v1 v2 0% v1 v2 100% 0% All-at-once
  • 28. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 75% デプロイ設定 Lambda / ECS Canary Step 25%, Interval 10min Linear Step 25%, Interval 10min v1 v2 0% 100% v1 v2 25% v1 v2 75% 25% All-at-once
  • 29. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 0% デプロイ設定 Lambda / ECS Canary Step 25%, Interval 10min Linear Step 25%, Interval 10min v1 v2 0% 100% v1 v2 100% v1 v2 50% 50% All-at-once
  • 30. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 0% デプロイ設定 Lambda / ECS Canary Step 25%, Interval 10min Linear Step 25%, Interval 10min v1 v2 0% 100% v1 v2 100% v1 v2 25% 75% All-at-once
  • 31. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 0% デプロイ設定 Lambda / ECS Canary Step 25%, Interval 10min Linear Step 25%, Interval 10min v1 v2 0% 100% v1 v2 100% v1 v2 0% 100% All-at-once
  • 32. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. リビジョンとターゲットリビジョン • リビジョン • EC2 • ソースコード、Webページ、スクリプト等と AppSpec ファイルをまとめたアーカイブ • Lambda • Lambda デプロイ用の AppSpec ファイル • ECS • ECS デプロイ用の AppSpec ファイル • ターゲットリビジョン • リポジトリにアップロードした直近のリビジョン • デプロイグループへデプロイする対象 • 自動デプロイで取得されるリビジョン
  • 33. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. サービスロール • CodeDaploy に付与する IAM ロール • CodeDaploy から AWS リソースを操作するために必要 • 管理ポリシー • AWSCodeDeployRole • AWSCodeDeployRoleForLambda • AWSCodeDeployRoleForLambdaLimited • AWSCodeDeployRoleForECS • AWSCodeDeployRoleForECSLimited
  • 34. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. IAM インスタンスプロファイル • EC2 インスタンスに付与する IAM ロール • S3 から配布物を取得できるようにする { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ] } { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  • 35. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. EC2 / オンプレミス へのデプロイ
  • 36. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeDeploy EC2/オンプレミス デプロイメント • AWS CodeDeploy Agent が導入された、EC2インスタンス、オンプレミス インスタンスへデプロイ • EC2 インスタンスには、In-Place、Blue/Green デプロイが可能 • オンプレミスインスタンスへは、In-Place デプロイのみ可能 • デプロイグループに Auto Scaling Group を指定することで、スケールアウ ト時に最新のリビジョンが自動でデプロイされる • ライフサイクルイベントへ Hook を指定し、スクリプトを実行可能 • Hookが失敗した場合やAmazon CloudWatchアラームを検知した場合は 数秒で迅速にロールバック
  • 37. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. アプリケーションの作成
  • 38. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイグループの作成
  • 39. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイグループの作成
  • 40. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイグループの作成
  • 41. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイグループの作成
  • 42. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイグループの作成
  • 43. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイグループの作成
  • 44. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイの作成
  • 45. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイの作成
  • 46. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイ実行
  • 47. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. • フォルダ構成 • appspec.yml (必須) • ビルド済みの成果物 • その他の配布物 • Hook スクリプト • アップロード先 • Amazon S3 • GitHub のリポジトリ リビジョンの構成 / ├── appspec.yml ├── config/ │ └── config.xml ├── deploy_hooks/ │ ├── start-tomcat.sh │ └── stop-tomcat.sh └── target/ └── hello.war
  • 48. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeDeploy EC2/オンプレミス appspec version: 0.0 os: linux files: - source: / destination: /var/www/html permissions: - object: /var/www/html pattern: “*.html” owner: root group: root mode: 755 hooks: BeforeInstall: - location: Scripts/deregister_from_elb.sh AfterInstall: - location: Scripts/install_dependencies.sh ApplicationStart: - location: Scripts/scripts/start_httpd.sh ValidateService: - location: Scripts/scripts/register_with_elb.sh Hook用スクリプトの指定 • インストール前後の処理 • アプリケーションの開始 • デプロイ成功の確認 特定のディレクトリとファイル のアクセス許可を設定 アプリケーションや設定ファイ ルをディレクトリへコピー
  • 49. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイライフサイクルイベント In-Place Blue/Green Hook スクリプト 実行可能箇所 • ApplicationStop • BeforeInstall • AfterInstall • ApplicationStart • ValidateService • BeforeAllowTraffic • AfterAllowTraffic • BeforeBlockTraffic • AfterBlockTraffic
  • 50. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS CodeDeploy Agent • デプロイ対象となるインスタンスで実行 • サポートする Amazon EC2 AMI OS • Amazon Linux 2018.03.x、2017.03.x、2016.09.x、2016.03.x、2014.09.x • Amazon Linux 2 (ARM、x86) • Ubuntu Server 20.04 LTS、19.10、18.04 LTS、16.04 LTS、14.04 LTS • Microsoft Windows Server 2019、2016、2012 R2、および 2008 R2 • Red Hat Enterprise Linux (RHEL) 7.x
  • 51. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS CodeDeploy Agent • サポートされているオンプレミス OS • Ubuntu Server 20.04 LTS、19.10、18.04 LTS、16.04 LTS、14.04 LTS • Microsoft Windows Server 2019、2016、2012 R2、および 2008 R2 • Red Hat Enterprise Linux (RHEL) 7.x • オープンソースで利用可能なので、他の環境にも適用可能 • https://github.com/aws/aws-codedeploy-agent
  • 52. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Lambda のデプロイ
  • 53. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeDeploy Lambda デプロイメント • AWS Lambda の関数重み付けエイリアスを利用したトラフィックのシフト • カナリアデプロイ (10分間 10% のトラフィックをシフト、その後残り 全部もシフト ) やリニアデプロイ(毎10分ごとに10%ずつシフト)を選択可能 • Validation Hookは各ステージへのデプロイ時のテストを有効化 • Hookが失敗した場合やAmazon CloudWatchアラームを検知した場合は 数秒で迅速にロールバック
  • 54. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. アプリケーションの作成
  • 55. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイグループの作成
  • 56. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイグループの作成
  • 57. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイの作成
  • 58. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイの作成
  • 59. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイ実行中
  • 60. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeDeploy Lambda デプロイメント (appspec) AppSpec File の例 version: 0.0 Resources: - myLambdaFunction: Type: AWS::Lambda::Function Properties: Name: "myLambdaFunction” Alias: "myLambdaFunctionAlias” CurrentVersion: "1” TargetVersion: "2” Hooks: - BeforeAllowTraffic: "BeforeTrafficShift” - AfterAllowTraffic: "AfterTrafficShift" デプロイするLambdaの指定 Hook用Lambda関数の指定
  • 61. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeDeploy Lambda デプロイメント (SAM) サーバーレスアプリケーションのテンプレート Resources: GetFunction: Type: AWS::Serverless::Function Properties: DeploymentPreference: Type: Canary10Percent10Minutes Alarms: - !Ref ErrorsAlarm Hooks: PreTraffic: !Ref PreTrafficHook PostTraffic: !Ref PostTrafficHook SAMによるLambda関数の定義 カナリアデプロイの定義 CloudWatchアラームの定義 Hook用Lambda関数の指定
  • 62. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイライフサイクルイベント Hook スクリプト 実行可能箇所 • BeforeAllowTraffic • AfterAllowTraffic
  • 63. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeDeploy Lambda カナリアデプロイメント v1 AWS Lambda function code 100% Amazon API Gateway AWS Lambda function- weighted alias “live”
  • 64. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeDeploy Lambda カナリアデプロイメント Amazon API Gateway AWS Lambda function- weighted alias “live” v1 code 100% V2コードがトラフィックを受け取る前にHook関数が実行される v2 code 0%
  • 65. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeDeploy Lambda カナリアデプロイメント v1 code 90% 警告によるロールバックに備えて10分間待機 v2 code 10% Amazon API Gateway AWS Lambda function- weighted alias “live”
  • 66. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeDeploy Lambda カナリアデプロイメント v1 code 0% デプロイメントが完了 v2 code 100% Amazon API Gateway AWS Lambda function- weighted alias “live”
  • 67. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon ECS のデプロイ
  • 68. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeDeploy ECS blue/greenデプロイメント • Greenタスクをプロビジョニングし、ロードバランサーのトラフィックを切 り替え • 検証Hookによって各ステージのデプロイメントでテストを有効化 • Hookが失敗した場合やAmazon CloudWatchアラームを検知した場合は数秒 でBlueタスクに迅速にロールバック
  • 69. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. アプリケーションの作成
  • 70. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイグループの作成
  • 71. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイグループの作成
  • 72. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイの作成
  • 73. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイの作成
  • 74. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイ実行
  • 75. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeDeploy ECS appspec version: 0.0 Resources: - TargetService: Type: AWS::ECS::Service Properties: TaskDefinition: "my_task_definition:8" LoadBalancerInfos: ContainerName: "SampleApp" ContainerPort: 80 Hooks: - BeforeInstall: "BeforeNewRevisionInstalltion" - AfterInstall: "AfterNewRevisionInstallation" - AfterAllowTestTraffic: "AfterTestTrafficShift" - BeforeAllowTraffic: "BeforeTrafficShift" - AfterAllowTraffic: "AfterTrafficShift" ターゲットタイプの指定 タスク定義 ロードバランサの定義 フック関数の定義 ※実際にはLambdaのARNを指定
  • 76. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイライフサイクルイベント Hook スクリプト 実行可能箇所 • BeforeInstall • AfterInstall • AfterAllowTestTraffic • BeforeAllowTraffic • AfterAllowTraffic
  • 77. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeDeploy ECS blue/greenデプロイメント Application Load Balancer Production traffic listener (port 80) Target group 1 Blueタスク: v1 code 100% 本番 トラフィック AWS Fargate service
  • 78. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeDeploy ECS blue/greenデプロイメント Application Load Balancer Test traffic listener (port 9000) Production traffic listener (port 80) Target group 2 Target group 1 Blueタスク: v1 code AWS Fargate service 100% 本番 トラフィック
  • 79. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeDeploy ECS blue/greenデプロイメント Application Load Balancer Test traffic listener (port 9000) Production traffic listener (port 80) Target group 2 Target group 1 Greenタスク: v2 code greenタスクを配置 AWS Fargate service Blueタスク: v1 code 100% 本番 トラフィック
  • 80. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeDeploy ECS blue/greenデプロイメント Application Load Balancer Production traffic listener (port 80) Target group 2 Target group 1 greenタスクが本番用トラフィックを受け取る前にテストエンドポイントで hookが実行される AWS Fargate service Test traffic listener (port 9000) Greenタスク: v2 code Blueタスク: v1 code 100% 本番 トラフィック 100% テスト トラフィック
  • 81. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeDeploy ECS blue/greenデプロイメント Application Load Balancer Production traffic listener (port 80) Target group 2 Target group 1 Greenタスクへのトラフィックを切り替え。 もし失敗を検知した場合はロールバック AWS Fargate service Test traffic listener (port 9000) Greenタスク: v2 code Blueタスク: v1 code 0% 本番 トラフィック 100% テスト トラフィック
  • 82. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeDeploy ECS blue/greenデプロイメント Application Load Balancer Production traffic listener (port 80) Target group 2 Target group 1 AWS Fargate service Test traffic listener (port 9000) Greenタスク: v2 code blueタスクをドレイニイング 100% テスト トラフィック
  • 83. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 重要:デプロイメントのためのコンテナイメージのタグ付け • Dockerタグはデプロイ時のみではなく個々のコンテナの開始時にも利用 • latest や prod タグはスケールアウトイベント発生時に未テストの コードを本番環境へデプロイする結果を招く • デプロイメントにはユニークでイミュータブルなタグを利用すべき
  • 84. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイメントのためのコンテナイメージのタグ付け AWS Fargate service Amazon ECR repository Image: sha256@11111... (“latest”)
  • 85. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイメントのためのコンテナイメージのタグ付け Image: “latest” tag AWS Fargate service ビルドが新しい latest イメージをプッシュ Amazon ECR repository Image: sha256@11111... Image: sha256@22222... (“latest”)
  • 86. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイメントのためのコンテナイメージのタグ付け Image: “latest” tag AWS Fargate service サービスがスケールアウトし新しいタスクを実行開始 Amazon ECR repository Image: sha256@11111... Image: sha256@22222... (“latest”)
  • 87. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイメントのためのコンテナイメージのタグ付け イミュータブルなタグをデプロイ { "name": "sample-app", "image": "amazon/amazon-ecs- sample@sha256:3e39d933b1d948c92309bb583b5a1f3d28f0119e1551ca1fe538ba414a41af48d" } { "name": "sample-app", "image": "amazon/amazon-ecs-sample:build-b2085490-359f-4eaf-8970-6d1e26c354f0" } SHA256 digestを利用 Build IDを利用
  • 88. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイメントのためのコンテナイメージのタグ付け ビルド時にイミュータブルなタグを生成 SHA256 digest export IMAGE_URI=`docker inspect --format='{{index .RepoDigests 0}}' my_image:$IMAGE_TAG サンプル結果: amazon/amazon-ecs-sample@sha256:3e39d933b... Build ID export IMAGE_TAG=build-`echo $CODEBUILD_BUILD_ID | awk –F":" ‘{print $2}'` サンプル結果: build-b2085490-359f-4eaf-8970-6d1e26c354f0
  • 89. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイメントのためのコンテナイメージのタグ付け Image: “build-11111” tag AWS Fargate service Amazon ECR repository Image: sha256@11111... (“build-11111”)
  • 90. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイメントのためのコンテナイメージのタグ付け Image: “build-11111” tag AWS Fargate service ビルドが新しいビルドIDのイメージタグをプッシュ Amazon ECR repository Image: sha256@11111... (“build-11111”) Image: sha256@22222... (“build-22222”)
  • 91. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイメントのためのコンテナイメージのタグ付け Image: “build-11111” tag AWS Fargate service サービスがスケールアウトし、新しいタスクを実行しようとする Amazon ECR repository Image: sha256@11111... (“build-11111”) Image: sha256@22222... (“build-22222”)
  • 92. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デプロイメントのためのコンテナイメージのタグ付け Image: “build-22222” tag AWS Fargate service Amazon ECR repository Image: sha256@11111... (“build-11111”) Image: sha256@22222... (“build-22222”) デプロイメントはサービス定義を更新し、タスクを置き換え
  • 93. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 機能紹介
  • 94. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Validation Hook Lambda 'use strict'; const aws = require('aws-sdk'); const codedeploy = new aws.CodeDeploy({apiVersion: '2014-10-06'}); exports.handler = (event, context, callback) => { //Read the DeploymentId from the event payload. var deploymentId = event.DeploymentId; //Read the LifecycleEventHookExecutionId from the event payload var lifecycleEventHookExecutionId = event.LifecycleEventHookExecutionId; /* Enter validation tests here. */ // Prepare the validation test results with the deploymentId and // the lifecycleEventHookExecutionId for AWS CodeDeploy. var params = { deploymentId: deploymentId, lifecycleEventHookExecutionId: lifecycleEventHookExecutionId, status: 'Succeeded' // status can be 'Succeeded' or 'Failed' }; // Pass AWS CodeDeploy the prepared validation test results. codedeploy.putLifecycleEventHookExecutionStatus(params, function(err, data) { }); }; CodeDeploy に結果を連携 テストコード
  • 95. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CloudWatch アラームによるデプロイ停止 メトリクス やログを監視し、デプロイを停止することが可能
  • 96. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ステータスの通知 通知ルール、デプロイトリガーを設定してデプロイ状況の通知を 受けることが可能 Amazon Simple Notification Service AWS Chatbot
  • 97. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. VPC エンドポイントをサポート • EC2 へのデプロイには codedeploy, codedeploy-commands-secure の 両方が必要 AWS Cloud VPC Private subnet codedeploy AWS CodeDeploy codedeploy- commands-secure
  • 98. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. VPC エンドポイントをサポート • Lambda, ECS へのデプロイには codedeploy のみ必要 AWS Cloud VPC Private subnet codedeploy AWS CodeDeploy
  • 99. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 利用料金 • EC2 / Lambda / ECS へのデプロイは無料 • オンプレミスのインスタンスに対するデプロイは、 0.02 USD / インスタンス / デプロイ • 3台のオンプレミスインスタンスへデプロイ • 3台 * 0.02 USD = 0.06 USD • 1台のオンプレミスインスタンスへ 3回デプロイ • 1台 * 0.02 USD * 3回= 0.06 USD
  • 100. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. まとめ • AWS CodeDeploy は、フルマネージドなデプロイサービス • EC2、 オンプレミス、Lambda、ECS へデプロイ可能 • 単体で使うことも、他のサービスと組み合わせることも可能 • 8種類のチュートリアル • https://docs.aws.amazon.com/ja_jp/codedeploy/latest/usergui de/tutorials.html
  • 101. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ソフトウェア開発に関連する AWS サービス AWS CodeBuild + Third Party AWS CodeCommit AWS CodeBuild AWS CodeDeploy AWS X-Ray AWS CodePipeline MONITOR DEPLOY TEST BUILD SOURCE / ARTIFACT AUTHOR AWS Cloud9 AWS IDE Toolkits Amazon CloudWatch AWS CloudFormation AWS SAM AWS Cloud Development Kit MODEL Amazon CodeGuru AWS CodeArtifact
  • 102. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ソフトウェア開発に関連する AWS サービス AWS CodeBuild + Third Party AWS CodeCommit AWS CodeBuild AWS CodeDeploy AWS X-Ray AWS CodePipeline MONITOR DEPLOY TEST BUILD SOURCE / ARTIFACT AUTHOR AWS Cloud9 AWS IDE Toolkits Amazon CloudWatch AWS CloudFormation AWS SAM AWS Cloud Development Kit MODEL Amazon CodeGuru AWS CodeArtifact
  • 103. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ソフトウェア開発に関連する AWS サービス • AWS CodeGuru • https://aws.amazon.com/jp/blogs/news/webinar-bb-amazon-codeguru-2020/ • AWS CodeStar & AWS CodePipeline • https://aws.amazon.com/jp/blogs/news/webinar-bb-awscodestar_awscodepipeline-2020/ • AWS CodeCommit & AWS CodeArtifact • https://aws.amazon.com/jp/blogs/news/webinar-bb-aws-codecommit_aws-codeartifact- 2020/ • AWS CodeBuild • https://aws.amazon.com/jp/blogs/news/webinar-bb-aws-codebuild-2020/
  • 104. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Q&A お答えできなかったご質問については AWS Japan Blog 「https://aws.amazon.com/jp/blogs/news/」にて 後日掲載します。
  • 105. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS の日本語資料の場所「AWS 資料」で検索 https://amzn.to/JPArchive
  • 106. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. で[検索] AWS イベント 毎週”W-A個別技術相談会”を実施中 • AWSのソリューションアーキテクト(SA)に 対策などを相談することも可能 • 申込みはイベント告知サイトから (https://aws.amazon.com/jp/about-aws/events/) AWS Well-Architected 個別技術相談会
  • 107. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS 公式 Webinar https://amzn.to/JPWebinar 過去資料 https://amzn.to/JPArchive ご視聴ありがとうございました