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

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

AWS移行の全記録

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

##11サービスを一気に移行しました。
※サイト規模として、PVは75000/1h。DBのデータ量は100GB。

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

元記事を表示

AWS移行 – アプリケーション側の改修ポイント

#概要
以前、オンプレからAWSへWEBアプリを移行した際に行ったことです。

##ELBを挟んだ
以前はCDN(Akamai)からWebサーバーを直接見るようにしていましたが、間にELBをはさみました

以前: Akamai -> Apache -> アプリ(php)
今 : Akamai -> ELB -> Apache -> アプリ(php)

SSL証明書は、ApacheからELBに移しました。
##ELBが挟まったことによる影響
通信がSSLかそうでないかを判断している部分に影響がありました。
インターネットからELBの間はSSL通信ですが、
ELBからEC2の間は80番での通信なので、下記のようなコードだと正常に動作しません。

“`php:ssl通信かどうか
if($_SERVER[“SERVER_PORT”] == 443){
echo “SSL通信です”;
}
“`

同じような判別をするなら下記のようなコードを記述する必要があります。

“`php:ssl通信かどうか。ELB経由
if($_SERVER[“HTTP_X_FORWARDED_PORT

元記事を表示

AWS移行 – ネットワーク関連でやったこと

ネットワーク関連の設定メモ。
AWSになったことによる影響等を書いていきます。

#セキュリティグループ設計
セキュリティグループはサーバー、ELB、RDS..ごとに設定し、そのセキュリティグループを許可するような設計になっています。
直接IPアドレスを記述するのは最小限になります。

※下記はイメージ
列が各リソース
行がセキュリティグループ名です
○が付いているところには、そのセキュリティグループの許可(インバウンド許可設定)されていることになります。
そのセキュリティグループに所属しているものも許可します。
たとえば下記の「prd-web01」というEC2は、「prd-app-web-sg」というセキュリティグループを許可していますが、
「prd-app-web-sg」の中身は「prd-front-main-sg」の80番を許可しています。
これは「prd-front-main-sg」が設定されている「prd-main-alb」からの80番アクセスを許可するという意味になります。

| ELB | prd-main-alb |

元記事を表示

[ec2] ロードバランサ登録・登録解除コマンド

公式が分かりづらかったので自分用に簡潔にまとめておく。

## ロードバランサー

EC2 インスタンスを登録すると、ロードバランサーに追加されます。ロードバランサーは、登録済みインスタンスの状態を、有効になっているアベイラビリティーゾーンで常に監視し、正常なインスタンスにリクエストをルーティングします。インスタンスの需要が上昇した場合、需要に対応できるようにロードバランサーに追加インスタンスを登録できます。

## 登録
準備が整ったら、ロードバランサーにインスタンスを登録します。インスタンスがロードバランサーで有効なアベイラビリティーゾーンにある場合、そのインスタンスは、必要な数のヘルスチェックに合格するとすぐに、ロードバランサーからトラフィックを受信する準備が整います。

## 登録解除
EC2 インスタンスを登録解除すると、ロードバランサーから削除されます。登録解除するとすぐに、ロードバランサーはインスタンスへのリクエストのルーティングを停止します。需要が低下した場合や、インスタンスを保守する必要がある場合、ロードバランサーからインスタンスを登録解除することができます。登録解除

元記事を表示

S3とherokuの設定に関するエラー

ActiveStorageでアップロードした画像をS3に保存する際に生じたエラーについて書きました。

※ActiveStorageでアップロードした画像をS3に保存する方法は、以下の記事を参考にするとよいと思います。

# エラーの発生内容
上記の記事を参考にしてS3の設定をして、ブラウザで本番環境の挙動を確認しようとしたら、application errorが発生した。

## 画像
https://gyazo.com/e2dec7f7f1e981ee00368f8e2c3e1fd5

# エラーの原因追求

herokuにログインして、heroku環境でrails c(コンソール)コマンドを実行する。

“`
$ heroku run rails c
Running rails c on ⬢ enigmatic-reaches-21915… up, run.1720 (Free)
Traceback (most recent call last):
109: fr

元記事を表示

【絶対に失敗しない】AWS/Cloud9で環境構築を11分で終わらせる方法

#はじめに
プログラミングの勉強を始めるにあたって、一番最初の環境構築が出来ずに
勉強を諦めてしまうケースを今まで数多く見てきました。

