반응형

1. launch instance 로 ec2 생성

2. ubuntu 로 서버 이미지 생성 

3. security group 
처음 생성하는 경우 security group 생성, 이전에 만든 적 있으면 이전에 만든 security group 생성 

해당 security group 에서 inbound 편집을 추후 해줘야 합니다. 
ex ) 3306 port 추가 및 ssh 접속시 ip 허용 
anywhere 로 추가하면 어떤 ip 에서도 접속 가능 

4. key pair 생성

key 파일이 없으면 신규로 생성. 앞으로 해당 파일로 접속해야해서 분실하면 안됩니다. 


Ubuntu EC2 인스턴스에 MySQL 8.0을 설치

1. EC2 인스턴스에 접속

 

먼저 EC2 인스턴스에 SSH로 접속합니다. 로컬에서 다음 명령어를 사용하여 SSH 접속합니다:

ssh -i /path/to/your-key.pem ubuntu@your-ec2-public-ip

2. Ubuntu 패키지 업데이트

 

MySQL을 설치하기 전에, 패키지 목록을 업데이트합니다.

sudo apt update

 

3. MySQL 8.0 설치

 

MySQL 8.0은 Ubuntu의 기본 패키지 저장소에서 제공됩니다. 다음 명령어로 MySQL 8.0을 설치할 수 있습니다.

sudo apt install mysql-server -y

 

4. MySQL 서비스 시작

 

MySQL 서버가 설치되면, MySQL 서버를 시작합니다.

sudo systemctl start mysql

 

MySQL 서버가 부팅 시 자동으로 시작되도록 설정하려면 다음 명령어를 사용합니다.

sudo systemctl enable mysql

 

5. MySQL 기본 설정 및 보안

 

MySQL을 설치하면 보안 관련 기본 설정을 진행할 수 있습니다. 이를 위해 mysql_secure_installation 스크립트를 실행합니다.




sudo mysql_secure_installation

이 명령어는 다음과 같은 작업을 수행합니다:

 

루트 사용자 비밀번호 설정.

익명 사용자 삭제.

원격 루트 로그인 비활성화.

테스트 데이터베이스 삭제.

보안 설정 재로드.

6. MySQL 루트 사용자 비밀번호 설정

 

MySQL이 설치되면 루트 사용자의 비밀번호를 설정해야 합니다. 먼저 MySQL에 접속합니다.

sudo mysql

MySQL 프롬프트에서 다음 명령어를 사용하여 루트 사용자 비밀번호를 설정합니다.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourNewPassword';

이후 MySQL 프롬프트에서 빠져나갑니다.

EXIT;

7. MySQL 접속 테스트

 

설정한 비밀번호를 사용하여 MySQL에 접속할 수 있습니다.

mysql -u root -p

비밀번호를 입력한 후 MySQL 프롬프트로 접속할 수 있습니다.

 

8. 방화벽 및 보안 그룹 설정 (필요한 경우)

 

MySQL의 기본 포트인 3306을 외부에서 접근할 수 있도록 EC2 인스턴스의 보안 그룹에서 3306 포트를 허용해야 합니다.

 

1. AWS 콘솔에서 EC2 인스턴스의 보안 그룹으로 이동합니다.

2. **인바운드 규칙 (Inbound Rules)**에서 MySQL/Aurora 또는 TCP 포트 3306을 추가합니다.

Source는 허용할 IP 주소를 설정합니다 (예: 0.0.0.0/0은 모든 IP에서 접근 가능, 보안을 위해 특정 IP만 허용하는 것이 좋습니다).

 

9. MySQL 외부 접속 허용 (선택 사항)

 

기본적으로 MySQL은 외부 접속을 허용하지 않습니다. 외부에서 MySQL에 접속하려면 MySQL 설정 파일을 수정해야 합니다.

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

설정 파일에서 bind-address 항목을 찾은 후, 127.0.0.1을 EC2 인스턴스의 공인 IP로 변경하거나 모든 IP에서 접속 가능하게 하려면 0.0.0.0으로 변경합니다.

