AWS関連のことを調べてみた2019年11月05日

AWS関連のことを調べてみた2019年11月05日

Amazon SageMakerで独自アルゴリズムを使ったトレーニング(学習)の作り方

_※独自アルゴリズムを使ったエンドポイント(推論)についても投稿する予定です。_

どうも@shirakiyaです。普段はアルゴリズムソリューションを提供しているベンチャー企業にて機械学習を使ったWebアプリケーションの開発をしています。

この記事では[Amazon SageMaker](https://aws.amazon.com/jp/sagemaker/)の[トレーニング](https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/how-it-works-training.html)で任意の処理を実行しつつ学習済みモデルを得る方法に関し、

1. __全て自前でコンテナを用意してトレーニングする方法__
2. __[Amazon SageMaker コンテナ](https://github.com/aws/sagemaker-containers)を用いてトレーニングする方法__

の2種類のそれぞれについて説明を行います。

## Amazon SageMakerトレーニング概要
この記事の読者にはあまり説明不要かと思いま

元記事を表示

AWS Certified Big Data – Specialty 合格しました

先日、AWS認定ビッグデータ専門知識の試験を受験し、合格しました!
その記録を残しておきます。

(2020年4月から「AWS認定データ分析 AWS Certified Data Analytics – Speciality」という名前に変わるそうです。)

(いちおう私のバックグラウンドを書きますと、AWSを触っていた期間としてはたぶん4年ぐらいありますが、アプリ開発側とプリセールス中心で、AWSを理解しているとはあまり言えない状態でした。8月後半からちゃんとAWSのいろんなサービスを触り始めたところで、本格的に業務で使いこなしているとはまだ言えない状態です。9月終わりごろにソリューションアーキテクトアソシエイトを受験して合格しました。その1か月後が今回のビッグデータです。)

# 勉強方法

データ分析に関して詳しくはないので、まずは本を読みました。以下の本です。

[ビッグデータを支える技術―刻々とデータが脈打つ自動化の世界 (WEB+DB PRESS plus)](https://www.amazon.co.jp/dp/4774192252/)

AWSの内容ではなく、ビッグデ

元記事を表示

AWS EC2 + nginx + Laravel + RDS(PostgreSQL)の環境を構築する

## 本記事の対象者

– AWS上でLaravel + PostgreSQLを動かしてみたい人
– ついでにnginxに少し触れてみたい人

## 全体の流れ

1. EC2インスタンスを作成してSSH接続する
2. nginxをインストールして起動する
3. PHPをインストールしてphpinfoを表示する
4. Composerをインストールする
5. Laravelのウェルカムページを表示する
6. RDS(PostgreSQL)を作成する
7. EC2からpsqlでRDSに接続する
8. DBのマイグレーションを行う
9. Laravelのログイン機能でDBとの接続を確認する
10. トラブルシューティング
11. 補足

## 環境

– Amazon Linux 2
– nginx 1.12
– php7.3
– Laravel 6.4.1
– PostgreSQL 9.6

## 1. EC2インスタンスを作成してSSH接続する

以下のEC2インスタンスを作成します。

– AMI : Amazon Linux 2 AMI (64 ビット x86)
– インスタンスタ

元記事を表示

ECSで実行中のサービス更新を試してみた

# はじめに
この記事はコンテナ勉強用として試したことまとめたものです。
今回はECSで実行中のサービス更新を試してみました。

# 「新しいデプロイの強制」設定を使う
Lambdaで一時的に起動数を増やして、古いタスクをソートして削除、起動数を戻す。といった方法でコンテナを入れ替えていましたが、ECSのサービス更新に「新しいデプロイの強制」というものがあったのでこちらを使用して新しいコンテナに入れ替えるようにできるのでは。ということで検証してみました。

# ECSサービスを起動
* 2つのタスクが正常に稼働しているのでこれらを新しいコンテナに入れ替える。
タスク確認.png

* 作成された時刻を確認しておく。
タスク①確認.pngCodeBuild で Aurora スナップショットから Aurora クラスタを作る

RDS Aurora では、他と異なり「クラスタ」というのがあるため、awscliのコマンドのパラメータや実行順序が面倒なことになってます。しかもAWSマネジメントコンソールでぽちぽちやるのとも挙動が異なるので、いっそう面倒です。

awscliでの実行手順は、

* Aurora クラスタ削除は、クラスタのインスタンスを全部削除の完了を待って、クラスタを削除
* Aurora クラスタ作成は、クラスタ作成して、クラスタのインスタンス作成完了を待つ

わりと時間もかかるので、AWSマネジメントコンソールでちまちまやるのもダルいです。CodeBuildにやらせます。

# buildspec.yml

* variables の変数と値をよしなに設定して使ってください。
* `$SOURCE_DB_CLUSTER_NAME` の RDS Aurora のデイリーバックアップスナップショットの最新を 使って、 RDS クラスタ&インスタンスをつくります。
* 復元先のクラスタ&インスタンスが存在してたら、まず削除して、それから復元します。
* `$RDS_CLUSTER_NAME`

元記事を表示

【circleCI】rails5.2/Capistrano/CICD環境によるAWSへの自動デプロイ

## 概要
railsでアプリ作って、capistranoでAWSに自動デプロイして、circleCIでgithubへのpushごとにテストコードを走らせるようにしました。
ここまできたらやるっきゃないっしょ!ってことでcircleCIによるCD環境も構築してみました。

## 前回記事

この記事の続きです。事前に読んどいてね。
[RailsにcircleCIを構築し、githubと連携してrubocopとrspecテストを走らせる](https://qiita.com/AK4747471/items/b2161784065f21cd1645)

## 前提条件
・Rails5.2
・capistranoを使った自動デプロイを構築できている
・circleCIとgithubを連携させて自動テストまでは実装できている

circleCIのセッティングについては他フレームワークでも共通概念として使えたりしますが、Rails5.1(だったかな?)以降ではmaster.keyを使ったcredentials系の概念が絡んできたりするので一応Railsを前提条件に加えときました。

## 参考

元記事を表示

AWS CLI経由でEC2インスタンスを立ち上げる

# 手順
順に実行していくコマンドは以下の通り
1. AWS CLIの準備
2. AWS ACCESS KEY IDとAWS SECRET ACCESS KEYの取得
3. キーペアの作成
4. セキュリティグループの作成
5. EC2の起動
6. EIPの取得と紐付け
7. ssh接続

# 1. AWS CLIの準備
pipでインストールする。

“`
$ pip3 install awscli –upgrade —-user
“`
[公式の説明](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-install.html)によるとOSで使用するライブラリの変更を避けるために、–userオプションをつけ、
ユーザーディレクトリのサブディレクトリにプログラムをインストールすることを推奨しているらしい。
注意点として、上記サブディレクトリにパスが通っているか要確認。(該当するならpipのエラー文に詳細有)
おそらく以下のようなパスを通せば良い。
`/Users/username/.local/bi

元記事を表示

amzon forecastやってみた – 2. 学習データのインポート

# はじめに
今日イベントでAmazon forecastで時系列予測の事例紹介を見たところ
とてもお手軽にできそうな感じがつかめたのでその日のうちにやってみた。
参考:https://dev.classmethod.jp/cloud/aws/amazon-forecast-getting-start/

大きな流れはコチラ。
 1. 学習データを取得する
 2. 学習データのインポート ←今回はココ!
 3. amazon forecastの設定
 4. 学習結果の確認

# 2.学習データのインポート
学習データはS3にインポートさせる
以下、手順
①AWSにログインする
 https://aws.amazon.com/jp/

②S3のTOP画面へ移動する
TOP画面へ移動後、[バケットを作成する]クリック
![キャプチャ7.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/07dba559-2c5d-342f-5f64-b95365429f05.png)

③学習データを格納するバケッ

元記事を表示

Windows10にてAWS 開発環境整備を整備する(Terraform,Terraformer,ServerlessFramework)

## 始めに
– AWSの開発を少しずつ行っていますが、やはりIaC(Infrastructure as Code)で開発を行っていきたいと考えました。
– その中で`terraform`や`ServerlessFlamework`などのツールを利用することにし、その環境構築をメモします。

## 動作環境
– OS
– Windows10 pro
– 利用するツール
– [chocolatey](https://chocolatey.org/) : Windows用のパッケージマネージャ。各種ツールのインストールに利用
– [git](https://git-scm.com/) : 言わずもがな。terraformerのダウンロードに利用。
– [AWS CLI](https://aws.amazon.com/jp/cli/) : AWS 操作用のCLI

## 整備する開発環境

| 環境 | 公式ページ | 概要 |
|:—————–:|:——————:|:——————:|
| **node.j

元記事を表示

AWS EC2にてwordpressを使うためのメモ

##はじめに
AWS EC2インスタンスでwordpressのインストールをしようとしたら少し手間取ったためその時のメモです。

##環境

– サーバ:Amazon EC2(Amazon Linux 2)
– インストールしたもの:httpd(Apache), php, php-mysql, php-mbstring, php-gd, MariaDB

##事象1
Wordpressをダウンロードしてブラウザからインストールページに移動したところ以下のエラーが出ていました。

“`:インストールページ
Your server is running PHP version 5.4.16 but WordPress 5.2.2 requires at least 5.6.20.
“`
###原因
[Updating the Minimum PHP Version](https://make.wordpress.org/core/2018/12/08/updating-the-minimum-php-version/)
PHPバージョンは5.6.20が必須となったようです。

AWSの

元記事を表示

Python+Django+AWSでスクレイピングアプリを作って転職

ITベンチャーの経営企画室在職のmogkenです。
ここ最近転職を考えるようになり、その際のアピールになればとプログラミングの勉強をしています。
口で勉強していると言うだけでは大したアピールにならないので、簡単なWebアプリをPythonとDjangoで作ってAWS上に構築&Githubにソースを公開しました。

今回は自分の中での知識の定着のためのアウトプットを兼ねて自分で書いたプログラム(Python)の解説を行いたいと思います。作った時期としてはPythonを勉強して3ヶ月目で、一からこうしたものを作るのは初めてです。もし、コードの改善点などアドバイス頂ける方がいましたらコメントして頂けると嬉しいです。

## 今回の完成物
企業口コミサイト2つ+上場企業情報をスクレイピングしてきて表示、という感じのWebアプリを転職の時の企業比較の一助になればと願いを込めて作成。
最終的にあんまり使いませんでした…orz
![img80.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521142/22b91

元記事を表示

EC2インスタンスへのSSH接続が失敗したのでインスタンスを停止→起動したら成功した件

##はじめに
AWSの勉強にあたり以下の本にてハンズオンをしていた際に微妙につまずいたのでメモです。

S3バケットの分け方の7つの指針

AWS Summit 2019のセッション「データレイク構築における成功の秘訣 ~マインドと進め方、設計ベストプラクティス~」において、データレイクを設計する際の指針の1つとして「S3バケットの分け方」が紹介されていて、データレイク構築に限らず汎用的な指針としてわかりやすかったので抜粋して一部を編集・補足してみました。
[セッション動画](https://youtu.be/YWsfSkCekSE?t=1506)では25:06から

資料や動画は[セッション資料・動画一覧 – AWS Summit 2019 | AWS](https://aws.amazon.com/jp/summits/tokyo-osaka-2019-report/)にあります。

![](https://i.gyazo.com/ee8c3d9a9004a640cd7d75957fd40ef2.png)

まず真っ先に考えるべきこととして「人が見て直感的にわかりやすい」ことがあげられています。これは当たり前ですね。

次に考えることはS3バケット(とアカウント)の機能仕様・制約の考慮です。具体的には以下の7つが挙げ

元記事を表示

AWS CDKをDocker環境で実行する方法

# 手順
dockerとdocker-composeがインストールされている環境で、以下の通り準備および実行します。

## 0. ディレクトリ構成
aws-cdk
– Dockerfile
– docker-compose.yml
– docker-compose-run.sh

**以下、aws-cdkディレクトリ内での作業となります。**

## 1. Dockerfileを作成
Pythonの公式コンテナイメージを使って、AWS CDK入りのコンテナイメージを作成します。
必要なコマンドをDockerfileに書き連ねていきます。
インストールされるAWS CDKはPython3対応です。

“`Docker:Dockerfile
# the latest Python
FROM python:latest

# install the latest nodejs & npm
RUN apt update \
&& apt install -y nodejs \
npm \
&& apt clean

# install the latest A

元記事を表示

AWSのS3のクロスアカウントでとりあえず転送するときのバケットポリシー

#はじめに

ここ最近、クロスアカウントでデータの転送をしたりと、
アカウントまたぎで作業する機会が多くなってるので、ロールとかポリシーとか
を作成したんですが、なんとなく理解はしているけど、よく使う部分かつ、
セキュリティーにも関わる部分なので理解するために記事にしようと思います。

#ロールとかポリシーってなんすか?

ロールは日本語でいうと、役割。
ポリシーは方針のことです。
AWSでの設定例でいうと、

たとえば、EC2からS3にあるデータに何かさせたい場合。
EC2から、S3にあるAバケットにアクセスして、そこにあるデータを
上書きする役割を付けたとします。
その役割を果たすためにの方針を作成して、それをロールにくっつけて
あげるんです。

つまり、ロール+ポリシー=【誰がどのリソースに、何ができるのか】
を決めて、それをセットにして、リソースに設定をくっつけてあげることで
AWSのリソースを操作していくってことなんです。

#S3の認証

ロール、ポリシーの作成って、やりたいことによって
いろいろ設定する方法があるので、ここでは自分がはまったS3の認証周りを
例にしてみたい

元記事を表示

Amazon Linux 2 でAWS Amplify with vue.jsのログイン画面にたどり着くまで

自分の忘備録のため、荒くまとめていきます。各項目に参照元サイトを乗っけていますので、詳しく見られたい方はそちらをどうぞ。

#JavaScriptインストール

参照元はこちらのサイト
https://qiita.com/leomaro7/items/2c3a767bbbb6cc535b19

sshして、とりあえずupdate

“`

__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|

https://aws.amazon.com/amazon-linux-2/
3 package(s) needed for security, out of 5 available
Run “sudo yum update” to apply all updates.
[ec2-user@ip-172-31-3-55 ~]$ sudo yum update
“`

はい、レポジトリ取ってきます。

“`
[root@ip-172-31-3-55 ~]# curl -sL https:

元記事を表示

AWS SDK for Rubyをインストールしてみた

#はじめに
本記事では、AWS SDK for Rubyをインストールしたので、備忘録として残します。

#前提条件
・AWS SDK for Rubyをインストールする上で、Rubyのバージョンが1.9以上が必要。
※本手順では、Ruby2.6.5を使用する。
・実施環境は、VirtualBoxで稼働中のCentOS7.6とする。
・ユーザは、一般ユーザで実施するものとする。
・本手順では、Rubyの任意のバージョンをインストールするために、rbenv(アールビー・エンブ)を使用するものとする。

#(1)rbenvインストール

##(1.1)rbenvインストール

①gitインストール

“`
$ sudo yum install git
“`

②gitからrbenvをインストール

“`
git clone https://github.com/sstephenson/rbenv.git $HOME/.rbenv
“`

##(1.2)rbenv環境設定

①rbenvのパスを追加

“`
$ echo ‘export PATH=”$HOME/.rbenv/b

元記事を表示

memo

“`ruby:/etc/nginx/nginx.conf

user nginx;
worker_processes 1;

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

log_format main ‘$remote_addr – $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” “$http_x_forwarded_for”‘;

access_l

元記事を表示

デプロイしたRailsにアクセスできない This site can’t be reached

## 概要
突貫でRailsアプリを作らないといけない状況で、
自身が開発した既存のRailsアプリを丸コピしてからそれをベースにアプリを構築。

そしてAWSのOpsWorksでいつもどおりデプロイ。
正常にデプロイできいざ確認と思ったらアクセスできない。

数十秒後に「This site can’t be reached」(Chromeのメッセージ)が表示される。

原因がわからず無駄に時間を浪費したので、備忘録として解決策を記載する。

## 原因
原因は `config.force_ssl = true` にしていたことでした。
確認段階だったので、ドメインやSSL証明書の設定などはなく、
起動したインスタンスのIPに直接アクセスする形をとっていた。

なので、RailsがSSL強制しようにもできず、
リダイレクトを繰り返していたという状況でした。

## 解決策
`config.force_ssl = false` にすることで解決できました。

元記事を表示

AWS移行の全記録

#■概要
以前、オンプレで動いていたWEBサービスをAWSへ移行したのでその内容です。
AWS環境は存在しなかったため、アカウント作成からはじめました。
コンサル会社と契約し、なるべく良い形で進めました。

##11サービスを一気に移行しました。
※サイト規模として、PVは75000/1h。DBのデータ量は100GB。
各サービスが乗っているサーバーは絡み合っていたため1つ1つ移行することが難しく、一気に移行しました。

|変更項目|移行前 | 移行後|
|:—————–|:—————–|:——————|
|環境 |オンプレミス |AWS |
|php |php5.2 |php5.3 |
|DB |mysql 5.1, PostgreSQL9.1.11 |mysql 5.5, PostgreSQL9.5.18 |
|APサーバー

元記事を表示

OTHERカテゴリの最新記事