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

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

RHELに最新バージョンのMongoDBをインストールした

# 0. 前提
2021/1/4時点
– RHEL7.6のAMI(古いです。8系が最新です。)
– MongoDB4.4.2(この記事を書いている時点での最新)

例によってEC2とかしか使えない環境なので、Amazon DocumentDB使えよというツッコミは無しで。お察しください。
あるいは、マネージドサービスは得てして最新バージョンには対応していないことが多いので、どうしても最新バージョンのMongoDBを使いたいという人には役に立つ記事かも知れません。

# 1. MongoDBのtgzファイルをダウンロード
MongoDB Enterprise Server Download | MongoDB
https://www.mongodb.com/try/download/community
からMongoDBのアーカイブをダウンロードする。

– Choose which type of deployment is best for you:On-Premisesを選択する
– MongoDB Enterprise Serverのアコーディオンを展開する
– version:

元記事を表示

AWS Auto Scaling について

## 勉強前イメージ

ある一定の負荷まで行ったら勝手にEC2インスタンス増やしてくれるイメージ
だけど、色々設定あってめんどくさそう・・・

## 調査

### AWS Auto Scaling とは

AWS Auto Scaling というAWSのサービスで、
自動的に容量を増減してパフォーマンスを最適化してくれるシステムです。
アプリケーションの負荷を処理するために適切な数の Amazon EC2 インスタンスを利用できるように準備します。
元々オンプレなどで構築していると来るアクセスの最大を見越して作成しますが、基本的には半分以下のアクセスしか来ないことも往々にしてあります。
また、構築・維持に対するコストもかかり、突発的なアクセス増に耐えることができません。
それを解決してくれるのがAWS Auto Scalingです。

### Auto scaling の特徴

#### いろんなサービスを統合してスケーリングできる

AWS Auto Scalingからいろんなサービスのスケーリングができます

– Amazon EC2
– Amazon EC2 Auto Sca

元記事を表示

EIPを持たずにホスト名でアクセスする

# はじめに
AWSの`EC2インスタンス`は、`Elastic IP`(EIP)を付与しなければ、インスタンスの停止&起動でIPアドレスが変わってしまいます。

また、`EIP`アドレスはクォータ引き上げ申請無しで各リージョン5つまでなので、無計画に使っているとあっという間に使い切ってしまいます。

`EIP`を使用しない場合、停止起動を行う際は、起動後にアクセスする際のアドレスを確認したり手間ですが、EC2インスタンス起動時に`Route53`の登録情報を更新しにいくようにすることで固定の`EIP`を持たなくてもアクセスできるようにします。

# 作業の流れ
Amazon Linux2上に登録する前提で以下の様な方法で進めていきます。

尚、ドメイン名でアクセスする対象となるEC2インスタンスは事前に作成してある前提とします。

1. ドメインの取得
2. Route53にドメインを登録
3. Route53のホストゾーン作成
4. Route53更新用IAMロール作成
5. EC2インスタンスへのIAMロールのアタッチ
6. EC2インスタンスへのシェル追加
7. Route5

元記事を表示

AWS初期設定

**アカウント解約**
ルートアカウントから行うべし

**アカウント作成**
アカウント作成ページで
・メールアドレス
・パスワード
・パスワードの確認
・AWSアカウント名
を記入してして続行

連絡先情報の記入
・パーソナルを選択
・フルネーム
・電話番号
・国
・住所
・郵便番号

クレジットカード名を記入,
SNSメールを受け取る

サポートプランの選択
ベーシックプランを選択
*****
**最初にすること**
・MFAを有効化する
・管理者用IAMユーザー作成
・AWSCloudTrailを有効化
・AWSの請求アラートを有効化
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/709175/0ff4193e-834b-d73a-c560-12a4328a7bfb.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/709175/2c7991c3-85e4-af07-2315

元記事を表示

AWSのUbunt20.04 LTSでDockerインストール

参考サイト
https://docs.docker.com/engine/install/ubuntu/

レポジトリーをセットアップ

“`
sudo apt update && sudo apt upgrade

sudo apt install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –

sudo apt-key fingerprint 0EBFCD88

sudo add-apt-repository \
“deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable”
“`
ドッカ―エンジンのインストール