bind-address = 0.0.0.0

파일을 저장하고 MySQL 서버를 재시작합니다.

sudo systemctl restart mysql

 

 

 


java 설치

설치 확인

 

1. Ubuntu 패키지 목록 업데이트

 

먼저, 패키지 목록을 업데이트합니다. 최신 패키지를 설치할 수 있도록 항상 먼저 업데이트하는 것이 좋습니다.

sudo apt update

2. Java 17 설치

 

Java 17은 Ubuntu의 기본 패키지 저장소에서 설치할 수 있습니다.

sudo apt install openjdk-17-jdk -y

이 명령어는 OpenJDK 17 JDK(Java Development Kit)를 설치합니다.

 

3. Java 설치 확인

 

Java 17이 정상적으로 설치되었는지 확인하려면 다음 명령어를 사용합니다.

java -version

출력 결과는 다음과 유사하게 나타날 것입니다:

openjdk version "17.0.x" 
OpenJDK Runtime Environment (build 17.0.x+xx)
OpenJDK 64-Bit Server VM (build 17.0.x+xx, mixed mode)

 

 

 

반응형
반응형

1. AWS DMS 설정 준비

 

1. RDS 인스턴스 생성

이미 RDS 인스턴스가 생성되어 있다면 이 단계를 건너뛰세요.

RDS에서 MySQL 인스턴스를 생성합니다. 인스턴스 생성 과정에서 적절한 VPC, 서브넷, 보안 그룹 설정을 확인해야 합니다.

 

 

2. IAM 역할 생성

AWS DMS에 필요한 IAM 역할을 생성해야 합니다.

필요한 권한은 AmazonDMSVPCManagementRole, AmazonDMSCloudWatchLogsRole, AmazonDMSRedshiftS3Role입니다.

 

2. AWS DMS 구성

 

1. Replication Instance 생성

AWS Management Console에서 DMS 서비스로 이동합니다.

Replication Instances에서 새로운 레플리케이션 인스턴스를 생성합니다. -

Replication instances를 선택한 후 Create replication instance를 클릭합니다.

복제 인스턴스 세부 정보를 입력합니다:

인스턴스 식별자: dms-replication-instance

인스턴스 클래스: 요구 사항에 맞는 인스턴스 유형 선택

할당된 저장소: 요구 사항에 맞는 스토리지 크기 선택

VPC: EC2와 RDS가 있는 VPC 선택

EC2와 RDS가 있는 동일한 VPC에 레플리케이션 인스턴스를 배치하고, 퍼블릭 액세스 여부를 선택합니다.

 

2. Endpoint 생성

DMS 콘솔에서 Endpoints로 이동하여 두 개의 엔드포인트를 생성합니다.

 

Source Endpoint (EC2 MySQL)

Endpoint type: Source

Engine type: MySQL

Server name: EC2 인스턴스의 퍼블릭 IP 주소 또는 도메인

Port: MySQL 기본 포트 (3306)

Username: MySQL 사용자 이름

Password: MySQL 비밀번호

Database name: MySQL 데이터베이스 이름 (특정 데이터베이스만 마이그레이션하려면)

Target Endpoint (RDS MySQL)

Endpoint type: Target

Engine type: MySQL

Server name: RDS 인스턴스의 엔드포인트 (콘솔에서 확인 가능)

Port: MySQL 기본 포트 (3306)

Username: RDS MySQL 사용자 이름

Password: RDS MySQL 비밀번호

Database name: MySQL 데이터베이스 이름

 

3. Migration Task 생성

Database migration tasks에서 새 마이그레이션 태스크를 생성합니다.

Source와 Target Endpoint를 설정합니다.

Migration type을 Migrate existing data 또는 Migrate existing data and replicate ongoing changes로 선택합니다.

Migrate existing data: 기존 데이터만 마이그레이션합니다.

Migrate existing data and replicate ongoing changes: 기존 데이터 마이그레이션과 동시에 변경 사항을 실시간으로 복제합니다.

