  The concept of Network Function Virtualization (NFV) has been introduced as a
new paradigm in the recent few years. NFV offers a number of benefits including
significantly increased maintainability and reduced deployment overhead.
Several works have been done to optimize deployment (also called embedding) of
virtual network functions (VNFs). However, no work to date has looked into
optimizing the selection of cloud instances for a given VNF and its specific
requirements. In this paper, we evaluate the performance of VNFs when embedded
on different Amazon EC2 cloud instances. Specifically, we evaluate three VNFs
(firewall, IDS, and NAT) in terms of arrival packet rate, resources
utilization, and packet loss. Our results indicate that performance varies
across instance types, departing from the intuition of "you get what you pay
for" with cloud instances. We also find out that CPU is the critical resource
for the tested VNFs, although their peak packet processing capacities differ
considerably from each other. Finally, based on the obtained results, we
identify key research challenges related to VNF instance selection and service
chain provisioning.
