使って学ぶAWS

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

CodeCommitからリポジトリをクローンする

IAMユーザーから認証情報を作成

AWS CodeCommitのHTTPS Git認証情報を生成をクリック。 f:id:yohei_ok:20210212185614p:plain

f:id:yohei_ok:20210212185802p:plain

ユーザー名とパスワードをダウンロードしておく。

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

VSCODESSHの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を選択。 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