테이블 매핑 설정에서 모든 스키마와 테이블을 포함하도록 설정합니다 (% 사용).

태스크 설정에서 데이터 검증, LOB 모드 등의 옵션을 설정할 수 있습니다.

4. Migration Task 시작

태스크를 생성한 후 Start 버튼을 눌러 태스크를 실행합니다.

콘솔에서 태스크 진행 상태를 모니터링할 수 있습니다.

 



Table mappings 섹션에서 테이블 매핑을 설정

시스템 테이블을 제외하려면 다음과 같이 설정하시면 됩니다:

 

1. Schema:

mysql, information_schema, performance_schema, sys 등 시스템 데이터베이스를 제외하려면 각각의 스키마 이름을 Schema 필드에 입력합니다.

2. Source name:

각 스키마에 대해 시스템 테이블이 위치한 스키마 이름을 입력합니다. 예를 들어, mysql 스키마를 제외하려면 mysql을 입력합니다.

3. Source table name:

테이블 이름을 제외하려면, %를 사용하여 모든 테이블을 선택할 수 있습니다.

4. Action:

Exclude로 설정합니다.

 

db 데이터베이스만 가져오도록 DMS 테이블 매핑 규칙을 설정하려면, 다음과 같이 설정할 수 있습니다.

1. Schema 필드: db 입력

2. Source table name: % (모든 테이블을 의미)

3. Action: Include

 

위 설정으로 DMS가 db 데이터베이스의 모든 테이블을 포함하여 마이그레이션하도록 구성됩니다. 다른 데이터베이스는 이 설정으로 제외됩니다.

db 라는 네임스페이스의 db 만 가져옵니다. 

{
  "rules": [
    {
      "rule-type": "selection",
      "rule-id": "1",
      "rule-name": "include-db",
      "object-locator": {
        "schema-name": "db",
        "table-name": "%"
      },
      "rule-action": "include",
      "filters": []
    }
  ]
}

 

Mysql 타임존 수정 방법

1. MySQL 파라미터 그룹 수정

 

RDS의 MySQL 인스턴스에서 타임존을 변경하려면 먼저 파라미터 그룹에서 time_zone 파라미터를 수정해야 합니다.

 

1. 파라미터 그룹 생성 또는 수정:

AWS Management Console에 로그인한 후, RDS 콘솔로 이동합니다.

왼쪽 탐색 창에서 **“Parameter groups”**를 클릭합니다.

새로운 파라미터 그룹을 생성하거나 기존의 파라미터 그룹을 수정합니다.

파라미터 그룹에서 time_zone 파라미터를 찾습니다.

time_zone 파라미터 값을 원하는 타임존으로 설정합니다 (예: Asia/Seoul, UTC, Europe/London 등).

2. 파라미터 그룹 적용:

RDS 인스턴스에 해당 파라미터 그룹을 적용합니다.

파라미터 그룹을 적용한 후에는 RDS 인스턴스를 재부팅해야 새로운 타임존이 적용됩니다

 

2. RDS 인스턴스에 파라미터 그룹 적용

 

1. RDS 인스턴스 수정:

RDS 콘솔에서 타임존을 변경할 RDS 인스턴스를 선택한 후 **“Modify”**를 클릭합니다.

DB parameter group에서 새로 생성한 파라미터 그룹을 선택합니다.

인스턴스를 수정한 후, **“Apply immediately”**를 선택하여 변경 사항을 즉시 적용합니다.

2. 재부팅 필요:

파라미터 그룹이 적용된 후, RDS 인스턴스를 재부팅해야 변경된 타임존이 적용됩니다.

.

반응형
반응형

 

AWS CloudWatch Logs 에이전트를 설치하고 구성하는 방법은 다음 단계에 따라 진행할 수 있습니다. 이 과정에서는 EC2 인스턴스에서 로그를 수집하고 CloudWatch Logs로 전송하는 방법을 설명합니다.

 

1. AWS CloudWatch Logs 에이전트 설치

 

