Regarding your above query, going by rule of thumb (1 AOS server per 100 users, 1 EP server per 200 users), I suppose for 40 users 1 AOS server should be adequate. Of course this needs to be validated by quantifying various factors such as number of modules used, transaction volume, number of concurrent users etc this metrics would vary.
Alongside AOS, you would also have to plan for other servers such as reporting, EP, workflow etc.
Sizing DB server has to be carried out more scientifically in the similar lines below -
- Determine various factors such as number of users (including concurrent users), modules that will be used, transaction volume, integration requirements etc
- The above metrics would enable you to determine normal load; make a note of database size
- Then let your users (determined in the first step) do their normal role for a day and make a note of database size. This should give an indication of growth in the database size on a typical business day.
- Extrapolate this size with the time frame (ex - 2 years) you wish to cater for. This should give you an educated figure of database size to size for.
Hope this answers your query.