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

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

AWS SAA-C02 合格体験記 (リモート受験)

## 初めに
半年程前にAWS SAA(C02)に合格したので、備忘録として、学習内容を残します。
また、今回リモートで受験したので、そちらの様子も簡単に書き残して行きたいと思います。
※Qiita初投稿なので、練習も兼ねて、他ユーザの投稿も参考にさせて頂きながら書かせて頂きたいと思います。。

## リモート受験の感想、所感
– リモート受験申込時の環境テストで一度目は不適応となったが、二、三回やり直すとあっさりと通ったので、一度目でダメでも何度か挑戦して見るべき

– 受験時にPCを一回転して部屋の様子をすべて見せるように言われるので、部屋はきれいにしておくべき、、

– 目線をデスクトップから少しでも反らすと、余計な所を見るなと注意されるので、目が疲れるのと神経を使う

– 上記に気を付ければ、比較的気軽に自宅で受験出来てしまうので、テストセンターが遠くにある/業務が忙しく受けに行く暇がない人に非常におすすめ

## 学習期間
2020/02/01(うろ覚え)~2020/07/11
繁忙期学習が止まってしまっていた期間を除くと3か月程

## 学習内容
– 書籍
– [徹

元記事を表示

AWS EC2でPHPのexec()でpython3系実行

[Amazon LinuxでPython3系を使う](https://michimani.net/post/aws-using-python3-on-amazonlinux/)
こちらのブログの方法で解決しましたが、少し自分なりに足りないと思ったところを補足して紹介します。

### 大前提:Pyenvのインストール先は、/usr/bin/..にしよう。

他のブログでは、pyenvのインストール先は/home/ec2-user/…のところにあると思うのですが、ec2-userディレクトリは権限が厳しいので、その中にpython3をインストールして、例えば、exec(/home/ec2-user/…/bin/python3.7)とかしても、

“`
permission denied
“`

になります。
だからといって、homeディレクトリや、ec2-userディレクトリの権限を書き換えると、セキュリティの仕様?か何かで、scpやsshでサーバーに入れなくなるという恐ろしいことが起きます。(もしそうなっちゃったら、AWS ec2のインスタンスページからターミナルを開けば解

元記事を表示

AWS VPNの削除

# 事象

AWS Site-to-Siteの設定が残っており、毎日課金が発生していたので削除しようと思ったが、
The VPN gateway is in use.と出力されて削除ができなかった。

# 事前確認

VPCからデタッチされていることを確認

# 試したこと

1. コンソールから削除
2. Cloud Shellから削除

Cloud Shellの場合以下のようなコマンドとなる

“`
aws ec2 delete-customer-gateway –customer-gateway-id CGWのID

aws ec2 delete-vpn-gateway –vpn-gateway-id VGWのID
“`

しかしこれでも削除はできなかった。

# 原因

サイト間のVPN接続の設定が残っていた。
この設定で仮想プライベートゲートウェイ(VGW)とカスタマーゲートウェイ(CGW)を紐づけていたため、The VPN gateway is in use.と出力されていた模様。

# 感想

作業をしているうちに

元記事を表示

AWS Route53 でサブドメインを切るのがとても簡単でした。

| | |
|:-:|:-:|
| ![スクリーンショット 2020-12-29 7.07.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954797/3b53226c-1642-00f5-5fb9-71a2a8b43b40.png) | Route53 メニューの **ホストゾーン** を選択 |
|![スクリーンショット 2020-12-29 7.09.08.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954797/36d6c9ff-dc6c-3724-4c16-2fdfe0e941f6.jpeg)|**ドメイン名** を選択|
|![スクリーンショット 2020-12-29 7.14.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954797/03d7a3de-7f56-392c-662b-71951316741e.p

元記事を表示

Amazon Location Serviceプレビューを試してみた

re:Invent 2020で発表され、現在プレビューのAmazon Location Serviceを試してみました。
プレビュー段階ながら東京リージョンで利用できるのは有り難いですね。

# マップリソースを作成する
コンソールへログイン後、Amazon Locationのページへ遷移し、左メニューの`Manage Resources`の`Maps`をクリック
続いて`Create map`をクリック
![location0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44921/75f7d2cf-432b-4dcc-1092-95bdfe007074.png)

Nameに任意の名前を入力し、Mapsセクションにてマップタイプというかスタイルを選択、`Create map`ボタンをクリック
![location1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44921/678421b9-d182-3a5c-47

元記事を表示

AWS EC2のPHP関連でよく使うターミナルコマンド

インストールしたphp一覧

“`
yum list installed | grep php
“`

Apache再起動

“`
sudo service httpd restart
“`

php.iniファイルの編集

“`
sudo vim /etc/php.ini
“`

元記事を表示

AWS EC2でMySQL総まとめ【単純かつ明快に】

## まず、アクセスするぜ?‍♀️

■1. rootのパスワードを知る。(2通り)

“`
cat /var/log/mysqld.log | grep password
A temporary password is generated for root@localhost: ??????????
“`

“`
sudo cat /var/log/mysqld.log | grep “temporary password”
A temporary password is generated for root@localhost: ??????????
“`

■2.mysqに入る (2通り)

“`
mysql -u root -p
“`

“`
mysql-ctl start
“`

■3.rootのパスワード設定。
「——-」はパスワードを設定しよう。
(大文字・小文字・数字・特殊記号はそれぞれ最低1つは入れる。)

“`
set password for root@localhost=password(‘—————–‘);
Q

元記事を表示

PostgreSQL バージョン不整合によるエラーの修正方法

AWS の RDS を使っていて、PostgreSQL のバージョンが 12 だが、EC2のバージョンが 10 なので、psql のバージョンが古いために、\d <テーブル名> で、以下のエラーが出力される。

“`
ERROR: column c.relhasoids does not exist
LINE 1: …riggers, c.relrowsecurity, c.relforcerowsecurity, c.relhasoi…
“`

postgresql12のレポジトリを追加して、現在の postgresql10パッケージを削除、レポジトリを直接指定してpostgresqlのバージョン12をインストールしたら、直った。

(参考)

How To Install PostgreSQL 12 on Amazon Linux 2

元記事を表示

AWS EC2で、MemoryError

Pythonのpymagnitudeを使っていたところ..
こんなのがターミナルに出てきて、計算ができなくなりました。

“`
MemoryError: Unable to allocate 1.51 GiB for an array with shape (1015474, 200) and data type float64
“`

「インスタンスタイプの変更」で、今選んでるインスタンスのメモリより多い物を選びましょう。
そしたら解決しました。

以下のサイトにわかりやすく解説が載ってます。どうぞ。
https://www.atmarkit.co.jp/ait/articles/1407/15/news005.html

元記事を表示

Amazon DynamoDB とは

## 勉強前イメージ

データベース….しかわからない….
RDSとかと何が違うんだろうね。

## 調査

### DynamoDBとは

フルマネージド型のNoSQLデータベースクラウドサービスです。
`NoSQLデータベース` とは非リレーショナルデータベースとも呼ばれ、
RDSで使用されている、スキーマ定義が必要なリレーショナルデータベースとは違い、
非定型な構造を持つデータを柔軟に管理することができます。

### NoSQLデータベースとは

Not Only SQL の略です。
リレーショナルデータベースとは違い、ビッグデータに対応すべく生み出された技術でSQLを使用しないということが特徴です。
DynamoDBだけでなく、GoogleのBigTableもNoSQLデータベースに当たります。

### DynamoDBの特徴

– ストレージは必要に応じて自動的にパーティショニングされる

分散型アーキテクチャーが採用されており、テーブルのデータをパーティションに小分けして割り当てられています。
パーティションは、設定した値以上になったり容量がいっぱいになったりし

元記事を表示

AWSで$docker build . エラー→ Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

# 結論
Swapファイルの領域が足りなかったみたいです。

### ◆Swapファイルとは
メモリの容量を一時的に増やすために準備されるファイル。
EC2はデフォルトではSwapファイルを用意していないため、大きな処理をすると処理エラーが起こってしまうようですね!

# エラー文
“`ターミナル.
[ec2-user@ip-10-0-0-180 app]$ docker build .
Sending build context to Docker daemon 889.9kB
Step 1/12 : FROM ruby:2.7
—> 7e58098089a4
~省略~

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory: /usr/local/bundle/gems/sassc-2.4.0/ext
/usr/local/bin/ruby -I /usr/local/lib/ruby/2.7.0 -r
./siteconf20201228-6-

元記事を表示

本番環境にアニソンのファイルあげて大恥かいた話

## 概要
今年ももうすぐ終わりですね。
「今年の反省は今年のうちに」ということで、今回は**年末に本番でやらかしたお話**を投稿したいと思います。

遡ること2日前、私は現在エンジニアをしているインターンで、**ファイルをアップロードするシステムのバグ修正**を行っていました。
コーディングはすんなりとすすみ、無事デプロイも終了。本番でちゃんとアップロードできるかの軽いテストを行い、その日は退社しました。

翌日、出勤するやいなや、上司に呼び出されました。

上司 *「〇〇くん, ファイルアップロードのシステムさわった?なんか変なファイルが上がってるんだけど…」*
私 *「変なファイル…ですか ?」*

指定されたurlを確認してみると, なんとそこには友人が熱唱している**[私アイドル宣言](https://www.youtube.com/watch?v=m7ddbml_vkY)の音源がアップロードされていました。**
(ちなめっちゃいい曲です 聞いてみてください)

![スクリーンショット 2020-12-28 22.57.07.png](https://qiita-i

元記事を表示

EKSに展開したIstioでSecure Ingress Gatewayを設定する

# 参考にしたサイト
[Managing TLS keys and certs in Istio using Amazon’s ACM](https://medium.com/faun/managing-tls-keys-and-certs-in-istio-using-amazons-acm-8ff9a0b99033)

[TLS support on AWS – Kubernetes Doc](https://kubernetes.io/docs/concepts/services-networking/service/#ssl-support-on-aws)

# 環境

Kubernetes: v1.16.15
Istio control plane: v1.7.4
Istio data plane: v1.7.4

# 設定

外部からのIngress用のELBにACMを展開します
手順は…

1. **istio-ingressgateway** LoadBalancer Serviceの `annotations` にELBの証明書等を設定
2. GatewayとVi

元記事を表示

【初学者用】AWS無料枠でサーバ構築+コンテナ管理をする

####■はじめに
このページでは個人アプリ製作や、未経験転職エンジニア向け対象です。
AWSをなるべくお金をかけずに、コンテナ管理を構築し学びたい時用になります。
今回は概要のみお伝えしますが、別で設定編は投稿します。
※あくまで個人的な考えなので、参考程度にしてください。

***

####■結論
サーバ構築:AWS EC2 / コンテナ管理:AWS ECSが良いと考えます。
なお無料で12ヶ月利用(条件付き)が可能です。
***

####■なぜAWS EC2なのか?
AWSのサーバ構築(linux)で唯一無料期間で12ヶ月の使用期間がある。
他にサーバ構築をLightsailにして、その中でDockerを使用する方法がありますが、
試用期間が30日なので短いです。。

####■なぜAWS ECSなのか?
EC2と連動して使える。
他のサービスとして、EKS,Fargateがあります。
ただどちらも使用すると課金されるので、無料では使えないです。

***
####■EC2+ECSを使った場合の使用条件について
AWSのt2.micro インスタンスのみを使用する(要は1アプ

元記事を表示

「amazon-linux-extras」→「No module named amazon_linux_extras」になる場合の対処法

pyenvがインストールされ、pythonのバージョンを変えていると、以下のようにamazon-linux-extrasは使えないそうです。
なので、使えるようにしてあげます。

現在のエラー

“`
$ amazon-linux-extras
/home/ec2-user/.pyenv/versions/3.7.0/bin/python: No module named amazon_linux_extras
“`

### 解決策

pyenvで、python3.7.0にしている人はコチラ。

“`
ln -s /lib/python2.7/site-packages/amazon_linux_extras ~/.pyenv/versions/3.7.0/lib/python3.7/site-packages/
“`
pyenvで、python3.7.5にしている人はコチラ。

“`
ln -s /lib/python2.7/site-packages/amazon_linux_extras ~/.pyenv/versions/3.7.5/lib/python3.7/si

元記事を表示

Bitbucket PipelinesをトリガーにSSMドキュメントをキックする

Bitbucket PipelinesをトリガーにSSMドキュメントをキックする仕組みを実装したので手順をメモに残す。

#実装した仕組み
Bitbucket Cloudのリポジトリで管理しているCFn Templateファイルを使ってAWS上で一時サーバのEC2を繰り返し作成/削除したいという要件があったため、CFnでのEC2作成の処理に関して以下の自動化の仕組みを実装した。
この仕組みを使うと、BitbucketのCommit IDへのタグ作成の1アクションだけでS3へのファイル転送からEC2作成までの一連の処理を自動で実行できる。

![Untitled Diagram(3).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271327/205fd380-6a56-0036-243e-66f572af2a30.png)

##Bitbucket CloudからS3へCFn Templateファイルを転送
![Untitled Diagram(6).png](https://qiita-imag

元記事を表示

【2020年末】AWS CLI(Version 2)を使い始めるためのメモ

数年ぶりにAWSを利用するプロジェクトに参加することになりました。AWS CLIのVersion2がリリースされているなど情報の更新が必要でしたのでメモとして。

AWS CLI Version2については[こちら](https://aws.amazon.com/jp/blogs/news/aws-cli-v2-is-now-generally-available/)などを参照してください。

# この記事で説明する内容

– AWS CLI Version2のインストールと設定
– 認証用csvファイルのインポート方法と既存の問題点の説明
– その他
– 2021年に更新される大阪リージョンについて
– AWSの認証用csvの列構成について
– pyenvの個別環境にAWS CLI Version2をインストールする方法

# 作業環境

“`sh
cat /etc/issue
> Ubuntu 18.04.5 LTS

python -V
> Python 3.8.6

pip –version
> pip 20.2.1 from /home/dev-user/.pye

元記事を表示

[Serverless Framework] yarn workspaceを使ったmonorepo

## はじめに
[Serverless Framework](https://github.com/serverless/serverless)はサーバレスなアプリケーションを簡単にデプロイできるOSSのフレームワークです。
Serverless Frameworkを使うときには、複数のパッケージを一つのリポジトリで管理する、いわゆるモノレポな構成にしたいことがあると思います。モノレポなプロジェクトの管理方法にはyarn workspaceやlernaなどがあります。

ここでは、yarn workspaceを使ったServerless Frameworkのモノレポを構築する方法を紹介したいと思います。サンプルには、AWSのAPIGatewayとLambdaを使います。

構築中にいろいろと問題が発生したので、誰かの参考になればと思います。
初心者なので、おかしいところがあれば是非指摘お願いします。

githubにもサンプルを残したので、よければ参考にしてください。

serverless-webpackを使う方法: https://github.com/allJokin/serv

元記事を表示

AWS EC2(AmazonLinux2)に改ざん検知ツール(AIDE)を導入する手順

## 0.IAMユーザー作成 (AWS Management Console)

CloudWatchを利用できるポリシーをアタッチした
IAMユーザーを作成しアクセスキー、シークレットアクセスキーを取得する
※EC2インスタンスにロールを付与する方法でも可能と思います。

“`
適用ポリシー:CloudWatchFullAccess,CloudWatchLogsFullAccess

アクセスキーID:
*

シークレットアクセスキー:
*

“`

## 1.AWS CLI インストール (EC2)

インストールされていなければ実施

“`
#yum install awscli
#aws –version
“`

## 2.AWS CLI クレデンシャル情報設定(EC2)

今回は、aws configureは実施しませんでした。
管理者ユーザーで以下、設定を実施

“`
# mkdir .aws
# vi /root/.aws/config
[default]
output = json
region = ap-northeast-1

# vi /root/

元記事を表示

Amazon RDSとは

## 勉強前イメージ

AWSで使えるDBのサービス
mysqlとかpostgreSQLとかあった気がする

## 調査

### Amazon RDS とは

Amazon Relational Database Service の略でAWSで使えるリレーショナルデータベースです。
RDSで使えるRDBMS(Relational DataBase Management System : DBのソフトウェア(mysqlとか))は、6つ利用できます。

### そもそもリレーショナルデータベースとは?

行と列で構成された、関係性データベースと呼ばれるデータベースのこと。
最も普及しているデータベースシステムの1つで、単にデータベースといった場合はリレーショナルデータベースを指すことが多いです。
リレーショナルデータベースを制御するソフトは、RDBMSと呼ばれます。
オープンソースベースの `MySQL` や `PostgreSQL` 、Oracle Database や Microsoft SQL Server などがある。

### RDSで使えるRDBMSは?

#### 全部で6

元記事を表示

OTHERカテゴリの最新記事