CodeCommitからリポジトリをクローンする
IAMユーザーから認証情報を作成
AWS CodeCommitのHTTPS Git認証情報を生成をクリック。
ユーザー名とパスワードをダウンロードしておく。
Git cloneするだけ
git clone https://git-codecommit.ap-northeast-1.amazonaws.com/*********/
こうするとユーザ名とパスワードを聞かれるので、 先程ダウンロードしておいたユーザ名とパスワードを使えば良い。
毎回Credential情報入力するのが面倒な方へ
MaxOSXの場合は下記コマンドを使うと、OSXのキー保存機能で保存してくれる。 細かく知りたい方は別途検索すると良い。
git config --global credential.helper osxkeychain
VSCODEから踏み台サーバー越しにSSH接続をする
この記事で行っている多段SSHは既にベストプラクティスではないので、Session Managerを使うことをお勧めします。 構成はこちらのQiitaを参照のこと。
多段SSHしたい
機械学習の研究開発用だと、SageMakerのJupyter NoteBookじゃ物足りず、EC2にSSHで入って開発したくなる。僕の使い方が悪いのか・・?開発用にEC2を置くなら、Privateに開発用、Publicに踏み台サーバーを置くといいかなぁと思う。(特に会社とかで使う場合)
要はこういう状態 。
SSH config
VSCODEのSSHのconfigには下記を書けばOK。 どちらの.pemファイルもローカルのファイルを指定すれば良い。 publicEC2に鍵を置かなくて良い点が安心感。
Host public HostName PUBLIC EC2のIP User ec2-user IdentityFile ****.pem(フルパスで書いたほうが良い) Host private Hostname PRIVATE EC2のIP User ec2-user IdentityFile ****.pem(フルパスで書いたほうが良い。) ProxyCommand ssh -W %h:%p public
VSCODE
あとは直接privateのほうを開くだけ。
EC2の設定どうする
SSHフルオープンが心配な場合は、Public EC2のセキュリティグループでインバウンドで自分のIPを指定すると良い。 さらにPrivate EC2のセキュリティグループのインバウンドに、Public EC2に設定してあるセキュリティグループを設定してあげればこちらも安心。
EC2へS3からデータをダウンロードする(VPCエンドポイント編)
事前準備
VPCエンドポイントを作成
VPCのエンドポイントを作成する。サービスとしてS3を選択。 フルアクセス設定と、RouteTableを指定して作ってしまえば、このVPC内の指定されたトラフィックはS3のエンドポイントへ向かうようになる。
AWS S3コマンドで見てみる
同一VPC内のEC2にSSHなどで入って、S3にあるバケットが確認できるようになっている。
aws s3 ls
データのダウンロードなどはaws s3のコマンドを別途調べると良いが、個人的にはよくsyncを使っている。
aws s3 sync s3://bucket-name/object-name ./DIRECTORY
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