# Setting up Elastic search on EC2 - size and number?

**URL:** <https://discuss.elastic.co/t/setting-up-elastic-search-on-ec2-size-and-number/2870>\
**Category:** Elasticsearch\
**Created:** [March 26, 2010, 2:09pm UTC](https://discuss.elastic.co/t/setting-up-elastic-search-on-ec2-size-and-number/2870 "2010-03-26T14:09:34Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![timrobertson100](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/timrobertson100/32/2467_2.png) [@timrobertson100](https://discuss.elastic.co/u/timrobertson100)\
**Post date:** [March 26, 2010, 2:09pm UTC](https://discuss.elastic.co/t/setting-up-elastic-search-on-ec2-size-and-number/2870/1 "2010-03-26T14:09:34Z")

</div>

Hey,

I am about to index about 200 million records from a tab delimited  
file of 23-40 properties per line (most of them indexed). Probably the  
data will be 150GB in JSON.

Before I start, does anyone have a feel for what instance types and  
how many they'd guess at (single client throughput only right now).  
Would 3 large instances (7.5GB memory) do me or would I be better with  
a bunch of smaller ones?

Cheers,  
Tim

---

<div class="post-metadata">

**Author:** ![kimchy](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kimchy/32/44952_2.png) [@kimchy](https://discuss.elastic.co/u/kimchy)\
**Post date:** [March 26, 2010, 2:55pm UTC](https://discuss.elastic.co/t/setting-up-elastic-search-on-ec2-size-and-number/2870/2 "2010-03-26T14:55:09Z")

</div>

I think even two should be enough. Since you have a single client indexing,  
the question is how you can parallelize it (even if its on a single process,  
consider using threads). I have a feeling that you might bottleneck on the  
client side before you bottleneck on elasticsearch side. If you see that you  
client can push more than elasticsearch can handle, then it make sense to  
add another machine.

If you are using a large instance, make sure that you set the -Xmx parameter  
to a higher value (by default it is -Xmx1g) so elasticsearch will make sure  
of more memory available on the machine.

-shay.banon

On Fri, Mar 26, 2010 at 5:09 PM, timrobertson100  
[timrobertson100@gmail.com](mailto:timrobertson100@gmail.com)wrote:

> Hey,
> 
> I am about to index about 200 million records from a tab delimited  
> file of 23-40 properties per line (most of them indexed). Probably the  
> data will be 150GB in JSON.
> 
> Before I start, does anyone have a feel for what instance types and  
> how many they'd guess at (single client throughput only right now).  
> Would 3 large instances (7.5GB memory) do me or would I be better with  
> a bunch of smaller ones?
> 
> Cheers,  
> Tim

---

<div class="post-metadata">

**Author:** ![timrobertson100](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/timrobertson100/32/2467_2.png) [@timrobertson100](https://discuss.elastic.co/u/timrobertson100)\
**Post date:** [March 26, 2010, 5:06pm UTC](https://discuss.elastic.co/t/setting-up-elastic-search-on-ec2-size-and-number/2870/3 "2010-03-26T17:06:46Z")

</div>

Thanks Shay, I'll try 2 and see the performance.

I expect for any decent response times on search I will need to get the  
indexes in memory so will expect more are needed later.

On Fri, Mar 26, 2010 at 3:55 PM, Shay Banon [shay.banon@elasticsearch.com](mailto:shay.banon@elasticsearch.com)wrote:

> I think even two should be enough. Since you have a single client indexing,  
> the question is how you can parallelize it (even if its on a single process,  
> consider using threads). I have a feeling that you might bottleneck on the  
> client side before you bottleneck on elasticsearch side. If you see that you  
> client can push more than elasticsearch can handle, then it make sense to  
> add another machine.
> 
> If you are using a large instance, make sure that you set the -Xmx  
> parameter to a higher value (by default it is -Xmx1g) so elasticsearch will  
> make sure of more memory available on the machine.
> 
> -shay.banon
> 
> On Fri, Mar 26, 2010 at 5:09 PM, timrobertson100 \<  
> [timrobertson100@gmail.com](mailto:timrobertson100@gmail.com)\> wrote:
> 
> > Hey,
> > 
> > I am about to index about 200 million records from a tab delimited  
> > file of 23-40 properties per line (most of them indexed). Probably the  
> > data will be 150GB in JSON.
> > 
> > Before I start, does anyone have a feel for what instance types and  
> > how many they'd guess at (single client throughput only right now).  
> > Would 3 large instances (7.5GB memory) do me or would I be better with  
> > a bunch of smaller ones?
> > 
> > Cheers,  
> > Tim

---

<div class="post-metadata">

**Author:** ![kimchy](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kimchy/32/44952_2.png) [@kimchy](https://discuss.elastic.co/u/kimchy)\
**Post date:** [March 26, 2010, 5:09pm UTC](https://discuss.elastic.co/t/setting-up-elastic-search-on-ec2-size-and-number/2870/4 "2010-03-26T17:09:52Z")

</div>

Do you mean storing the index in memory? It really depends on the FS  
performance of amazon, I guess, but on local disks (not virtualized) you  
will be surprised at the performance. If you get to compare it, it will be  
interesting to hear...

-shay.banon

On Fri, Mar 26, 2010 at 8:06 PM, Tim Robertson [timrobertson100@gmail.com](mailto:timrobertson100@gmail.com)wrote:

> Thanks Shay, I'll try 2 and see the performance.
> 
> I expect for any decent response times on search I will need to get the  
> indexes in memory so will expect more are needed later.
> 
> On Fri, Mar 26, 2010 at 3:55 PM, Shay Banon [shay.banon@elasticsearch.com](mailto:shay.banon@elasticsearch.com)wrote:
> 
> > I think even two should be enough. Since you have a single client  
> > indexing, the question is how you can parallelize it (even if its on a  
> > single process, consider using threads). I have a feeling that you might  
> > bottleneck on the client side before you bottleneck on elasticsearch side.  
> > If you see that you client can push more than elasticsearch can handle, then  
> > it make sense to add another machine.
> > 
> > If you are using a large instance, make sure that you set the -Xmx  
> > parameter to a higher value (by default it is -Xmx1g) so elasticsearch will  
> > make sure of more memory available on the machine.
> > 
> > -shay.banon
> > 
> > On Fri, Mar 26, 2010 at 5:09 PM, timrobertson100 \<  
> > [timrobertson100@gmail.com](mailto:timrobertson100@gmail.com)\> wrote:
> > 
> > > Hey,
> > > 
> > > I am about to index about 200 million records from a tab delimited  
> > > file of 23-40 properties per line (most of them indexed). Probably the  
> > > data will be 150GB in JSON.
> > > 
> > > Before I start, does anyone have a feel for what instance types and  
> > > how many they'd guess at (single client throughput only right now).  
> > > Would 3 large instances (7.5GB memory) do me or would I be better with  
> > > a bunch of smaller ones?
> > > 
> > > Cheers,  
> > > Tim

---

<div class="post-metadata">

**Author:** ![Paul\_Loy](https://avatars.discourse-cdn.com/v4/letter/p/ad7895/32.png) [@Paul\_Loy](https://discuss.elastic.co/u/Paul_Loy)\
**Post date:** [March 30, 2010, 1:00pm UTC](https://discuss.elastic.co/t/setting-up-elastic-search-on-ec2-size-and-number/2870/5 "2010-03-30T13:00:46Z")

</div>

Hi Tim,

I am very interested to learn how your experiment went/is going. I'm leading  
the development of an internal middleware solution which must work both in a  
traditional hosted environment and AWS/EC2. Being able to run Elastic Search  
on EC2 will help my tech selection efforts.

Any info would be great.

Many thanks,

Paul.

On Fri, Mar 26, 2010 at 6:09 PM, Shay Banon [shay.banon@elasticsearch.com](mailto:shay.banon@elasticsearch.com)wrote:

> Do you mean storing the index in memory? It really depends on the FS  
> performance of amazon, I guess, but on local disks (not virtualized) you  
> will be surprised at the performance. If you get to compare it, it will be  
> interesting to hear...
> 
> -shay.banon
> 
> On Fri, Mar 26, 2010 at 8:06 PM, Tim Robertson [timrobertson100@gmail.com](mailto:timrobertson100@gmail.com)wrote:
> 
> > Thanks Shay, I'll try 2 and see the performance.
> > 
> > I expect for any decent response times on search I will need to get the  
> > indexes in memory so will expect more are needed later.
> > 
> > On Fri, Mar 26, 2010 at 3:55 PM, Shay Banon \<[shay.banon@elasticsearch.com](mailto:shay.banon@elasticsearch.com)
> > 
> > > wrote:
> > 
> > > I think even two should be enough. Since you have a single client  
> > > indexing, the question is how you can parallelize it (even if its on a  
> > > single process, consider using threads). I have a feeling that you might  
> > > bottleneck on the client side before you bottleneck on elasticsearch side.  
> > > If you see that you client can push more than elasticsearch can handle, then  
> > > it make sense to add another machine.
> > > 
> > > If you are using a large instance, make sure that you set the -Xmx  
> > > parameter to a higher value (by default it is -Xmx1g) so elasticsearch will  
> > > make sure of more memory available on the machine.
> > > 
> > > -shay.banon
> > > 
> > > On Fri, Mar 26, 2010 at 5:09 PM, timrobertson100 \<  
> > > [timrobertson100@gmail.com](mailto:timrobertson100@gmail.com)\> wrote:
> > > 
> > > > Hey,
> > > > 
> > > > I am about to index about 200 million records from a tab delimited  
> > > > file of 23-40 properties per line (most of them indexed). Probably the  
> > > > data will be 150GB in JSON.
> > > > 
> > > > Before I start, does anyone have a feel for what instance types and  
> > > > how many they'd guess at (single client throughput only right now).  
> > > > Would 3 large instances (7.5GB memory) do me or would I be better with  
> > > > a bunch of smaller ones?
> > > > 
> > > > Cheers,  
> > > > Tim

## --

Paul Loy  
[paul@keteracel.com](mailto:paul@keteracel.com)  
[http://www.keteracel.com/paul](http://www.keteracel.com/paul)

---

<div class="post-metadata">

**Author:** ![Paolo\_Castagna](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/paolo_castagna/32/3347_2.png) [@Paolo\_Castagna](https://discuss.elastic.co/u/Paolo_Castagna)\
**Post date:** [March 30, 2010, 1:04pm UTC](https://discuss.elastic.co/t/setting-up-elastic-search-on-ec2-size-and-number/2870/6 "2010-03-30T13:04:31Z")

</div>

Paul Loy wrote:

> I am very interested to learn how your experiment went/is going. I'm  
> leading the development of an internal middleware solution which must  
> work both in a traditional hosted environment and AWS/EC2. Being able to  
> run Elastic Search on EC2 will help my tech selection efforts.
> 
> Any info would be great.

+1 🙂

Thanks,  
Paolo

---

<div class="post-metadata">

**Author:** ![timrobertson100](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/timrobertson100/32/2467_2.png) [@timrobertson100](https://discuss.elastic.co/u/timrobertson100)\
**Post date:** [March 30, 2010, 1:33pm UTC](https://discuss.elastic.co/t/setting-up-elastic-search-on-ec2-size-and-number/2870/7 "2010-03-30T13:33:49Z")

</div>

The short answer is I got sidetracked... it is on the list of things  
to do and I will share all findings.  
For sure it will work, I am just curious how $ it becomes for decent throughput.

On Tue, Mar 30, 2010 at 3:04 PM, Paolo Castagna  
[castagna.lists@googlemail.com](mailto:castagna.lists@googlemail.com) wrote:

> Paul Loy wrote:
> 
> > I am very interested to learn how your experiment went/is going. I'm  
> > leading the development of an internal middleware solution which must work  
> > both in a traditional hosted environment and AWS/EC2. Being able to run  
> > Elastic Search on EC2 will help my tech selection efforts.
> > 
> > Any info would be great.
> 
> +1 🙂
> 
> Thanks,  
> Paolo

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 6, 2017, 4:25am UTC](https://discuss.elastic.co/t/setting-up-elastic-search-on-ec2-size-and-number/2870/8 "2017-07-06T04:25:00Z")

</div>


