AWS関連のことを調べてみた2020年03月27日

AWS関連のことを調べてみた2020年03月27日
目次

Rails5 AWS EC2とRDS、S3、paperclipを使用したデプロイ

#デプロイ覚書
基本的に下記記事を参考にさせて頂きました。
https://qiita.com/naoki_mochizuki/items/f795fe3e661a3349a7ce
https://qiita.com/Yuki_Nagaoka/items/975b7598806d6ae0c0b2

上記記事の中では説明がなく自分がハマった箇所について。
まず
・画像投稿のストレージにS3を使用していた為その設定。
・あとRDSでデータベースを作成する際の文字コードの設定。
・デプロイ終わった後に大幅な修正を見つけてしまった際のやり方

#S3使用時の設定について
https://qiita.com/nakki/items/6df87756ef4119cc3e68
コチラの記事を参考に実装しました。
デプロイ時にハマったのはunicornが起動しなかった。。。
ログを調べると
`Cannot load Rails.config.active_storage.service`
`undefined method fetch for nilclass`
コチラのエラーは同じエラー文での記事が

元記事を表示

デプロイ時 よく使ったコマンドメモ 自分用

#unicorn
起動 
bundle exec unicorn_rails -c config/unicorn.rb
unicorn_rails -c /var/www/rails/(アプリの名前)/config/unicorn.conf.rb -D -E production

状態確認
ps -ef | grep unicorn | grep -v grep

#mysql
起動
sudo service mysqld start

production環境でのDB削除
RAILS_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rake db:drop

接続
mysql -h エンドポイント -P 3306 -u root -p

DBの文字コードチェック
show variables like “chara%”;

#nignx
再起動
sudo nginx -s reload

#vimコマンド
強制書き込み
$ sudo vim <ファイル名>
:w !sudo tee %
:q!

元記事を表示

AWSで特定のEC2インスタンスの起動停止だけ出来るIAMアカウントを作成する

– テスト用にEC2を建てたけど24時間稼働させる必要は無く必要になったときに誰でも起動できるようにしたい。
– でもチーム内に協力会社のひとも居るような状況でルートアカウントを共有はしたくない。
– 個別にIAMアカウントを作る運用が望ましいのはわかっては居るけどそんなコストはかけれないしスキルも無い。

という状況で最低限EC2のインスタンスの起動停止だけ出来るアカウントを作ってそれを共有する方法をご紹介します。

# 概要
インスタンスの一覧の表示、特定のインスタンスだけ起動停止が出来る権限をもつアカウントを作成します。
インスタンスの特定はkeyがBootable、値がyesのタグが設定されているかで行います。

# 方法
## IAMの設定
### ポリシーの作成
IAMの管理画面を開き、カスタマー管理ポリシーの作成を選択する。

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153956/61ac3da7-076f-5254-503a-3f320990fa1d.png)
|

元記事を表示

AWS S3 で AccessDeniedが出ることのデバッグ

今までVagrantで動かしていた、Railsをdockerに移したところ、何故かs3にホストしてある画像が取得出来なくなったのでその確認をしました。

## 1. dockerにaws-cliをインストールしてみる

* ruby:2.6.5-slim-stretch イメージをベースにしていたことがありそもそもpythonが入っていなかったので色々とインストールしてみた

“`
> docker-compose exec web bash
# curl “https://bootstrap.pypa.io/get-pip.py” -o “get-pip.py”
# python get-pip.py
bash: python: command not found → インストールされていなかったので、apt install l-y pythonでまずpythonを導入
# apt install -y python
# python get-pip.py
# pip install awscli
“`

## 2. s3の一覧を取得する