단계 1: 에이전트 설치

 

1. EC2 인스턴스에 SSH로 접속합니다.

2. 다음 명령어를 실행하여 CloudWatch Logs 에이전트를 다운로드하고 설치합니다.

Amazon Linux 및 Amazon Linux 2:

wget https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm
sudo rpm -U ./amazon-cloudwatch-agent.rpm

Ubuntu:

wget https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb
sudo dpkg -i -E ./amazon-cloudwatch-agent.deb

 

단계 2: CloudWatch Agent 구성

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard

구성 마법사를 완료한 후, 생성된 구성 파일을 /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json에 저장합니다.

 

 

 

sudo vi /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json

{
    "logs": {
        "logs_collected": {
            "files": {
                "collect_list": [
                    {
                        "file_path": "/var/log/my-app/output.log",
                        "log_group_name": "/my-app/output",
                        "log_stream_name": "{instance_id}-output"
                    },
                    {
                        "file_path": "/var/log/my-app/error.log",
                        "log_group_name": "/my-app/error",
                        "log_stream_name": "{instance_id}-error"
                    }
                ]
            }
        }
    }
}

여기서

file_path 는 클라우드와치에 보내고 싶은 서버 로컬 파일 경로를 적어줍니다.

instance_id 는 EC2 대시보드에 id 가 적혀있습니다.

 

또 log_group_name 이라는 클라우드 와치 내 logs 그룹을 추가해줘야 합니다.

터미널에서 아래 코드를 실행해 줘야 하는데 아마 권한때문에 안될겁니다. IAM 을 계정을 추가하고 서버 로컬에서 로그인 해줘야 합니다.

aws logs create-log-group --log-group-name /my-app/output --region ap-northeast-2
aws logs create-log-group --log-group-name /my-app/error --region ap-northeast-2

 

 

IAM 콘솔 

IAM 권한 확인 및 설정

 

IAM 사용자 또는 역할에 필요한 권한이 있는지 확인합니다. IAM 콘솔에서 다음 정책을 추가하십시오.

1. AWS Management Console에 로그인합니다.

2. 상단 메뉴에서 **“Services”**를 클릭하고, **“IAM”**을 선택합니다.

3. 왼쪽 메뉴에서 **“Users”**를 클릭합니다.

4. ablelearn 사용자를 클릭합니다.

5. “Add permissions” 버튼을 클릭합니다.

6. **“Attach policies directly”**를 선택합니다.

7. 검색창에 CloudWatchLogsFullAccess를 입력하고, 해당 정책을 선택합니다.

8. **“Next: Review”**를 클릭한 후 **“Add permissions”**를 클릭합니다.


또한 user 에 role 을 부여하고 EC2 인스턴스에 역할을 부여해 주어야 합니다. 

1. AWS Management Console에 로그인합니다.

2. IAM 콘솔로 이동합니다.

3. 왼쪽 메뉴에서 Roles를 선택합니다.

4. Create role을 클릭합니다.

5. AWS 서비스를 선택하고, EC2를 선택한 후 Next: Permissions를 클릭합니다.

6. CloudWatchLogsFullAccess 정책을 선택하고 Next: Tags를 클릭합니다.

7. Next: Review를 클릭합니다.

8. 역할 이름을 입력하고 Create role을 클릭합니다.

 

 

 

EC2 인스턴스에 IAM 역할 부여

 

1. EC2 콘솔로 이동합니다.

2. 대상 인스턴스를 선택하고 Actions -> Security -> Modify IAM role을 클릭합니다.

3. 방금 생성한 IAM 역할을 선택하고 Update IAM role을 클릭합니다.

 

EC2 인스턴스에 IAM 역할 부여

 

1. EC2 콘솔로 이동합니다.

2. 대상 인스턴스를 선택하고 Actions -> Security -> Modify IAM role을 클릭합니다.

3. 방금 생성한 IAM 역할을 선택하고 Update IAM role을 클릭합니다.

 

 