“`

元記事を表示

【ギリ初心者向け】Laravel Docker AWS(EC2) Webアプリ(PHP)を0から簡単にデプロイする方法(無料)①

#できるようになること
Webアプリ(PHP)をDockerで作成し、AWSでデプロイする工程をわかりやすく書いていく!!
プログラミングはできるようになったけど作ったものを世の中に出したいけどわからん!となった人向けです

①〜③の3部構成になります
①全体像と全体の流れ 目次みたいなもん
②Dockerを利用した理由とプロジェクト作成手順
③作成したプロジェクトをAWS(EC2インスタンス)にUPして世の中にだす!

※知らない単語等も詳しく説明するつもりだが。都度ググってくださいな!ググる力もエンジニアの力の一つらしいですわ。(プロが言ってた)
# まずは全体像から
qiita-square
全体のイメージはこんな感じ。
これを作成すれば作成したWebアプリを世の中に出せる!!

##0から世の中に出すまで

元記事を表示

Serverless Frameworkの使い方

Serverless Frameworkの使い方をまとめました。
今後何かいいTipsがあれば更新していこうかと思います。

# 基本コマンド
## インストール
事前にnodejsをインストールしておくこと

“`
npm install -g serverless
“`

## バージョン確認
“`
sls –version
“`

## ログイン
“`
sls login
“`

## AWSの認証情報の設定
“`
sls config credentials –provider aws –key YOUR_KEY –secret YOUR_SECRET
“`

更新のときは -o オプションを加える
-o はオーバーライトの意味

## テンプレート作成
node.jsのテンプレートを使用

“`
sls create –template aws-nodejs
“`

別フォルダにあるテンプレートを使用

“`
sls create –template-path path/to/my/template/folder -p path/to/my

元記事を表示

TerraformでAWS AppMeshを使ってECS Fargateのサービスを統合する(その3 仮想ルーター編)

