Many iterative optimization methods are designed to be used in conjunction with deterministic objective functions. These optimization methods can be difficult to apply to an objective generated by a discrete-event simulation, due to the stochastic nature of the response(s) and the potentially extensive run times. A metamodel aids simulation optimization by providing a deterministic objective with run times that are generally much shorter than the original discrete-event simulation. Polynomial metamodels generally provide only local approximations, and so a series of metamodels must be fit as the optimization progresses. Other classes of metamodels can provide global fit; fitting can be done either by constructing the global model once at the start of the optimization, or by using the optimization results to identify additional discrete-event runs to refine the global model. This tutorial surveys both local and global metamodel-based optimization methods.