1. A method for managing virtual machine instance types, comprising: defining, by a resource optimization manager, resource metrics for a set of virtual machine instance types, wherein each of the virtual machine instance types is associated with one or more applications executed by the virtual machine instance type; defining, by the resource optimization manager, one or more applications for each of the set of virtual machine instance types; defining, by the resource optimization manager, clusters of applications based on similarities in at least a subset of the obtained resource metrics for the set of virtual machine instance types; obtaining, by resource optimization manager, a target application; obtaining, by the resource optimization manager, resource metrics for the target application; associating, by the resource optimization manager, the target application with one or more clusters of applications; obtaining, by the resource optimization manager, resource optimizations for the target application, the resource optimizations based on resource optimizations associated with the associated cluster of applications; and causing, by the resource optimization manager, at least one of the implementation of the resource optimizations for the target virtual machine instance type and a publication of the resource optimizations for the target virtual machine instance type.