- 1. localstackで「Unable to get IAM security credentials from EC2 Instance Metadata Service.」でハマった件
- 2. エラー対処法:Failed to restart mysqld.service: Unit not found.
- 3. AWSエラー対処法:Failed to start サービス not provided by any .service files
- 4. AutoScalingのスケールイン対象をコントロールする場合に注意すべきRebalancing
- 5. 今のプロジェクトで使っているライブラリを簡単にLambdaレイヤーに登録する方法
- 6. AWS 基礎
- 7. AWS SAA資格取得~データベースサービス編②~
- 8. EBSをEC2にマウントする方法
- 9. Terraformで作ったリソースを手動で変更するとどうなるか
- 10. AWSアイコンセットを挿入するPowerPointアドインの紹介
- 11. AWSで使っていないサブネットを削除・整理していたらElastic Beanstalkの環境作成ができなくなった話
- 12. AWS初心者が在宅勤務中にAWSの資格を取る記録 part3
- 13. AWS Lambda Layer(NodeJS)の作り方
- 14. EC2・nginxのエラー No space left on deviceの解決法
- 15. AWS CLIでプロファイルを管理するコマンドあれこれ
- 16. ALBに設定したサブネットにインターネットゲートウェイがアタッチされていないことでサイトの表示が遅くなっていた。
- 17. LINEBotをみんなで作ろう〜コードを実装編〜【GWアドベントカレンダー最終日】
- 18. LINEBotをみんなで作ろう〜レイヤーとAPIgateway設定編〜【GWアドベントカレンダー7日目】
- 19. EC2 mariaDBのパスワードが入力できないときの対処法
- 20. AWSのEC2でmariaDBを使う方法(インストールから対話モードまで)
localstackで「Unable to get IAM security credentials from EC2 Instance Metadata Service.」でハマった件
# はじめに
localstackを使用してハマった内容について、備忘録としてまとめました。# localstackとは
localstackとは、クラウドアプリケーションをオフラインで開発/テストするためのツールで、[公式ページ](https://localstack.cloud/)には、以下のように書かれています。>(原文)
It spins up a testing environment on your local machine that provides the same functionality and APIs as the real AWS cloud environment.
(google翻訳)
実際のAWSクラウド環境と同じ機能とAPIを提供するローカルマシンのテスト環境を起動します。# 設定と動作
私は、[dockerイメージ](https://hub.docker.com/r/localstack/localstack/)を利用して、localstack環境を構築しました。
その時のdocker-compose.yamlがこちらです。“`
エラー対処法:Failed to restart mysqld.service: Unit not found.
#エラー対処法:Failed to restart mysqld.service: Unit not found.
AWSのEC2に作成したmariaDBを再起動したいときに、
`$ sudo systemctl restart mysqld.service`
を実行すると発生。“`
[ユーザー名@ip~]$ sudo systemctl restart mysqld.serviceFailed to restart mysqld.service: Unit not found.
“`##対処法
mysqld.service を **mariadb.service**に変更。
`$ sudo systemctl restart mariadb.service`##その他関連エラー
systemctlコマンド以外のserviceコマンドで発生するエラーも同じ。mysqld を **mariadb**に変更することで対応可能。
“`
$ sudo service mysqld start#エラー
Redirecting to /bin/sy
AWSエラー対処法:Failed to start サービス not provided by any .service files
##エラー対処法:Failed to start サービス not provided by any .service files
以下のようなエラーが発生したときの対処法。
“`
Failed to start サービス名: The name org.freedesktop.PolicyKit1 was not provided by any .service files
See system logs and ‘systemctl status mariadb.service’ for details.
“`####症状
・AWSのサーバー操作時に発生
・systemctlコマンドを実行
・gitbushを使用####対処法
コマンド冒頭に**sudo**をつけてsystemctlを実行。
####sudoとは?
別の利用者権限でプログラムを実行させるコマンド。
AWSサーバーなど自前意外の環境でコマンドを実行するために必要(あってる?)sudo:superuser do
└ 特権を与えられたスペシャルなユーザーとして実行。
AutoScalingのスケールイン対象をコントロールする場合に注意すべきRebalancing
# 背景
何かしらの解析サーバとしてEC2を利用しAutoScaling構成をとる場合、解析が終了したものから順次スケールインさせたい時がある。そのままだと一番古いものなどの条件でしか対応できない。解決策の一つとしてterminateを各EC2自身に行わせる場合にはAZの再分散に注意する必要がある。
# わかったこと
Auto ScalingはRebalancing(再分散)といってAZの偏りを修正するための機能がある。
https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-benefits.html`suspend-processes`コマンドを打ってやるとRebalancingを停止することができる。
(その他、オプション指定により種々の機能を選択することが可)
https://docs.aws.amazon.com/cli/latest/reference/autoscaling/suspend-processes.html# やってみた
9個のインスタンスを持つAuto Scalin
今のプロジェクトで使っているライブラリを簡単にLambdaレイヤーに登録する方法
## 困ったこと
Lambdaで外部ライブラリを利用する場合、Lambdaにコードをアップロードするときに一緒にアップロードする必要があります。
さらに、Lambdaには一つ50MBまでという制約もあり、ライブラリによってはそれ単体で50MBを超える場合もあったりするので、そもそもアップロードできない!ということにもなる場合があります。私はPuppetierをLambdaで利用しようとしたときにこの問題に引っかかりました。(Puppetierは内部でヘッドレスChromeを使っているのでサイズが大きい)## 解決策
Lambdaレイヤーを使うことにより、この問題を解決することができました。
ただ、Lambdaレイヤーのアップロードはコンソールを使う場合は、まずローカルでZipファイルを作ってそれをアップロードするという手順を取るのですが、これを毎回やるのは面倒なので、簡単なシェルを作って簡単にアップロードできるようにしました。
以下のシェルをプロジェクトルートディレクトリに置いておき、Lambdaレイヤーを更新する際はこれを実行すればOKというわけです。便利!
>このシェ
AWS 基礎
#前提
人間の脳は2日で73%を忘れると聞いて、何回も復習するため書いていきます。#本題
#Webサーバーの構築
##EC2とは
AWSクラウド上の仮想サーバー
インスタンスとはEC2から立てられたサーバーのこと###特徴
・数分で起動し、1時間または秒単位の従量課金
・サーバーの追加、削除、マシンスペック変更も数分で可能
・OSより上のレイヤについては自由に設定できる##AMIとは
インスタンス起動に必要な情報が入ったOSのイメージ
サーバーのテンプレートのようなもの###特徴
・AWSやサードパティがAMIを提供
・自前のカスタムAMIも作成可能
・カスタムAMIから何台でもEC2インスタンスを起動可能##インスタンスタイプとは
サーバーのスペックを定義したもの###概要
・インスタンスタイプにより、CPU、メモリ、ストレージ、ネットワーク帯域が異なる
・インスタンスタイプにより料金が異なる、スペックが高いほど料金も高い
・アクセス数などに応じて必要なスペックのあるインスタンスタイプを選択する##ストレージとは
サーバーにくっつけるデータの保存場所
AWS SAA資格取得~データベースサービス編②~
それではデータベースサービスについて続きをまとめていきます。
##DynamoDBとは
マネージド型のNoSQLデータベースサービス
読み込み書き込みが早いが、API経由での操作になる。
SQLともデータの扱い方、構造が違ってきています。読み込み書き込みが多いシステムや、テーブル結合が不要なシステムがおすすめ!
※RDSは更新が頻繁なシステム、テーブル結合が必要なテーブル設計のシステムRDSとの違いがあるのでその点に関して注意。
[サーバーワークスさんのブログ記事](http://blog.serverworks.co.jp/tech/2017/04/12/what_is_different_dynamodb_and_rds/)でまとめられているので参照ください。#####キーバリュー型データモデル
DynamoDBはキーバリュー型のデータベース。
データ書き込み時は1つのデータとしてキーとバリューがセットで保存される。
データを呼び出すときはキーを指定して、バリューを取り出す。格納できるデータの種類は
RDB=「数値」「文字列」や、JSONのような半構造データもバリ
EBSをEC2にマウントする方法
## EBSをEC2にマウント
– AWSコンソールからEBSをEC2にアタッチ
– EC2にアタッチされているか確認“`
$ lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
└─xvda1 202:1 0 8G 0 part /
xvdcz
Terraformで作ったリソースを手動で変更するとどうなるか
IaCの原則として、”コードで作成したリソースはコードでのみ管理する”という鉄則がありますが、
それを無視するとどうなるかです。#検証してみる
Terraformで適当なリソースを立てます。下記のサンプル通りにEC2を立ててます。
https://www.terraform.io/docs/providers/aws/r/instance.html次に作成したEC2のTagを適当に編集してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/257241/23cfaeeb-9041-e3ee-c4cd-3bf8f7a7416a.png)
次に先ほどterraformを実行した作業用端末からterraform applyしてみます。
“`
$ terraform apply
data.aws_ami.ubuntu: Refreshing state…
aws_instance.web: Refreshing state… [id=i-0f4160053f3cf9
AWSアイコンセットを挿入するPowerPointアドインの紹介
# AWSアイコンセットを挿入するPowerPointアドインの紹介
## はじめに
下記リンクにあるAmazonが提供しているAWSアイコンセットを挿入するPowerPointアドインを作成したので、紹介します。
https://aws.amazon.com/jp/architecture/icons/?nc1=h_ls
—## 機能
以下の図にあるようにAWSアイコンセット上から挿入したいアイコンを検索し、フォーム上から挿入する機能を提供します。
![](https://github.com/11ohina017/OhinaWork/raw/master/img/DemoAws.png)
—
## インストール
* 以下のリンクから、ダウンロード
https://github.com/11ohina017/OhinaWork
* ダウンロードしたZIPファイルを解凍
* pptxフォルダ配下の以下のスクリプトをダブルクリック
`installPowerPointAddin.vbs`
インストール後にPowerPointを起動すると、リボンタブに
AWSで使っていないサブネットを削除・整理していたらElastic Beanstalkの環境作成ができなくなった話
# この記事について
タイトルの通り、「このサブネットの中で1つもインスタンス起動してないから影響ないやろ」とサブネットを削除した結果、Elastic Beanstalkの`eb create`コマンドが通らなくなりました。
原因と復旧させるまでの手順をまとめます。# やらかす前の状況
ローカルで作ったアプリを、`eb init`→`eb create`コマンドでElastic Beanstalk環境にデプロイするのが目標でした。ちなみにサブネット削除前にテスト的に`eb create`を叩いたときには正しく環境作成されてました。削除前のVPCの状態は以下の通りでした。
– デフォルトVPCを使用
– ap-northeastの3つのAZに一つずつサブネットが存在
– ap-northeast-1aには1つEC2インスタンスがあり・他にはなし
– ap-northeast-1aはパブリックサブネット# やらかしとその結果
EC2インスタンスがなかったap-northeast-1c, ap-northeast-1dのサブネットを削除しました。
その結果、デプロイのロードバ
AWS初心者が在宅勤務中にAWSの資格を取る記録 part3
#5/4(Mon)
・Udemy(2h)
・5/3に解答した問題の復習
・セクション1:まずは知ってみるの受講★受講しているコース
「これだけでOK!AWS認定 ソリューションアーキテクト アソシエイト試験突破講座(SAA-C02試験対応版)」
https://www.udemy.com/course/aws-associate/learn/lecture/13377796##感想
今日は休息日としたので、少しだけ。#5/5(Tue)
・Udemy(3h)
・セクション2~セクション4まで##感想
クラウドプラクティショナーの勉強をしたおかげで、特に詰まることもなく進められている実感がある。#5/6(Wed)
・Udemy(4h)
・セクション4~セクション6まで
・基本①~応用②までの65問×4を再度実施
結果
基本① 63/65 96%
基本① 61/65 93%
基本① 60/65 90%
基本① 58/65 89%##感想
特になし。
明日は試験なのでそこそこにしておく。#5/7(Thu)
・Udemy
・今まで解い
AWS Lambda Layer(NodeJS)の作り方
# NodeJSを動かすのにライブラリが不足する事態発生
– 説明端折りますが、どうやらLayerというものを入れれば良いと検索して分かる。
– 作り方が色々書いてあって、最初間違っているサイト(バージョンが古い?)を閲覧してしまったハマったので自分の方法を記載します。# バージョン
– Node 12.16.03 ※13を使っていたのですが、Lambdaが執筆時は13をサポートしていなかったので、12にダウングレードしました。
– ダウングレード方法は、ここを見て下さい。
https://qiita.com/realtakahashi/items/a398e83a961c8dcfa109# 闇雲に作ってはいけない。決まりがあった
– 決まった方法やディレクトリ名で作る
– ディレクトリ名は「nodejs」※それ以外は多分NG“`
mkdir nodejs
cd nodejs
“`
– ディレクトリ内でnpm initをします。 ※全てデフォルト、エンターでOKです。
– そして、必要なライブラリをインストールします。※例では3つ(require、puppeteer-c
EC2・nginxのエラー No space left on deviceの解決法
capistranoでデプロイを自動化させようと試していた際に、EC2を再起動したところエラーが表示されました。
“`
cat log/nginx.error.log
“`“`
2020/05/07 14:00:08 [crit] 3629#0: *2 pwritev() “/var/lib/nginx/tmp/proxy/1/00/0000000001” failed (28: No space left on device) while reading upstream, client: 121.3.47.42, server: 13.115.179.212, request: “GET /assets/application-147cfe69dba92e16c1d4275578eb1221ba9e6dd28140f02fd5d759e2e49bc49a.js HTTP/1.1”, upstream: “http://unix:/var/www/rails/Portfolio/tmp/sockets/unicorn.sock:/assets/application-14
AWS CLIでプロファイルを管理するコマンドあれこれ
業務で複数のAWSアカウントを管理する必要が出てきたので、関連するコマンドを纏めてみた。
### プロファイルを追加する
produserはプロファイル名。好きな名前を指定して良い。“`
aws configure –profile produser
“`
### プロファイルの一覧を確認する
これはAWS CLIコマンドではないが、コマンドによって作られた設定ファイルを直接確認する。“`
cat ~/.aws/credentials
“`### コマンド単位でプロファイルを指定する
“`
aws s3 ls –profile produser
“`### プロファイルを切り替える
“`
export AWS_PROFILE=user1
“`### 現在のプロファイルを確認する
“`
echo $AWS_PROFILE
“`### 現在の接続先を確認する
“`
aws configure list [–profile profile-name]
“`
ALBに設定したサブネットにインターネットゲートウェイがアタッチされていないことでサイトの表示が遅くなっていた。
#発生した問題
AWS(EC2、RDS、ALB等)を使用し本番環境を構築したが、サイトにアクセスする際、1分以上時間がかかっていた。#原因
私の場合は、ALBにパブリックサブネットを2つ指定していたが、片方のサブネットにインターネットゲートウェイがアタッチされていなかったことが問題だった。#解決した方法
###デベロッパーツールでどこに問題があるか確認
chromeのデベロッパーツールでNetworkをみて、どこに時間がかかっているか調べた。
LINEBotをみんなで作ろう〜コードを実装編〜【GWアドベントカレンダー最終日】
この記事は下記の [#GWアドベントカレンダー](https://gw-advent.9wick.com/calendars/2020/72) の 8日目の記事になります。
1週間でサーバレスLINEBotを生み出す( @inoue2002 ) | GWアドベントカレンダー
# はじめに
こちらの内容は超初心者向けです。
[公式ドキュメント](https://developers.line.biz/ja/docs/messaging-api/overview/#messaging-api%E3%81%AE%E4%BB%95%E7%B5%84%E3%81%BF)を読める方はこちらをお読みいただく方が正確です。[昨日の記事](https://qiita.com/inoue2002/items/ab226d9836a891b01bc9)をご覧になってない方はぜひ。
こちらの記事はGWアドベントカレンダーを通してLINEBotをサーバレスで作れるようになろう!ということを目標に書いている記事です。LINEBotは作れるけどAWSでサーバーレスを作ってみたい!方向けの記事です
昨
LINEBotをみんなで作ろう〜レイヤーとAPIgateway設定編〜【GWアドベントカレンダー7日目】
この記事は下記の [#GWアドベントカレンダー](https://gw-advent.9wick.com/calendars/2020/72) の 7日目の記事になります。
1週間でサーバレスLINEBotを生み出す( @inoue2002 ) | GWアドベントカレンダー
# はじめに
こちらの内容は超初心者向けです。
[公式ドキュメント](https://developers.line.biz/ja/docs/messaging-api/overview/#messaging-api%E3%81%AE%E4%BB%95%E7%B5%84%E3%81%BF)を読める方はこちらをお読みいただく方が正確です。[昨日の記事](https://qiita.com/drafts/ad945981150c859911fc)をご覧になってない方はぜひ。
こちらの記事はGWアドベントカレンダーを通してLINEBotをサーバレスで作れるようになろう!ということを目標に書いている記事です。LINEBotは作れるけどAWSでサーバーレスを作ってみたい!方向けの記事です
昨日の記事でAWSア
EC2 mariaDBのパスワードが入力できないときの対処法
#EC2 mariaDBのパスワードが入力できないときの対処法
EC2サーバーにアクセスし、mariaDBにログインする際、Enter passwordにて設定したパスワードがキーボード入力できないときの対処法。
“`
[ec2-user@ip- ~]$ mysql -u root -p
Enter password:
“`##解決方法
通常通りキーボードで入力し、Enterをクリック。
└ 画面に表示されないだけで、実際は入力できている。▼接続完了
“`
[ec2-user@ip- ~]$ mysql -u root -p
Enter password:Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 26
Server version: 5.5.64-MariaDB MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and oth
AWSのEC2でmariaDBを使う方法(インストールから対話モードまで)
#EC2でmariaDBを使う方法(インストールから対話モードまで)
・AWSのEC2でmariaDBを起動し、対話モードに入る手順。
・パスワードの設定方法
・windowsでターミナルはgitbashを使用##はじめに
**ここに至った背景(このページの対象者)**– ローカルに作成したnode.jsのWEBページをEC2にデプロイ
– ローカル内では、DBにmySQLを使用
– テスト用なのでRDS(EC2と別)を作成する必要性がない
– RDS:AWSのDB構築・運用のサーバー
– 無料枠あり(期間制限)
– EC2内のmaridDBからRDSへの移行は比較的簡単にできそう
– mySQLである必要性がない
– AWSにはmariaDBがデフォルトでセット
– mariaDBはオープンソースで、googleなども使用している(信頼性◯)
– mySQLとmariaDBで性能に大差ない(性能◯)
– 特に小規模のテスト用なら尚更
– mySQLは使えるので、mariaDBも使えるようにな