Diferencia entre @instance_variable y attr_accessor

Acabo de empezar a aprender ruby ​​y no veo la diferencia entre un@instace_variable y un atributo declarado utilizandoattr_accessor.

¿Cuál es la diferencia entre las siguientes dos clases:

class MyClass  
  @variable1 
end

y

class MyClass
  attr_accessor :variable1
end

Busqué muchos tutoriales en línea y todo el mundo usa una notación diferente. ¿Tiene que ver algo con la versión ruby? También busqué algunos hilos viejos en StackOverflow

¿Qué es attr_accessor en ruby?
¿Cuál es la diferencia entre estas dos definiciones de inicialización de clase Ruby?

Pero todavía no puedo averiguar cuál es la mejor manera de usar.