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

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

AWSでWebサイトを作ってみた(2) サーバー構築編

[前回の記事はこちら](https://qiita.com/alksoho/items/13d37bcc497a33a53cd2)
次回の記事はこちら

今回は[AWS](https://aws.amazon.com/jp/)を利用し、自身でサーバーを立て、記事のキーワードを自動抽出するWebアプリケーションを作成してみました。

# 目次
* [概要](#概要)
* [利用しているサービス](#利用しているサービス)
* [ドメイン取得](#ドメイン取得)
* [ローカルネット、サブネット構築関連](#ローカルネット、サブネット構築関連)
* [Webサーバー構築](#Webサーバー構築)
* [DBサーバー構築](#DBサーバー構築)
* [DNS](#dns(domain-name-system))
* [サーバー構築](#サーバー構築)
* [VPC作成](#vpc作成)
* [Webサーバー構築](#Webサーバー構築)
* [DBサーバー構築](#DBサーバー構

元記事を表示

EC2にcronで定期タスクを実行させる

# 概要
日常の仕事で、タスクやスクリプトを定期実行すると言うシーンがございますでしょうか。
Amazon EventBridgeとLambdaの組み合わせで一般問題を解決する事ができると存じますが。
Lambdaに対して、最大実行時間が15分という制御がございます。
実行時間が長いタスクに対して、相応しくないと存じます。
EC2は計算時間を制御してないです。
今回EC2にcronの設定方法をご紹介させて戴きます。

# 手順

## EC2に接続

“`
sudo su –login ec2-user

“`

# 定期pythonタスクを定義
“`
import slackweb
import time
slack = slackweb.Slack(url=”xxxxxxxxxxxxx”)

flg = True
while flg:
time.sleep(60)
now = time.strftime(“%a %b %d %H:%M:%S %Y”, time.localtime())
print(now)
slack.notify(te

元記事を表示

EC2 を PHP8 ,Laravel9 にバージョンをアップデートしてみた

# はじめに
AWS EC2サーバーのPHPとLaravelを最新バージョンに、アップデートする方法についてまとめました。

# 環境
現環境
– Amazon Linux 2
– PHP 7.2.8
– Laravel 5.7.9
– nginx 1.12.2
– composer 1.10.15 (なくても可)

ゴール
– Amazon Linux 2
– PHP 8.0.16
– Laravel 9.5.1
– nginx 1.20.0
– composer 2.2.7

# PHPバージョンアップ
PHPバージョンは7.2なので、PHP8にバージョンアップします。

“`terminal
$ php -v
PHP 7.2.8
“`
PHPのバージョンを変える場合、PHPのパッケージをすべてアンインストールしてから PHP8を有効化する流れになります。

“`terminal
// パッケージアップデート
$ sudo yum update -y

// PHPのパッケージをすべてアンインストール
$ sudo yum -y remove php-*

// amazon

元記事を表示

Redshiftの日時型を試してみた

# 背景・目的
Redshiftのドキュメントの手順に倣い、RedshiftのデータをS3にUNLOADする。

# 内容
## 概要
– 日時データ型には DATE、TIME、TIMETZ、TIMESTAMP、TIMESTAMPTZ がある。
– 以下に特徴を整理する。

|名称(エイリアス) |名称|用途| ストレージ| 解像度| デフォルトタイムゾーン|
|:– |:–|:– |:– |:– |:– |
| DATE |-| タイムスタンプなしで単純にカレンダー日付だけを保存する場合 |4バイト| 日|-|
| TIME | TIME WITHOUT TIME ZONE | 時刻を保存する場合 |8バイト| マイクロ秒|UTC|
| TIMETZ | TIME WITH TIME ZONE | 時刻とタイムゾーンを保存する場合 |8バイト| マイクロ秒|UTC|
| TIMESTAMP| TIMESTAMP WITHOUT TIME ZONE |日付と時刻を含む完全なタイムスタンプ値を保存する場合| 8バイト| マイクロ秒|UTC|
| TIMESTAMPTZ| TI

元記事を表示

初心者による初心者の為のIaC(CloudFormation)Pt.1 概要編 〜コードで書いてみな、飛ぶぞ〜

# はじめに
皆さんインフラ、コードで書いていますか?私は全く書いたことありません!!
『コードで書いてみな、飛ぶぞ』が口癖のIaC推進派インフラエンジニアの方に師事しております。
IaC???聞いたことあるケド…ってくらいの読者を想定しております。なんせ私も最近までワードしか知らなかったもので。
ただの勉強したことのアウトプットですが、興味ある方に少しでも参考になればと思います。
# 目次
Pt.1では
– IaCのメリットデメリット
– Terraform or CloudFormation ?
の2項を扱っていきます!
# IaCのメリットデメリット
### メリット
– インフラ構築の設定ミス、漏れが減る
コンソールでポチポチする場合、設定をすっ飛ばしてしまったり、誤設定をしてしまう可能性がある。コード化するとミスが減りますね。

– Gitで管理することができる
Gitで管理できる、つまり構築や変更の差分をバージョン管理が可能になる。また、複数人でレビューができるようになるので、知見が共有できるようになります。

– テンプレを用意しておけば似た構成ならコピペですぐ作れる

元記事を表示

Cloud9へVSCodeのRemote-SSHを使ってアクセスする with SessionManager+aws-vault

# はじめに
Cloud9は優秀なIDEではあるもののVSCodeの自由度には勝てない。
やっぱVSCodeで開発してなんぼだろう。
ただ、パブリックIP経由でSSHアクセスなんて恐くてできないし、アクセスキーもなるべく暗号化して取り扱いたい
となると
![vsc-c9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262854/af16668f-5cdd-1272-3f68-603eec2d8cfc.png)
のようにアクセスしつつアクセスキーは暗号化して管理したい

そんなニッチな目的を持つ人向けの記事

# TL;DL
~/.ssh/configの設定でProxyCommandを使用する
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager-getting-started-enable-ssh-connections.html

# 前提
* クライアントPCはWindows(試したのは

元記事を表示

本番環境でのassets:precompile未実施エラー/ 初めてのAWS忘備録④

前回の続き→ [EC2内の環境構築【デプロイ】/ 初めてのAWS忘備録③](https://qiita.com/mmaumtjgj/items/7e169e1d715ba1876b99)

“`
[ec2-user@ip… アプリ名]$ bundle exec puma -C config/puma/production.rb -e production
“`
上記コマンドでアプリを起動させたは良いものの、実際の画面を見てみるとこのようなエラーが出た。
[![Image from Gyazo](https://i.gyazo.com/fb584365f396fe879a701e0db59ffbf7.png)](https://gyazo.com/fb584365f396fe879a701e0db59ffbf7)

エラーログを見にいくと、
“ActionView::Template::Error (The asset “application.css” is not present in the asset pipeline.):“
とあった。アセットされた**applic

元記事を表示

GitLab CIでAWS Systems Managerを使用したEC2インスタンスへのセキュアなSSH,SCP

# はじめに
**AWS Systems Managerを使用する経緯**
[GitLab.com](https://gitlab.com) が提供する GitLab Runner はIPアドレスが固定されていない為、GitLab CIからEC2インスタンスにアクセスする際はSSHのインバウンドポートをフルオープンで運用していました。
> IP range
> For outgoing connections from CI/CD runners, we are not providing static IP addresses. All GitLab.com shared runners are deployed into Google Cloud Platform (GCP). Any IP-based firewall can be configured by looking up all IP address ranges or CIDR blocks for GCP.
> https://docs.gitlab.com/ee/user/gitlab_com/#ip-range

元記事を表示

プライベートサブネットからインターネットを経由せずにAWS CLIを使用する方法

# はじめに
一般的にEC2からAWS CLIを使用して各種リソースにアクセスする場合、インターネットを経由してAWSのAPIをコールする必要があります。
では、インターネットにアクセスすることが出来ない環境ではどうすればよいのでしょうか?
今回、この疑問について調べて実際に実装してみたので、記録として残しておきたいと思います。

# 結論
**AWS PrivateLink**という技術を使用することで、インターネット経由無しでAWS CLIを実行することが出来ます。
AWS PrivateLinkは、VPCのサブネットにENIを作成し、ENIに割り当てられたプライベートIPアドレスを経由して他のAWSサービスにアクセスすることができます。

# 作成&検証
文章で見るよりも実際に検証した方が理解しやすいので、実際に検証していきます。
今回作成する構成の概要図は以下の通りです。
![Private Link.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/689573/0b249af6-d12a-519

元記事を表示

Amazon EKSで使えるPersistentVolumeについて比べてみた

# はじめに
– Amazon EKSでステートフルアプリケーションを構築する際にPersistentVolumeをどのストレージサービスで提供するのが良いのかを考えてみた。
– 可能な限り公式の情報を参照しているが、万が一誤った情報があればひたすら陳謝するのみである。
– 2022年3月時点での情報なので将来どうなるかは神のみぞ知る。

# まずはググる
– 「eks persistentvolume」というキーワードでググってみると、検索結果の最上位に以下の記事が出てきた。こちらの記事によると、Amazon EBSかAmazon EFSを使えるらしい。
– https://aws.amazon.com/jp/premiumsupport/knowledge-center/eks-persistent-storage/
![amazon_eks_pv.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523630/88ebc401-fde3-3762-7bae-468aa0768369.

元記事を表示

EC2内の環境構築【デプロイ】/ 初めてのAWS忘備録③

前回の続き→[AWSインフラ構築【デプロイ】/ 初めてのAWS忘備録②](https://qiita.com/mmaumtjgj/items/922e85c3f88d8db40cdc)

EC2インスタンス内にRailsアプリを動かす環境を作っていく。
最初にPCを購入した際にRailsが動かせるように環境構築をしたことと同様にインスタンス内も同じくRailsが動くように環境構築をしていく。
EC2にログインして、その中のターミナルでコマンドを実行する。

## 利用パッケージの追加
まずはパッケージをアップデートする。
“`
[ec2-user@ip… ~]$ sudo yum -y update
“`
EC2の初期状態では最低限のパッケージしかインストールされていないので、利用するパッケージをインストールする。
下記のコマンドを“\“を含めて全て実行。

“`
[ec2-user@ip… ~]$ sudo yum -y install \
git make gcc-c++ patch curl \
openssl-devel \
libcurl-devel lib

元記事を表示

AWS CDK – Lambda への Layer(ARN)のアタッチ

# デプロイ済の Layer 構成

“`
└─ nodejs/
├─ @layer/
│ └─ util/
│ ├─ index.js
│ ├─ package.json
│ └─ package-lock.json

├─ node_modules/
├─ package.json
└─ package-lock.json
“`

# デプロイ済の Layer 実装

“`javascript:index.js
module.exports = {
sample: value => {
return value;
},
};
“`

# Layer(ARN)をアタッチした Lambda 定義

※ Layer(ARN)を SSM に格納しておいた場合

“`typescript:stack.ts
import * as cdk from ‘@aws-cdk/core’;
impor

元記事を表示

【AWS】EC2インスタンスの自動起動・自動停止設定方法 (22/03)

業務上でインスタンスの自動起動と停止(以下自動処理)を設定することがあったので備忘録として記録します。

## はじめに
EC2インスタンスの自動処理はそれぞれで設定します。
他にも再起動かけたり色々できそう(?)

参考にした記事は下記です。
[EC2 の自動起動と自動停止](https://blog.mori-soft.com/entry/2021/04/19/105832)

## I AMロールの作成
自動処理を行うロールの作成をします。
※ロールは起動・停止で共有できます。

– AWS⇒IAM⇒ロール⇒ロールの作成を選択
![role.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2291250/58b7aa3a-0ce6-b3ac-ba61-826ad96ebe9a.png)

– ユースケースは「他のAWSのサービスのユースケース」を選択
※後々ポリシー変更するので不要かも(?)

![image.png](https://qiita-image-store.s3.ap-northeas

元記事を表示

AWSインフラ構築【デプロイ】/ 初めてのAWS忘備録②

前回の続き→[AWSアカウント作成/ 初めてのAWS忘備録①](https://qiita.com/mmaumtjgj/items/1db37045baa2059a7152)

クラウドにアプリをデプロイする環境を作成していく。
まずはクラウド上に自分の作業スペースを作り、外部とのネットワークの設定を作る。
これからの作業はrootアカウントではなく、IAMユーザアカウントで進める。

## リージョンの選択
クラウドサーバーを構築する、地域(リージョン)を指定する。
AWSは全世界で利用されており、各地域でホスティングされている。
画面右上のアカウント名の隣のプルダウンから「東京」を選択。

>**ホスティング**
サーバーを借りること、ここではサーバーを利用されている(借りられている)という意味

## タグの命名
**タグとは**
AWS リソースを識別および整理するためのメタデータとして使用される単語やフレーズ。
タグはキーと 1 つのオプションの値で構成されてる。

例えば EC2 が10台起動しているとし、どのEC2が自分のプロジェクトのものなのか一覧できると便利。そうした

元記事を表示

【AWS Summit 2021】日立がチャレンジするクラウドネイティブな社会イノベーション!①

みなさんこんにちは。子育てしながらクラウド推進!日立のモフママです。
モフママのQiitaデビューが遅かったのでちょっと遅くなってしまいましたが,今回はAWS Summit Online Japan 2021 での日立セッションについてご紹介しようと思います。

![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358174/2fc1646e-754f-94a3-4b5b-0ce63c4c3194.png)

![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358174/af5d67b0-9c5c-dd0e-3c09-377526ffa32f.png)

![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358174/22eaaacc-d49e-20a4-f5fd-20d63dd2edd8.png)

!

元記事を表示

【AWS】【Salesforce】CTIフローからApexクラスのメソッドを呼び出す

# 1.概要
どうも、ARIの名古屋支社に勤務している愛知県民です♪
(/・ω・)/

[前回の記事](https://qiita.com/Aichi_Lover/items/06573a82d9af2f982b7f)ではApexクラスの作成について記載したので、
**今回はCTIフローからApexクラスのメソッドを呼び出す方法について記事にしたいと思います。**

この記事がCTI Adapter、Salesforceについて勉強中の方の参考になれば幸いです♪
(*^^)v

# 2.はじめに
## 2.1.Apexとは
Apexとは、JavaベースのSalesforce独自のプログラム言語です。

Salesforce内のオブジェクトの検索や作成をするメソッド等が提供されており、
それらを組み合わせて処理を記述することができます。

Apexクラスとは、オブジェクト指向におけるクラスと同様のものとなります。

## 2.2.CTI Adapterとは
AmazonConnectとSalesforceを連携させる際に使用するクラウドサービスのことです。
(厳密にはAWSのサービスです

元記事を表示

プレフィックスリスト 作ってみた

## プレフィックスリストとは

プレフィックスリストの概要は [こちら](https://qiita.com/miyuki_samitani/items/141a192f6bef839de58e) をごらんください。
一言でいうと複数のCIDRブロックを一元管理することができるVPCの機能です。

## プレフィックスリストの作成

– VPCに移動し、プレフィックスリストを作成

![01マネージドプレフィックスリスト _ VPC Management Console – Google.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/5469671d-6ad8-fc57-c827-f839aa89b778.png)

– 詳細設定を記載

プレフィックスリスト名とエントリ数を記載します。
今回はIPv4ですが、IPv6であればアドレスファミリーも変更してください

![02VPC Management Console – Google Chrome 2022-03-16.png](ht

元記事を表示

[Route53 ドメイン] 時々アクセスできる、時々NXDOMAINエラーが発生する

## はじめに
第 4 、5レベルサブドメインがあります (「help.cloud.example.link」など)。

ブラウザでドメインにアクセスする場合、
時々アクセスできる
時々NXDOMAIN(ERR_NAME_NOT_RESOLVED)エラーが発生する。

nslookupコマンドを実行して確認すると、結果は
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1901067/1c63bdd0-c6f2-5879-78fa-709942184a41.png)

## 原因
サブドメインの委任設定(NS レコード設定)が Cloudflare、OpenDNS などの DNS リゾルバーで階層構造をたどって名前解決を実行する仕様を満たしていないことが原因となります。

具体的には、第 4 レベルサブドメイン(「help.cloud.example.link」など) NS レコードが第 2 レベルドメイン(「example.link」など)に配置されております。

![image.png

元記事を表示

Active MQを触ってみる

## はじめに
業務でActive MQを扱ったのですが、情報量の少ないシンプルなコンソールで、なかなか全体像が見えにくいと感じました。今回はActive MQや、そのようなMQサービスと連携できるAmazon MQについて概要をまとめてみようと思います。

## Amazon MQとは
Amazon MQはAWSのサービスの一つです。マネージドメッセージブローカーサービスと呼ばれるものです。Active MQとRabbitMQなど、既存のMQサービスと連携して移行することができます。
メッセージブローカーサービスとは、2システムが直接メッセージデータのやりとりをするのではなく、その間に入って中継(ブローカー)するサービスのことを指します。

このようなサービスを使うことによって、2システム間でメッセージ送受信のタイミングを図らずとも、よしなにデータのやりとりをしてくれます。
また各コンポーネントを疎結合化し、相互の依存性を小さくすることで保守性も高めることができます。

AWSMQを使うメリットは以下のようなものがあります。

– プロトコルはAWS独自のものではなく、業界標準の

元記事を表示

RedshiftのUNLOADコマンドを試してみた

# 背景・目的
Redshiftのドキュメントの手順に倣い、RedshiftのデータをS3にUNLOADする。

# 内容
## 概要
### UNLOADの特徴
– クエリの結果をS3にエクスポートする。
– ファイルの形式には、テキスト、CSV、Parquet、JSON等指定が可能
– デフォルトではパイプ(|)で区切られる。
– Parquetでエクスポートすると、テキスト形式と比較し、最大2倍高速で、ストレージ使用量も最大6倍少なくなる。
### 構文
“`
UNLOAD (‘select-statement’)
TO ‘s3://object-path/name-prefix’
authorization
[ option [ … ] ]

where option is
{ [ FORMAT [ AS ] ] CSV | PARQUET | JSON
| PARTITION BY ( column_name [, … ] ) [ INCLUDE ]
| MANIFEST [ VERBOSE ]
| HEADER
| DELIM

元記事を表示

OTHERカテゴリの最新記事