what's the difference between '/etc/aliases' and /etc/postfix/aliases'

Solution 1:

From postfix man page:

On some systems the alias database is not in /etc/aliases. To find out the location for your system, execute the command "postconf alias_maps".

The /etc/postfix/aliases probably is a stub file to be used on system lacking /etc/aliases. Anyway, as you discovered, your alias_map points to /etc/aliases, so you can safely ignore the other file.

Solution 2:

/etc/aliases is a more generic file, which would be used by some other mailservers as well. In postfix you can use this or configure any other file, as you already found in the configuration. When postfix uses afile via hash: map, you should always run postmap /path/to/file after changing something. In case of the aliases file there is the newaliases command to do it.