- 1. Exmentでメール送信の設定をする(Amazon SESがおすすめだよ)
- 2. AWS CloudFormationのテンプレートの雛形
- 3. Mysql2::Error::ConnectionError: Access denied for user ‘root’@’localhost’ (using password: YES)
- 4. Amazon EKS ExternalDNSでサービスを公開する
- 5. CloudFormationをゼロから勉強する。(その4:コマンドからの操作)
- 6. 【Tips】TerraformでDynamoDBにそこそこの量のアイテムを初期構築でputしておく方法
- 7. AWS上にサーバーを作る(その02:Amazon VPC)
- 8. AWSを使ってアプリケーションを公開する手順(5)アプリケーションを公開する
- 9. Railsアプリを独自ドメインでssl公開した手順
- 10. 【LINUXカーネル再構築】バージョンアップ(4.18.0→5.8.8)
- 11. AWS FireLensってなんだ?
- 12. Cloudendure使用してオンプレミスからクラウドへ移行
- 13. AWS移行環境構築
- 14. 【備忘】S3からのダウンロード、S3へのアップロード
- 15. EC2再起動時もスクリプト(ユーザデータ)を実行させる
- 16. Amazon Linux 2 で PHP を簡単にアップデートする方法
- 17. AWS認定ソリューションアーキテクトプロフェッショナルに合格するまで〜プロフェッショナル編〜
- 18. 【中編】Rails+Nuxt+MySQL+Dockerで作ったWEBサービスをECS・ECR・CircleCIで自動テスト・デプロイしてterraform化する
- 19. [AWS] 踏み台サーバ不要!ローカルPCから、Private Subnet上のEC2インスタンスにssh/scpする
- 20. AWS IoT Greengrass CoreをRaspberry Piにサイレントインストールする手順
Exmentでメール送信の設定をする(Amazon SESがおすすめだよ)
[Exmentをインストール](https://exment.net/docs/#/ja/quickstart)したら、早めにやっておきたい設定があります。
それは、**メールの送信設定**。
Exmentには、レコードを追加したら通知をメールで飛ばす、というようなメール通知の仕組みがあります。ま、そのためにも必要ですが、そもそも**メールが送信できないと、パスワード忘れた時に、再発行メールを飛ばせない→詰む**ということになります。
ですので、できるだけ早めに設定しておいたほうが良いです。
## Exmentのメール送信設定箇所
デフォルトでは、左カラムのメニューから、「管理者設定→システム設定」で開いた画面の右上「システム設定」ボタンをクリックし、開いたモーダルの中にある「詳細設定」をクリックします。開いた画面の下のほうに、「システムメール設定」があります。
![2020-09-11_10h20_35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116223/3c78a518-cce2
AWS CloudFormationのテンプレートの雛形
# 主なセクションの構成
“`
AWSTemplateFormatVersion: “2010-09-09”
# Description: Akane’s template# Parameters:
# Mappings:
Resources:
# Outputs:
“`
# AWSTemplateFormatVersion(必須)
形式バージョン: 2010-09-09
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/format-version-structure.html# Description(オプション)
テンプレートの説明を記述する# Parameters(オプション)
テンプレートで利用するパラメータを宣言する# Mappings(オプション)
条件付きの値を宣言する# Resources(必須)
AWSリソースを記述する# Outputs(オプション)
AWS CLIや他のスタックから参照できるように値を宣言する
Mysql2::Error::ConnectionError: Access denied for user ‘root’@’localhost’ (using password: YES)
# やろうとしていること
ローカル環境で作ったポートフォリオ(個人アプリ)をAWSにデプロイしようとしているところです。
本番環境でデータベースを作ろうとしたのですが、エラーが出てしまいました。# エラー文
“`
[user@ip-00-0-0-000 pfc-master]$ rake db:create RAILS_ENV=production
Access denied for user ‘root’@’localhost’ (using password: NO)
Couldn’t create ‘pfc-master_production’ database. Please check your configuration.
rake aborted!
Mysql2::Error::ConnectionError: Access denied for user ‘root’@’localhost’ (using password: NO)Tasks: TOP => db:create
(See full trace by running task with –tr
Amazon EKS ExternalDNSでサービスを公開する
# はじめに
本記事はAmazon EKSでExternalDNSのデプロイを行ない、サービスを公開する方法について記載しています。Amazon EKSでクラスターを作成し、ドメインを取得してアプリケーションを外部に公開するためには、ドメインとAmazon EKSを紐付ける作業が必要になります。
ExternalDNSを用いてデプロイすることで動的にServiceとドメインの紐付けができます。また、サブドメインの管理も柔軟に行うことができます。
## ExternalDNSの構築
ExternalDNSを使用するためにはドメインの取得が必要です。ドメインはお名前.comなどのドメイン登録サービスか、Amazon Web Services(AWS)のRoute53で取得します。なお、お名前.com等外部のドメイン登録サービスを利用する場合は、Route53で管理するためネームサーバの設定が必要になります。
本記事ではお名前.comで取得したドメインを、Route53で管理する場合を例に解説します。
### Route53
はじめにAWSコンソール画面からRoute53を選
CloudFormationをゼロから勉強する。(その4:コマンドからの操作)
# はじめに
以前の記事で何度か紹介してきた`Black Belt Online Seminar`の記事ですが、2020年度版が公開されたようです。– [AWS Black Belt Online Seminar AWS CloudFormation アップデート](https://www.slideshare.net/AmazonWebServicesJapan/20200826-aws-black-belt-online-seminar-aws-cloudformation)
前回からのアップデートの内容や、新たなツールの紹介もされているので、色々と参考になります。
さて、前回はGUI画面上から値を入出力させましたが、今回は今までGUIで行ってきたスタックの作成&削除をコマンドで操作してみようと思います。
– 【前】[CloudFormationをゼロから勉強する。(その3:パラメータの入出力)](https://qiita.com/sakai00kou/items/fc34771fa3e150979ac8)
# CloudFormationコマンド
普段使いそうなコマ
【Tips】TerraformでDynamoDBにそこそこの量のアイテムを初期構築でputしておく方法
# はじめに
DynamoDBとLambdaで色々試してると、ふと検証のために大量データを予め入れておきたくなったりするよね。
それ、Terraformで簡単に実現できるんです。※そんなのPythonでboto3使ってbatch_writer()で書けば5分で済むだろ、とかそういうツッコミは一旦抜きにして。
# どうやってIaCで書くのか
countを使う。以上。だと終わってしまうので、もう少し解説。
“`HCL
resource “aws_dynamodb_table_item” “batch_items” {
count = 100table_name = aws_dynamodb_table.test.name
hash_key = aws_dynamodb_table.test.hash_key
range_key = aws_dynamodb_table.test.range_keyitem = <
AWS上にサーバーを作る(その02:Amazon VPC)
前回の投稿
[AWS上にサーバーを作る(その01)](https://qiita.com/aa_ha1uhik0/items/e4f11128bf065b573eb7 “AWS上にサーバーを作る(その01)”)# AWSのネットワーク
AWS上にサーバーを作るあたり、AWSにはどんなネットワーク設定が必要なのだろう?
「VPC」っていう名称だけはよく聞くよね。
公式のドキュメント「[Amazon VPC とは?](https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/what-is-amazon-vpc.html)」を見ると、* Amazon VPC(Amazon Virtual Private Cloud)
* サブネット
* ルートテーブル
* ゲートウェイこのあたりが必要っぽい。
## Amazon VPC(Amazon Virtual Private Cloud)
そもそもVPCって何だろう?
物理サーバーしかいじった事のない僕にとっては、今回が「初めまして」だね。
>[Amazon VPC とは?](htt
AWSを使ってアプリケーションを公開する手順(5)アプリケーションを公開する
#はじめに
AWSを使ってアプリケーションを公開する手順を記載していく。
この記事ではアプリケーションを公開する。#EC2のサーバにアプリケーションのコードをクローンする準備
##「.ssh」ディレクトリに移動する
以下のコマンドを実行し、「.ssh」ディレクトリに移動する。“`
cd ~/.ssh/
“`##ssh接続
以下のコマンドを実行し、EC2インスタンスにsshでアクセスする。
(ダウンロードしたpemファイル名が「xxx.pem」、ElasticIPが123.456.789の場合)“`
ssh -i xxx.pem ec2-user@123.456.789
“`##GithubにSSH鍵を登録する
EC2インスタンスからGithubにアクセスするために、EC2インスタンスのSSH公開鍵をGithubに登録する必要がある。
SSH鍵を登録しないとpermission errorとなりクローンできない。SSH鍵をGithubに登録することで認証されるようになりコードのクローンが可能になる。以下のコマンドを実行し、EC2サーバのSSH鍵ペアを作成
Railsアプリを独自ドメインでssl公開した手順
##概要
今回そこそこ苦戦しながらポートフォリオのSSL対応したので忘れないうちに手順を書き留めておく。
殴り書き程度なのでこれを読んでSSL対応は難しいと思われます。参考
https://qiita.com/iwaseasahi/items/1687426add4124899fe3#ec2%E3%82%92%E9%81%B8%E6%8A%9E%E3%81%97%E3%81%BE%E3%81%99https://qiita.com/Yuki_Nagaoka/items/55ed1610cfc1f59398b1#2%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97%E3%81%AE%E8%A8%AD%E5%AE%9A
##前提
+ EC2にRailsアプリをデプロイ済
+ Nginx等のWebサーバーでhttpで外部公開している
+ 独自ドメインを取得している。
+ VPCなどで適切なネットワークを構築済
+ httpですでにアプリケーションにアク
【LINUXカーネル再構築】バージョンアップ(4.18.0→5.8.8)
##目標
AWS EC2(Red Hat Enterprise Linux 8 (HVM), SSD Volume Type)に搭載されているカーネルのバージョンアップ(4.18.0→5.8.8)を完了すること。##前提
AWS EC2サーバ1台(Red Hat Enterprise Linux 8 (HVM), SSD Volume Type)が構築済みであること。
なお、カーネル再構築はコンパイルやインストール時にある程度高いシステムリソース(CPU、メモリ等)を用意した方が時間短縮されスムーズになります。
また、ある程度のディスク容量がないとコンパイル時にエラーとなる可能性があります。
本記事ではインスタンスタイプ`m5a.xlarge`(0.344USD/時間)、ディスク容量は`50GB`としました。
![tempsnip.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647616/5d01a05e-6b7f-d3e4-6653-6aa60676ecb8.png)
また、コンパイルやインスト
AWS FireLensってなんだ?
# What’s?
AWS FireLensについて、知っておきたかったので軽く調べてみました、と。
# AWS FireLensとは?
AWS FireLensとは、2019年9月に発表された、Amazon ECSで使用できるログルーターのことです。
[Firelens の発表 – コンテナログの新たな管理方法](https://aws.amazon.com/jp/blogs/news/announcing-firelens-a-new-way-to-manage-container-logs/)
タスク定義の中に含めてサイドカーとして配置しつつ、他のコンテナからはログドライバーとして使用します。
[カスタムログルーティング](https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/using_firelens.html)
AWS FireLensからは、Amazon CloudWatch LogsまたはAmazon Kinesis Data Streams、Amazon Kinesis Da
Cloudendure使用してオンプレミスからクラウドへ移行
Cloudendure使用してオンプレミスからクラウドへ移行
AWS移行環境構築
#AWSテスト環境構築
1.仕組み図
![テスト移行.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/693974/f2d3a3a3-0d13-da63-5ab6-fa140ade6cc3.png)2.パラメータ設定
2.1 VPCパラメータ設計
|VPC|10.0.0.0/16|リネーム|
|:–|–:|:–:|
|EC2 Subnet1|10.0.0.0/24|sb-1a-om-ec2|
|EC2 Subnet2|10.0.1.0/24|sb-1c-om-ec2|
|RDS Subnet3|10.0.2.0/24|sb-1a-om-db|
|RDS Subnet4|10.0.3.0/24|sb-1c-om-db|2.2 セキュリティグループ設計
2.2.1 EC2側
|Security Group|Port|Port|
|:–|–:|:–:|
|http|80|My Ip address |
|ssh|22|My Ip address |2.2.2 DB側
|Sec
【備忘】S3からのダウンロード、S3へのアップロード
1.S3からのファイルダウンロード
今回は、バケットの対象パス下のファイルを全てダウンロードする場合を記述しました。“`
AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withRegion(“リージョン名”).build();// S3上バケット下のファイル一覧を取得
ObjectListing objListing = s3Client.listObjects(“バケット名”);
ListobjList = objListing.getObjectSummaries(); try {
// S3上のファイル分処理する
for (S3ObjectSummary obj : objList) {
// objListにはバケット下全てのフォルダ、ファイル情報があるため対象パスで絞り込む必要がある
// 対象パスを含んでいないか、または、サイズが0であればダウンロードしない
if (!StringUtils.
EC2再起動時もスクリプト(ユーザデータ)を実行させる
## ユーザデータ
ユーザデータとは、EC2初回起動時に動作するスクリプトを登録できる設定です。
sshポート変更など、サーバ構築後によくやる作業を設定しておくと
初回起動時点に環境に反映してくれます。
設定方法は以下。
1. EC2の停止
2. 対象インスタンスを右クリック>インスタンスの設定>ユーザーデータの表示/変更
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/174816/20386397-44c9-d537-f759-2851293e50d4.png)
上記のように実行したいスクリプトを記載できます。ただ、ユーザデータは**インスタンス構築後の初回起動時のみしか実行されません。**
## 再起動時もユーザデータを動作させる方法
MIMEマルチパートファイルを使用して、ユーザデータの実行頻度を**起動の都度に**変更できます。
参考:https://aws.amazon.com/jp/premiumsupport/knowledge-center/execute-user
Amazon Linux 2 で PHP を簡単にアップデートする方法
Amazon Linux 2 の、ここ1年位の Amazon Linux Extra を使って、PHP をインストールしている人は、Amazon Linux Extra でパッケージの Disable & Enable をするだけで、結構簡単に PHP のアップデートができるという話です。
参考: [Amazon linux 2でのphpの更新方法](https://qiita.com/P__act2_tech/items/69a5b94ead8ee3edbc7e) (感謝!)
# 自分の環境
– AWS
– 開発用のサーバー
– Amazon Linux 2
– PHP 7.1 の Extra を導入
– 導入済みの PHP 一覧 `libmcrypt php php-bcmath php-cli php-common php-dba php-embedded php-enchant php-fpm php-gd php-gmp php-intl php-json php-ldap php-mbstring php-mysqlnd php-odbc php-opcache
AWS認定ソリューションアーキテクトプロフェッショナルに合格するまで〜プロフェッショナル編〜
## はじめに
[AWS認定ソリューションアーキテクトプロフェッショナルに合格するまで〜アソシエイト編〜](https://qiita.com/odayushin/private/6245e89244eeca7fb2ef)の続きです。今回はプロフェッショナル編です。
SAA取得後4ヶ月でSAPも無事一発で合格することができました。## SAP試験について
詳細は[公式ページ](https://aws.amazon.com/jp/certification/certified-solutions-architect-professional/)を参照。
### 難易度
SAA試験の上位試験で、AWS認定試験最難関との噂。
>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360735/4e0e10e2-37c3-8b03-85c9-db96e46b346c.png)
[AWS認定](https://aws.amazon.com/jp/certification/)より抜粋受験対
【中編】Rails+Nuxt+MySQL+Dockerで作ったWEBサービスをECS・ECR・CircleCIで自動テスト・デプロイしてterraform化する
#この記事を書くにあたって
AWSについての知識が全くなかった状態からポートフォリオを作成し、個人的にAWSへのデプロイと、CircleCIの自動デプロイが一番難しかったので、備忘録・これからポートフォリオを作るよ・これからAWS使うよって方向けの記事があれば良いなと思い書きました。私が作ったポートフォリオの概要は
[【AWS?Docker?】ポートフォリオで必要な知識を自分なりに分かりやすくまとめる【terraform?CircleCI?】](https://qiita.com/Shogo1222/items/8b8fc4c65632844a453f)この記事の前身となる記事は
[【前編】Rails+Nuxt+MySQL+Dockerで作ったWEBサービスをECS・ECR・CircleCIで自動テスト・デプロイしてterraform化する](https://qiita.com/Shogo1222/items/d90b3fa01a2dca14aeeb)是非ご覧いただけると有り難いです。
第一弾:[【前編】Rails+Nuxt+MySQL+Dockerで作ったWEBサービス
[AWS] 踏み台サーバ不要!ローカルPCから、Private Subnet上のEC2インスタンスにssh/scpする
# はじめに
この記事では「[[AWS] Private Subnet内のEC2インスタンスにローカルPCのターミナルからSession Managerでアクセスする](https://qiita.com/herohit-tool/items/85ccfd7799474c81fb6a)」の内容を改善し、もっと簡単に環境を構築できる手順を解説します。そして、何がセキュアかというと、Private Subnetに配置したEC2インスタンスに直接接続できる、という点に注目したいと思います。そう、踏み台サーバが不要なのです。
# 事前準備
まず、最初にクライアント環境に以下のツールが必要ですので、必要に応じてご用意ください。– [AWS Cli](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2.html)
– [Session Manager Plugin for the AWS CLI](https://docs.aws.amazon.com/ja_jp/systems-manager/la
AWS IoT Greengrass CoreをRaspberry Piにサイレントインストールする手順
こちらにある `gg-device-setup-latest.sh` スクリプトを利用します。サイレントインストールの元情報もここを参考にしています。
https://docs.aws.amazon.com/greengrass/latest/developerguide/quick-start.html
以下の項目を組み合わせてサイレントインストールします。
# 事前準備
SSHを有効化して、作業フォルダを作成します。“`sh
mkdir ~/work
cd ~/work
“`
作業PC側で、[以下のワンライナーでAWS認証情報を取得](https://qiita.com/yomon8/items/937855d2aa2f14ff47db)します。“`sh
aws sts get-session-token –query ‘Credentials | {A:AccessKeyId,B:SecretAccessKey,C:SessionToken}’ –output yaml | awk ‘NR==1{print “export AWS_ACCESS_KE