콘테이너 운영을 위한 amazon ec2 container service(ecs) 집중 분석
TRANSCRIPT
( 7[Pg] � 9G� 9,�9] aP T_�GT_c RT% n
,(
-( v
.(
/(
4
4
4 k
4 DG� T_ TZ uServer
Guest OS
Bins/Libs Bins/Libs
App2App1
D_RWT a_Pa ] 6
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
( � � �9] aP T_�GT_c RT% n
7[Pg] � 9G
yw
7KG�
7[Pg] � 9G x
9,�…
HP �:TU a ] %
… r
HP %
w
w
t
9,�
7[Pg] � 9G�x 4
:]R T_HP
9,� aP RT
9] aP T_
:]R T_HP
9,� aP RT
HP:]R T_
9,� aP RT
HP
7L� 7L�,
9] aP T_ 9] aP T_ 9] aP T_
:]R T_
9,� aP RT
:]R T_
9,� aP RT
:]R T_
9,� aP RT
7L� 7L�,
9Zb aT_�BP PVT[T a� V T
7[Pg] � 9G�x 4 w
9] aP T_ 9] aP T_ 9] aP T_ 9] aP T_9] aP T_ 9] aP T_
HP HP HP HP HP HP
9G�PVT a
9,� aP RT
9G�PVT a
:]R T_
9,� aP RT
:]R T_
9,� aP RT
:]R T_
7L� 7L�,
9Zb aT_�BP PVT[T a� V T
7[Pg] � 9G�x 4 9G�PVT a
9] aP T_ 9] aP T_ 9] aP T_ 9] aP T_9] aP T_ 9] aP T_
HP HP HP HP HP HP
9G�PVT a
7VT a�9][[b RPa ] �GT_c RT
7[Pg] � 9G�
7A8 7A8
7L� 7L�,
b T_) RWTSbZT_
GRWTSbZT_
9Zb aT_�GaPaT�GT_c RT
EZPRT[T a� V T
cT a�Ga_TP[
> aT_ Ta
9G�PVT a 9G�PVT a 9G�PVT a
9,� aP RT 9,� aP RT 9,� aP RT
J]Zb[T�STU a ]
9] aP T_�STU a ]
7[Pg] � 9G�x 4 HP �:TU a ] %
7[Pg] � 9G�x 4 HP �:TU a ] %7KG�w u 9G�u HP �:TU a ] �u 9_TPaT� Td�HP �:TU a ] �u 7SS�R] aP T_
u 7SS�c]Zb[T
7[Pg] � 9G�x 4 HP �:TU a ] %7KG�w u 9G�u HP �:TU a ] �u 9_TPaT� Td�HP �:TU a ] �u 9] U Vb_T�c P�?GDC
:PaP�J]Zb[T
9] aP T_
9,�aP RT
J]Zb[T�STU a ]
9] aP T_�STU a ]
7[Pg] � 9G�x 4 HP %
9G
w
9G�
n ~
n x
ZP a R�A]PS�8PZP R V� k
7ba]�GRPZ V k
7[Pg] � 9G�x 4
7[Pg] � 9G�x 47KG�w u 9G�u 9Zb aT_ �u GT_c RT �u 9_TPaT
7[Pg] � 9G�x 47KG�w u 9G�u 9Zb aT_ �u GT_c RT �u 9_TPaT
A
C E
⊙o p
⊙o
⊙o
9EI&� x
&� &�7B>&�…
Name Example
AMI ID attribute:ecs.ami-id == ami-eca289fb
Availability Zone
attribute:ecs.availability-zone== us-east-1a
Instance Type
attribute:ecs.instance-type == t2.small
Distinct Instances type=“distinctInstance”
Custom attribute:stack == prod
8 PR V G _TPS 7UU af : a Ra�> aP RT
V,(,eZP_VT a,( [PZZ V,(,eZP_VT V,(,eZP_VT
4� > aP RT�Hf T
V,(,eZP_VT a,( [PZZ a,([ R_] a,([TS b[
a,([TS b[ a,( [PZZ V,(,eZP_VT
a,( [PZZ
a,( [PZZ a,([TS b[
b TP a Pb TP a S
4� > aP RT�Hf Tv L] T
V,(,eZP_VT a,( [PZZ a,([ R_] a,([TS b[
a,([TS b[ a,( [PZZ V,(,eZP_VT a,( [PZZ
b TP a Pb TP a S
V,(,eZP_VT a,([TS b[
a,([ R_] a,( [PZZ
b TP a R
4�7cP ZP Z af�L] T�
V,(,eZP_VT a,( [PZZ a,([ R_] a,([TS b[
a,([TS b[ a,( [PZZ V,(,eZP_VT a,( [PZZ
b TP a Pb TP a S
V,(,eZP_VT a,([TS b[
a,([ R_] a,( [PZZ
b TP a R
4�L] T 8 PR
V,(,eZP_VT a,( [PZZ a,([ R_] a,([TS b[
a,([TS b[ a,( [PZZ V,(,eZP_VT a,( [PZZ
b TP a Pb TP a S
V,(,eZP_VT a,([TS b[
a,([ R_] a,( [PZZ
b TP a R
4�7UU af 7 a 7UU af
a,([TS b[ V,(,eZP_VT a,([ R_] a,( [PZZ
a,( [PZZ a,( [PZZ V,(,eZP_VT a,( [PZZ
a,( [PZZ a,( [PZZ
V,(,eZP_VT a,( [PZZ
4� n GT_c RT
HP �EZPRT[T a%7KG�w u 9G�u 9Zb aT_ �u GT_c RT �u 9_TPaT�u HP �EZPRT[T a
u HP �u b � Td�HP
HP �EZPRT[T a%7KG�w u 9G�u 9Zb aT_ �u GT_c RT �u 9_TPaT�u HP �EZPRT[T a�
9Z]bSKPaRW 9G w
,n : [T ]
• 9Zb aT_CP[T
• GT_c RTCP[T
.n
• 9EI T T_cPa ]
• BT[]_f T T_cPa ]
• 9EIIa Z gPa ]
• BT[]_fIa Z gPa ] 9] aP T_�> aP RT
i
9Zb aT_
HP �STU a ]
HP
GT_c RT
9Z]bSKPaRW9G�BTa_ R
S]R T_ a]
9Z]bSKPaRW9,�BTa_ R
9] aP T_�> aP RT
9] aP T_�> aP RT
9G�
T T_cPa ]
• aP 9EI&
Ia Z gPa ]
• aP 9EI&
H]aPZ�9EI�b a �)�B 8�]U�[T[]_f�b TS� f�aP � �RZb aT_%e�
H]aPZ�9EI�b a �)�B 8�]U�[T[]_f�_TV aT_TS� f�R] aP T_� aP RT � �RZb aT_%
H]aPZ�9EI�b a �)�B 8�]U�[T[]_f�_T T_cTS� f�aP � �RZb aT_%e�
H]aPZ�9EI�b a �)�B 8�]U�[T[]_f�_TV aT_TS� f�R] aP T_� aP RT � �RZb aT_%
9G�7KG�w u 9G�u 9Zb aT_ �u BTa_ R
9G�
Ia Z gPa ]• 9EI& HP k 9EI�
% R.(ZP_VT� ,& .2 9EI & -&102B 8%
~ HP n / , 9EI &� ,.B 8 %
m HP k 9EI� ,& .2 & / ,B 85 9EI� . & / t
H]aPZ�9EI�b a �)�B 8�]U�[T[]_f�b TS� f�aP � �RZb aT_%e�
H]aPZ�9EI�b a )�B 8�]U�[T[]_f _T T_cTS� �aP �STU a ] %�e� b[ T_�]U�aP � �T_c RT%
9G�7KG�w u 9G�u 9Zb aT_ �u GT_c RT �u BTa_ R
7[Pg] �9Z]bSKPaRW A]V z
9Z]bSKPaRW A]V 7[Pg] �G-
7[Pg] � T
7KG�AP[ SP
7[Pg] � ZP a R TP_RW�GT_c RT
7[Pg] � 9G Ga]_T
Ga_TP[
E_]RT
GTP_RW
9Z]bSKPaRW A]V
9Z]bSKPaRW A]V
9Z]bSKPaRW A]V
"containerDefinitions": [ {
"memory": 300,
"portMappings": [ {
"hostPort": 80,
"containerPort": 80 } ],
"entryPoint": [ "sh", "-c" ],
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "awslogs-test",
"awslogs-region": "us-west-2",
"awslogs-stream-prefix": "nginx" }
},
"name": "simple-app",
"image": "httpd:2.4", }
HP �:TU a ] % Pd Z]V
:]R T_ 9Z]bSKPaRW A]V �Z]VV V�S_ cT_ u
9G�
xGaT � �4�9Z]bSKPaRW BTa_ R� 7ZP_[
GaT �,�4 9,� &7[Pg] �Z be 9G ] a [ gTS�7B>
APb RW�R] U Vb_Pa ] �
GaT �-�4�7ba]GRPZ V _]b �
7KG�w u 9G�u 9Zb aT_ �u GT_c RT �u 9] U Vb_T�GT_c RT�7ba]�GRPZ V
MBT[]_fIa Z gPa ] [Ta_ R� N
9G�
9G�
ECS cluster instances
Auto Scaling “scale in” event
ECS cluster instancesAmazon
SNS
Auto Scaling Lifecycle hook
ECS cluster instances
Amazon ECS
Lambda function
AmazonSNS
Set (instance_ID, “draining”)
ECS cluster instances
Amazon ECS
Lambda function
AmazonSNS
Set (instance_ID, “draining”)
If ECSDescribeTasks(instance_ID) == NULL CompleteLifecycleAction(instance_ID)
ElsePrint(“Still running some tasks”)
ECS cluster instances
Amazon ECS
Lambda function
AmazonSNS
Set (instance_ID, “draining”)
If ECSDescribeTasks(instance_ID) == NULL CompleteLifecycleAction(instance_ID)
ElsePrint(“Still running some tasks”)
Complete Lifecycle hook
ECS cluster instances
Amazon ECS
Lambda function
AmazonSNS
Set (instance_ID, “draining”)
If ECSDescribeTasks(instance_ID) == NULL CompleteLifecycleAction(instance_ID)
ElsePrint(“Still running some tasks”)
Complete Lifecycle hook
:
9ZP R�A]PS� PZP RT_� A8%�#�7 Z RPa ] �A]PS�8PZP RT_� 7A8%
A8 ]_a ]_a t ws
% A8 ]_a 2 � 5 ]_a�- - kA8� ]_a�2 � 5� ]_a�- - v]_a . . k
9ZP R�A]PS�8PZP RT_
7 Z RPa ] �A]PS�8PZP RT_
E]_a�
% ]_a 2 5 ]_a7[Pg] � 9G 7B> -,102 h 0 %
5 E]_a & y ]_a7A8 ]_a k
9ZP R�A]PS�8PZP RT_� A8%
A8
9,� �7G
7 PRWT�[]SO _]ef
9,� �7G
A8
)R_TS a RP_S
)[]_aVPVT
A8
7 Z RPa ] �A]PS�8PZP RT_� 7A8%
7A8
9,� �7G
)R_TS a RP_S
)[]_aVPVT
EPaW P TS�_]ba V
HP_VTa� _]b
7A8
A aT T_bZT
HP_VTa HP_VTa
TPZaW�9WTR HP_VTa� _]b
A aT T_bZT
HP_VTa HP_VTa
TPZaW�9WTR
E]_a�2
E]_a�2 2
)R_TS a RP_S )[]_aVPVT
6
9] aP T_�> aP RT
9] aP T_
9] aP T_
9] aP T_
6
7A8 9G
9] aP T_�> aP RT
9] aP T_
9] aP T_
HP_VTa� _]b
9] aP T_
9] aP T_
HP_VTa� _]b7A8
7A87KG�w u 9G�u 9Zb aT_ �u HP �:TU a ] �u E]_a�BP V �
7KG�w u 9,�u A]PS�8PZP R V�u HP_VTa�V_]b �u HP_VTa ���
M WT[T_PZ�W VW� ]_a� -,102 h 0 % N
7A8
H_P ]_a
APfT_�1• HHEG� TRb_ af
• 7[Pg] �9T_a U RPaT�BP PVT_� 79B%
HAG�aT_[ PaTS�Pa�7A8• _T d_P TS�a]�aP_VTa R] aP T_
M7A8� z … 9Z]bSKPaRW uN
7A8�7KG�w u 9Z]bSKPaRW u BTa_ R �u 7 Z RPa ] A8
Ml AP TZ N
7A8�7KG�w u 9Z]bSKPaRW u BTa_ R �u 7 Z RPa ] A8
2
www.awsdevday.co.kr
Dev Day 모바일 웹을 통해지금 세션 평가에 참여하시면,행사 후 기념 티셔츠를 드립니다.
• 발표 자료 및 녹화 동영상은 AWS Korea 공식소셜 채널로 공유될 예정입니다.
• #AWSDevDay 해시 태그로 의견을 남겨주세요!