# はじめに
AWS AppMesh記事第3弾。
[前回の記事](https://qiita.com/neruneruo/items/8177b70f4268c594561d)の続き。

今回は、これまでの記事のバックエンド側サービス(サービスB)に仮想ルータを導入し、Canary なデプロイを実現することを目指す(ELBを使わずサービスディスカバリを使った場合、こういったことをしないとクラウドネイティブなデプロイをするのは難しいと思われる)。

前回に引き続き、本記事を書いている 2021/1/3 時点で AWS AppMesh はまだまだ発展途上なサービスであり、情報が変わる可能性があることはご了承いただきたい。

# 仮想ルーター編で目指す構成
これまでの構成を以下のように変更する。

– これまでの構成
![figure2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111314/142bc2ce-a683-5402-c12e-b1bfc89eeed7.png)

– 今回の構成
![figu

元記事を表示

EC2インスタンスを停止しても従量制課金が適用される

#何が問題か

テスト用のEC2インスタンスをもう使わないと思い、停止したのだが後日料金が発生していることに気がついた。

![スクリーンショット 2021-01-03 21.12.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/668547/02440307-87de-9c19-9744-b00f7aa26fcf.png)

12月の初め頃からEC2を停止していたはずなのだが、課金されている。。

#解決方法

EC2インスタンスに紐づいていたElasticIPの関連付けを解除する。

#問題解決までの流れ

EC2インスタンスは全て停止しているので、課金が発生するのはおかしいと思い調べたところAWSによる以下の説明が。

>インスタンスを終了したが、アカウントに EC2 リソースがプロビジョニングされている

>請求書の Elastic Compute Cloud の明細項目には、インスタンス以外のリソースが含まれています。EC2 インスタンスは、次のような他の EC2 リソースと共に使用され

元記事を表示

カオスエンジニアリングと聞いてカオスになった人必見(続)

## はじめに
 2年前に投稿した「[カオスエンジニアリングと聞いてカオスになった人必見](https://qiita.com/naokiiiii/items/de20997a70922c01f754)」なのですが、現在もなお、ジワジワとLGTM数が伸びています。AWS障害が発生する度、このページのアクセス数増加傾向をみると、皆さんそれぞれ、障害対策にお困りなのだろうと推測しています。まだ、このテクノロジーに注目があるようですので、カオスエンジニアリングの現状をUPDATEする形で続編を書いてみます。

## カオスエンジニアリングの現在

### カオスエンジニアリングは普及しているの?
 定量的なトレンド評価をするため、Googleトレンドで、関連キーワードを比較してみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/207022/57fe3cea-ce1d-7d04-a5fb-c8ebb252906b.png)
 `Docker`や`Kubernetes`の普及が進んできて

元記事を表示

AWS AmplifyでLambdaを使うwith Go

Amplifyはちょくちょく使う機会があるのですが、Amplifyを介したLambdaってほぼ使った事ないぞ、と思ったので使ってみようと思い立ちました。
そしてLambdaでGoが使えるけど、ちゃんと使った事なかった気がするので使ってみたいなとついでに。

# Functionが使えるらしい
FUNCTIONS – Overview
https://docs.amplify.aws/cli/function

## 環境

– win10 Home(surface go) + WSL2 + ubuntu18.04
– node v14.1.0
– npm 6.14.5
– go version go1.10.4 linux/amd64

# 使ってみる

## 前置き

vueを使う設定にてamplifyをsetupしておきます。
詳しくはこのあたりから。
https://docs.amplify.aws/start/getting-started/installation/q/integration/vue

“` bash
$ vue create myamplifyprojec

元記事を表示

cloud9でLAMPならUbntuで作るべし

これまでAWSのcloud9を作るとき、Amazon Linuxを選択していました。
でも、PHPのバージョンが古いので、WordPressが思うように動かないことがありました。
そのため、PHPのバージョンを上げる手間があり、生産性が悪く思っていました。

今回、ふとUbntuでcloud9を作ってみようと思い、試しました。
そうしたら、PHPもMySQLもApacheも、新しいバージョンのように見えました。

そのためバージョンアップの手間が泣いため、最初からUbuntuを選択してcloud9を作ると良いと思いました。
![スクリーンショット 2021-01-03 19.48.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/20977/2b20a55b-ffe1-37b7-e3f0-5abfbcc0c3dc.png)

元記事を表示

【Terraform】ECS自動デプロイ – Terraform編 –

## 参考文献
– [[Terraform][Backends][v0.9]tfstateファイルの管理方法](https://blog.adachin.me/archives/5884)
– [グループ会社のインフラをECS/Fargateに移行して振り返る](https://engineer.blog.lancers.jp/2020/05/ecs-fargate-replace/)
– [[AWS][Terraform][Fargate]ECSでコンテナをALB配下に置く](https://blog.adachin.me/archives/11211)
– [circleci/aws-ecs@1.4.0](https://circleci.com/developer/orbs/orb/circleci/aws-ecs)
– [AWS ECR/ECS へのデプロイ](https://circleci.com/docs/ja/2.0/ecs-ecr/#docker-%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%82%92%E3%83%93%E

元記事を表示

【CircleCI】ECS自動デプロイ – CircleCI編 –

# 参考文献
– [[Terraform][Backends][v0.9]tfstateファイルの管理方法](https://blog.adachin.me/archives/5884)
– [グループ会社のインフラをECS/Fargateに移行して振り返る](https://engineer.blog.lancers.jp/2020/05/ecs-fargate-replace/)
– [[AWS][Terraform][Fargate]ECSでコンテナをALB配下に置く](https://blog.adachin.me/archives/11211)
– [circleci/aws-ecs@1.4.0](https://circleci.com/developer/orbs/orb/circleci/aws-ecs)
– [AWS ECR/ECS へのデプロイ](https://circleci.com/docs/ja/2.0/ecs-ecr/#docker-%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%82%92%E3%83%93%E3

元記事を表示

Serverless FrameworkとAWS Lambda with Rubyの環境にgemインストール

gemインストールが必要なAWS LambdaのRubyスクリプトをServerless Frameworkでデプロイする方法です。

# 手順概要

プラグインを入れれば簡単にできます。

1. `serverless plugin install -n serverless-ruby-layer`
2. `Gemfile` 作成
3. あとは普通にデプロイすると勝手にいろいろやってくれる

# 手順詳細

## Serverless Frameworkのサービス作成

“`console
$ serverless create –template aws-ruby
Serverless: Generating boilerplate…
_______ __
| _ .—–.—-.–.–.—–.—-| .—–.—–.—–.
| |___| -__| _| | | -__| _| | -__|__ –|__ –|
|____ |___

元記事を表示

CIツールでecspressoを使いつつAWS CodePipelineの承認フローを通してECSへデプロイする

# はじめに

[ecspresso](https://github.com/kayac/ecspresso)を使いつつAWS CodePipeline上での承認フローステージを通してECSへデプロイする方法を検証しました。

# 前提

* 既存ですでに以下のリソースが存在している前提になります。
* Docker Image on ECR
* ALB
* ECS Cluster
* ECS Task Definition
* ECS Service
* CodePipelineに付与するIAMサービスロール
* 上記を構成するためのVPC、サブネット、セキュリティグループなど諸々
* CIツールはGitLab CI
* ECSはFargateタイプであり、ECS ServiceのデプロイではCodeDeploy(Blue/Green)を利用している。

# ローカル環境

“`terminal
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.15.6
BuildVersion: 19G20

元記事を表示

Fargate1.4.0以降でのVPC エンドポイント(PrivateLink)を設定する際の注意とterraformでの例

Fargate(ECS) + VPC + Natゲートウェイ + ECR の組み合わせにおいて、VPCエンドポイントを作成してPrivateLink経由にする事で、コスト削減が可能となります。

概要については偉大な先人達の記事をご参照ください。

[Amazon ECR インターフェイス VPC エンドポイント \(AWS PrivateLink\) \- Amazon ECR](https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/vpc-endpoints.html)
[\[AWS\] FargateをNatゲートウェイと組み合わせて完全に死亡した話 \| 個人利用で始めるAWS学習記](https://noname.work/?p=2386)
[PrivateLinkとALBを利用してECS Fargateをロードバランシングする \| Enjoy IT Life](https://nishinatoshiharu.com/alb-fargate-privatelink/)
[AWS ECRのPrivate L

元記事を表示

AWS コンピューティング

#AWS コンピューティング
##EC2
 サイズ変更可能な仮想マシン(EC2インスタンス)をクラウド提供するサービス
###Amazonマシンイメージ(AMI)
 EC2を起動する際に必要なテンプレートがインストールされている
 逆に、自分で設定したEC2レシピも保存しておくことが出来る

###インスタンスタイプ
 EC2起動時に設定するもの、提供したいサービスの容量により変更可能

###セキュリティグループ
 ホワイトリスト形式(この通信はOK,NGと記述したリストで判断する形式)で制御される
 そのためELB,RDS,ElasticCacheなんかも記述すれば設定できる(なんやそれ!!後述します)
##ELB(Elastic Load Balancing) 厳密にはELBのALB
※GW ← ELB(ALB) ← アプリ{パブリックサブネット(NATGW)←プライベートサブネット}
 アクセス数に対して不可のバランスを複数のEC2に分散させる
 もし1台のEC2だけでサイトを運営していた場合、サーバー障害が起きたら復旧まで何も出来ません。
 ただし複数のEC2でサイトを運

元記事を表示

AWS LambdaがコンテナイメージをサポートしたのでPuppeteerしてみた

あけましておめでとうございます。

AWS Lambdaがコンテナイメージをサポートしたので、Puppeteerでキャプチャを取るLambdaをつくてみました。

クラスメソッドさんの以下の記事の通りで、ローカルでの実行はうまくいきましたが、Lambdaへのデプロイするとうまく動作しませんでした。(Chromeの起動タイミングでエラー?)

Lambda コンテナイメージで Puppeteer を使ってみた | Developers.IO
https://dev.classmethod.jp/articles/try-using-puppeteer-with-a-lambda-container-image/

試行錯誤の結果が、こちらとなります。

# ソース

全体はこちらにアップロード済みです。
https://github.com/moritalous/m5core2-yweather/tree/master/lambda

## Dockerfile

クラスメソッドさんはGoogle Chromeとpuppeteer-coreの組み合わせでしたが、puppeteer単体で

元記事を表示

【Ruby on Rails】ActionMailbox + Sendgrid + AWS(Route53) を実装してみた

#課題
Action Mailbox を実装してみたら意外と苦戦したので、未来の自分の為に纏め。
最低限の実装で取り敢えず動くところが目標です。

#前提
1. 既に記録対象となるRailsサーバはAWS(EC2)で動作
1. DNSはAWS(Route53)を使用
1. メール配信サービスはSendgridを使用

#やること
1. ActionMailbox を導入して受け取ったPOSTをRailsでよろしく処理する準備
1. メールをSendgridに送る為、Sendgrid宛のmxレコードをRoute53に作成
1. Sendgridから受け取ったメールをRailsの特定URLにPOSTする設定を投入

#ActionMailboxの導入
Rails6では初期状態から以下コマンドでActionMailboxをインストールできます。

“`zsh:ActionMailboxをインストール
$ rails action_mailbox:install
“`

ActiveStorageとActionMailboxのMigration Fileが作成されるのでmigrateして

元記事を表示

OTHERカテゴリの最新記事