“`
# aws s3 ls s3

元記事を表示

AWS Step Functions+Amazon ECS(Fargate)をイベントトリガーで実行するときにハマるポイント

AWS Step FunctionsでAmazon S3のイベントをトリガーにしたときにいろいろとハマったのでメモ。

## ハマる構成

下記を参考にAmazon S3(S3)イベントをトリガーにAWS Step Functions(Step Functions)のステートマシンが実行される構成を作ってみました。

Amazon S3​ イベント発生時にステートマシンの実行を開始する – AWS Step Functions
https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/tutorial-cloudwatch-events-s3.html

構成はこんな感じです。
スクリーンショット 2020-03-06 12.09.43.png

ステートマ

元記事を表示

AWS Solution Architect Professional 持ちは GCP Associate Cloud Engineer もすぐに取れます!(個人の感想です)

AWS Solution Architect Professional (SAP) を持っていれば、GCP ほぼ未経験でも GCP Associate Cloud Engineer は知識の流用で何とかなると感じたので、取得までの過程をご紹介します。

# もちろん保証はしないし前提もあります
* 「すぐに」≠「ノー勉で」
* Kubernetes の基礎は知っていること
* あくまで「資格を取る」だけの話です

# 勉強したこと
* まずは、公式ドキュメントから「AWS プロフェッショナルのための Google Cloud」を熟読しましょう
* https://cloud.google.com/docs/compare/aws?hl=ja
* IAM は個別にドキュメントを確認しておきましょう
* 「概要」と「ベストプラクティス」だけで十分です
* https://cloud.google.com/iam/docs/overview?hl=ja
* IAM は AWS を知っているがゆえに混乱する部分もあります。まっさらな気持ちで読みましょう

元記事を表示

Darkを使用して、Slack App作成する

# はじめに

本書では、Darkを使用したSlack Appの作成を行う。Darkに関しては、[「新たな開発プラットフォーム “Dark/Darklang” を実際に触ってみて」](https://qiita.com/Morero/items/9cb710c1502c76d6c07f)を参考して頂ければと思う。

Darkでは、**トレース駆動開発**を駆使する事で、ビジネスロジックのみを記述するだけで開発が可能であるので、その点も注目して貰えたらと思う。

# 1. Slackアプリケーションの開発
Slack Appの開発を始めていく。アプリケーション名は`sampleApp`とした。

今回は、簡単にスラッシュコマンド`/test`を入力するとワニの画像が返されるようにする。

## 1.1. キャンバスの作成

開発する為にキャンバスを新規作成する。

アカウントには、`darklang.com/a/USERNAME-CANVASNAME`からアクセスできる。今回は、Slack Appを作成するので、`darklang.com/a/USERNAME-slackapp`と名付け

元記事を表示

Amplify+ReactでCRUDアプリ作成RTA(Any%)Part.1

amplify+reactでアプリ作成RTAやっていきます。
当方基盤エンジニアです。(ただ、ハッカソンでアプリ作成経験ありです。)
はい、よーいスタート

#レギュレーション(又の名を前提)
– AWSに乗っかるのでamplify利用(前も使ったから)
– 面倒なので認証なし(前はCognitoとか実装した)
– GraphQLを使いたい(バックエンド考えるの大変だからね。)
– 必要機能はCRUD(わかりやすさ重視)
– 計測期間はreactの雛形作成からデプロイして初回アクセスまで
– Google先生は多用する。
– 失踪しない

###イメージ図

1.Create画面

スクリーンショット 2020-03-27 1.01.33.png

2.一覧表示

スク</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>JavaScript</div>
<div class='tag-cloud-link'>AWS</div>
<div class='tag-cloud-link'>初心者</div>
<div class='tag-cloud-link'>React</div>
<div class='tag-cloud-link'>amplify</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/aion0721/items/3e491a03af21945b57bd'>元記事を表示</a></div>
<h3 id=IAMでユーザー作成

今回は学習用の作業ユーザーをIAM(Identity and Access Management)を使って作る。

#作業ユーザー作成
AWSマネジメントコンソールで「IAM」を検索。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558865/7ec9a03e-7f9a-e928-2d77-e428d0cb68d4.png)
IAM画面の左側のメニューからユーザーを選択し、ユーザー追加を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558865/285c4204-26bd-7859-ad26-e2e6d5facfd7.png)
ユーザー名、アクセスの種類、パスワードを設定。
パスワードのリセットは複数ユーザーが使う場合にしか使わないので、チェックを外す。
「次のステップ:アクセス権限」を選択。
![image.png](https://qiita-image-store.s3.a

元記事を表示

Amazon Auroraを使用してみた。

Auroraの特長について

・高性能:標準的なMySQLデータベースと比べて約5倍
     標準的なPostgreSQLデータベースと比べて最大で約3倍高速
・他データベースと同等のセキュリティ、可用性、信頼性を、10分の1のコストで実現

・RDSを使用した完全マネージド型サービスのため管理タスクが自動化されている

・ストレージシステムは分散型で耐障害性と自己修復機能を備えており、データベースインスタンスごとに最大64TBまで自動スケール可能

・最大15個のリードレプリカ、ポイントインタイムリカバリ、AmazonS3への継続的なバックアップ、3つのアベイラビリティーゾーン(AZ)間でのレプリケーションにより、優れたパフォーマンスと可用性を実現

基本構造

・3つのAZにデータを保持することで可用性が向上

![AuroraArch001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/272157/be1a2ee3-142d-cdd0-9f08-75d78

元記事を表示

Kubeflow 1.0 on AWS #3 TF-JOBの実行

# はじめに

これは、Kubeflow 1.0 をAWSで構築する記事です。
動作確認が主な目的ですので、本番環境での利用は全く想定していません。

# 前回まで
[Kubeflow 1.0 on AWS #2 Notebook作成](https://qiita.com/asahi0301/items/3ed139828a715307a812)

# 今回の内容
exampleのTFJOBを実行して、最低限の動きができていることを確認します

# 参考資料
– https://www.kubeflow.org/docs/components/training/tftraining/
– https://raw.githubusercontent.com/kubeflow/tf-operator/master/examples/v1/mnist_with_summaries/tfevent-volume/tfevent-pv.yaml
– https://raw.githubusercontent.com/kubeflow/tf-operator/master/examples/v1

元記事を表示

AWS(MySQL)

##Railsとデータベース
今回はRailsからアクセスされるデータベース関連のデータベースを作成します。
Ruby on RailsのようなWebアプリケーションフレームワークにとって、データベースはセットで考えます。例えばTwitterで考えてみると、データベースがなければ、ユーザーの情報も、ユーザーが呟いた内容も、保存しておくことができません。
##データベースの種類
階層型データベース
ネットワーク型データベース
リレーショナルデータベース
があります。
この中で最も利用されているのが、リレーショナルデータベースです。
エクセルの表のような形で情報を整理し、管理することができます。そして、このリレーショナルデータベースを管理するソフトウェアはリレーショナル・データ・ベース・マネジメント・システム(RDBMS)と呼ばれます。
そんなRDBMSの中でも代表的なものの一つが、MySQLです。
##MySQL
Oracle社が開発・提供をしているRDBMSです。データベースの作成、編集、削除などを行うことができます。オープンソースソフトウェアとして公開されており、誰でも無償で利用する

元記事を表示

【Go】Lambda + RDS 接続にRDS Proxyを使ってみた

## はじめに
現在、API Gateway + Lambda + RDSを使ってWebアプリケーションを作っています!2019年末に行われたre:Invent 2019で発表された、[RDS Proxy](https://aws.amazon.com/jp/rds/proxy/)(現在はプレビュー版です。)を試してみたので備忘録です。

## RDS Proxyってなに?
簡単に言うと、データベースへのコネクションプールを確立、管理することで、アプリケーションからのデータベース接続数を少なく抑えることができるサービスです。

Lambda関数は、呼び出すごとに新しいコネクションを作成する必要があります。しかし、LambdaからRDSへの同時接続数には上限があり、これまではコネクション数が上限に達しないようにする必要がありました。これを解決してくれるのがこの**RDS Proxy**です。RDS Proxyを利用することで、既存のコネクションを再利用することができ、コネクション数を抑えることができます。

つまり、Lambda + RDSの構成が避けられていた原因の1つの同時接続数問題

元記事を表示

【AWSトラブルシューティング】ネットワークの接続制御をしている部分を確認してみよう。

#はじめに

皆さん、業務でAWSは使われているでしょうか。
昨今、様々なサービスや機能がAWSを基盤として構築されていますよね。
今回は皆さんに、AWS上に構築されたサービスにいきなりアクセスできなかったときに、何を確認すべきかということをざっくりと伝えていければと思います。

例えば、URLをブラウザから入力すると画面が立ち上がり様々な情報を参照できるWEBサービスなどを公開していると仮定してください。
あなたはSREとして配属されてきたばかりの初心者AWSerです。
ある朝、早起きして会社に来るとSlackで以下のような連絡を受けました。

***コンサル「いまお客様先でデモンストレーションをしようとWEBサービスにアクセスしたところ、403エラーになって接続できません!社内ネットワークからは接続できますし、社内ネットワーク内の別のサービスにもアクセスできます…先週はアクセス出来たのに…急いで解決してください!URLとAWSアカウントはこれです!」***

URL
– https://example.edu

AWSアカウ

元記事を表示

boto3でaws cliを扱うための初期設定から稼働確認まで

#はじめに
boto3とは aws のリソースを python で扱うためのライブラリである。
本記事は、boto3でaws cliを扱い、AWSのec2と接続するまでの一連の流れ(初期設定)を記す。

##boto3のインストール
boto3をpipでインストールする。

“`
$ pip install boto3
“`
##aws cliのインストール
boto3を使用するためにaws cliをインストールする。
###Macの場合
aws cliをhomebrewでインストール

“`
$ brew install awscli
“`
###Windowsの場合
[AWSの公式サイト](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-windows.html)からインストーラーをダウンロードし、インストーラーを実行する。

###インストール確認
awsコマンドが使用できることを確認する。

“`
$ aws –version
aws-cli/2.0.5 Python/3.7.5 Wind

