RDS EC2 接続メモ

自分には難しい内容だったのでメモ

 

VPC内にサブネットを用意してそれぞれec2とrdsをセットする。ec2接続後rdsに接続することを目標とする。

 

やること

VPC設定(名前をつけたほうが作業しやすい)

サブネットを作る(webserver とかrdsdbとか名前作ると良い)

インターネットゲートウェイ作成(作成後はec2のところにアタッチすること)

セキュリティグループを作成(セキュリティグループの数は?ec2側はSSHHTPC?が必要か?RDS側は5432のみ)

ルートテーブルの作成(ec2につなぐことため)

RDS EC2作成 

EC2ではキーペアをCHMOD 600に直す

RDSは接続時にec2-userのパスワードが必要になるのでec2-userのパスワードを設定してあげる。

sudo passwd ec2-user

 

ec2始めるまでのメモ

 macでec2起動する際には

ターミナルで以下のコマンドを入力するとつなぐことができる。

ssh ec2-user@[DNSまたはIP] -i /[path]/[当該keypair名].pem

 

これを入力しても接続できない。理由は権限がおかしいからだとか。よくわからないけど。

 

そこで次を入力する

sudo chmod 600 /[path]/[当該keypair名].pem

 

再びssh ec2-user@[DNSまたはIP] -i /[path]/[当該keypair名].pemでつなぐことができる。

postgresqlメモ

postgresqlを使ってないと忘れてしまうので、見ながら使えるようにまとめておく。

 

<処理概要>

すでに設定されている場合

①ユーザーをチェンジする

②データベースの一覧をみる

③テーブルを閲覧する

 

①この段階はまだlinuxで操作するので

su (ユーザー名)

パスワード入力

psql -l で一覧表示確認

③dbログイン

psql (db名例えばcmtestdb)

(データベースに入るとpsqlというコマンドを打たず\dtとかを使う)

④dbログイン中に

\dまたは\dtでデータベースのスキーマのテーブルを把握することができる

⑤テーブル構造の表示(テーブルにどんなカラムが有るのかやそのデータ型を確認したいとき)

\d (テーブル名);

⑥テーブル内容を表示させる

select * from (テーブル名) ;

データの削除

delete  from (テーブル名) where 条件;

⑧テーブルを作成

CREATE TABLE テーブル名 (列名 データ型 制約 [, 列名 データ型 制約 …] );

権限の確認

¥du

 

権限付与

ALTER ROLE ユーザー名 WITH SUPERUSER;

 

csvの内容をコピー

csvファイルがデータベースサーバー上に設置できた場合

copy テーブル名(column_names,...) from 'path/***.csv' with csv 

 

csvファイルがデータベースサーバー上にない場合

\copy テーブル名 (column_names,...) from 'hoge.csv' with csv ;

 

 

 

postgresql よりログアウトする

¥q

 

 

postgresqlをインストールして使えるようにするまでの流れ 処理の背景と結論>

背景

PostgreSQLをインストールした直後の初期設定ではPostgreSQLを実行しているサーバー以外のクライアントからデータベースにアクセスすることはできないようになっています。

外部からのTCP接続を許可するとともに、PostgreSQLへのログインを許可する設定を行ってやる必要があります。設定は以下の2つです。

postgresql.confの編集

pg_hda.confファイルの編集

 

PostgreSQLの設定は、設定ファイルを編集することで行います。

設定ファイルは複数ありますが、まず、postgresql.confファイルです。
このファイルでは最大接続数やログの保存方式などPostgreSQLに関する基本的な設定を行います。

pg_hda.confファイルはクライアントからのアクセス制御を設定するためのファイルです。デフォルト設定ではPostgreSQLが動作しているマシン上からしかログインを許可しない設定となっているため、外部マシンからのログインを許可するように変更します。

 

 

 

 

 

 

 

 

 

macosx djangoとec2 djangoの環境構築方法

結論としてdjango2.0以上のものを使いたい。

そのためにはpython3以上を使うことにする。

そしてvirtualenvを設けてやっていくとする。

 

概要

①python3をインストール

②virtualenvをインストール

ディレクトリを作ってそこに仮想環境を構築する(ここでpython3が入る)

④仮想環境を起動させる

⑤終了させる

 

コマンド

pythonからダウンロード、インストール。

pip install python3 またはsudo easy_install python3でも出来るかもしれない。

これは次回確認する。

②sudo easy_install virtualenv 

パスワードを打ち込む

③virtualenv (仮想環境のディレクトリ名)

cd (仮想環境のディレクトリ名)

で移動し、

virtualenv -p python3 (仮想環境のディレクトリ名) 

④source bin/activate

※sourceコマンドはlinuxにおけるファイル実行コマンドである。

※確認 python -V これでpython3以上が入っていればオッケイ

⑤deactivate

 

 

EC2ではデフォルトでpython3.6が使えるパッケージがあるのでそれをインストールして環境構築するとすぐできる。

AmazonLinuxでデフォルトで使えるpython36-virtualenvパッケージを使ったPython3.6 venv環境の構築 | SaintSouth.NET

 

インストール

sudo yum install python36-virtualenv

 

作りたいディレクトリにて

virtualenv-3.6 -p python3.6 (環境名)

 

 

Django modelについて

【Django入門】Databaseの使い方 | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト

Django2.0から必須になったon_deleteの使い方 - Django2の実力をつけるチュートリアルサイトDjangoBrothers[ジャンゴブラザーズ]

 

ここまででわかったこと

models.pyはブラウザ上テーブルになって表示される。

 

models.py作成

settings.pyのINSTALLED_APPSに追加

python manage.py makemigrations

python manage.py migrate

 

これでデータベースが完成する

 

pyenvの使い方メモ

EC2を使っているとデフォルトでpython2.7あたりが入っている。

でもpython3を使いたい場合、これではいけないのでpyenvを導入する。

 

 

pyenv 構築方法

githubリポジトリからクローンしてきます
gitが入ってない場合は先にyumでgitをインストールします
$ sudo yum install git -y

yum install gcc gcc-c++ make git openssl-devel bzip2-devel zlib-devel readline-devel sqlite-devel

$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
Cloning into '/home/ec2-user/.pyenv'...
remote: Counting objects: 10615, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 10615 (delta 0), reused 0 (delta 0), pack-reused 10608
Receiving objects: 100% (10615/10615), 1.84 MiB | 1.05 MiB/s, done.
Resolving deltas: 100% (7570/7570), done.
Checking connectivity... done.

$ vi ~/.bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi

# 以下を追加
export PYENV_ROOT="${HOME}/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
export PATH=${PYENV_ROOT}/bin:$PATH
eval "$(pyenv init -)"
fi


$ source ~/.bashrc #.bashrcを読み込む

 

 

 

 

pyenvを作ってもそこにpythonが入ってなければ使えない。

だからpyenvの中にpythonを入れてあげる必要がある。

 

 

入れる方法

pyenv install "欲しいバージョン”

これで出来るようになる。

 

※pyenvに入れるバージョンは以下のコマンドで確認することが出来る。

pyenv install -list  #pyenv install -lでもOK

 

入れたらpythonのバージョンを変更する

pyenv global  "欲しいバージョン”

 

Linuxのコマンドメモ

ファイル・ディレクトリ操作

ls -l 権限の確認もできる

cd .. 上のディレクトリへ移動

vi ファイルの中身を編集

pwd カレントディレクトリがわかる

mkdir ディレクトリの作成

rmdir ディレクトリの削除

rm -r ファイル、ディレクトリの削除

 

sudo 最高権限者として実行