Apply at the cruise company websites, or find a hiring partner in your country to apply. (hint, check out some of my past posts for links, or do a google search on "hiring partner cruise lines") This company should NOT be asking you for money to get the job - but you need to pay for your medical exam, visas if needed.
The contract is usally 6 months long.
VERY IMPORTANT these days is that you need to speak multiple languages. First would be the language most commonly spoken aboard and then at least 1 or 2 others. For example, for USA market ship, you'd need English, then at least Spanish, then ideally one of the following - German, French, Italian, Porteguese, Mandarin . . . You need to be able to communicate in the languages the ship visits for tour operators and then with the passengers who sail.