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

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

Go言語でAWS Lambdaの開発をサポートするパッケージを作った

仕事でGo言語 + AWS Lambdaを用いる機会が多く、特にセキュリティ監視関連基盤のバックエンド処理を開発しています([これ](https://techlife.cookpad.com/entry/2020/03/18/073000)とか[これ](https://techlife.cookpad.com/entry/catbox)とか[これ](https://techlife.cookpad.com/entry/2019/11/21/073000))。

開発をすすめる中で「こうすると便利だな」というちょっとしたtipsはいろいろあったのですが、あまりに細切れな処理すぎるのでプロジェクト間でコピーするなどして開発に利用していました。とはいえ管理しているプロジェクトが多くなってきたことで挙動がまちまちになってしまったり、ある程度tipsの数が溜まってきたのもあって、パッケージとして切り出してみました。

https://github.com/m-mizutani/golambda

AWSが公式で提供しているPowertools([Python版](https://github.c

元記事を表示

CloudFormationでEC2&RDSの構築

## 概要
[【AWS 再入門】EC2 + RDS によるミニマム構成なサーバー環境を構築してみよう](https://tech.recruit-mp.co.jp/infrastructure/retry-aws-minimum-vpc-server-environment/)を拝見し、EC2+RDSの構築を学びました。

次のステップとして、CloudFormationを使いEC2とRDSを構築したので共有しようと思います。

## 対象者
– AWSの管理コンソールからRDSを構築された経験がある方
– CloudFormationの知見がある方

## 構築されるもの
– VPC
– InternetGateway
– Subnet
– RouteTable
– EC2
– RDS
– SecurityGroup
– SubnetGroup
– ElasticIP

## 構成図
![rds (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502753/35662bd2-5ecb-a9f8-

元記事を表示

作ったポートフォリオを簡単に解説してみる。

#何を作ったのか?
### アプリ名 Dig Memo
思考を深掘る事を意識して作ったメモアプリです。
下記URLで公開中しております!
http://www.digmemo-app.xyz/
#なぜ作ろうと思ったのか?
#### 思考をサポートできるサービスを作りたいと思ったからです。

プログラミング学習をしている時に、ただ勉強するよりも思考して勉強する方が、知識が定着しやすいと感じました。しかし、ただのメモだと楽をしてインプットした情報をそのまま吐き出すこともできてしまうなと思いました。そこを制限して思考をサポートすることができるサービスがあったらいいのではないか?と思い、作ることにしました!

# どんな機能を実装したのか?
### 機能一覧
・メモ投稿・編集・削除機能
・カテゴリー機能
・全文検索機能
・お気に入り機能
・ページネーション機能
・メール認証機能
・パスワードリセット機能
・ゲストログイン機能

### ER図
![Copy of Untitled Diagram (1).png](https://qiita-image-store.s3.ap-northeas

元記事を表示

練習

練習です。

元記事を表示

LightsailでSecureNATを有効化したSoftEther VPN Serverを構築する

AWSの料金面での落とし穴といえば、通信料ですよね。東京リージョンであれば0.114USD/GBなので、1TBのデータをAWSから引き出すと1万円以上かかってしまいます。

しかし、例外なのがLightsailです。一番安いプラン(3.5USD)でも1TBの通信料が含まれているため、多量の通信でも気にせずに利用することができます。そこで、VPNサーバをLightsail上に立ててみることにしました。

# 環境
– Lightsail Linux 3.50USDプラン(512 MB メモリ)
– Amazon Linux 2 (2.0.20201218.1)
– SoftEther VPN Ver4.34 Build 9745

# Linuxサーバーの構築
SoftEtherはWindowsで構築するのが手っ取り早いのですが、費用の関係上Linuxを使います。サーバを起動させる手順は省略します。
サーバー起動後、インスタンスのネットワーキング設定の中にあるIPv4Firewallを以下のように設定しました。
![image.png](https://qiita-image-stor

元記事を表示

Auto Scaling で追加したEC2 インスタンスにEIP を自動で紐づける

小ネタです。

# 困っていたこと
Auto Scaling でEC2 インスタンスが起動するたびに毎回EIPが外れてしまう。

EIP を関連づけし直す必要があるものの、手動でやるのはだるい。
なんとかしないと… :frowning2:と思い調べました。

# 解決策
Auto Scaling の起動テンプレート内のユーザーデータにスクリプトを仕込む

**▼ 詳細**
※ Auto Scaling の起動テンプレートは作成済みの前提
**1. EC2 のサイドメニューから[Auto Scaling グループ] を選択**
![Screenshot 2020-12-26 13.39.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/156147/503eba2a-862a-df10-800d-e01f6367c7cc.png)
**2. 作成済みの起動テンプレートを選択**
![Screenshot 2020-12-26 13.39.56.png](https://qiita-image-sto

元記事を表示

VSCode、ローカルでLambda開発環境準備->デプロイ->AWSのURLで確認までの手順

#:bow_tone1:自己紹介
先ずは簡単な自己紹介させていただきます。
僕は今まで10年間以上のWeb開発経験があり、その中に、4年間ぐらい日本での開発してきました。
日本人ではないので、投稿に日本語の文法がおかしい所があるかもしれません。
技術的な面を主にご覧いただければ、いいかなと思います。

#:coffee:今回の内容について簡単な説明
●VSCode利用して、ローカルでLambda(Node.js)開発環境の構築
●AWSのLambdaにソースコードのデプロイ
●AWS API Gatewayの作成(プロトコル:HTTP)
●AWS API Gatewayにより、生成されたURLで画面内容の確認

#:airplane_departure:開発フォルダの初期化
手順は以下になります。
①VSCodeで新規フォルダを開く
②npm環境の初期化(事前にnpmのインストールが必要)
③aws sdkのインストール

“`shell
cd /Users/name/Documents/workspaces/lambda/nodejs/TestProject1/
npm

元記事を表示

RDS Graviton2 インスタンスを試してみた(MySQL 編)

先に、こちらの記事で Amazon RDS の PostgreSQL 12.4-R1 を使って Graviton2 インスタンスと Intel x86_64 インスタンスを比較してみたところ、判断が難しい微妙な結果が出ました。

– **[AWS の RDS(PostgreSQL)で Graviton2 インスタンスを試してみた](https://qiita.com/hmatsu47/items/139640aea998f6602b6e)**

**結果の概要**は以下の通りです。

– m6g.xlarge(Graviton2) vs m5.xlarge(Intel x86_64)
– 4vCPU・メモリ 16GiB
– 最初に試した「3 種類の主キーでひたすら`INSERT`対決」では「引き分け」
– 追加で試した`pgbench`では m6g.xlarge に軍配が上がる
– ただしインスタンスを m6g.4xlarge・m6.4xlarge(いずれも 16vCPU・メモリ 64GiB)に上げて`pgbench`してみたところ、SSD(汎用 IOPS)の書き込

元記事を表示

VPCをサブネットに分割する方法

### ■ サブネットの考え方
 実際のネットワークでは、割り振られたCIDRブロックを、そのまま使わずに、さらに小さなCIDRブロックに分割して利用することがほとんどである。このように、細分化したCIDRブロックのことを**「サブネット(Subnet)」**という。

 サブネットに分割すると、その部分でネットワークを分けることができる。分ける理由として主に2つ挙げられる。

#### ① 物理的な隔離
 社内LANを構築する場合、「1階と2階とで、別のサブネットに分けたい」というように物理的に分たいことがある。

 サブネットに分けておくと、万一、どちらかのサブネットが障害を起こした時も、もう片側に、その影響が出にくくなります。

#### ② セキュリティ上の理由
 サブネットを分ければ、それぞれに対して、別のネットワークの設定ができる。

### ■ VPC領域をサブネットに分割する
 今回は、前回作成したVPC領域を、2つのサブネットに分割する。

#### ① パブリックサブネット(10.0.1.0/24)
 インターネットからアクセスすることを目的としたサブネ

元記事を表示

【2020年度版】EC2インスタンス立ち上げからApacheインストールしてhttpアクセスできるまでの流れ

#概要

AWSでEC2インスタンスを利用することがそこそこの頻度であるのですが、その都度毎回調べながら初期設定を実施しています。
調べてる中で意外と表題のようにhttpでアクセスするまでの流れを一連で書かれてる記事がないので自分の忘備録用にまとめてみたいと思います。

# EC2インスタンス作成フロー

このあたりはググれば記事もいっぱい出てくるし、そこまで難しくないのでサクッといきましょう。
今回テストなのでシンプルに選択していますが詳細設定は各自任意でお願いします。

「インスタンス起動」を選択

作成したいインスタンを選択
(今回は何でもいいのでAmazon Linuxを選択)
EC2 インスタンス毎に利用しているセキュリティグループを CSV で吐かせる AWS CLI

# はじめに
なんか仕事で AWS を触ることになってしまったので、AWS CLI を触ってみるぞ!
セキュリティグループが、どのインスタンスに紐づいているか、大量にあって分からんということで AWS CLI で調べてみる。

# やったこと
インスタンスの情報から、インスタンスの名前とセキュリティグループ名を引っ張ってきて json へ出力。
その後、jq コマンドで csv 出力。

“`
% aws ec2 describe-instances \
–query “Reservations[].Instances[].{Name: Tags[?Key==\`Name\`].Value, SecurityGroup: NetworkInterfaces[].Groups[].GroupName}” \
–output json |
jq -r “.[] | [.Name[0], .SecurityGroup[] ] | @csv”
“JohnMcClane”,”inbound-web”,”launch-wizard-4″
%
“`
ジョンマクレーンに、”inboun

元記事を表示

iamポリシーのjsonをHCLで書き直すパズル集

# はじめに。aws_iam_policy_documentは便利だが、、、

terraformでIAMのポリシーを書く時に、いくつか選択肢がありますが、そのうちの一つで [aws_iam_policy_document](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) を使うという手段があります。

[Terraformでテンプレートを使ってポリシーを定義する \- Qiita](https://qiita.com/ringo/items/9e05df9da984fdc059f3#aws_iam_policy_document-resource)

> HCLのシンタックスハイライトを使ってポリシーを書ける
plan 実行時にある程度の構文チェックができる
書くものが減りすこしスッキリする(テンプレートの方式だと、 json ファイル、 data ソース、 aws_iam_policy リソースを用意しないといけない)

とい

元記事を表示

AWS CLI 入門

# はじめに
なんか仕事で AWS を触ることになってしまったので、AWS CLI を触ってみるぞ!

# 本家の情報

– [設定ファイルと認証情報ファイルの設定](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-files.html)
– [名前付きプロファイル](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-profiles.html)
– [AWS CLI を設定する環境変数](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-envvars.html)
– [IAM ユーザーのアクセス権限の変更](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_users_change-permissions.html)
– [AWS CLI の設定

元記事を表示

AWSによるEC2インスタンスの作成

AWSのEC2インスタンスを使うためのやり方のメモです。

# 行ったこと
[PyTorchによる発展ディープラーニング](https://book.mynavi.jp/ec/products/detail/id=104855)を参考に、AWSのEC2インスタンスを使えるようにした際の手順をまとめました。
1. AWSのアカウント作成
2. EC2インスタンスの作成
3. SSHでの接続

### 環境

“`souece:OS
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION=”Ubuntu 16.04.6 LTS”
“`

# 1. AWSのアカウント作成
[AWSアカウント作成の流れ](https://aws.amazon.com/jp/register-flow/)の流れにそって作成しました。
個人的には、音声による認識などが面白かったです。英語だったので少し緊張しました。

# 2. EC2インスタ

元記事を表示

AWS AMI とは

## 勉強前イメージ

EC2の中にあるスナップショット的な・・?
「これと同じやつ起動する」ってときに出てくるイメージ?

## 調査

### AWS AMIとは

Amazon Machine Image の略で、
インスタンスを起動するのに必要なOSやボリュームの情報などのテンプレートのことです。
インスタンスを立ち上げるときにOSを指定しますが、それはAMIを指定しているのです。

![2020-12-26インスタンスウィザードを起動 _ EC2 Management Console – Google C.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/650df918-d658-7f09-ef47-73fba59b9f46.png)

AMIは自分で作成もでき、別アカウントや他リージョンへのコピーも可能です。

### AWS AMIを作ってみよう

– 作り方
– インスタンスから作成
– スナップショットから作成

作り方として2種類あり、インスタンスから作成も出来ま

元記事を表示

AWSでサーバーのモニタリングを基本から学習しなおす

EC2、ELB、RDS を利⽤した王道パターンのWEBシステムにおいて、監視方法を学ぶことを目的としている。
なぜ監視が必要かと原点の考えを学ぶ。
そのため、メトリクスやアラームの仕様についての具体的な説明や操作については、割愛する。

– 代表的な監視項目
– 1.リソース監視
– 2.ログ監視
– 3.APM(アプリケーション性能管理)
– 4.外形監視 (シンセティック監視)
– 5.セキュリティ
– 6.コスト

– AWSの監視サービス
– CloudWatch ~ Metrics や Logs
– X-Ray ~ Traces

#1.事前準備#

CloudFormation でリソースを作成し、このリソースを使って監視について見ていきます。というか復習みたいな。
https://pages.awscloud.com/rs/112-TZM-766/images/hands-on-for-beginners-aws-monitoring-hands-on-1-master.zip
![スクリーンショット 2020-11-30 19.01.02.

元記事を表示

【AWS】ログの確認方法について

#はじめに

ポートフォリオ作成中で、自動デプロイ時にUnicornに関するエラーが発生しました。
エラーの内容についてはファイルの場所が悪かったという簡単な内容だったのですが、ログの確認を怠り
(というよりログの確認方法を理解していなかった)、解決までに時間を要したので、コマンドを含め記述していきたいと思います。

#環境

Ruby on Rails ‘6.0.0’
Ruby ‘2.6.5’

#エラー内容

これまでCapistranoによる自動デプロイはできていました。ローカルでアプリケーションを編集後、いつもの
ようにデプロイのコマンドを実行すると、下記のエラーが出現しました。

“`
01:12 unicorn:start
(省略)
SSHKit::Command::Failed: bundle exit status: 1
bundle stdout: Nothing written
bundle stderr: master failed to start, check stderr log for details
(省略)
“`

#解決に向けて

エラー文を参照

元記事を表示

EC2でpythonプログラムをJavascriptから呼び出す簡易コード

# ボタンを押してpythonプログラムを起動

以下のようなhtmlを作成する。入力すると、入力した値を返すpythonプログラムを用意する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621414/c0ebd87d-a0c6-230f-b83e-68aedafb3216.png)

“`html





Document

テスト

文字を入力してください


元記事を表示

CloudWatch Agentの再設定について

全然大した話ではないけどドキュメントに明記されているのを見つけられなかったのでメモ。

CloudWatchエージェントの設定を見直したいときは単純に、同じ名前で新しいJSONを設定(fetch-config)をするだけでOK。

取り込まれた設定は以下dirに名前ベースで分けて置かれるので、ここの中身を確認すれば置き換えられたことが分かる。
また追加(append-config)するとこの場所に2つ目以降の設定ファイルが置かれることもわかる。
_/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d_
*当然だがwizardで作られたbinフォルダに転がってるJSONは置いてあるだけ

### おまけ
メモリ使用量などのmetrics監視を入れて設定を食わせるとエラーになるときがあり、
エラーだけ見ても原因が分かりづらいが、単にcollectdが無くてエラーになっていることがある。
aptか何かで入れるだけでOK。

元記事を表示

Amazon IVSがすごすぎる件

こんにちは!Life is Tech!OBで秋葉原校でCMをやっておりますがはくです!
この記事はLife is Tech ! メンター Advent Calendar2020 #2の20日目の記事です。
(なお、本記事は所属組織には一切関係せず、個人の見解となります。)

さて今日なのですが、このオンライン中心となってしまった世の中、皆さんいきなりライブ映像配信サーバーを用意しないといけないことってありますよね。あると思います。

そんな皆さんに今年の7月に発表された [Amazon Interactive Video Service (Amazon IVS) ](https://aws.amazon.com/jp/ivs/)を紹介したいと思います。
Amazon IVSを使うとなんと **2ステップ** でライブ映像配信サーバーを作成できます。

### ステップ1 IVSコンソールを開き、チャンネルを作成をクリック
![スクリーンショット 2020-12-25 22.10.00.png](https://qiita-image-store.s3.ap-northeast-1.am

元記事を表示

OTHERカテゴリの最新記事