Network Function Virtualization (NFV) enables the embedding of Virtualized Network Function (VNF) into commodity servers. A sequence of VNFs can be chained in a particular order to form a service chain (SC). This paper considers placing multiple SCs in a geo-distributed edge system owned by multiple service providers (SPs). For a pair of SC and SP, minimizing the placement cost while meeting a latency constraint is formulated as an integer programming problem. As SC clients and SPs are self-interested, we study the matching between SCs and SPs that respects individual's interests yet maximizes social welfare. The proposed matching approach excludes any blocking individual and block pair which may jeopardize the stability of the result. Simulation results show that the proposed approach performs well in terms of social welfare but is suboptimal concerning the number of placed SCs.