Memory efficient Log Parser
I don't think that reading in entire files into memory, File.foreach(@filename).map { }.each.map { }.each { }, is going to be memory efficient. Which appears to be what would happen with AccessConsoleWriter.new(parser).call.

What you probably want to do is operate on one line at a time. For instance, you might be able to rewrite FileParser.endpoints to look like:

def endpoints(&amp;block)
  File.foreach(@endpoints) do |line|
    block.call(line)
  end
end


A few other notes:


I don't see a lot of state being stored, so instantiating classes seems unnecessary.
For multi-line blocks, use do ... end instead of { ... }. https://github.com/bbatsov/ruby-style-guide#syntax
each in each.map is redundant.
each.map maps the returns of a block to a new array, but you seem to be ignoring that returned array in some places. In which case, using just each would be fine.
#call is a little confusing, as that's a method on Proc and others.
"...premature optimization is the root of all evil (or at least most of it) in programming."