Do I need both Open Graph and Twitter Card tags?
Not strictly. X falls back to Open Graph if the twitter:card tags are missing. But adding the twitter:card tag gives you control over whether the image renders large or small on X, which is usually worth the two extra lines of HTML.