この記事は、初心者の方が気持ちよくプログラミングの勉強をスタート出来るよう、
最低限の環境構築手順をなるべくシンプルに説明したものです。
(とか言いつつ自分のアウトプットが主目的:smirk:)

そのため画像をふんだんに使っており、まどろっこしい説明は皆無です。
逆に説明不足で分かりづらかったところや詰まったところなどがあればコメントくださいmm

では早速始めましょう!!

# AWSアカウントを3分で作成しよう!

まず下記リンクにアクセスしましょう!

[【公式】AWSアカウントを今すぐ無料で作成](https://portal.aws.amazon.com/billing/signup?redirect_url=https%3A%2F%2Faws.amazon.com%2Fregistration-confirmation&language=ja_jp#/start)

![スクリーンショット 2019-10-30 21.38.41.png

元記事を表示

LINEにcurlでメッセージ送信する方法

# もくじ

– きっかけ
– LINEアカウント作成
– BOT作成と動作確認
– 送信先IDの取得
– 理解するためのイメージ図
– curlでメッセージ送信

## きっかけ

LINEで自動的にメッセージ送信するアプリでも作成しようと思い、LINEのAPIを利用してみることにしました。
curlでメッセージ送信できないかなあ、なんて思いながら作業を開始しました。
結果、LINE_API + AWS(APIGateway + lambda)を利用して、curlでメッセージ送信ができました。
その時のノウハウをメモしておこうと思い、また、いまいち既存の情報だと個人的にピンとこなかったこともあって、投稿しました。

## LINEアカウント作成

まずは普通にLINEのアカウントを作成します。
LINEは「ID」「パスワード」をシステムに登録しなくてもアカウントを作成できますが、「ID」「パスワード」を登録して、LINEアカウントを作成してください。
もうすでに作成してますって人は、この作業は不要です。

## BOT作成と動作確認

次に、BOTを作成します。
つまるところ、開発用

元記事を表示

【Docker入門】AWS lightsail上にdocker+docker-composeを入れてnginxにアクセスしてみる

## はじめに
今更dockerについて触れ合う機会があり、面白そうだったのであらためて触ってみる。
AWSのlightsailを使って、docker+docker-composeを入れて、コンテナ上でnginxを起動してアクセスしてみる。

## 開発環境
AWS,Mac

## 前提条件
AWSのアカウントがあること

## AWSのlightsailにアクセスし、Dockerを入れるためのサーバを用意する。
https://lightsail.aws.amazon.com/

にアクセスし、作成する。

![スクリーンショット 2019-11-03 11.16.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134365/0a9369ee-3e05-a22d-c816-0e9f60a642fa.png)

無料枠があって最初の1ヶ月は無料で作成できるインスタンスを選択し、OSはCentOSを選択する。
画面に従ってポチポチしていけば簡単に作成できます。

lightsailについてはこちら
h

元記事を表示

新入社員がWebサービスを個人開発してみた

##作ったサービス
[AtoP](https://atop.band)
[https://atop.band](https://atop.band)
バンドのホームページを作ることができるサービス

##なぜ作ろうと思ったか
今年SIerに新卒入社し、Webサービスの運用・保守開発をする様になった。
バグ改修、追加開発を行なっていく中でプログラムに関しては多少理解できるようにはなったが、Webサービスがどのような仕組みで動いているのか理解できていないと感じた。
そこで、1からWebサービスを作ってみることで理解できるのではないかと思い開発を始めた。

##なぜこのテーマにしたか
アマチュアのバンドは、TwitterとInstagramのアカウントは作るが、ホームページは作らない場合が多いと感じた。
(ホームページ制作はハードルが高く感じるのだろうか?)

アマチュアのバンドの情報がまとまっているサイトが欲しかった。

##自分のスキルセット
PHP,MySQL
 学生時代にちょっと触った

C#,SQL Server,Git
 業務で使用

##今回使用した技術・サービス
Python

元記事を表示

EC2インスタンス停止したまま放置したら料金が発生した話

##EC2インスタンスを停止中にしたら料金が発生していた
停止中のEC2インスタンスに関連づけられている**ElasticIP**は、
課金対象だと知りませんでした。

失敗談として
自身のメールを通知を確認した時にこんなものが送られてきました。

**Amazon Web Services Billing Statement Available**
**(利用可能なアマゾンウェブサービスの請求書)**

ん??無料で使用しているはずなのに請求書????(笑)

AWSの「請求」を確認すると
スクリーンショット 2019-11-03 19.44.55.png

どうやら、ガッツリElasticIPで料金が発生している様子です。。。(笑)
こちらについて公式サイトで調べてみます。
[Elastic IP の料金を理

元記事を表示

aws ec2でのproxyの建て方

https://qiita.com/pcnikki/items/404329f9ad9cb6e235d4

Awsにプロキシーサーバー立てる
yum -y install squid
vi /etc/squid/squid.conf
forwarded_for off
header_access X-Forwarded-For deny all
header_access Via deny all
header_access Cache-Control deny all

元記事を表示

AWS CLIを使ってEC2インスタンス一覧を取得する

# 事前準備

1. クライアントにAWS CLIを設定
AWS CLIの設定方法は[こちら](https://docs.aws.amazon.com/ja_jp/streams/latest/dev/kinesis-tutorial-cli-installation.html)
「aws configure」で必要なアクセスキーの作成は[こちら](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_CreateAccessKey)

## 取得項目

– InstanceId: EC2インスタンスID
– PrivateIp: プライベートIP。複数ネットワークインターフェース(以降、NIC)付与していてもカンマ区切りで一覧表示される。
(※セカンダリIPアドレスは表示されません)
– GlobalIP: パブリック IP。複数NIC付与していてもカンマ区切りで一覧表示される。
– Platform: OS。Linuxの場合は『None』、

元記事を表示

DatadogでECS Fargateのメトリクス収集・監視

# 概要
サービス公開にあたり、[こちらの記事](https://qiita.com/goemp/items/4ee8c4d3030ad7dd6505)に続き、Datadog IntegrationsによるAWSのECS Fargateのメトリクス収集と監視方法についてまとめていきます。コンテナの作成などについてはAWSのCloudFormationを利用して説明します。

![スクリーンショット 2019-11-03 14.32.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274080/ac43c90e-a2ae-29b4-b4e4-f49740abe501.png)

参考
https://docs.datadoghq.com/ja/integrations/ecs_fargate/

# Datadog ECS Fargate Integrationsの機能
– CPU/Memoryの使用量と限界のメトリクスの収集
– Datadog Integrations又はカスタムメトリクスによる

元記事を表示

React × Serverless Framework でキーワードにマッチするconnpass のイベントを通知するChrome拡張を開発した話

## はじめに

興味のあるトピックについてキーワードを登録しておくと勉強会支援プラットフォームであるconnpassで関連するイベントが開催された際にプッシュ通知を受け取ることのできるChrome拡張をリリースしました!

– [NotiConn](https://chrome.google.com/webstore/detail/noticonn/flejkhlpnnjgnbjpccphbkomfbkhdnbn?hl=ja)

元記事を表示

[AWS CLI] cofigureを設定せずに一時的にCLIを利用する

# AWS CLIを一時的に使用する
EC2インスタンス上でAWS CLIを利用するには、aws configureを使うことが
一般的かと思います。configureを利用すると、コンフィグファイル( ~/.aws/config)
にID情報を格納します。
しかし、他の人も使用する場合、ID情報を格納しておきたくないです。
※本来、使用者ごとにユーザーを作成すればよいですが、
 ユーザー名:ec2-userを他の人と使いまわすこともあり得るかもしれません。
上記、実現するために、環境変数に一時的にID情報を格納することで、
AWS CLIコマンドを利用することができます。
なお、環境変数のため他のコンソールからのアクセスでは、
AWS CLIコマンドは効きません。
備忘録として残しますが、誤りがありましたらご指摘ください。

# 事前準備
・アクセスIDとシークレットIDを取得する
1.AWSサービス一覧から「IAM」を選択。
2.ユーザーより対象のユーザーを選択。
3.認証情報からアクセスキーの欄のアクセスキーの作成をクリック。
⇒アクセスIDとシークレットIDが取得できるので、保

元記事を表示

Laravel + Terraform + ECS + CircleCIでCI/CD環境を作る

先日、タイトルの構成で環境構築する機会があったので、復習としてまとめます。

## 各技術について

### Terraform

Terraformは、AWSやGCPの設定をコードで定義できるツールです。「Infrastructure as Code」とも呼ばれたりします。
「コード = ドキュメント」とも言われるように、属人化しやすいインフラの設定をコードに落とし込むことで、ドキュメント作成の手間を減らしたり、不意な操作ミスによる環境の破壊リスクを減らしたりなどのメリットが期待できます。

### ECS

AWSのコンテナ管理サービスで、各Dockerコンテナをクラスターという単位でEC2やFargate上で動作させることができます。コンテナに関わる複雑な操作をほぼ丸投げできるので、コンテナ技術を使って環境構築する場合にお世話になるサービスです。(最近流行りのk8s(EKS)とは違います。)

### CircleCI

「継続的インテグレーション(デリバリー)サービス」と呼ばれるものです。字面だけ見るとなんのこっちゃって感じですが、要は自動テストや自動デプロイをの仕組みを簡単に

元記事を表示

AWS ソリューションアーキテクトアソシエイトはWhizlabsで合格!

# はじめに

AWS認定ソリューションアーキテクト-アソシエイト(SAA)を1週間ほどで取得したので、その勉強法などについてまとめます。

※2019年10月14日受験時点での内容となります。

# 試験概要
## AWS認定資格について

AWS公式の認定試験で、レベルや分野別にそれぞれ認定資格が存在します。

基本的に基礎コース→アソシエイト→プロフェッショナルとレベルが上がっていきます。
以前はプロフェッショナルを受けるためにはアソシエイトに合格している必要があったようですが、現在(2019年11月3日時点)ではアソシエイトに合格していなくてもプロフェッショナルを受けることも可能なようです。

![AWS_認定_–_AWS_クラウドコンピューティング認定プログラム___AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246737/4de6a8db-30b9-ca8f-f87a-13f121ed4e2b.png)
[AWS認定](https://aws.amazon.com/jp

元記事を表示

CodeCommitのトリガーからCodeBuildを起動

CodePipelineを使えばいいのでは?となりそうですが、CodePipelineの月額1ドルも節約したい時の話です。

# 前提
| サービス | 項目 | 設定値 |
| ———- | ——————– | ———— |
| CodeCommit | リポジトリ名 | sample_repo |
| CodeBuild | ビルドプロジェクト名 | sample_build |

# IAMの作成

Lambdaでの実行ロールを作成します。次のポリシーをアタッチした、IAMを作成します。

– AWSCodeBuildDeveloperAccess
– AWSLambdaBasicExecutionRole

# Lambdaの作成

作成したIAMを指定してLambdaを作成します。

![create_lambda.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1239

元記事を表示

CodeCommitのLambdaトリガーを作るときはパーミッションをお忘れなく

CodeCommitのコンソールからLambdaトリガーを作るのと、LambdaのコンソールからCodeCommitのトリガーを作るのは結果が違いますよ、という話です。

# Lambdaが実行されない?

Lambdaをあらかじめ作成しておいて、CodeCommitのコンソールからトリガーを作成。Lambdaのコンソールからトリガーを作るのと結果は一緒でしょーと思っていたが、Lambdaが実行されず。

CodeCommitのコンソールに下記の記載があるので、これだよなーとコンソール上を探し回っても設定できそうなところは見つからず。

![caution_lambda.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123946/9360dbde-5863-f90e-4434-5d8a8da79afd.png)

# パーミッションを手動で追加する

AWS CLIを使ってパーミッションを追加する必要があります。
パーミッション用のjsonファイルを作成します。

“`permission.jso

元記事を表示

VirtualBoxの仮想マシンをAWSに移行してみた

#はじめに
本記事では、VirtualBoxで稼働中の仮想マシンをAWSに移行したので、その備忘録として書いたものです。
AWSの移行には、AWSサービス「VM Import」を使用する。
※今回の手順は、イメージをAMIに変換する手順です(import-image)。

#VMimportの前提条件
・VMimportのサポート対象のOSであること。 ※今回は、「CentOS7.6」で実施するので、サポート対象である。
・VMimportの対象ファイルが、VMimportでサポートされていること。 ※今回は、VirtualBoxのイメージファイルの「OVAファイル」なのでサポート対象である。
・aws-cliの環境構築が完了していること。
※AWS-CLIは、[これ](https://qiita.com/yes_dog/items/80740555b0706b218fca)を参考にすれば構築できると思います。
・aws-cliの実行環境は、VirtualBoxで稼働中の「CentOS7.6」である。
・VMimportの対象OSで、Firewallが無効化されていること。

元記事を表示

OTHERカテゴリの最新記事