元記事を表示

AWS内の環境構築(AWSの設定とEC2インスタンスの生成と環境構築)

##AWSのアカウントを登録
まずは[AWSのサイト](https://aws.amazon.com/jp/)で**アカウントを登録**してください。
順番としてはサインアップボタンを押し、AWSアカウント情報を登録してください。
AWSアカウント情報を登録したら次にサポートプランを選択するのですが、最初は無料のベーシックプランでいいと思います。
これでアカウントが作成されました。数分後に、登録したメールアドレスに確認メールがきます。
[AWSコンソールにサインイン](https://aws.amazon.com/jp/)すると、アカウント情報を登録する最初の画面に戻ってきます。今回は、先ほど登録したメールアドレスとパスワードを入力して、サインインします。
##AWSアカウントのリージョン設定
リージョンとは、AWSの物理的なサーバの場所を指定するものです。
リージョン間でEC2の設定は独立していて、あるリージョンのEC2を他のリージョンへ移動することはできません。なので、EC2を立ち上げる際には、「どのリージョンの設定か」を意識しておきます。
リージョンは**アジアパシフィック(東京

元記事を表示

キーバリューストア型データベース(DynamoDB,ElastiCashe)

#キーバリューストア型データベース(Key Value Store、KVS)
`データの書式は問わず、そのデータに対して、何か「キー」となる値を結び付けて格納する方式のデータベース`

**NoSQL型データベース**の代表例であり、リレーショナルデータベース(RDB)よりも歴史が古い。

キーバリューストア型は、収めるデータに書式がない。
項目数(列数・カラム数)もバラバラでいい。データ型も指定しない。
テーブル(シートのこと)同士の連携もない。
→とにかく楽!

近年では、ビッグデータ処理やIotのような、大量のデータの処理や、高速化が求められる場面などで使用され、再注目されている。

〈メリット〉
・リレーショナル型と異なり、柔軟性がある
・データを書式通りに入力しなくてよい
・データへのアクセスが高速

〈デメリット〉
・なんでもデータとして放り込んでいるだけなので、詳細な検索ができない

**・キーとは**
データを見つけやすくするラベルのこと

キーバリューストア型データベースは、AWSに2種類用意されている。
1つは**ストレージに保存するDynamoDB**、もう1つ

元記事を表示

<まとめ>DB非機能設計 : MySQLの可用性、拡張性をどう保障するか。

RDSのマルチAZ化
RDSのマルチAZ配置で可用性、フェイルオーバを図ることができる。
Oracle、PostgreSQL、MySQL、MariaDBのマルチAZ配置
… Amazonフェールオーバ機能が適用
SQL Server DBのマルチAZ配置 
  …SQLサーバのミラーリングが適用

プライマリDBインスタンスのレプリカ(スタンバイレプリカ)が別のAZに複製される。
基本的にRDSマルチAZ配置しておけばフェールオーバがなされるため、障害耐久性が向上する

マルチAZ化のやり方:
新規DBマルチAZ化→ RDSコンソールDBインスタンス作成時に指定
既存DBマルチAZ化 → DBインスタンス変更しAZオプション指定
AWS CLI、 Amazon RDS APIからも可能 *参照: link

ポイント: レイテンシについて
マルチAZ使用DBインスタンスは、シングルAZ配置よりレイテンシが上がることがあるので、レイテンシの変動を抑えるために、プロビジョンドIOPSおよびDBインスタンスクラスを使用することが推奨される。
プロビジョンドIOPS… EBSボリ

元記事を表示

AWSで基本的なサーバー環境を構築してみました。~その2~

#はじめに
[前回作成したサーバー環境](https://qiita.com/President_Taka/items/a55c85996dd6a8a8bb4c)をもう少し障害性、冗長性をアップさせた構成に変更したいと思います。構成図は以下のようになります。

#構成図

![スクリーンショット 2020-03-24 15.31.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438093/a3a097f8-ff91-78e2-50b6-7a2b21ed6f81.png)

#変更内容
– EC2を2つ作成し、ロードバランサーの設置による冗長化
– RDSのMultiAZ構成(マスター、スレーブ)による自動フェイルオーバー

#作成手順の流れ

| リソース名 | 備考 |
|:—————–|:—————————————-|
|

元記事を表示

aws-sdk-php-laravelを利用してファイルアップロード

#aws-sdk-php-laravelとは

[AWS SDK for PHP](https://aws.amazon.com/jp/sdk-for-php/)をlaravelのために使いやすくしたもの

(そもそもAWS SDKとはawsのサービスを使いやすくするソフトウェア開発キットのこと)

#インストール

###aws-sdk-php-laravelをインストールする

######composer.jsonに書く
compsoerを通じてインストールします

“`php:composer.json

{
“require”: {
“aws/aws-sdk-php-laravel”: “~3.0”
}
}
“`

######composer update
conposer updateを実行する

“`
$ composer update
“`

######config/app.php

config/app.phpにAWS Service Providerを追加します

`’providers’`と下の方にある`’alias

元記事を表示

OTHERカテゴリの最新記事