How to know if my instance will be terminated in ec2?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
I have a autoscalling in AWS, that basically do:
- Run a python process
script.py
- This script get messages from sqs queue to process
My autoscalling is configured to start/terminate instance based on # of avaliables messages in queue. But sometimes when i processing something in machines and my # of messages, my autoscaling trigger to terminate instances, so i end losting message in the middle of processing.
I starting trying to handler signals but does not seem to be working.
My main goal is:
- If i know that my instance will be terminate soon, i will wait finishing my current processes (i will not get any new message) and them i send a signal "OK" to AWS to shutdown the instance.
Is there anyway to archive this? I'm not using load balancing because i manually get the messages from queue.
amazon-web-services amazon-ec2
add a comment |
I have a autoscalling in AWS, that basically do:
- Run a python process
script.py
- This script get messages from sqs queue to process
My autoscalling is configured to start/terminate instance based on # of avaliables messages in queue. But sometimes when i processing something in machines and my # of messages, my autoscaling trigger to terminate instances, so i end losting message in the middle of processing.
I starting trying to handler signals but does not seem to be working.
My main goal is:
- If i know that my instance will be terminate soon, i will wait finishing my current processes (i will not get any new message) and them i send a signal "OK" to AWS to shutdown the instance.
Is there anyway to archive this? I'm not using load balancing because i manually get the messages from queue.
amazon-web-services amazon-ec2
Worst case, if an instance is terminated while processing a message, the message will automatically "reappear" on the queue after a certain period. This allows it to be reprocessed. Only when a message is Deleted will it not reappear.
– John Rotenstein
Jan 4 at 21:26
add a comment |
I have a autoscalling in AWS, that basically do:
- Run a python process
script.py
- This script get messages from sqs queue to process
My autoscalling is configured to start/terminate instance based on # of avaliables messages in queue. But sometimes when i processing something in machines and my # of messages, my autoscaling trigger to terminate instances, so i end losting message in the middle of processing.
I starting trying to handler signals but does not seem to be working.
My main goal is:
- If i know that my instance will be terminate soon, i will wait finishing my current processes (i will not get any new message) and them i send a signal "OK" to AWS to shutdown the instance.
Is there anyway to archive this? I'm not using load balancing because i manually get the messages from queue.
amazon-web-services amazon-ec2
I have a autoscalling in AWS, that basically do:
- Run a python process
script.py
- This script get messages from sqs queue to process
My autoscalling is configured to start/terminate instance based on # of avaliables messages in queue. But sometimes when i processing something in machines and my # of messages, my autoscaling trigger to terminate instances, so i end losting message in the middle of processing.
I starting trying to handler signals but does not seem to be working.
My main goal is:
- If i know that my instance will be terminate soon, i will wait finishing my current processes (i will not get any new message) and them i send a signal "OK" to AWS to shutdown the instance.
Is there anyway to archive this? I'm not using load balancing because i manually get the messages from queue.
amazon-web-services amazon-ec2
amazon-web-services amazon-ec2
edited Jan 4 at 17:20
Gaspar
asked Jan 4 at 17:05
GasparGaspar
237
237
Worst case, if an instance is terminated while processing a message, the message will automatically "reappear" on the queue after a certain period. This allows it to be reprocessed. Only when a message is Deleted will it not reappear.
– John Rotenstein
Jan 4 at 21:26
add a comment |
Worst case, if an instance is terminated while processing a message, the message will automatically "reappear" on the queue after a certain period. This allows it to be reprocessed. Only when a message is Deleted will it not reappear.
– John Rotenstein
Jan 4 at 21:26
Worst case, if an instance is terminated while processing a message, the message will automatically "reappear" on the queue after a certain period. This allows it to be reprocessed. Only when a message is Deleted will it not reappear.
– John Rotenstein
Jan 4 at 21:26
Worst case, if an instance is terminated while processing a message, the message will automatically "reappear" on the queue after a certain period. This allows it to be reprocessed. Only when a message is Deleted will it not reappear.
– John Rotenstein
Jan 4 at 21:26
add a comment |
1 Answer
1
active
oldest
votes
you can use AWS autoscaling lifecycle hooks, they will put your ec2 instance in wait state before terminating it and deliver a message to SNS or cloudwatch that your instance is ready to terminate you can finish your already processed message in the mean time, i found an interesting blog post explaining the use case similar to yours .
AWS autoscaling lifecycle hooks
I will take a look! Hope that solve my problem! Thanks.
– Gaspar
Jan 4 at 17:30
i believe it will
– varnit
Jan 4 at 17:30
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54043254%2fhow-to-know-if-my-instance-will-be-terminated-in-ec2%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
you can use AWS autoscaling lifecycle hooks, they will put your ec2 instance in wait state before terminating it and deliver a message to SNS or cloudwatch that your instance is ready to terminate you can finish your already processed message in the mean time, i found an interesting blog post explaining the use case similar to yours .
AWS autoscaling lifecycle hooks
I will take a look! Hope that solve my problem! Thanks.
– Gaspar
Jan 4 at 17:30
i believe it will
– varnit
Jan 4 at 17:30
add a comment |
you can use AWS autoscaling lifecycle hooks, they will put your ec2 instance in wait state before terminating it and deliver a message to SNS or cloudwatch that your instance is ready to terminate you can finish your already processed message in the mean time, i found an interesting blog post explaining the use case similar to yours .
AWS autoscaling lifecycle hooks
I will take a look! Hope that solve my problem! Thanks.
– Gaspar
Jan 4 at 17:30
i believe it will
– varnit
Jan 4 at 17:30
add a comment |
you can use AWS autoscaling lifecycle hooks, they will put your ec2 instance in wait state before terminating it and deliver a message to SNS or cloudwatch that your instance is ready to terminate you can finish your already processed message in the mean time, i found an interesting blog post explaining the use case similar to yours .
AWS autoscaling lifecycle hooks
you can use AWS autoscaling lifecycle hooks, they will put your ec2 instance in wait state before terminating it and deliver a message to SNS or cloudwatch that your instance is ready to terminate you can finish your already processed message in the mean time, i found an interesting blog post explaining the use case similar to yours .
AWS autoscaling lifecycle hooks
answered Jan 4 at 17:22
varnitvarnit
1,307519
1,307519
I will take a look! Hope that solve my problem! Thanks.
– Gaspar
Jan 4 at 17:30
i believe it will
– varnit
Jan 4 at 17:30
add a comment |
I will take a look! Hope that solve my problem! Thanks.
– Gaspar
Jan 4 at 17:30
i believe it will
– varnit
Jan 4 at 17:30
I will take a look! Hope that solve my problem! Thanks.
– Gaspar
Jan 4 at 17:30
I will take a look! Hope that solve my problem! Thanks.
– Gaspar
Jan 4 at 17:30
i believe it will
– varnit
Jan 4 at 17:30
i believe it will
– varnit
Jan 4 at 17:30
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54043254%2fhow-to-know-if-my-instance-will-be-terminated-in-ec2%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Worst case, if an instance is terminated while processing a message, the message will automatically "reappear" on the queue after a certain period. This allows it to be reprocessed. Only when a message is Deleted will it not reappear.
– John Rotenstein
Jan 4 at 21:26