まずセキュリティグループを作ります。

RDS MySQL インスタンスを立てる
まずconsoleのログイントップ

Amazon RDS for MySQLインスタンス(MySQLバージョン5.6.27のMySQLデータベースサーバ)を作成し、Amazon EC2インスタンス(Amazon Linux)からMySQLデータベースへ接続して利用開始する
RDSサービス詳細
https://aws.amazon.com/jp/rds/
対象:Amazon Aurora, PostgreSQL, MySQL, MariaDB, ORACLE, SQL Server
MongoDBなどNo SQLはないのかな。。
まず、EC2からRDS用のセキュリティグループを作ります。

サブネットグループをつくる

abilability zoneを作る

ap-northeast-1a
この ap-northeast-1a ってよく出てくるな。
——–
Amazon EC2 は、世界各地のロケーションでホスティングされています。これらのロケーションは、リージョンとアベイラビリティーゾーンから構成されています。リージョンはそれぞれ、地理的に離れた領域です。1 つのリージョンに複数のそれぞれ独立したロケーションがあり、このロケーションを「アベイラビリティーゾーン」といいます。Amazon EC2 では、お客様がインスタンスなどのリソースとデータを複数のロケーションに配置できます。複数のリージョンにまたがってリソースのレプリケーションを行うには、お客様がそのように指定する必要があります。
リージョンでロケーションが異なるのね。
なるほど、東京と大阪か。
ap-northeast-1
アジアパシフィック (東京)
ap-northeast-2
アジアパシフィック (ソウル)
ap-northeast-3
アジアパシフィック (大阪: ローカル)
サブネットが出来ました。

centosにcpanを入れる
今度こそ行けるかな?
$ sudo yum install cpan
これでいいですか? [y/N]y
パッケージをダウンロードしています:
(1/2): perl-CPAN-1.9402-144.el6.x86_64.rpm | 247 kB 00:00
(2/2): perl-Digest-SHA-5.47-144.el6.x86_64.rpm | 65 kB 00:00
——————————————————————————–
合計 128 kB/s | 312 kB 00:02
ほう。
cpanのupgrade
# perl -MCPAN -e shell
cpan[1]> o conf prerequisites_policy follow
cpan[2]> o conf commit
cpan[3]> upgrade
upgradeがやたら長いぞ。
なんだこれ、永遠と終わらんぞ。。

git hubからgit cloneします。
git clone https://github.com/PerlDancer/Dancer2.git
ここからどーするか。。

ルーティングのサンプルはいっぱいあるんだが、どこにファイルを置けばいいの?
cpan update
$ sudo cpan
cpan[1]> upgrade
$ cpan Dancer
Reading ‘/home/vagrant/.cpan/sources/authors/01mailrc.txt.gz’
………………………………………………………………….DONE
Reading ‘/home/vagrant/.cpan/sources/modules/02packages.details.txt.gz’
Database was generated on Tue, 11 Sep 2018 09:17:02 GMT
HTTP::Date not available
………….
New CPAN.pm version (v2.16) available.
[Currently running version is v2.00]
You might want to try
install CPAN
reload cpan
to both upgrade CPAN.pm and run the new version without leaving
the current session.
…………………………………………….Killed
あああああああああ、もうubuntuではできん。。centosでやろう。
perl dancer
なんだこりゃ、どうしろってんだ。。。


