使って学ぶAWS

AWSで色々やってみるブログ

EC2へS3からデータをダウンロードする(VPCエンドポイント編)

事前準備

VPCエンドポイントを作成

VPCのエンドポイントを作成する。サービスとしてS3を選択。 f:id:yohei_ok:20210126205219p:plain フルアクセス設定と、RouteTableを指定して作ってしまえば、このVPC内の指定されたトラフィックはS3のエンドポイントへ向かうようになる。

AWS S3コマンドで見てみる

同一VPC内のEC2にSSHなどで入って、S3にあるバケットが確認できるようになっている。

aws s3 ls

データのダウンロードなどはaws s3のコマンドを別途調べると良いが、個人的にはよくsyncを使っている。

aws s3 sync s3://bucket-name/object-name ./DIRECTORY

EC2へSSHログインする

コマンド

ssh -i "./.ssh/***.pem" ec2-user@IPaddress

.sshフォルダ以下にpemファイルを置いておいて、基本的にこれだけで接続出来る。

事前準備

VPC

  • VPCにIGを設置する

サブネット

  • Public IPを有効にする
  • ルートテーブルで0.0.0.0/0をIG宛に設定する(VPC側に設定しても良い)

EC2

  • Public IP設定(Elastic IPで固定化しておくと便利)
  • セキュリティグループのインバウンド設定でSSHを許可。出来ればIPを限定するとセキュリティ的に安心。

MySQLにCSVからデータを追加する

ほぼ人生で初めて触ったMySQLの備忘録。

サンプルデータ

Autoデータセットを使用。 もとのテキストからCSVファイルとして保存している前提。 rdrr.io

MySQLでテーブルにCSVファイルを流し込むまでの手順

MySQLにログイン

endpointと書いているのはAWSを使っているからで、hostのこと。

mysql -h endpoint -P 3306 -u admin -p

データベース作成と確認

create database auto default character set utf8mb4;
show databases;

データベースに移動

use auto

テーブルの作成とCSVの流し込み

流し込みはテーブルを作ったうえで、こんなふうに出来る。らしい。見様見真似。

create table auto_mpg (id int, mpg int, cylinders int, displacement int, horsepower int, weight int, acceleration float, model_year int, origin int, car_name varchar(40));
load data local infile "****.csv" into table auto_mpg fields terminated by ',';

下記は、ヘッダを削除しているところ。そもそも流し込みの時点でヘッダを入れないほうが当然美しいけど。わからんかった。。 まずselectで消したいレコードだけ見えているか確認。

select * from auto_mpg where car_name='car_name'

削除。

delete from auto_mpg where car_name='car_name'

その他MySQLお役立ちコマンド

テーブルの概要を見る

desc auto_mpg

テーブルの中身を全部見る

select * from auto_mpg