AWS CLI 설정 (Optional)

 

로컬에서 AWS CLI를 통해 자격 증명을 설정할 수 있습니다.

aws configure
AWS Access Key ID [None]: YOUR_ACCESS_KEY_ID
AWS Secret Access Key [None]: YOUR_SECRET_ACCESS_KEY
Default region name [None]: ap-northeast-2
Default output format [None]: json

여기서 Access Id 와 key 는 IAM user 계정 생성시 발급 됩니다.

 

user 및 role 이 정상적으로 생성했다면 

 

아래 코드를 실행합니다. 

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json -s

파일 실행 하면 

sudo vi /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json 
파일은 없어지므로 다시 재실행할때 다시 json 파일을 생성해주면 됩니다. 

 

에이전트가 오류가 있는지 디버깅을 하기위해서는 아래와 같이 로그를 확인할 수 있습니다.

sudo tail -f /opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log

 

systemctl 에서 에이전트가 러닝인지 종료인지 알기 위해서는 아래 명령어로 확인 가능합니다.

sudo systemctl status amazon-cloudwatch-agent

 

보통 대부분의 이슈는 user 및 role 권한 설정이슈입니다. 


정상적으로 동작한다면

각 그룹에서 로그가 적재된걸 확인할 수 있습니다. 
서버 로컬에서 log group 을 생성을 하고 위 대시보드에서 확인바랍니다.

 

 

요약

 

amazon-cloudwatch-agent.json 파일을 편집하여 EC2 모드를 설정합니다.

구성 파일을 저장하고 CloudWatch Agent를 다시 시작합니다.

로그 그룹이 존재하는지 확인하고, 필요 시 생성합니다.

IAM 사용자 또는 역할에 필요한 권한을 확인합니다.

CloudWatch Agent 로그 파일을 확인하여 추가적인 디버깅 정보를 얻습니다.

CloudWatch 콘솔에서 로그 그룹을 확인합니다.

 
 
 


이전포스팅
https://juntcom.tistory.com/252

 

CloudWatch Logs 에이전트 설치 - Ec2 인스턴스

AWS CloudWatch Logs 에이전트를 설치하고 구성하는 방법은 다음 단계에 따라 진행할 수 있습니다. 이 과정에서는 EC2 인스턴스에서 로그를 수집하고 CloudWatch Logs로 전송하는 방법을 설명합니다. 1. AWS

juntcom.tistory.com

 

반응형
반응형

 

AWS CloudWatch는 보고서 작성 기능을 포함한 다양한 모니터링 및 관리 기능을 제공합니다. 구체적으로는 CloudWatch Logs Insights와 CloudWatch Dashboards를 사용하여 데이터를 시각화하고 보고서를 작성할 수 있습니다.


클라우드와치 구성 종류는 크게 두가지로 나눌 수 있습니다.

1. CloudWatch Logs Insights

CloudWatch Logs Insights는 로그 데이터를 쿼리하고 분석할 수 있는 강력한 도구입니다. 이를 통해 특정 기간 동안의 로그 데이터를 기반으로 다양한 보고서를 생성할 수 있습니다.

 

로그 쿼리 작성: SQL과 유사한 쿼리 언어를 사용하여 로그 데이터를 분석할 수 있습니다.

쿼리 결과 시각화: 쿼리 결과를 그래프로 시각화할 수 있으며, 이를 기반으로 대시보드를 구성할 수 있습니다.

저장 및 공유: 쿼리 결과를 저장하고 다른 사용자와 공유할 수 있습니다.

 

2. CloudWatch Dashboards

CloudWatch Dashboards를 사용하면 여러 지표와 로그 데이터를 한 곳에서 시각화하여 보고서를 생성할 수 있습니다.

 

대시보드 생성: 다양한 위젯을 사용하여 사용자 정의 대시보드를 만들 수 있습니다.

실시간 모니터링: 실시간으로 데이터를 시각화하여 시스템 상태를 모니터링할 수 있습니다.