—
CPAN(シーパン、Comprehensive Perl Archive Network)とは、Perlのライブラリ・モジュールやその他のPerlで書かれたソフトウェアを集めた巨大なアーカイブで、世界中のサーバにその内容がミラーリングされている。再利用性・汎用性の高いモジュールが登録されており、Perlプログラマができるだけ車輪の再発明をせずに済むための支援環境となっている。登録モジュールの検索システムも提供されているため、Perlプログラマは望む機能を持ったモジュールを容易に入手することができる。
—
vagrant@vagrant-ubuntu-trusty-64:~/perl$ cpan Dancer
Reading ‘/home/vagrant/.cpan/sources/authors/01mailrc.txt.gz’
………………………………………………………………….DONE
Reading ‘/home/vagrant/.cpan/sources/modules/02packages.details.txt.gz’
Database was generated on Tue, 11 Sep 2018 09:17:02 GMT
HTTP::Date not available
Warning: Your system date is 1 days behind this index file!
System time: Mon Sep 10 07:24:39 2018
Timestamp index file: Tue, 11 Sep 2018 09:17:02 GMT
Please fix your system time, problems with the make command expected.
なんだと!
vagrant@vagrant-ubuntu-trusty-64:~/perl$ sudo ntpdate ntp.nict.jp
11 Sep 13:19:42 ntpdate[20614]: step time server 133.243.238.164 offset 107448.537336 sec
vagrant@vagrant-ubuntu-trusty-64:~/perl$ date
Tue Sep 11 13:21:24 UTC 2018
いいね~
vagrant@vagrant-ubuntu-trusty-64:~/perl$ cpan Dancer
Fetching with HTTP::Tiny:
http://ftp.jaist.ac.jp/pub/CPAN/authors/01mailrc.txt.gz
Reading ‘/home/vagrant/.cpan/sources/authors/01mailrc.txt.gz’
………………………………………………………………….DONE
Fetching with HTTP::Tiny:
http://ftp.jaist.ac.jp/pub/CPAN/modules/02packages.details.txt.gz
Reading ‘/home/vagrant/.cpan/sources/modules/02packages.details.txt.gz’
Database was generated on Tue, 11 Sep 2018 09:17:02 GMT
HTTP::Date not available
………….
New CPAN.pm version (v2.16) available.
[Currently running version is v2.00]
You might want to try
install CPAN
reload cpan
to both upgrade CPAN.pm and run the new version without leaving
the current session.
……………………………………………Killed
perlで正規表現
open(my $in, "<", "test.dat") or die("could not open file.");
while(<$in>){
$_ =~ s/abc/ABC/;
print $_;
}
close($in);
vagrant@vagrant-ubuntu-trusty-64:~/app$ perl hello.pl
ABC
def
ghi
123
456
while(<$in>){
$_ =~ s/abc/ABC/;
if($_ =~ /[a-z]/){
print $_;
}
}
なるほど、面白い
vagrant@vagrant-ubuntu-trusty-64:~/app$ perl hello.pl
def
ghi
サブルーチンをつくる。
sub max {
my $max = $_[0];
if ($_[1] > $max){
$max = $_[1];
}
return $max;
}
print max(2, 8);
サブルーチンという名称ですが、要するに関数ですな。
sub max {
my $max = shift(@_);
foreach(@_){
$max = $_ if $_ > $max;
}
return $max;
}
print max(2, 8, 100, 23, 38);
vagrant@vagrant-ubuntu-trusty-64:~/app$ perl hello.pl
100
なんかかなり駆け足できましたが、基礎はこれ位にしてdancerに入りましょう。
perlでファイルの読み書きをしよう
fileをopenします。
open(my $in, "<", "test.dat") or die("could not open file.");
while(<$in>){
print $_;
}
close($in);
vagrant@vagrant-ubuntu-trusty-64:~/app$ cat test.dat
abc
def
ghi
123
456
789vagrant@vagrant-ubuntu-trusty-64:~/app$ perl hello.pl
abc
def
ghi
123
456
789
open(my $in, "<", "test.dat") or die("could not open file.");
open(my $out, ">", "test.out") or die("could not open file.");
while(<$in>){
print $out $_;
}
close($in);
close($out);
vagrant@vagrant-ubuntu-trusty-64:~/app$ perl hello.pl
vagrant@vagrant-ubuntu-trusty-64:~/app$ cat test.out
abc
def
ghi
123
456
789
書き込みですな。
ガンガンperlをやろう
# ループ処理
my $i = 0;
while($i < 10){
print "i = $i\n";
$i++;
}
[/perl]
vagrant@vagrant-ubuntu-trusty-64:~/app$ perl hello.pl
i = 0
i = 1
i = 2
i = 3
i = 4
i = 5
i = 6
i = 7
i = 8
i = 9
for文
[perl]
for(my $i = 0; $i < 10; $i++){
print "i = $i\n";
}
[/perl]
おおおおおお、foreachが可笑しなことになってる。。
[perl]
my @colors = qw(red green blue orange pink);
foreach my $color (@colors){
print "color = $color\n";
}
[/perl]
vagrant@vagrant-ubuntu-trusty-64:~/app$ perl hello.pl
color = red
color = green
color = blue
color = orange
color = pink
ナニコレ?
[perl]
my @colors = qw(red green blue orange pink);
foreach (@colors){
print "color = $_\n";
}
[/perl]
vagrant@vagrant-ubuntu-trusty-64:~/app$ perl hello.pl
color = red
color = green
color = blue
color = orange
color = pink
これは。。。
[perl]
my %sales = ("tanaka"=>150, "suzuki"=>300, "ohira"=>200);
foreach my $key (keys(%sales)){
print "sales for $key in $sales{$key}\n"
}
vagrant@vagrant-ubuntu-trusty-64:~/app$ perl hello.pl
sales for tanaka in 150
sales for suzuki in 300
sales for ohira in 200
さらに条件分岐を進めよう
my $score = 75;
if ($score >= 80) {
print("OK");
} elsif ($score >= 40) {
print ("not ok...");
} else {
print("take the test again")
}
1行で書く場合
my $score = 75;
print("OK!") if ($score >= 60);
my $a = 10; my $b = 20; my $max = $a > $b ? $a : $b;
Perlを思い出そう2
my @sales = (300, 150, 200); # @sales $#sale: 末尾の添字 print @sales[0..$#sales];
key and value
my %sales = ("tanaka"=>300, "suzuki"=>150, "ohira"=>200);
print $sales{"tanaka"};
条件分岐
my $score = 85;
if ($score >= 80) {
print("ok!");
}
vagrant@vagrant-ubuntu-trusty-64:~/app$ perl hello.pl
ok!
my $score = 85;
my $name = "Luke";
if ($name eq "Luke") {
print("I am your father!");
}
vagrant@vagrant-ubuntu-trusty-64:~/app$ perl hello.pl
I am your father!
ああああああ、何やってんだろう。
my $score = 85;
my $name = "Luke";
if (($name eq "Luke") &&($score >= 80)) {
print("I am your father!");
}