AWS EC2에 Postgres를 설치하고 EC2에서 tsv 파일을 Postgres에로드하고 싶습니다.

AWS에 인스턴스를 생성합니다.



· AWS의 리전은 버지니아 북부를 사용
· 인스턴스 크기는 t2.micro를 사용합니다.
・비밀키를 작성

개인 키의 권한을 600으로 변경 모드 (권한 변경)


chmod 600 /Users/[ユーザー名]/.ssh/[秘密鍵]

aws 서버에 들어가기


ssh -i [秘密鍵のパス] ec2-user@[ipアドレス]

미들웨어 설치





Postgresql 설치
$  sudo amazon-linux-extras install postgresql9.6
$  sudo yum install postgresql-server postgresql-devel postgresql-contrib

초기 설정
$  sudo postgresql-setup initdb   ← これで初期DBが作られる?

$  sudo systemctl start postgresql  ← 起動(.serviceは付けない)

$  sudo su - postgres  ← postgresユーザーにチェンジ

$  psql  ← postgresqlに接続

postgres 사용자의 비밀번호가 설정되지 않았으므로 아래에서 postgres로 설정
postgres=# alter role postgres with password 'postgres';

psql을 일단 빠져 나가고 postgres 사용자도 빠져 ec2-user로 일단 돌아온다.
$  sudo su -    でroot ユーザにスイッチ

★/var/lib/pgsql/data/pg_hba.conf를 vi로 편집하여 인증 방법을 변경합니다.
# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

설정 파일 변경 후 postgres를 다시 시작하는 것을 잊지 마십시오.
$ exit   ec2-user に戻る

$  sudo systemctl restart postgresql    ← postgres 再起動

$ psql -U postgres    ← ec2-user でpsql 実行

여기까지 가면, 로컬로부터의 pgAdmin으로 SSH 터널 설정에서도 연결될 것.

SSH 터널 설정





터널 호스트
 →EC2 인스턴스의 퍼블릭 IP로 바꾸기

식별 정보 파일
 →키 파일로 읽어들인다

연결되지 않으면?


  • 서버 측에서 제대로 postgreSQL이 시작되고 있습니까
  • pg_hba.conf의 설정이 제대로 되었습니까 (METHOD를 "md5"로 설정했는지)
  • pg_hba.conf 설정 후, postgreSQL를 재기동했는지

  • scp로 로컬에 있는 tsv 파일을 ec2로 전송


    scp -i [秘密鍵のパス] [転送したいファイルのパス] ec2-user@[ipアドレス]:[/ec2上のディレクトリ]
    

    주제 TSV 파일 로드



    ssh 터널을 사용하여 ec2의 Postgres에 로컬 pgAdmin으로 액세스합니다.

    pgAdmin에서 copy 명령을 실행했지만 권한이 없으면 화가납니다.
    → 무슨 권한?



    어쩔 수 없기 때문에, tmp 디렉토리에 일시적으로 .tsv 파일을 이동해, 다시 copy 명령을 실행하면 성공했다.
    /home/ec2-user/tmp
    

    배포에 관해서는 아래의 URL이 참고가 되었습니다.

    좋은 웹페이지 즐겨찾기