공유 및 액세스 제어: 대시보드를 공유하고 액세스 권한을 설정할 수 있습니다.

 

 

CloudWatch 대시보드 생성

 

1. AWS Management Console에 로그인합니다.

2. CloudWatch 콘솔로 이동합니다.

3. 왼쪽 메뉴에서 **“Dashboards”**를 선택하고 **“Create dashboard”**를 클릭합니다.

4. 대시보드 이름을 입력하고 **“Create dashboard”**를 클릭합니다.

 

Automatic dashboards 로 대시보드를 생성한다면 각종 지표를 종합적으로 대시보드에 구성해 줍니다. 

 

Ec2 지표 대시보드 

 

5. 한개씩 지표 설정을 하고 싶다면  Custom Datshboard 를 통해 설정하고 싶은 위젯을 선택하여 대시보드에 추가합니다.


지표(Metrics) 설정

- 1. CloudWatch 콘솔에서 왼쪽 메뉴의 **“Metrics”**를 선택합니다.

- 2. 모니터링하려는 서비스(예: EC2, RDS 등)를 선택합니다.

- 3. 지표를 선택하여 그래프에 추가합니다.

- 4. 선택한 지표를 대시보드에 추가할 수도 있습니다.

 

알람(Alarms) 설정

 

- 1. CloudWatch 콘솔에서 왼쪽 메뉴의 **“Alarms”**를 선택합니다.

- 2. **“Create alarm”**을 클릭합니다.

- 3. 모니터링할 지표를 선택하고 Next를 클릭합니다.

- 4. 조건을 설정합니다 (예: CPU 사용률이 80% 이상일 때 알람 발생).

- 5. 알람 발생 시 수행할 작업(SNS 주제에 알림 전송 등)을 설정합니다.

- 6. 알람 이름을 입력하고 **“Create alarm”**을 클릭합니다.

 

이메일 알림 추가

이메일 작성 후 [create topic] 으로 알림 정보 저장해주면 됩니다.


저장하고 나면 Amazon SNS 에 저장된 것을 볼 수 있습니다. 

 

CloudWatch Logs Insights 는 다음 포스팅에서 하겠습니다.

 

https://juntcom.tistory.com/253

 

CloudWatch Logs 에이전트 설치 - Ec2 인스턴스

AWS CloudWatch Logs 에이전트를 설치하고 구성하는 방법은 다음 단계에 따라 진행할 수 있습니다. 이 과정에서는 EC2 인스턴스에서 로그를 수집하고 CloudWatch Logs로 전송하는 방법을 설명합니다. 1. AWS

juntcom.tistory.com

 

 
 
반응형
반응형

ClounFront 란

.html, .css, .js 및 이미지 파일과 같은 정적 및 동적 웹 콘텐츠를 사용자에게 더 빨리 배포하도록 지원하는 웹 서비스
CloudFront는 엣지 로케이션이라고 하는 데이터 센터의 전 세계 네트워크를 통해 콘텐츠를 제공. CloudFront를 통해 서비스하는 콘텐츠를 사용자가 요청하면 지연 시간이 가장 낮은 엣지 로케이션으로 라우팅되므로 콘텐츠 전송 성능이 뛰어남.

ClundFront 를 구성하는 방법

Amazon S3 버킷 또는 고유 HTTP 서버와 같은 오리진 서버,를 지정하고, CloudFront는 이로부터 파일을 가져온 다음 전 세계 CloudFront 엣지 로케이션에 배포
오리진 서버는 객체의 최종 원본 버전을 저장
HTTP를 통해 콘텐츠를 서비스하는 경우 오리진 서버가 Amazon S3 버킷 또는 웹 서버 같은 HTTP 서버

참고문헌

https://www.slideshare.net/awskorea/route53-cloudfront-cdn-gsneotek [route53-cloudfront-cdn 슬라이드쉐어]
https://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/Introduction.html [AWS 공식문서]
https://real-dongsoo7.tistory.com/86 [AWS CloudFront 설명]

반응형

+ Recent posts