Must I upvote every good answer or only the best one in a question?
You don't have to up-vote anything. You might do nothing if, for example, the question and answer are not in your area of expertise (eg. the ESP8266). Sometimes people ask questions about some device I know nothing about. Therefore I can't say if the answer is good or bad, so I move on without voting.
If there are two or more answers I would be tempted to up-vote the better one. Sometimes they are both good so I will up-vote both of them.
Must I upvote a correct answer in every question I look at?
No you don't. However remember how the reputation system works. Other users get reputation when you up-vote, and that helps them to get more tools to work with the site (like editing questions).
Up-voting also helps the person asking the question (they will probably choose the answer with the most up votes), and also others who look at the question later.
Down voting is useful if you think an answer is clearly wrong (or maybe doesn't even clearly answer the question). In those cases you can also add a comment (although you are not required to) explaining why you think the answer is wrong. These comments can help other people understand why an answer has down votes.
For really bad answers (like spam, or abuse) you can flag them for moderator attention. However don't flag answers that are just wrong, voting down is the correct approach there.